字节暑期实习一面 C++ 后端面经

05-12 这一周的面试。
字节暑期实习一面 C++ 后端,1 小时 40 分钟。有两三个聊天风格的问题。手撕代码做得一般。
发面经攒人品

自我介绍
面试官问 CTF 比赛是什么,我介绍比赛内容,说了一个 CTF 签到题。
实验室研究方向

项目和八股(40 分钟多)

项目是一个重写 muduo 库,一个功能不多的 web server。面试官没有问 web server。我想写个协程库了。在做聊天项目,没做完。

1. 介绍 muduo 网络库
2. 为什么要有 muduo 库?它有什么价值?进一步引导,线上为什么要用 muduo 库,为什么不用其它方式,比如多线程?
   (答完这里我掉线一次)
3. 对 epoll 原理的理解
4. epoll 相关的内核数据结构
5. linux 上的进程,线程,协程(答了 linux 的 task_struct 记录一个进程的信息,线程也是一个 task struct,它们共享内存地址空间,等等)
6. 操作系统调度的最小单位是什么?
7. 一个进程的地址空间是怎么样的?
8. 一个进程是怎么跑起来的?比如,在终端输入 top 命令,发生了什么?
9. fork 系统调用有几个返回值?追问父进程中 fork 的返回值
10. 一个进程把内存用光了会发生什么事?
11. 你在 linux 上用什么软件?怎么使用,用到什么功能?追问 qemu 怎么拉起一个虚拟机。问,是自己折腾的吗?
    - docker 的原理?追问,只用 namespace 就可以了吗?
    - 为什么用 podman
12. 在浏览器中输入一个网址,到网页展示出来,这个过程发生了什么?
13. dns 查询过程
14. 网络包到网卡之后,是怎么到用户进程的?
15. 进程阻塞在 read 系统调用,有数据时怎么唤醒?你有看过代码吗?

写代码题(40 分钟)

在飞书里面的编辑器,像是一个 vscode,有代码自动补全。

- 代码一:求有 n 个字母的集合的所有子集。比如,{a, b, c} 的所有子集有 8 个。(讲思路,实现代码,10 分钟多)
- 代码二:三数之和(25 分钟多,一开始不记得双指针的解法,只好自己拿一个 map,一个 set,来保证唯一性。写完讲思路,问有没有其它方法,把双指针方法凑出来了)

反问
部门工作内容
有几轮面试
部门技术栈
面试官问是第几次面试,有其它 offer 吗,能实习几个月

#面试问题记录##字节一面##牛客AI配图神器#
全部评论

相关推荐

一面:面试官1:lamda表达式的值捕获和引用捕获的区别C++的四种强制类型转换explicit关键字C++智能指针RAII实习实习遇到过什么困难吗std::async的policy是使用的哪一种system call的过程函数调用的过程手撕:同分异构树的判断面试官2:英文自我介绍lamda表达式的值捕获和引用捕获的区别mutable关键字在Linux中如何查看中断中断处理的过程中断共享伙伴系统了解吗Linux如何进行内存管理如何查看内存泄漏如何优化C++代码对图像和视频的处理了解吗手撕:岛屿问题二面:(一周后)面试官1:对未来的规划面向对象和面向过程的区别C++多态C++的四种类型转换C++11的智能指针,最常用的是哪种怎么避免两个类的循环引用问题C++中 struct 和 class 有什么区别深拷贝和浅拷贝的区别什么时候用友元线程的同步和互斥线程同步要怎么实现可重入代码怎么理解设计模式了解吗给一段代码,对代码进行纠错和优化面试官2:对未来的规划你的最大的优点和缺点是什么读取二维数组为什么行优先比列优先好你对项目完成的评判指标是什么如果做嵌入式TCP功能,你的评判指标是什么有三个用户同时找你,而你只能做一个你会怎么做为什么各个项目的方向跨度大为什么颜色是用RGB编码不用其他颜色英语怎么样英文自我介绍英文:为什么选择英伟达实习手撕:n!的结尾有多少个连续的0三面:(一周后)第一段实习做了什么第二段实习做了什么实习中遇到了什么困难吗你认为面试难度怎样你面试中遇到的最难的问题是什么面试中有coding吗会vim吗vim中如何定位到上次打开的地方如何查看项目依赖哪些库英语:介绍一下webserver项目PV操作是什么项目是你独立完成还是团队合作有没有团队合作的项目offer:四天后
点赞 评论 收藏
分享
评论
2
14
分享

创作者周榜

更多
牛客网
牛客企业服务