秋招C++面经与学习资料分享

不知不觉秋招就已经结束,下面的内容可能有点长,中间掺杂着面经、学习资料以及自己的一些小感慨,希望对大家有所帮助。也算是研究生生活的一个阶段总结吧。面试岗位大多数都是C++。我粘上来的链接都是很有用的干货,希望你能花点时间点进去看,并且收藏下来。


注:本科二本,研究生985


offer:科大讯飞、招银网络、海康威视、贝壳、华为、深信服、多益网络

我不是大佬,没拿到大厂,有点菜,只希望对大家有一点点帮助~


我是从去年秋招就开始关注牛客了,当时实验室的师兄师姐在找工作,听着他们讨论,就注册了个账号,开始看各种面经,各种讨论。当然,那时候面经中的很多问题有些名词我都是听都没听说过的,感觉大学像是白学了一样。不过还是坚持刷面经。一直学习的都是CPP,对Java不是很熟悉,因此就准备找cpp开发了。


这里附上一直看的面经帖子吧:

【面经汇总】2018校招面经汇总贴(持续更新)

https://www.nowcoder.com/discuss/53246

【史上最全面经】C++篇

https://www.nowcoder.com/discuss/84005


对于刚准备找工作的学弟学妹可以没事刷一刷,然后看看听过哪些名词,哪些根本就没听过,然后逐渐补充自己的知识架构。找工作跟考研差不多,就是一点点积累,一点点去扩充自己的知识图谱,延展自己的知识树。


这里附上自己觉得非常厉害的两个大佬总结的(其实这上面的我到现在也没有完全掌握,感觉准备的还是不够)。

cpp后台开发核心知识

https://github.com/linw7/Skill-Tree


大大佬总结的:

http://www.forz.site/categories/


上述的两个真的总结的挺多的,总结的也特别好,需要看的时间也比较久,需要循序渐进的积累,虽然内容很多,但是不要慌,慢慢来。慢慢你也可以总结出来自己的知识图谱。


下面也附一个我总结的,可能比不上上述大佬,有些浅,不够全面,但是希望对你们有所帮助吧,想了一下还是放一个链接吧,这样你们看着方便一点,看到的大佬们如果发现有什么错误欢迎指出,有什么想补充的也欢迎贡献~

http://note.youdao.com/noteshare?id=6cc5becb3e547f6d6052a6030f96a460


OK,下面开始上面经,别嫌弃我写的有点啰嗦~


0416    腾讯游戏客户端 一面凉


项目:

1、vs和ps分别指什么        vs  图源装配 光栅化ps  alpha以及blend

2、Vs和ps中间经历了什么      光栅化

3、为什么法线贴图的性能比基于数学公式点的计算

4、怎么提升渲染性能,水的渲染损耗是在vs上还是在ps上,怎么检测

5、渲染瓶颈怎么查,卡顿或者耗时?  ps把渲染像分辨率改成1*1,所有变成一个像素

6、贴图压缩会提高性能,为什么不压缩

7、渲染的检测工具,renderdoc、nsight,性能排序,损耗是在网格还是在shader。

基础知识:

1、vector list map底层数据结构?  访问插入删除各自优缺点、时间复杂度

2、堆内存和栈内存的区别

3、申请10M内存的数组,用堆还是栈,栈内存一般多大,栈内存是什么硬件提供的?

4、Malloc和new的区别

5、CPU和GPU的区别,两者的瓶颈在哪里?

6、Vs、ps中写if else会有什么问题吗?性能上有什么问题

7、Mipmap贴图是什么,它是全load还是按需求去create

8、裁剪用什么,怎么裁剪的。


只怪自己太菜,有些基础知识准备了但是都答的不是很好,但是面试体验非常好,面了半个小时左右,学习了很多,而且是引导型面试风格,不是那种尬问的那种。面试酒店也非常nice,在一个房间里一对一沟通,很安静。(插一句,哈哈,虽然没面到大厂,但是整个秋招武汉一些好的酒店都体验了一波,感觉还不错)


这次面试后,突然发现自己好像并不是很喜欢做游戏,就是不是特别喜欢的感觉,所以后面就准备cpp开发了,不再准备游戏了。


0527    拼多多服务端开发实习 一二技术面三HR面


走完了面试流程,但是最后还是凉了,可能二面答的不是太好,当时面的时候还没发现今年拼多多工资给的那么给力,不然当时一定好好争取去拼夕夕实习了,哈哈哈。

对了,这里插播一个查offer工资的的微信小程序:offershow,上面分享的工资大部分都挺真实的。还有每次面试的时候可以录音录一下自己的面试过程,每次回来可以听一下,一方面是找知识的欠缺,回来及时补;另一方面看面试的节奏,所谓面试的节奏就是和面试官沟通的是否流畅,有时候我们知道某个问题的答案,但是回答的并不是特别好,两个人不在同一个频道。你回来听一下就知道自己在哪里尴尬了。


上面经(一面忘记了,只记录了二面的)

1. 对服务端开发了解吗?

2. 想做后台哪一块?

3. 子类的对象的内存分布?

4. 析构函数为什么一般是虚析构函数

5. struct{ byte a; double b; short c;}占据的总内存是多大?

6. c++ 11  share_ptr和auto_ptr区别

7. 满足什么条件才是关系型数据库事务 (ACID)

8. 隔离性的隔离级别?

9. 用户店铺订单时间戳 四个字段

平时查询:经常查某个用户在某个商家一个月内的下单量,索引该怎么建立?

10. TCP/IP滑动窗口是指什么?

11. 三次握手和四次挥手?

12. 阻塞性IO和非阻塞型IO区别?

13. Linux  select、epoll区别?

14. 进程间通信方式?

15. 死锁产生的条件?

16. 进程和线程的区别?

17. 线程设计单例模式?

18. 介绍桶排序的算法思路和时间复杂度?

19. 统计一个文件中单词个数,并按照词频排序,并输出到另外一个文件中

20. 把文件中所有的hello替换成word? (sed)

21. 文件查看所有包含error那行日志,该如何查找


算法题:

22. 32位整数对应二进制中1的个数?

23. LeetCode最大正方形{0,1}当1聚集在一起的时候组成实心方块,求最大方块的面积?


实习可能找的比较晚了,而且由于实验室问题,就没面试其他的了,而且感觉自己真的还挺菜的,想静下心来好好复习了。

这里建议大家实习期间还是提前准备提前找,多面试,多找经验。如果找到好公司的话,那就很爽了,去实习一波,好的话可以留下来就不用苦逼的秋招了,如果没留下来你实习的内容可以秋招面试时多吹一波,因为我们大部分研究生实验室做的项目是没有什么可聊的点的,都不是很高级,面试官也是知道的,如果项目没得聊,那面试官问基础知识就会问的比较多,万一问到你的痛点就很尴尬;如果没找到好的实习,那也没关系,经历几次面试,你肯定就知道自己哪些方面比较菜了,暑假的时候针对性看书,深入学习即可。

有些人可能会担心实习面试结果会影响秋招,但是我觉得影响不大,但是你的每次面试记录肯定是会有记录的,而且有些公司现任面试官是可以看到以前面试官的记录的。

但是就算有记录也没关系,只要你秋招时很强就行了,因为面试官也是这么秋招来的,他们也理解找实习时是比较菜的。


找完实习就可以踏实看书了,但是今年貌似提前批来的比较早,6月份就有公司开始找提前批了,然后七月中旬基本上很多公司提前批就开始了。我当时在牛客上找了挺多提前批内推码,也投了30家左右公司,最后面试的不是很多,当时曾一度怀疑自己,后来想想自己的确没什么吸引人的地方,而且提前批的确要求不低。


0819多益网络


多益网络只有一面,线上面试,题目不是很难,而且我当时准备了很久,所以有些问题都准备到了。多益网络在广州,发了offer是需要至少实习两个月的,所以最后就放弃了。这里给面试官点个赞,面试体验挺好的,但是发了offer还要实习,而且听说实习还有可能极个别被淘汰,这个就有点不理解了。但是我们不吹不黑,没去工作过,所以我们这里不黑他们。


30分钟(一面)

1.项目

自我介绍

项目介绍

C++语言缺点

编译型和解释型语言区别

C/C++区别

c组合与继承,优缺点;组合为什么优于继承

C可以实现多态吗,用什么实现,怎么实现

c++的多态分为两种:

c++虚函数的作用

引用和指针的区别,引用需要释放内存吗

解释栈溢出、堆溢出,怎么造成的?

说一下什么是线程安全,线程安全的场景。

什么时候用链表,链表特点;对图有了解吗,图常用情况

stl数组自动增长的原理;vector一直插入会导致的问题,迭代器失效

排序算法哪些是稳定的

linux查找目录下txt文件,删除目录下txt文件

查找进程中带某个字符串的进程

手机地图怎么知道哪里拥堵,路况信息;淘宝的推荐咋做的

手机指纹识别的原理

编译和链接的过程,静态链接与动态链接,什么是静态链接库,什么是动态链接库;

王者荣耀、LOLtcp/udp?tcp与udp区别,优缺点

http连接过程;get、post区别

同步和异步的理解

说一下常用设计模式:单例、工厂、观察者、适配器

遇到一个bug,出现概率低,该怎么做?

用过网盘么,应用程序如何提高硬盘利用率的;网盘如何提高服务器硬盘利用率

知道哪些跨平台技术;看过哪些开源项目;了解过哪些新技术;看过哪些书

加密问题(对称非对称),数字签名的作用

说一下函数指针

app消息推送机制怎么实现的。

字符串中所有a替换成b

输入1 2 3,输出排列组合

去除多余空格,输入i    am        a         student输出,i am a student

两个数组如何拼在一起

怎么看待加班?


贝壳C++ 一共三面


面试是体验最好的,没有之一,去北京面试报销来回路费(800上限也是很有钱了),面试的时候有零食可以吃,主要中午居然还有汉堡和可乐,这个真的良心。HR小姐姐也是极好的。不像一些公司面试20分钟,等待4.5个小时,唉,真不懂,为何他们面试都跟个大佬一样,让等那么久,面试问的问题也很没有水平,应该跟贝壳学习学习。


一面技术

自我介绍

完整HTTP请求的过程

浏览器输入网址后详细过程

开放性问题

用冒泡可以吗?堆为什么效率快?数据量大的话

设计模式了解吗?(不太了解,跳过)

搜索引擎为什么可以几毫米找到上百万的文件?为什么比本地的快(算法好,有缓存)、

一个5L,一个3L空杯子,没有刻度,怎么量出4L的水?

台阶问题,斐波那契数列(走2个台阶,3个台阶,n个台阶呢)台阶特别多,如何优化(剪枝的过程)

怎么判断一个IPv4是否合法?


二面技术

C++内存管理

栈溢出 怎么解决这个问题  valgrind

C++内存开发过程会出现什么问题?    内存溢出   指针问题

智能指针原理?    是一个资源管理类 shared_ptr weak_ptr uniqe_ptr(auto_ptr)

多线程用过吗?在用的过程中会出现什么问题

线程死锁用过吗,什么情况下会造成死锁(信号量)

两个线程申请一个资源会造成死锁吗?

怎么预防死锁?怎么解决死锁的问题?

http和https的区别?https实现过程?

https在性能上有损失吗?在时间上会变慢吗?

长链接了解吗?长链接和短链接的区别,在什么情况下用长链接、短链接?(keep-alive)

手撕代码-链表的逆序

最近在学习哪些技术,看哪些书?


然后就是秋招了


美团一面凉


1、你知道分页跟分段的区别吗

2、你知道进程和线程的区别吗(资源占用不同、安全性)

3、进程间通信的方式有哪些

4、你知道死锁的产生条件是什么吗,怎么避免死锁呢

5、计算机网络七层协议,TCP/UDP区别

6、同步和异步的区别

7、并发和并行的区别

8、说一下阻塞和非阻塞区别

9、讲项目和论文

10、写0/1背包问题状态转移方程

11、链表反转

12、KMP匹配,BM算法

13、构建平衡二叉树

14、c++面向对象特性

15、说一下你的缺点优点

16、如果你的同事需要你的帮助,但是你正在处理手头的工作,你该怎么办


4399校招 一面凉


1、项目

2、TCP/UDP区别


对,就是这两个问题,居然只面了15分钟,第二个问题有点意见不能互相说服,还小小的怼起来了,看来我不适合这个公司。


深信服    三面

一面二面技术面,三面HR面


这其实是自己挺想去的公司,云计算加网络安全,如果喜欢安全的真的可以去。面试问题偏C,基本没问c++多态的问题,c的问题问了挺多。


sizeof和strlen

strcpy的缺点以及优化

http连接的全过程,连接后是否断开,不断开有什么后果(就这个没答好)

写一个比较大小的宏

如何在c++中用c的代码

extern "c"的含义是什么 原理是啥 会一直深入问下去 直到答不上来

如何判断两个结构体类型对象是否值相同有哪几种方式?

memcmp知道吗?

字符串的拷贝方式都有什么方法讲一下

内存申请的方式都有哪些,区别

什么是野指针如何避免这种情况

new和malloc区别 如何判断是否申请到内存

结构体字节大小 为什么这么大

数据结构方面怎么样啊?说一说

左移动字符串要求不得不申请新空间

找出前k大 时间复杂度是多少

写代码,一个字符串中是否包含另一个字符串

两个鸡蛋100层楼如何用尽少的测试次数测出鸡蛋会在那一层碎 为什么这样做


二面就大概问了一下项目,比较简短,所以注定最后只拿了白菜价。感觉二面面得久的应该offer工资都还不错。


华为、海康威视

这两个面试我个人都没被问到什么基础知识,华为一面和二面基本就是聊了一下项目,每一面都很短,15-20分钟,没问基础知识。最后拿了白菜价。

海康威视也是项目聊了一下,然后就聊了类似HR问的问题了,同白菜价。


百度    三面凉

面了三面,一面技术,从语言到操作系统到网络到linux都问了,比较基础,但是都很细节,问了一个有趣的问题:为什么马路上的下水道盖子是圆的不是方的。

二面是压力面,我都快被面哭了,但是真的学了很多。就是https过程问的很详细,包括一些安全上的都问了。但是一定要稳住,毕竟压力面。

三面是综合面,主要详细聊了一下项目,我还专门做了个PPT转PDF带了过去,手写了堆排序。


百度是我面试体验最好的公司,一面55,二面70,三面50分钟,而且非常准时,定的几点直接去面试官的房间就可以了,面试后真的很有收获,大佬大佬,最想去的公司,没有之一。

因为有很多百度的面经,这里详细的就不贴出来了。


腾讯    一面凉

太菜了,问到了我的痛点,手写动态规划没写出来,手写设计哈希表成员函数写的不好。

京东    一面挂    让我手写笔试题目,写的不好,后面就聊不动了

阿里    笔试挂

头条    笔试挂

网易互娱    笔试过了,但是最后没通知面试,说是武汉的人太多了,面试官太少,但是后            面也没通知去面试

小米、新浪太晚了就没去面试

迅雷一面过,二面放弃了,但是今年工资迅雷真的是爆炸了,不该放弃的。


希望对大家有所帮助,有问题欢迎骚扰,但是秋招基本结束了,可能有的回复的慢,可以私信我。由于室友都拿了top5的offer,所以想继续春招,一起加油~~~~

欢迎来撩,共同学习共同进步~
#面经##秋招##C++工程师##深信服##拼多多##贝壳找房##多益网络#
全部评论
现在都没公司招C++的,连着两个撞上Java然后和面试官大眼瞪小眼,哎 今年春招都不知道会是什么样 Java真的这么好用吗???
点赞 回复 分享
发布于 2018-10-20 17:27
大佬,如果等春招,秋招拿的offer是不是得放弃啊
点赞 回复 分享
发布于 2018-10-21 09:49
很详细。不错
点赞 回复 分享
发布于 2018-10-20 17:16
一起春招
点赞 回复 分享
发布于 2018-11-27 08:23
看来帖子要沉底了呀
点赞 回复 分享
发布于 2018-10-23 16:09

相关推荐

学院本双非硕有一段ai初创实习经历,找暑期太难了,没有约面的,只有小红书约面了,明天面。金山的offer先接了,然后骑驴找马了。下面是面经,发出来攒人品了。1. 自我介绍,尤其是对你的项目内容,就是你的项目经历,或者是你自己比较擅长的领域,可以展开去聊一聊。2. 对于你这个实习或者是项目里面,你觉得哪一个点或者是你印象比较深的,你可以直接展开聊一下。说了 tab 补全那里的链路重构,面试官说我思路很清晰3.  Google Adsign 接入唯一ID,这个唯一 ID 是自我自己生成的吗?【实习】4. 使用 Redis 加 Lua 分布式限流保障邮件发送治理的这个,工作内容可以展开这个聊一下吗?【实习】5. Redis + lua 有什么优势?6. 我们要实现一个微信抢红包这样的功能,你会去怎么实现这个,这个能力?回答用 redis setnx+延迟队列+mq7. 那你这种业务这个方案的话怎么去实现高并发呢?比如说同时有 100 个人抢这一个红包。我:不太会,就回答了加锁,然后说 Redis 的 decr 和 incr只会扣减一,没法保证红包金额(这里一通乱答)面试官:那有没有一种更优化的方案?因为我们按刚刚的方案来说,比如说一个抢红包的一个请求过来,或者是多个抢红包请求过来,那我们一定是要用锁的形式先抢占,所以我先相当于是我抢占了这个锁,我才能去执行抢红包这个逻辑,对不对?那执行抢红包这个逻辑,这会就涉及到一个问题,如果这个逻辑比较复杂,或者是它里面计算时间比较久,就是计算 IO 比较久的话,所有大家都会去等待,有没有方案让我提前去,或者是有没有方案是来减少我这个计算相关的一个时延?我:不太会,回答了线程池(依旧乱答)面试官说:线程池,它也是因为你线程池,无所谓,你创建新线程,还是你拿新的,还是用线程池里面已有的线程来去做执行,它都会要等待,对吧,比如说同时我有 100 个人请求都来了,那你可能就得有 100 个线程,对吧,大家都得去等待,谁拿到这个锁,谁再去执行抢红包这个操作。我说:不太会,不了解 cpu 计算场景怎么优化,只知道 io 密集场景可以用虚拟线程面试官说:比如说我刚刚提到了一个点,就是能不能把 CPU 计算前置。因为我们现在这个业务场景是什么?就比如说一个红包有 100 个 100 元,我要分 10 份。所以说他其实对于第几个人来他其实不在意,就是说现在有或者是有抢没抢?或者是这个现在当突然有多少人来抢?其实对于红包,发红包这个事情来说,或者抢红包这个概念来说,它其实是可以预先知道每个红包分成多少钱,是不是这个事情?我:用 Redis 先做预热。面试官:对,那你比如说这个方案的话,我们要怎么去做呢?有一些哪些实现的细节,或者哪些数据结构呢?我:提前写死金额存在 Redis 里,但每份红包的金额写死不公平(此处省略一堆)面试官:涉及到公平,那你觉得怎么不公平?写死的不公平的原因是什么?======= 后面都是对这个场景设计的探讨,此处省略跳过========8. 了解微服务吗不了解,面试官就跳过了9. 那我们聊一下本地事务加任务补偿怎么去?当时是怎么去实现的?【项目】10. 发散聊一聊对于 vibe coding 相关的一些理解,或者是对于大语言模型,你最近有哪些参与度?或者是有哪些去研究的点吗?我脑子一热回答了 openclaw11. 你觉得它用 Openclaw 或者是龙虾这个东西和我们直接去使用大语言模型最直接的区别有哪些?答了 Agent 和大模型的区别,补充了 skill、mcp、Function call12. 那你自己又玩龙虾,主要是做了哪些?帮你辅助了哪些功能呢?回答写定时任务每天帮我拉 github 的热榜和股票(抄群友 maple 的)13. 那其实在于你实际工作过程中,这个龙虾其实也没有发挥更多的一个所谓的私人助理这个的作用啊?我说想实现在飞书接入龙虾,然后实现 AI 办公14. 你认为的在使用 AI 来进行办公的主要的一个业务场景有哪些呢?我说开周会,可以用龙虾去发通知啥的15. 公司用 golang 进行开发,除了会 Java 还会啥语言我说学习了 go 的语法 和 gorm,但没学完 grpc16. 那你现在的学习路径是怎么样?通过什么样的方式来去学习的?我说看官方文档还有字节和七牛云的开源文档17. 我看你这边游戏经历里面主要是玩 MOBA 类的,然后你还比较有感兴趣的就是他怎么支持百万人同时在线这个问题,那你自己是怎么去考虑的?我说实习的时候调研过将单机设计成联机,用 supabase 的 real time机制18. 对于传统的像英雄联盟也好,王者荣耀也好,它除了在局内对战,它其实还会有更多的一个游戏养成,还有一个社交的一个游戏场景。那它们两个同时支持百万在线,可能它们的一个实现模式会不太一样,这个里面有去有考虑过它们之间的不同吗?我说没考虑过19. 那考虑到同时在百万同时在线的,除了说你刚刚有一个 real time 来实时通信,那还有一个点就是在于它同样的一个单机肯定是不可能支持这么大的一个的用户量了,它一定涉及到一个集群。你对于分布式部署有过相关的一些经验吗?我说没有,只知道 k8s20. 你可以理解为 K8S 作为一个编排容器,它就是来去做动态缩扩容的,但是我们在考虑的是为什么要分布式部署,或者是它主要能应对哪些应用场景?这个事情有了解过吗?我不会,就答了扛流量,通过负载均衡的轮询或者随机策略去访问实例之类的。然后面试官给我讲解了分布式部署,比如垂直分布和纵向分布....(此处省略一百字)反问阶段:1. 表现面试官说:表达很好,准备很充分,思路很清晰,不用太过担心2. 业务面试官说:组内不做鹅鸭杀,做的是小游戏品类,比如说像最近广告特别多的无尽东日,还有之前比较火的什么冒险大作战、寻道大千这一类的游戏,其实它的游戏载体是在微信或者是抖音这样的一个平台去进行一个游玩。(因为我游戏经历里写了 moba 类游戏,面试官又给我讲了和 moba 类游戏的区别)面试官说:对于我们这边的服务器开发的话,就是说从客户端的所有的链路,比如说 Websocket 的建立, Websocket 的一个连接管理,以及所有的客户端的请求的分发处理,以及对于不同的业务模块,比如说它的排行榜模块,它的商城模块,它的匹配模块,还有一些它的所有的养成模块都需要去我们进行一个开发的和介入。面试官说:我们会以项目组的形式来进行开发,对于我们当前的组内的话,主要是人员是在 10 人左右,程序员是目前是在职有4位程序员, 3 位客户端,一位服务器开发。然后除了刚刚提到的我们要开发游戏项目内的业务功能外,同时还要去考虑到对于我们最终的服务的部署,服务的上线以及最终线上的一个问题的定位和快速的修复,就是我们现对于当前的程序员来说,他不仅仅是不会像早些年一样会区分你是一个开发,你还是一个测试,你还是一个所谓的运维。因为现在的话大部分运维就是给你直接提供云服务。给你提供云服务机器,然后对于服务内如何去搭建,如何部署,都是由我们项目内的开发人员来去完成的,所以说在我们这个游戏的或者是项目组内,如果要参与的话,其实你可以认为是从基础到上线运维到问题修复这块,其实是会有一个全面甚至是一个全方位的一个参与度的。面完两分钟后,hr 说下午谈 offer(史上最快.....)
查看18道真题和解析
点赞 评论 收藏
分享
评论
33
432
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务