字节跳动-抖音-C++研发 一至三面面经

  • 前情

我在年前投递了一些公司,计划是先易后难,但是由于疫情,他们纷纷推迟了实习生的招聘计划,阴差阳错,反倒是年后投的字节最先给我打电话约面试。总的来说字节的效率很高,体验很不错。

  • 一面 (60 min)

0、自我介绍
1、C++从源文件到可执行文件的过程、目标文件里面是什么?什么结构?链接是什么?静态链接、动态链接是什么,它们具体做了什么?并没有答出来。
2、举例说一些编译期间的错误、链接期间的错误,瞎扯了几个。
3、虚函数的具体实现?结合内存分布。有对象的情况下呢?
4、虚继承是什么?
5、内联函数
6、new/malloc
7、智能指针介绍一下。如果想实现一个shared_ptr类你会怎么做?具体一点就是说需要哪些成员变量、成员函数?懵了。
8、迭代器的具体实现?同样是问会有哪些成员变量、成员函数?以vector<int>为例说说看。懵了x2。
9、lambda表达式的底层实现。懵了x3。
手撕代码
1、两个树节点的公共祖先——有父节点,链表相交,剑指offer 68
2、利用不均匀硬币产生等概率

  • 二面 (60 min)

0、自我介绍
1、简单介绍了一下项目,也没问得很具体,问了项目是不是在一个工程下,就有下一个问题。
2、静态链接和动态链接是什么,它们在写代码上有什么区别,还是没答出来
3、const的用法。如果const成员函数想要改变成员变量怎么办?
4、C++11接触过吗,介绍一下有哪些新特性
5、智能指针,shared_ptr的循环引用问题是什么?
6、STL用过吗?vector的底层,扩容的原理。如果其中放的是指向自定义类对象的指针,扩容时会调用析构函数吗?
7、字符串常量
8、看代码写输出,就是考子类调用构造、析构函数的顺序
手撕代码
1、给你一个数字串,需要输出它们组成的下一个比这个数大的整数,比如输入1234需要输出1243,要是输入1243则要输出1324。面试官提示了一下要找规律,之后才写出来。

  • 三面 (90 min)

是团队负责人面试的,比较严肃。
0、自我介绍
1、项目介绍,很详细地问了是具体实现方案
2、项目当中有网络拓扑图的部分,他就问倘若给一个点的坐标,如何求离他最近的点,我说了暴力方法、扩展半径法,他不满意,我又说了分治法,但是具体怎么实现没有想出来,他就说那我们继续吧
3、静态库和动态库中全局变量初始化有什么不同。又懵逼了,您说您想问链接就问吧,怎么套路这么多啊。。把之前刚看的胡扯了一波。
4、死锁及其解决办法
5、线程同步方式
6、生产者消费者模型,我说用任务队列+锁,他说单线程怎么实现?他提示不要用锁,我说无锁编程吗,于是简单讲了一下,他又问安全性怎么保证?没有答出来。
7、C++11 新特性,右值引用的好处
8、强制类型转换
9、介绍一下智能指针
10、map,unordered_map,哈希冲突的解决方法
11、问了不了解缓存,我说只知道页缓存,他说那是操作系统的。其实他问的就是如何把一些资源从服务器端先放到本地。
12、说一下LRU
13、C++反射,我没有听说过,他解释了一番,最后也没继续问,估计是看我不懂,解释清楚又比较费劲。
14、以后的规划
手撕代码
1、给一段代码进行修改,迭代器失效问题,考虑得不仔细,提示之后又改了半天。
2、实现一个memcpy函数,给了函数原型,视重叠与否分情况即可。

  • HR面 (15 min)

0、自我介绍
1、毕业时间,实习期,现在在哪
2、第一次实习想收获什么?
3、之后的计划
4、部门的情况有了解吗?
5、实习生培养体系,各种培训
6、因为疫情需要线上入职,并告知后续流程

  • 总结

1、可以看到三轮面试的重点几乎都是C++语言基础,略微涉及了一点操作系统和设计模式,计算机网络和数据库则完全没有问到。这可能是由于部门业务的原因,也可能是对实习生的要求问题。
2、一面的懵逼三连问说明需要注意一些C++特性的底层实现。不知道有什么资料涉及这一块。
3、三位面试官对链接等知识点进行了反复提问,但是每次都有新问法。这似乎说明面试应当是有记录的,临时抱佛脚而不去深入理解是不可取的。
4、每次都会在面试最后出算法题,可能会给你提示。
5、面试官的个人性格和心理状态会极大地影响面试过程中的沟通交流。

我在准备面试的过程中得到了牛客上大量总结经验贴的帮助,在此表示感谢~
最近也看到牛客有意在银行证券、快消、汽车、机械等方面进行业务扩展,感到非常欣喜,希望牛客越来越好,各位offer多多~
#字节跳动##实习##C++工程师##面经#
全部评论
抖音cpp是做啥呀,网络操作系统问的这么少
1 回复 分享
发布于 2020-02-26 00:45
麻了,cpp面的也太硬核了
1 回复 分享
发布于 2020-02-26 16:13
字节大佬
点赞 回复 分享
发布于 2020-02-25 21:13
Zhang sir 表示很欣慰
点赞 回复 分享
发布于 2020-02-25 21:14
lz分多久面完的呀
点赞 回复 分享
发布于 2020-02-25 21:37
楼主的hr面还好,我的hr面问题有点尖酸刻薄…
点赞 回复 分享
发布于 2020-02-25 21:52
楼主找的实习岗位是c++后端开发吗?
点赞 回复 分享
发布于 2020-02-25 23:55
抖音cpp主要是干啥呀?
点赞 回复 分享
发布于 2020-02-25 23:57
老哥哪个组
点赞 回复 分享
发布于 2020-02-26 00:49
hr面跟技术面是同一天吗?我三面后没hr面了
点赞 回复 分享
发布于 2020-02-26 18:11
我投实习的时候怎么没看到有c++研发😂
点赞 回复 分享
发布于 2020-02-26 18:44
大佬
点赞 回复 分享
发布于 2020-03-01 00:47
厉害,楼主拿到offer了吗
点赞 回复 分享
发布于 2020-03-01 15:33
我向问一下,二面的第六个问题,会不会调用析构函数是指调用指针所指对象的析构函数还是vector的析构函数?
点赞 回复 分享
发布于 2020-03-04 16:23
请问一般面试完多久会有结果啊
点赞 回复 分享
发布于 2020-03-04 19:46
请问是视频面试吗
点赞 回复 分享
发布于 2020-03-04 23:44
是日常实习?
点赞 回复 分享
发布于 2020-04-03 16:22
日常实习可以转正吗?
点赞 回复 分享
发布于 2020-04-09 16:28

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
贪食滴🐶:你说熟悉扣篮的底层原理,有过隔扣职业球员的实战经验吗
点赞 评论 收藏
分享
评论
24
196
分享
牛客网
牛客企业服务