C/C++培训
达内IT学院
400-996-5531
关于几面的问题:咨询了一些人,好像是分部门和岗位,大多数都只有二面,少数有三面。
下面是面经:
笔试
首先是会发一张卷子,先做笔试,题目大致如下:
1、实现一个memcpy,效率尽可能好
2、100万有序数据,是否存在两数之和等于给定值
3、求巨大数组的前K大的数
4、class里如何给引用类型成员初始化
5、C malloc出来的内存 可以调用delete吗?为什么
6、下面程序输出什么?为什么
class A
{
public:
void print()
{
fprintf(stderr,"hello,world\n");
}
};
int main()
{
A *p=0;
p->print();
}
7、简述一个简单的C/S通信程序的实现步骤
8、简述linux进程的内存布局
9、两个线程,共享一个整型变量,一个 ,一个--,最后输出这个变量的值,如何最大程度的提高并发能力?
这里不得不吐槽一下,在做笔试的时候,没有任何监管,周围好多人都直接拿手机查,好吧,这样做笔试有区分度吗?
做完笔试,等了大约一个小时,才轮到我面试:
一面
基本上就是对着试卷问了一遍,然后问能不能实习什么的,最后问我有什么想问的,楼主就问面试小哥是什么部门的,用什么语言多,因为楼主不想写java,面试小哥说是搜索部门,让我放心,是用的c
一面很快,10分钟左右,然后去吃饭,回来后1点40多,等了大概一小时
二面
对着简历问,由于我简历上说自己对网络编程比较熟悉,问了一大推网络编程的问题,下面总结一下,不一定是问的顺序:
1、看过muduo库?说一下muduo库的特点,以及自己学到了什么
2、你提到了线程池,说一下怎么实现的
3、设置过socket参数吗?具体说说
4、TCP流量控制手段,拥塞控制,TCP怎么判断发生了网络拥塞
5、RST知道吧,发送一个RST会发生什么?
6、进程(线程)通信有哪些手段?
7、文件描述符知道吧?同一个进程打开同一个文件两次,会发生什么?具体说说文件的底层数据结构
8、除了多线程,多进程用过吗?(楼主答知道一些概念fork等,没怎么用过)
好像还有其他的关于网络的问题,记不得了
之后让我说一下项目,由于实验室的项目的外包,java web,面试官好像不敢兴趣,全程没提什么问题
之后好像是实在没什么聊的,就在笔试题的基础上问了一些问题:
1、第五题你是怎么答的?(笔试答卷被一面面试官收走,所以二面没有)
我说从malloc 和 ew的区别入手,malloc只是申请内存,而且返回的是void*类型,而new分为两个步骤,一个步骤是申请内存,第二个步骤是调用构造函数进行初始化,所以不能调用delete,他说其实对于内置变量类型,是可以直接调用delete,这个我和他解释了一下,说对于内置变量类型比如 int p = new int[10];delete p 和delete []p是一样的,而对于用户自定义类型 obj p = new obj[10];则delete p 和 delete []p则不一样,就是说对于内置类型和自定义类型编译器处理的方式不一样
2、第六题你是怎么答的?
我说这题的考点应该是 A*p = 0;是相当于把p置为NULL,而NULL指针能不能调用成员函数。这个应该分为两种情况,一种情况是print没有使用类的成员变量,也就是没有对内存进行读写操作,这个时候是不会报错,可以正常运行,输出hello,如果print对成员变量进行的读写,则会报错。
因为对于普通成员函数,编译器会对其进行改名,使其调用方式和普通函数一样,所以虽然p为NULL,但是还是可以调用。
面试官问如果把print声明为虚函数呢?我思考了一下说这个时候会报错,因为p为NULL的时候,没有调用构造函数,所以并没有初始化vptr。
3、第九题怎么答的?
我说用C 11的原子变量,他不满意,说这样其实也是锁,只不过是底层实现的,比mutex更效率一些。我说我想不到其他方法。然后他提示了一下,说不一定非要对变量本身进行操作。这个时候我一下子明白了,原来题意是两个线程只对变量进行 --操作,没有其他,那完全可以在启动线程前,将变量的值赋值给两个变量,然后通过ref()的方式传给线程,最后将两个值相加即可,不需要加锁
最后说今天的面试结束了,所有人都是二面,我问了一下结果什么时候会出,他说他们会把面试情况报给公司,什么时候出他也不知道。我又问挂了话会有通知吗?他说应该没有通知了。
然后他好像给我进行打分,我瞄了一眼,好像是一个√一个×,感觉是GG了
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved