春招十面(c++)

Posted e创客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了春招十面(c++)相关的知识,希望对你有一定的参考价值。

深信服 一面(40min)(C++ 研发实习

第一次面试。比较紧张。

自我介绍

项目介绍

知道我们是做什么的吗(回答了安全和云计算,面试我的是安全部门的)

项目遇到最难的问题怎么解决的

使用了什么线程同步机制(互斥锁,读写锁,条件变量)

有没有遇到死锁,怎么解决的

项目答了快 20 min,讲了很多废话哈哈)

数组和链表的区别

#define 宏定义

结构体内存对齐

c++ 命名空间

tcp 和 udp 的区别

tcp 拥塞控制

IP 包多少个字节(这个忘了)

爬楼梯动态规划

状态转移方程是怎么回事

最早什么时候实习

反问:为什么没怎么问 C++(毕竟是 c++ 研发岗位不问 c++ 我还以为想挂我了,说是项目c++ 做的不错然后就没问了)

之前看面筋感觉深信服面试挺难的,但这次我运气好像比较好题目比较简单;中午两点半面的,五点半就收到二面邀请了,效率很高,赞一个;


深信服 二面(40min)(C++ 研发实习)


自我介绍

项目介绍

(10min,废话一堆)

c++ 多态

有没有用过strcpy,memcpy,memomve,区别是什么?

异步日志怎么做的?

异步日志有没有压测过?

项目压测结果怎么样?

局域网内通信流程

路由器和交换机的区别

交换器广播寻找的报文是怎么样的?

(数据链路层这里凉了,没怎么准备,哭,面试官一直安慰我说没事没事,我就问一下;问题也记得不是很清,是真的不太懂)

反问:

你们部门是做什么的,技术栈是什么?

(说是做路由器的,怪不得狂怼数据链路层)

怎么提升我个人的技术水平?

没问算法,一半时间在聊天,最后笑着说和年轻人交流一下还是挺不错的,但是最后给过了。


阿里巴巴国际技术部一面 (C++)(50min)


大学做过什么项目

(之后狂怼项目,问了很多,可能快 30 min,项目一定要了如指掌呀!)

gdb 怎么调式的

怎么检查内存泄漏

valgrind 怎么用的?最后的报表是怎么样的?

怎么看一个进程的资源使用情况?

epoll et 和 lt

进程和线程区别,协程呢

(很多问题掺着项目问了,记不太清)

c++ 11特性

追问了智能指针,右值引用

c++ 多态

两道算法很简单

数组建立一颗二叉树

bfs 一颗二叉树

反问:

1.技术栈是什么

2.需要加强什么技术(让了解深度学习)

问了一下,我是广东人能不能来杭州;

结束


阿里巴巴国际技术部二面 (C++)(55min)


自我介绍;

项目,嵌入式项目,问有没有了解 cpu指令集;(???)

rpc 框架,消息格式,json,protobuf,

http 协议对比一下 json

(这里没 get 到面试的意思,答得很挣扎,导致说我对项目理解不深入。。。)

vector,存储和扩容,销毁

map 底层存储

看这个能不能过编译

 template <typename... TArgs> void Dummy(const TArgs &...args){ }  #define DUMMY(...) Dummy("Hello", ##__VA_ARGS__); int main(){  DUMMY(); }

智力题,赛马问题;

三数之和

反问

结束


阿里巴巴云原生高可用架构 C++ 一面(56min)


c++ 多态

运行一个main函数的过程

从预处理开始讲,到栈帧的处理;

预处理怎么去掉注释的(??)

编译器做了什么事情?

静态链接和动态链接

栈帧的细节是什么,具体保存了什么东西?

(前面答的太尴尬了,自告奋勇说了异常的处理机制;)

每一步都要讲细节,使用什么数据结构,算法,处理方式

(也就是源码层面上回答,直接崩溃,面试官说我讲的太宽泛了,不够细节)

(编译原理确实不太熟悉呀)

STL map 的存储原理,扩容原理

红黑树和B树、234树、avl树 的区别

new 和 malloc的区别,malloc 底层是怎么样的?

具体的操作过程是怎么样的?

(说了 brk 和 mmap,面试官说这只是系统调用,具体逻辑是怎么样的)

有没有看过源码?(哭,谁看了 malloc 源码??)

日志的设计,宕机了怎么处理的?数据丢失掉了怎么办?怎么优化?

智能指针怎么管理内存?

怎么检查内存泄漏,怎么解决?

io 模型的优劣,为什么用 epoll,逐个分析

线程上下文切换原理,切换了什么?

影响线程数量的原因?

为什么用红黑树管理定时器

还有什么其他方式?

分析各个方法管理定时器的优缺点?

能不能想出一个更优方案。

为什么使用 json 做序列化方案?还有其他方案吗?

项目里面最难的地方是什么?

线程数等于核心数就一定最好吗?

觉得自己最大的优点是什么?

最大的技术长处是什么?

反问:

你们部门是做什么的?(容器)

需要学习什么技术提升个人?

什么时候出结果(说不清楚,我只是面试的)

感觉凉了;还有些问题是不记得的;

狂问项目 40 min,我人傻了。

我总感觉面试官可以敏锐地察觉到我对什么比较熟悉,然后不问,或者把我叫停,难顶。。。就是在用 epoll et,读取的时候一定要读到 EAGAIN 才罢休。


腾讯会议 c++ (1个小时10分钟)


自我介绍

一个 cpp 文件运行的过程(编译过程、栈帧处理过程)

类和结构体的区别

怎么用 c 语言去实现面向对象

内存管理,段页式存储

内存页设置大了或者小了会怎么样

进程和线程的区别

中断

进程上下文和线程上下文

分析八大排序算法

osi 7层,每一层的协议

输入一个 url 发生了什么

tcp 三次握手为什么是三次,四次挥手为什么是四次

拥塞控制

quic 协议

https tls 握手

epoll 和 select

redis 分布式的实现

redis 的框架

为什么用 json

protobuf 为什么快

动态和贪心的区别

合并排序链表

有效的括号字符串(差了一点,一个 case 忽略了,哭)

还做过什么项目


腾讯会议 c++ 二面 (1个小时)


现场面试

自我介绍,有点紧张,导致上气不接下气;

用过哪些 stl 容器;

tcp 三次握手,能不能减少一次,能减少的话可以减少哪一次,如果不能为什么?

new 和 malloc 的区别

多进程和多线程的应用场景

为什么使用 json 作为序列化的方式;

双缓冲日志是怎么设计的

挑战杯参赛的项目是怎么样的?

之后在聊天了,讲了很多关于腾讯会议的发展方向的内容。

反问:

腾讯会议团队目前的产品线和技术栈是怎么样的?

腾讯会议目前面临的挑战是什么?

我不懂客户端开发,需要再学习什么技术?


字节跳动 c++客户端 一面(1个小时)


自我介绍

挺多问题都追问了一些细节,但记不太清

操作系统:

进程和线程的区别,进程的内存分配,栈和堆,线程调度,linux 线程调度,cfs 完全公平调度,实时系统,线程同步手段,锁、条件变量 api

计算机网络:

tcp/ip 四层模型的每一层协议,socket 的选项,tcp 流量控制的手段,http 和 https,tls 握手,实现可靠 udp 的方法,ip 协议,mac 帧大小

c++:

多态的实现,new 和 malloc,c++ 11新特性,右值引用,智能指针、引用技术、环状引用的问题和解决;

项目

双缓冲的实现手法,线程安全以及线程同步手法,项目设计模式,框架

算法

合并有序链表

反问


字节跳动 c++客户端 二面(40 min)


自我介绍

项目问题

进程和线程

一个线程在什么时候挂掉会影响整个进程

输入一个 url 之后的过程

数组和链表

一个链表奇数位升序,偶数位降序,将其变为升序链表

反问

二面异常简单,有点奇怪,还有些其他问题记得不太清除了


字节跳动 c++客户端 三面 (58 min)


做题,给定一个 N 叉树,一个目标节点,需要求出遍历到这个目标节点的概率;

自我介绍

给了一段代码,探讨多态的使用和原理

介绍项目,探讨了一些服务逻辑和可以优化的点

udp 的优化使用

设计一个分布式的文件系统(这里文件系统的内容忘的差不多了,答的很挣扎)

反问

这一面主要是交流项目把;最后一次面试,面完轻松下来了;


 

春招找实习也到此结束了;

春招实习一共面试 4 家公司,经历 10 次面试,阿里补笔试把我挂了,哭,没机会享受福报了,其他也都顺利通过了;

面筋对面试的帮助还是挺大的,面试部门的时候掏几篇这个部门面筋来看看,很可能都碰到原题。

面试的公司也不多,拿到 offer 之后整个人都懒下来了,忘记了很多事情,可以看到后面字节的面筋都很简略了,以致险挂字节。

祝大家早日拿到心仪 offer;

以上是关于春招十面(c++)的主要内容,如果未能解决你的问题,请参考以下文章

C++春招面试高频考点汇总

正二十面体

春招备战

OSG正二十面体均分球面

这些 C++ 代码片段有啥作用?

有趣的 C++ 代码片段,有啥解释吗? [复制]