C++面经合集

秋招总共面了16家,投的岗位基本为C++开发,包括腾讯、百度、滴滴、网易互娱、字节、猿辅导、360shopee、吉比特、深信服、网宿科技、贝壳找房、亿联、锐捷网络等,将面经汇总一下,方便查阅。

1 腾讯

1、两个有序链表合并。

2、有序链表删除重复结点。

3、二叉树求根结点到叶子的路径和为sum的路径。

4、求二叉排序树第三大结点。

520个银币,1个金币,每次拿1个到4个,金币只能最后一个拿,且金币银币不能同时拿,现在你先开始拿,问如何拿到金币。

6static关键字用法。

7、为什么要有虚析构函数。

8、网络编程?

9、操作系统?进程线程?协程懂吗?

10、进程通信的方法。

11、项目经历, 为什么用asp.net?前后端如何通信?

12、研究生阶段做的研究?

13、你有什么问题吗?

2 百度

2.1 一面:

153个人中,任选3个人至少有两个人生日相同的概率。

2、旋转数组找最小值?(手撕)

310亿个IP,取出频次出现最多的TOP10IP(思路题)

4、某进程创建了若干线程,这些线程不能共享的是?(选择题)

5TCP的粘包问题有哪些解决方案?(选择题)

6、滑动窗口是用来干什么的?

7soket调用接口?

8、网络库有用过哪些?

9IP层如何找MAC地址?如果对应IP不在局域网呢?

10、网桥?虚拟设备对?

11ARP攻击,ARP欺骗?

12Linux静态库和动态库有什么区别?动态库的加载器是哪个?

13glibc是干什么的?

14、常见的hash算法?

15、一致性哈希如何优化?

16Linux常见的信号有哪些?

17kill -9?进程组?Group IDPPID什么区别?

18、有什么问题要问的?

2.2 二面:

1、自我介绍?

2、很大数组中找第K大元素?

3、项目相关?

4、比较擅长什么语言?脚本性语言?

5socket编程?

6、三次握手?

7UDP数据包长度多少?

8、研究经历?

9、最近看的书?

10、对Linux环境的了解?

11、进程的状态有几种?

12http头部方法GET?POST?其他的有了解吗?GETPOST的区别?POST可以在URL中携带参数吗?

13、你觉得你优势的地方?

14、平时学习开发过程中遇到什么困难?

15、发表了几篇论文?

16、进程和线程的区别?线程池?

17、多线程要注意什么问题?

18mysql有了解吗?

19、数据库字段少了某些字段,现在要让你加,你怎么办?设计上有没有考虑可扩展性?

20cookie有存什么东西吗?

21、有什么想问的?

2.3 三面:

1、项目?项目难点?花了多久时间?

2、有了解哪些最短路算法?如果速度不够,你要怎么优化?

3、最近在看哪些书?

4、平时关注哪些技术?

5、进程与线程的理解?什么时候用进程什么时候用线程?

6、微信搜索附近的人怎么设计?

7、写个shared_ptr的实现?(手撕)

8、说一下平时的一些学习习惯?

9、团队沟通能力?

10、遇到的最困难的事情?

11、你有什么优势?有什么缺点?

12、服务器宕机?怎么排查错误?

13、对于OFFER怎么选择?考虑哪些因素?

14、有什么想问的?

3 滴滴打车

3.1 一面

1、自我介绍?

2、项目介绍?

3select A from table where B=1 orderby C,如何构建索引来加速查找过程?

4、数据库事务?

5Linux? ps? grep? 强行杀掉某个进程要怎么做?

6、五层网络模型? 交换机那一层?路由器呢?路由器干嘛的?

7TCP为啥可靠?

8、正则表达式是干嘛的?MD5是干嘛的?MD5可以解密吗?

9、设计模式?工厂模式为什么不直接在类的构造函数里面定义?

10、实现有序二叉树的插入方法?(手撕)

1110亿行32位无符号整数,找出第7亿大的数是多少?只给300M内存?

12、分解质因数?(手撕)

3.2 二面

1、简单问了个人情况。

2const有哪几种用法?常成员函数?mutable

3、重载和重写?

4STL了解吗?

5、智能指针?

6、什么是进程什么是线程?

7、进程通信方式有哪些?

8、怎么保证线程安全?

9、设计一个红包系统?红包的分配在什么环节去分配?金额在发的环节去分配还是在抢的环节去分配?怎么随机分配?需要考虑哪些问题?

10500个数组,每个数组有500个元素,从大到小排序好,找出前500个最大的数?

11、有什么想问的?

12、工作地点?

3.3 三面

1、自我介绍?

2LRU的实现?(手撕)

3、操作系统了解多吗?为什么分用户态和核心态?

4、协程了解吗?

5、进程通信方式?各自什么特点?什么应用场景?

6、估算一个上班区域一天的营销额?

7、你觉得你对未来的职位的兴趣点?

8、意向的工作城市?

9、有什么想问的?

4 网易互娱

4.1 一面:

1、你先做个自我介绍?

2、什么语言用的比较多一点?C++用的不多?为什么要去学C++?

3C/C++python语言的本质区别?

4、简单说一下C++的多态?运行期的多态有什么好处?

5ABC链式继承,问最后一共有多少个虚函数表?

6、构造函数可以是虚函数吗?析构函数可以是虚函数吗?

7C++异常了解吗?发生异常语言层会做些什么样的事?

8、智能指针了解吗?大概说一下?请实现一下shared_ptr(手撕)

9pythonGC机制了解吗?

10STL用的多吗?说一下常用容器?map怎么实现的?

11mallocnew的区别?

12new分配的内存是虚拟内存还是物理内存?

13、进程跟线程的区别?

14、协程了解吗?

15、操作系统的抢占式调度和非抢占式的?

16、假设一个线程sleep睡个十秒,这是怎么样的一个进程调度?

17、有没有了解链接?动态链接中什么是共享?什么不是共享的?动态库中有一些全局变量怎么办?全局变量是一份吗?一份不就互相冲突了吗?

18、网络编程有接触过吗?socket readsocket write?read&write的缓冲区与TCP滑动窗口中的缓冲区是什么关系?

19、有接触过IO多路复用这个概念吗?epoll有几种触发方式?怎样的场景会用怎样的触发方式?

20TCP断开连接是几次挥手?为什么?

21、介于TCPUDP两者之间的一些协议了解吗?

22、写一个环形缓冲区吧(手撕)

23、有什么想问的?

4.2 二面:

1、自我介绍?

2、斐波那契数列第n?分析递归算法复杂度?有没有比O(n)更快的算法?快速幂怎么算?

3、写一个程序,使它编译成功,链接失败?

4、一个类定义很多set(key,value)方法,其中value的类型可能是intdoublestring等等(会动态增加,要求考虑可扩展性),同时提供对应的get(key)方法,要求给出内部实现,不能在类里面直接定义intdoublestring等类成员变量(这里面扩展出了继承、多态、autoC++类型转换等知识点)

5、项目介绍?权限管理?用户登录验证?

6、定义一个类T,使得vector<T>T a[10]这两个定义,一个成功,一个失败。

7、有哪些offer?怎么看这些offer

8、你是哪里人?

9、有什么问题想问的?

5 字节跳动

5.1 一面:

1、自我介绍?

2、研究生做算法?为什么要找开发?

3、项目用了哪些技术?为什么选这些技术?现在让你重新选,你会选什么?

4、数据库索引?B+树?聚簇索引VS非聚簇索引?联合索引?

5、操作系统?进程与线程的区别?

6、虚拟内存机制?

7Linux操作系统有用过吗?TOP指令?buffer内存?free内存?

8LRU页面置换算法(手撕)

9、一个进程的内存空间具体是怎么分的?堆与栈的区别?数据结构里面栈与队列的区别?在操作系统里面的栈为什么要保证它后进先出?

10、课外有学过哪些技术知识?

11、面向对象与面向过程的区别?

12、职业规划?你的优势是什么?

13、你有什么想问的?

6 猿辅导

6.1 一面:

1、自我介绍?

2、计算机网络了解哪一些?

3、设计模式了解吗?

4、编译原理了解吗?

5、面向对象的多态指的是什么?

6、虚函数怎么实现的?

7C++的内存管理?

8、链表第m到第n个反转?

9、一个n位数,现在可以删除其中任意k位,使得剩下的数最小(前导零忽略)

6.2 二面:

1、自我介绍?

2TCP/UDP的区别?

3TCP断开连接的过程说一下?中间分别处于什么状态?

4http的报文结构?http方法有哪些?PUTPOST的区别?

5B+了解吗?说一下原理?

6mysql用过吗?有哪些引擎?

7、死锁的必要条件?

8、银行家算法?

9、乐观锁与悲观锁?

10、实现有符号大数链表加法,靠近头结点位置为高位。

6.3 三面:

1、自我介绍

2、项目介绍

3、科研经历介绍

4、操作系统,mmu解释一下,什么是快表,为什么快?

5、计算机网络,socket编程了解哪些?

6、编译原理懂吗?什么是上下文无关文法?

7、求二叉树中序遍历的后继结点。

7 360

7.1 一面

1、最短路、最小费用路?

2、研究生为什么选择小众的方向,有实际的应用场景吗?

3、项目做的是网页?

4、动态规划有哪些应用场景,这些算法在实际应用中有哪些应用场景?

5TCP面向连接,面向字节流,你怎么理解这句话?

6BB+树的区别,B+树有什么缺点,哪些需要优化的地方?

7、手撕快排?

8、有哪些问题要问我的?

7.2 二面

1、对岗位对应技术的了解?

2socket编程了解哪些?

3TCP全套?

4C++智能指针?

5、动态规划了解吗?

6、有什么能力能胜任这个岗位?

7ACM有什么收获?平时如何训练?队伍怎么分工?分工不均匀怎么办?

8、有什么事情特别有成就感?

9、为什么选择C++?为什么投这个岗位?

10、有什么问题要问的?

8 Shopee

1mysql事务的隔离级别有了解吗,每个级别分别有解决了什问题?

2、乐观锁&悲观锁,乐观锁与悲观锁的实现方式?

3、索引的实现方式有哪些?(B+树索引、位图索引、哈希索引)

4、讲一下B+树的实现原理,为什么要用B+树?

5Hashmap了解吗?红黑树讲一讲,为什么用红黑树?

6、缓存有用过哪一些?radis了解吗?

7、进程与线程的区别?

8、了解协程吗?

9、进程之间的通信方式?

10、线程之间的同步方式?(,信号量)

11、进程调度算法?

12、什么叫死锁?死锁的必要条件?如何处理死锁问题?

13、计算机网络七层结构?每一层主要做什么?httptcp分别属于哪一层?

14http的状态码有哪些?

15getpost的区别?

16httphttps的区别?https的加密方式?

17tcp三次握手?四次挥手?

18、消息队列有用过吗?

19、有做过什么项目?做了什么?

20、有什么想要问我的吗?

9 吉比特

9.1 一面:

1、自我介绍?

2static关键字?

3、指针常量&常量指针?

4、常量函数?

5、函数参数:const int& x VS int x

6、内存泄漏?什么情况容易出现内存泄漏?如何避免内存泄漏?

7、智能指针?shared_ptr引用计数的时期?unique如何保障独占?

8、浅拷贝与深拷贝?

9、右值应用?string什么时候发生右值引用?

10C++多态?虚表?

11、常见的排序算法和时间复杂度?介绍归并排序的思想?介绍堆排序思想?

12、红黑树?

13、哈希冲突的处理方法?

14、进程通信方式?

15、设计模式?单例如何保证线程安全?设计模式里面的面向对象思想?

16、怎么求无向图的连通块?

17、并查集的并的操作和查的操作?(手撕)

18、笔试编程第二题还有印象吗?

19、平时做项目遇到的问题?印象深刻的?

20、课外关注哪些技术方面的内容?

21C++11的新标准有了解哪些?

22、有接触脚本语言吗?

9.2 二面:

1、缺点、优点?

2、期望薪资?

3、目前的offer情况?

4、对公司了解吗?对游戏行业了解吗?

5、找工作一般考虑哪些因素?

6、有比较崇拜的人吗?

7、为什么想做游戏?

8、有什么问题要问的?

10 深信服

1、自我介绍?

2、声明和定义是什么意思?

3、指针函数和函数指针是什么意思?

4strcpy的问题?

5、数组和链表的区别?

6、排序算法有哪些?快排时间复杂度?快排基本原理?

7、用过印象深刻的算法?描述一下背包问题?

8、主要使用的编程语言是什么?

9、野指针了解吗?

10、内存泄漏?

11、有什么问题要问我?

11 网宿科技

1、自我介绍?

2、项目介绍?

3、红黑树?

4、动态规划了解吗?具体讲一下?

5TCP全套?

6HTTP状态码懂哪些?

7STL源码?vector?

8、有没有关注开源社区?是否了解当前热门技术?

9、有什么要问的?

12 贝壳找房

1、简单自我介绍

2、项目介绍,针对项目深挖了两个细节(如何防止彩虹表,定期发送报表给客户,间隔n天时间怎么算的?)

3http状态码(429, 502, 504)

4https(为什么CA认证能保证安全?CA伪装攻击怎么办?)

5、三次握手和四次挥手,为什么四次?三次行不行?

6、数据库引擎(Innodbmysima区别)

7、如何发现慢查询?如何优化慢查询?

8、联合索引?(联合索引ABC,能否查询ABCABACBCABC?注意这里AC是可以的,但只用到A的索引)

9、悲观锁和乐观锁?悲观锁怎么实现?

10、同步、异步、阻塞、非阻塞?

11NIOBIOAIO

12selectepoll?

13MVC三层架构?为什么要用它?

14、扫雷,写一个随机埋n个雷的算法(面试官想考察shuffle算法的原理)

13 亿联

1、自我介绍?

2、项目介绍?用什么语言?

3、哪一个语言用的比较多?研究生用的多吗?

4C++容器?vectorlist的区别?

5vector底层占用内存空间是连续的吗?扩容机制?

6、红黑树?

7、类的大小由哪些因素影响?内存对齐?类成员函数会影响对象大小吗?

8、内存越界?内存溢出?

9linux有用过吗?ps?

10、管道是什么意思?进程间通信的方法有哪些?socket怎么用?本机用socket怎么做进程通信?本机监听哪个IP?

11、网络里面的TCP基于数据流,UDP基于数据报文,怎么理解这句话?为什么要有UDP?不直接用IP?

12C++服务器后台?有详细了解过这个岗位吗?

13、找工作会看地点吗?

14、你有什么想问的吗?(C++三个方向:客户端开发、业务开发、服务器开发)

14 锐捷网络

1、自我介绍

2、项目相关?负责哪一块?用了什么技术?项目难点?

3、科研课题相关?做了什么?用什么编程语言?成果?创新点?为什么想到这么做?

4C语言了解吗?指针了解吗?

5、数据结构怎么样?哈希了解吗?

6、操作系统了解吗?操作系统拿来干什么的?

7、进程与线程的区别?

8、进程切换?

9TCPUDP的区别?

10、网络编程了解吗?

11、两台机子互ping的过程?

12、你有什么想问的?

#百度##腾讯##滴滴##网易互娱##校招##C++工程师##面经#
全部评论
大家只顾收藏,忘记点赞了😁,我来补上
2 回复 分享
发布于 2019-11-04 14:06
1 回复 分享
发布于 2019-11-04 14:44
这个是研究生面试的吗?
1 回复 分享
发布于 2019-11-04 21:00
感觉还是有点难度的,要求还是挺高的
1 回复 分享
发布于 2019-11-28 09:34
LZ最后签哪了
1 回复 分享
发布于 2020-02-29 21:41
楼主好人
点赞 回复 分享
发布于 2019-11-04 19:15
优秀
点赞 回复 分享
发布于 2019-11-05 11:57
哇   
点赞 回复 分享
发布于 2020-02-29 19:43
我发现我大部分都答得上来 但是算法真的很菜 😥
点赞 回复 分享
发布于 2020-03-21 03:10
请问能加个微信么  想问您一下有关项目的问题
点赞 回复 分享
发布于 2020-06-10 23:00
53个人中,任选3个人至少有两个人生日相同的概率。请问楼主这个题怎么做啊,想不出来😥
点赞 回复 分享
发布于 2020-06-15 11:21
m
点赞 回复 分享
发布于 2020-08-03 17:14
打卡
点赞 回复 分享
发布于 2023-05-18 16:53 北京

相关推荐

225 1128 评论
分享
牛客网
牛客企业服务