字节跳动C++开发实习面经
简历投递三天后收到HR电话,约面试时间。
一面没有自我介绍,直接写代码(55min)
1. 实现一个类,该类在一个局部作用域中修改外层作用域的值,当局域作用域结束的时候,恢复外层作用域原来的值。写完之后继续,有些对象拷贝很麻烦,能不能对你上面写的代码改进一下。
2. 链表反转(手撕代码)
3.给定的m * n二维数组只含有0或者1,求包含1的最大正方形面积。
例如:
1 0 1 0 0
1 0 1 1 0
1 0 1 1 1
1 0 1 1 1
上例最大正方形面积为4
4.你有啥想问的?
一面结束后5min二面,无自我介绍(80min)
1.项目相关的问题:线程池你是怎么实现的?流程是怎样的?有没有做过性能测试?最近在看什么书?
2.epoll实现原理?select与epoll的区别?epoll用途?
3.http报文格式?方法有哪些?get/post的区别?
4.TCP/UDP的区别?
5.new/malloc的区别?
6.堆/栈的区别?多线程堆/栈共享问题?
7.动态链接和静态链接的区别?动态库中有一个全局变量,在内存中存在几份?如何实现只存在一份的?如果有一个程序改变该变量的值,会发生什么?
8.从源文件到可执行文件的过程?预处理阶段做了哪些工作?模板实例化发生在哪个阶段?实例化之后存在几份?
9.C++类型转换了解吗?区别?dynamic_cast是如何实现向下类型转换安全的?
11.括号匹配(中间存在其他字符)(手撕)
12. 岛屿题: 在一个地图中,找出一共有多少个岛屿。 我们用一个二维数组表示这个地图,地图中的 1 表示陆地,0 表示水域。一个岛屿是指由上下左右相连的陆地,并且被水域包围的区域。 你可以假设地图的四周都是水域。 (说思路)
二面题目比较多,目前只记得这几个了。大部分都是网络,操作系统,语言方面的基础知识,回答完一个问题,面试官觉得回答的还可以,会继续深究实现原理,二面结束一度认为凉凉了。
二面结束后5天(除周六日),通知三面(35min)
1.自我介绍
2.项目相关的问题
3.下面代码运行结果,报什么错误?为什么?
class A{ public: void f(){}; virtual void f1(){}; }; A* a = nullptr; a->f(); a->f1();
4.用户态和内核态。为什么要有内核态?如何从用户态转到内核态?
5.会汇编语言吗?(问号脸???) 6.字符串分割问题。类似Leetcode 93。
三面的时间比较短,基础知识问的比较少,大概4 5个问题,然后面试官就说了一句:我就不问你基础知识了(问号脸???)
三面结束后3天通知HR面(电话面试8min ???)
常规问题
以后的发展规划,想在哪发展?离老家很远,父母会不会介意?反复问我,以后要在江浙沪发展吗?
前面几面的感受,和前面几个面试官聊了什么?有没有聊来字节之后的定位问题?
实习期间想获得什么?
实习时间?导师是否同意?如果转正,是否愿意留在字节?转正之后是否能继续实习,能实习到多久?
毕业有没有论文要求?
你们开学了吗?目前在**,去上海实习有什么问题吗?然后解释了为什么hz没有我投递的岗位的问题?
最后等通知吧。
面试过程中面试官会做详细记录,二面关于编译和最后一道算法题(解题思路:深度优先遍历/广度优先遍历),我答的并不好,所以三面面试官问了一些关于编译和深度优先遍历/广度优先遍历的题目。
目前只能想起来这么多问题,第一次发帖,有些表述可能有问题,不喜勿喷。攒一波人品。
#字节跳动C实习面经##字节跳动##C++工程师##实习##面经#