字节暑期实习一面 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配图神器#
全部评论
佬我项目准备的也是muduo库,不过我是学的代码随想录星球里现成的muduo网络库项目,这种会被面试官嫌弃吗
点赞 回复 分享
发布于 今天 00:13 浙江
大佬,字节的c++岗位需求多吗,具体是做什么业务的呢
点赞 回复 分享
发布于 05-29 12:53 黑龙江
mark收藏
点赞 回复 分享
发布于 05-23 00:47 上海

相关推荐

一面:面试官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:四天后
点赞 评论 收藏
分享
05-25 23:45
已编辑
门头沟学院 C++
05-19 这一周的面试。二面 40 分钟。发面经攒人品 许愿后面顺利简历项目一个是重写 muduo 网络库,一个是简单的 web server。一开始面试官问了一些学习原因,目标,兴趣方面的问题。1. 简单介绍自己(我的自我介绍太长了,需要改进。面试官在 1 分 30 礼貌打断开始提问了)2. 你自学这些项目时,是怎么样的想法?为什么要学?想达到什么效果?   开源的框架已经有了 django,为什么你还要做呢?你看过开源框架的代码吗?3. 怎么样算是这个事情达成了呢?你是用什么标准来衡量自己的呀?4. 你自己对这些感兴趣吗?就是这个项目,自己做的事情5. muduo 网络库本来是什么语言?最后效果怎么样?比原生的要好吗?(回答说没有,再详细说明做 muduo 网络库的原因,从 webserver 中的事件驱动编程说的)6. 你有什么收获?(主要学习了网络编程,多线程编程,IO 多路复用。拓展提到 asio 库,redis 中的 IO 多路复用。)7. 为什么硕士转了方向?你转到计算机之后,一些基本的课程,是自己去补的吗?8. 编译原理了解吗?词法分析和语法分析用到哪些数据结构和方法,了解吗?怎么把表达式和函数分析出来?9. 一个进程在操作系统上跑起来之后,它的内存分布大概有哪些?(答了代码段,数据段,堆,栈)还有吗?10. 堆和栈,哪些东西在堆上,哪些在栈上?    - 局部变量都在栈上吗?如果很大呢,声明一个一百万的数组呢?11. 怎么避免爆栈问题?怎么知道会不会爆栈?写代码有什么建议,比如,超过多大就需要用动态内存分配大数组?12. 听过读写锁吗,怎么实现?(10 分钟左右,可能算场景题了吧。)    - 读者怎么请求锁,释放锁?写者呢?    - 后来按照 acquire read,release read 这样的 api 来分别说明。代码题:数组中除自身以外的数字的乘积反问对实习生的期待。
查看14道真题和解析 面试问题记录
点赞 评论 收藏
分享
评论
4
36
分享

创作者周榜

更多
牛客网
牛客企业服务