首页 > 深信服提前批一面C++软件开发
头像
Fool_one
编辑于 2021-08-28 08:56
+ 关注

深信服提前批一面C++软件开发

1、自我介绍。
2、说一说你所做的项目还有哪些可以改进的地方。
3、定时器是用堆实现的,那如何去触发定时器呢。
4、你这个项目是单线程还是多线程,当Socket来了之后,如何处理。
5、进程、线程、协程得区别。
6、如何保证线程同步。(面试官还问了自旋锁,没学...)
7、文件IO:一个大文件如何复制到另一个文件中。(只答了用buff存储...,大文件不会)
8、
int a = 1;
int arr[3] = {1, 2, 3};
char str[] = "Hello";
int len_a = sizeof(a);    // 4
int len_arr = sizeof(arr);// 12
int len_str = sizeof(str);// 6
9、内存对齐
union x {
    int a;
    float b; 
    double c;
    char d;
};
sizeof(x);
10、实现 char* strcpy(char* dst, char* src)
char* strcpy(char* dst, const char* src) {
    // 检查传递参数的有效性
    assert(NULL != dst);
    assert(NULL != dst);
    if (NULL == dst || NULL == src) {
        return NULL;
    }
    char* ret = dst;
    while ((*dst++ = *src++) != '\0') ;
    return ret;
}
当时没有判assert,直接一个for循环进行拷贝,面试官还问我还有吗?我...。

11、求一个链表的倒数第K个节点。
[1] 先求整个链表的长度得到N,N-K+1就是第K个节点。
[2] 链表反转,再求第K个节点
[?] 面试官问:还有吗? 我:???

估计凉了~,面试官说我语言描述不生动,算法很差...。

更新一下:一面挂了!,果然是自己基础不好,算法太差。

更多模拟面试

全部评论

(9) 回帖
加载中...
话题 回帖