当前位置: 首页 > 面试经验 >

CPP面经

优质
小牛编辑
85浏览
2023-06-23

CPP面经

暑期实习。面试语言主要是cpp。附带一些go和py。其实入职有一段时间了,但因为过程有点坎坷后面都懒得记面经了。现在端午稍微有点空就整理一下放出来吧QAQ

bg:双非本,有一些竞赛基础但没有acm牌子(太菜了),笔试大概是大部分middle随便做的水平。项目是牛客的webserver + MIT 6.824的前两个lab。

时间线:3月份开始投递。百度一面挂,美团二面挂(好像是终面),一堆笔试ak但是无下文。沉淀一会后5月初开始陆续收到图森未来,柠檬微趣,杭州默安,南京知能,CVTE,格灵深瞳的笔面试。参加了前面三个的面试,最后加入了图森未来,另外两个都过了一面但由于收到offer了所以二面被我拒了(x

百度(因为是第一次面试,非常紧脏,所以问了一些基础的问题就秒挂了。):

  1. golang管道怎么用
  2. golang的goroutue泄露
  3. tcp和udp的区别
  4. tcp三次握手四次挥手
  5. tcp四次挥手第二次和第三次不能合并吗
  6. 手写一个单例模式
  7. 设计模式几大原则
  8. 手撕单例模式(懒汉模式)
  9. 手撕二分查找。

美团(鸡架,无人机团队):

一面:

  1. 多态和继承在什么情况下使用
  2. 除了多态和继承还有什么面向对象方法
  3. 情景题。手机店。不同品牌的不同型号手机有不同的业务逻辑。怎么设计系统
  4. tcp/ip五层模型
  5. dns服务器用的是什么协议。
  6. ping命令 用的是什么协议。在哪一层。
  7. tcp拥塞控制实现。
  8. 模板元编程(简历上写了,但答的不好)
  9. 为什么要用多线程。多进程可以吗(webserver的)
  10. 进程和线程的区别。
  11. 为什么要用线程池
  12. 讲讲智能指针
  13. C++内存分布。什么样的数据在栈区,什么样的在堆区。
  14. C++内存管理(RAII啥的)
  15. C++从源程序到可执行程序的过程
  16. 编译阶段的过程(编译原理,词法分析啥的)。每个过程干啥的
  17. 为什么要用epoll
  18. 怎么debug,怎么看内存泄漏。
  19. 聊天

二面:

  1. epoll实现原理
  2. reactor和proactor的好处和坏处。为什么要用reactor而不用proactor
  3. 能详细讲一下有限状态机怎么解析http报文吗
  4. 小根堆定时器是怎么弄的。如果一次pop一个的话。高并发情况下会不会有问题
  5. 如果有两个服务器,一个服务器坏了,另一个服务器怎么判断并接手坏的服务器的用户数据(共用一个堆
  6. 堆和栈的区别。什么情况下会往堆里放
  7. 一个对象=另一个对象会发生什么(赋值构造函数)
  8. 如果new了之后出了问题直接return。会导致内存泄漏。怎么办(智能指针,raii)
  9. c++11的智能指针有哪些。weak_ptr的使用场景。什么情况下会产生循环引用
  10. 多进程fork后不同进程会共享哪些资源
  11. 多线程里线程的同步方式有哪些

后面的基本没有记录,只记得手撕和一些面试的时候卡住/不确定的问题。(主要是懒了)

图森未来:

一面(coding面):leetcode:694. 不同岛屿的数量。还有一题忘了。八股问题主要是cpp相关。

二面:手撕智能指针。八股问题忘了。

三面:

  1. select怎么用。底层原理
  2. select为什么只能支持1024个。poll和epoll是怎么解决这个问题的。
  3. epoll 底层为什么用红黑树不用hash
  4. py修饰器

柠檬微趣:

  1. size_of是在编译期还是在运行期确定
  2. 函数重载的机制。重载是在编译期还是在运行期确定
  3. hash表数据很大。rehash的代价很高,怎么办
  4. 如果解析http请求的时候,用户一次性没传完数据,(如果头部都没传完,请求报文长度字段都没传完,怎么办)

杭州默安:主要是面了golang。只记得一些。

  1. 数组和切片的区别
  2. GPM调度
  3. sync库用过哪些。
  4. golang的协程。py的协程。
  5. mysql的隔离级别和锁。
  6. k8s,一些其他的sql了解过吗。
 类似资料: