阿里C++一面面经(已回绝)

部门是计算平台,貌似实习没过直接转为校招了,不知道这个算内推还是正式校招。

说是半个小时,实际讲了快一个小时,都比较基础,问的太多了,题目顺序有点乱。——然后就挂了

1.空结构体sizeof的返回值。

2.int i=1;sizeof(i++); i的值变为多少

3.一个char跟int的结构体大小是多少

4.C+构造函数能抛异常吗,析构呢

5.volatile关键字

6.explicit关键字

7.模板熟不熟,为什么模板的定义跟声明要在同一个文件中。

8.讲下模板偏特化,定义了int偏特化的话,对double类型的模板有效吗

9.讲下虚函数的机制

10.讲下虚继承

11.unsigned char a=-1,printf("%d",a)输出什么;

12.访问类private成员的方法,比如编写单元测试,私有成员没有暴露接口。

13.std::string怎么实现的;线程安全吗,中间有'\0'时cout输出;用printf的输出

14.vector怎么实现,增长方式,为什么list不能下标随机访问,vector可以。

15.了解C++11吗,讲下auto关键字与类中的delete。

16.讲讲函数参数是多个参数怎么传递,比如说printf的参数,怎么确定大小等,一个int printf%s会出什么情况。

17.gcc跟vs哪个比较熟,问了gdb的断点怎么实现的。C++里用过汇编语言吗。

18.讲讲同步跟异步,举了网络编程的例子,没太讲好。追问同步、异步阻塞非阻塞这些概念怎么联系起来

19.顺着问了下select,epoll的区别。

20.顺着问了网络字节序

21.网络编程处理了多大的并发,10k问题?

22.Tcp头部校验的原理,安全吗,可以仿造吗

23.多线程里一个线程sleep,实质上是在干嘛,忙等还是闲等。

24.线程通信互斥这种原子操作,底层是怎么实现的。

25.讲讲用户态内核态,以send函数跟recv为例子。

26.malloc跟new是否线程安全,答不清楚,说你自己的理解。

27.有没有用过free指令,里面的buff/***是什么意思与区别

28.程序从编译到运行经历哪几个阶段。运行的时候怎么找到函数的地址。

29.dll,so这种动态库在运行的时候可不可以删掉。跑程序时一个大文件(10G)载入内存可以删掉吗,小的文件呢。删掉空间会释放吗。

30.写过脚本语言吗,10G大小的文件分成十份用什么命令。

31.二叉树遍历,描述下层序遍历。

32.单链表的翻转

33.项目中用过什么开源的东西;分布式一致呢,问了一大堆hadoop的都没听过。

34.Mysql呢,acid这些特性懂不懂,innodb呢,我说只知道事务安全,目前这个用的最多。

35.闲聊了下项目

#阿里巴巴#
全部评论
对比楼主的问题,谈一下自己的看法吧。前面貌似有同学也发了自己的,我没看。本人毕竟也不是什么C++大神,欢迎指正。 1、空结构体sizeof返回值为1 2、i++是先运算再自加,所以还是为1 3、取决于char和int的先后顺序以及32位还是64位吧,但很巧结果都是8 4、不能,因为可能会使得函数构造函数调用失败,从而无法正常构造,析构函数也是的。这个我记得在《Effective C++》里面写到过 5、避免不必要的优化 6、避免编译器隐式转换 7、涉及到模板的使用,定义和声明在同一个文件中是为了C++封装的特性吧 8、 9、虚函数的机制,visual关键字、虚基表、动多态这些,还会问道纯虚函数 10、虚继承,常常就是问动多态了 11、涉及到计算机基础知识补码了,这里应该是255吧 12、private成员的调用,通常就是成员函数吧,友元函数也可以 13、C++下string线程不安全,具体的可以看下这篇文章:http://blog.csdn.net/myknotruby/article/details/38338723 14、这个问题看过《STL源码剖析》的应该都知道的吧,list是链表,需要从头到尾遍历,vector是数组,所以支持随机访问 15、C++11的新特性,看看《C++ Primer》 16、参考https://www.zhihu.com/question/41356861?sort=created 17、个人是VS比较熟,GCC只在Linux环境下使用过,但也没那么熟练 18-27、都是网络编程的问题啊,看看《Unix网络编程》,基本都解释的很清楚 28、预处理、编译、优化、汇编、链接。 29、不可以删掉吧,我不确定。 30、个人写过bat、sh脚本文件。切割文件参考:http://blog.csdn.net/jkunzhang/article/details/7666398 31、三种遍历方式,递归和非递归的。层序遍历往往结合队列来实现 32、略 33、这就很尴尬了,本人项目没用到啥开源项目;后面打算结合同学的建议,研究一下Redis 34、ACID,基础知识,四种基本特性吧。 35、因人而异啦 阿里问的真多啊,而且这还只是一面😓,网络编程的那一块不深究确实不知道怎么答,其他的平时多积累应该能回答个大概。祝大家好运啦,一起学习交流。
点赞 回复
分享
发布于 2017-08-14 17:39
大部分不是很难。1,应该是指空类的大小吧!是1 2,2 3,是指字节吗? 4,构造能抛,析构不能抛 5,避免优化从寄存器中读值,直接从内存中读值。 6,避免隐式转换 7,c++98可用export 定义外名模板在c++11中移除,原因是必须加一个预链接的过程,编译器开销太大。 8,模板函数不能隐式转化 9,.... 10,虚继承通过指针存取避免二义性 11,255 12,一通过友元函数,二通过成员函数 13,不安全 14,list没有重载[] 15,auto类型推导 16,形参从右至左压栈 17,gdp -b 内联汇编通过_asm_{} 18,io模型同步异步区别在于内核给用户是一个就绪事件还是完成事件。 19,select移植性更好,延时精度更高,epoll 巴拉巴拉 20,网络字节序为大端,大端优点是符号容易判断 21,32位理论支持2^32并发量。 22,不安全 23,忙等 待 24,单处理机下关中断,多处理机原子汇编指令 25,用户态通过int 0x80中断进入内核..... 26,new是不安全的,malloc实现在复杂,不清楚 27,.... 28,编译期分配资源时即确定地址 29,动态链接库不能删 30,....
点赞 回复
分享
发布于 2017-08-12 21:49
联想
校招火热招聘中
官网直投
问的题好难啊
点赞 回复
分享
发布于 2017-08-12 19:49
真可怕。。
点赞 回复
分享
发布于 2017-08-12 20:15
题主答得怎么样啊?感觉什么都问。。太可怕了
点赞 回复
分享
发布于 2017-08-12 20:18
问得好细
点赞 回复
分享
发布于 2017-08-12 20:19
我的天。这一面,好难
点赞 回复
分享
发布于 2017-08-12 20:20
面太广了。。楼主厉害
点赞 回复
分享
发布于 2017-08-12 20:25
这么详细的面筋,赞
点赞 回复
分享
发布于 2017-08-12 20:35
感觉好细
点赞 回复
分享
发布于 2017-08-12 20:44
这个是成心想挂你吧。
点赞 回复
分享
发布于 2017-08-12 21:03
这是不想招人吧?那么多的函数在多线程的情况下很多可能都不是线程安全的。问一个应届生过分了
点赞 回复
分享
发布于 2017-08-12 21:27
问得有点多啊!!!
点赞 回复
分享
发布于 2017-08-12 21:32
心疼阳老哥
点赞 回复
分享
发布于 2017-08-12 21:43
明显不要人啊,一面答出一半就可以了。
点赞 回复
分享
发布于 2017-08-12 22:13
这。。。知道是具体哪个组的吗?
点赞 回复
分享
发布于 2017-08-12 22:15
太吓人,没几个问题能答上来
点赞 回复
分享
发布于 2017-08-12 22:27
感觉挺难的
点赞 回复
分享
发布于 2017-08-12 23:23
大部分都接触过。。但是要我记住,太难了。。
点赞 回复
分享
发布于 2017-08-13 15:39

相关推荐

12 178 评论
分享
牛客网
牛客企业服务