栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

笔面试内容

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

笔面试内容

1. 笔试 # c/c++笔试

1.有两个数组,找出这两个数组中的最小值和第二大值。

例如:array A [ ] = { 9, 2, 3, 4, 5, 6 }

array B [ ] = { 10, 7, 8, 1, 5, 6, 2, 2, 2 }

答:

算法思想:将A、B数组排序,通过比较两数组最小值获得最小值;比较最大值,再把较大的一方数组的第二大值与另一方最大值比较,获得第二大值。

int A [] = { 9, 2, 3, 4 ,5 ,6 };
int B [] = { 10, 7, 8, 1, 5, 6, 2, 2, 2 };
int min;
int second;
int Second_Largest (int A[], int B[])
{
    int size_a = sizeof(A)/sizeof(int);
    int size_b = sizeof(B)/sizeof(int);     //获得A,B数组长度
    
    sort(A);    //排序函数,后面给出sort函数代码
    sort(B);    //升序排序

    //获得最大值
    if(A[size_a - 1] > B[size_b - 1])
    {
        if(A[size_a - 2] > B[size_b - 1])
            second = A[size_a - 2];
        else 
            second = B[size_b -1]
    }
    else if(A[size_a - 1] > B[size_b] - 2)
        second = A[size_a -1];
    else 
        second = B[size_a -2];
    
    return second;
}

int Min (int A[], int B[])
{
    int size_a = sizeof(A)/sizeof(int);
    int size_b = sizeof(B)/sizeof(int);     //获得A,B数组长度
    
    sort(A);   
    sort(B);    

    //获得最小值
    if(A[0] > B[0])
        min = B[0];
    else 
        min = A[0];

    return min;
}

//sort函数如下:
void sort (int A[])        //冒泡函数
{
    int size = sizeof(A)/sizeof(int);
    int i, j, temp;
    for(i = 0; i <= size - 1; i++)
    {
        for(j = 0; j <= size - 1; j++)
        {
            if(A[i] > A[i+1])
            {
                temp = A[i];
                A[i] = A[i+1];
                A[i+1] = temp;
            }
        }
    }
}


2.位运算,请写一个程序,用来计算任意一个整数当它换算成二进制时有多少位1

3.添加完成一个反转函数,完成代码中start到end中间这一段,完成字符串反转输出

void reversal (string *s)
{
    int size = sizeof(s) / sizeof(char);
    int j = size - 1;
    for(int i = 0; i <= size - 1; i++)    
    {
        char c = s[i]
        s[i] = s[j];
        s[j] = c;
        j--;    
    }   
}

reversal(s);

4.一个链表,表头即链表完整的结构体。完成创建链表、找到链表最大值、删除链表操作。

链表结构体:                                                                     

struct node {                                       

        int data;                         //数据域

        struct node *next;         //指针域

}

根据list[num]完成链表创建。已给出头节点L。

//创建链表
struct node *create (int *list, int num)
{
    for(int i = 0; i < num - 1; i++)
    node *p;
    p->data = list[i];
    p->next = L->next;
    L->next = p;   
    return L; 
}


//找该链表中的最大值
int max (node *head)
{
    int max;
    max = head->data;
    head = head->next;
    while(head->next != NULL)    //遍历链表
    {    
        if(max < head->data)
            max = head->data;
        head = head->next;
    }
    return max;
}

//删除链表
void release (struct node *head)
{
    node *p;
    while(head->next != null)
    {
        p = head->next;
        head-next = p->next;
        free(p);
    }
}

# 系统题笔试

1.[编程题]关于socket线程编程,完成一个简单的TCP服务器主函数,涉及到的参数部分仔细需要你回想思考。

2.[简答题]Linux通信进程的四种方式

百度搜索

# 网络相关选择题 #思考题

已知:5+3=16   7+3=40   请问9+3=?

2. 面试 # c/c++

1.根据笔试情况,回答你为什么要这么写等

2.指针常量和常量指针的区别

3.static标识符有什么作用

4.结构体所占的内存是多少

# 系统题

5.在c++中内存是怎样的

----当我new或malloc一个值,这个值是存放在栈还是堆中

----其他情况,让你判断在栈还是在堆

6.进程和线程

7.死锁

8.信号量机制,同步和异步

8.代码保护

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号