百度腾讯阿里字节作业帮测开,C++开发实习面经
腾讯wxg事业群 测试开发
一面
腾讯的提前批开始得太早了,对于我这种第一次参加互联网公司面试的小白来讲十分紧张。一面是简历面,上来直接撕两道代码。(自己提前准备IDE,共享屏幕)
第一道类似leetcode 224上的简单计算器,只有数字,左右括号,加号,乘号,要求输出表达式结果。(知道用栈,第一次面太紧张没写出来)
第二道是给定二维平面一个多边形所有顶点的值,要求判断一个点是否在多边形内部。(大致写出来了,但是没考虑凹凸多边形)
问了下简历里科研的内容,感觉自己准备不充分,半天给面试官讲不明白,还好小姐姐人很好,面完半个小时就收到下一面通知了。
二面
点赞二面面试官小哥哥,整个过程人特别好,互动得也很开心。
项目相关
手撕冒泡
进程和线程,多进程和多线程使用场景。
知道协程吗(不知道)
手撕代码:给一个字符串A,两个字符串B,C,返回A中所有以B开头,以C结尾的子串。
你的代码如何编写测试用例?
验证了几种特殊的测试用例下代码逻辑的正确性(B和C相同,B是C的子串,A是C的子串等)
大数据下TopK问题
数据库学过吗
Web编程接触过吗
最后问的这些我都表示没接触过(毕竟不是科班出生,知识面广度还是有局限性),小哥哥还主动安慰我说没事,以后接触到就会了。整个过程从刚开始手撕冒泡都写错了一点到后面逐渐放松,整体体验很不错。
三面
部门老大整个过程不苟言笑,没问基础知识,主要挖项目,瑟瑟发抖。反正就是问什么答什么,也没被怼,毕竟他们也不太懂通信项目。
HR面
蚂蚁金服-大安全 测开
笔试
第一次参见正式笔试,对自己处理输入输出和测试用例黑箱性严重不适应,主要是还没有自己准备ide,调试起来太麻烦了,一道优先队列,一道单调栈,两道 0 AC(后来知道有道题理解错题意了,差一点就能A)。最后内推人看着测评做得还行,要求在二面结束后补笔试。
一二面
阿里的面试两个字形容就是突然,有时候在睡觉,有时候在路上走电话就来了。(主要是如果另约时间,有可能一拖就拖几天,这几天随时都要最好准备)。
一二面都在一天完成的,印象中是两个小姐姐,整体体验还可以,问得也不难(遗忘的可能比较多)。
项目相关
本科学习的课程
如果在实验室所有同学里比较,你觉得你能排第几,为什么?
你觉得比你厉害的那个人有哪些优点?
两个栈实现一个队列
C++中虚的机制,具体实现方式
多态
C++中内存分区
线程进程的区别
进程通信的几种方式
三次握手,两次可以吗?为什么?
百度搜索界面如何测试
说一说Ping一个DNS后发生的事情,越细越好
网络层断开过程?(这个我表示没明白,因为连接的建立和断开不是在传输层做的吗)
数据库索引作用
并发和并行的联系和区别
查找算法有哪些?
8个电梯100层楼怎么设计?
给一栋教学楼安灯,如何计划购买的灯的数量?(最后这两道算是生活常识相关)
(三面前补了笔试,顺时针打印数组(leetcode 54),秒了)
三面
印象中好像是一直挖项目,项目几个人负责,你是什么角色,各技术模块细节,所提方案的主要性能指标,项目主要面向的客户(其实是实验室保密项目,内部在用),项目第几期答辩完成了?
四面(交叉面)
挖项目,专利,项目中最难的点在哪,专利主要干了个什么事能通俗地描述一下吗,仿真中性能参数有哪些(虽然不知道他能不能听懂),反正就是挖的特别细,问的问题也算是所有面试官里最独特的了。
HR面
听说阿里HR面还会刷人,有点紧张,HR和我约了个早上八点半的面试,晚上失眠,昏昏沉沉起来面完了,问的问题还算常规(性格+经历+offer选择+职业规划),最后问内推人说已经过了。
已拿意向书,官网显示待跟进offer。
字节跳动 C++客户端开发 产品研发和工程架构部
一开始投的飞书,简历在池子里泡了十多天,最后还给我挂了。
被第二志愿部门捞起来。
一二面
两次面试间隔大概十五分钟,因为是C++开发,面试的内容C++基础知识会多一些,计网操作系统会少很多。
给一个类,对其sizeof(改了七八种情况,涉及到内存对齐,static成员归属问题,虚指针,虚类指针)
STL分哪些?(容器,迭代器,泛型算法)
容器用过哪些?讲讲list和vector区别和使用场景
迭代器分类(输入,输出,前向,双向,随机访问)
智能指针哪几种,讲讲各自的特点(shared,unique,weak)
static关键字,在C和C++里分别的作用。
指针和引用区别
inline函数优缺点
extern C的作用
C++生成可执行文件过程(预编译,编译,汇编,链接),静态动态链接区别
强制类型转换(四种cast)
进程线程分别的同步和通信方式,临界区是怎么实现的?
设计模式知道吗(不知道)
C++编译器是怎么区分重载的
使用过标准库里的锁吗(没有)
一面手撕:判断两个字符串是否互为旋转词(leetcode 796)
二面手撕:输入一个列表的单词,及一个长字符串,判断字符串可否由列表中的单词组成(leetcode 139)
三面
上来写一段代码,问我调用结果(知识点:类的普通成员函数(可以用对应类型的nullptr调用),虚函数调用(不能用nullptr调用,因为没有虚指针),this指针隐含传参),类的普通函数具体是如何调用的,问得比较细,感觉答得不好。
如果malloc 1G的内存,将其512M位置的地方赋值为1,此时实际分配的物理内存会是512M吗?(不会)
手撕代码:给一个字符串(全是数字),将字符串划分为五部分,每个部分数字小于500,给出所有解(类似leetcode 93)
main函数执行前执行哪些代码
TCP和UDP的特点
字节的几次面试感觉是问得最细的(针对C++),也可能是我之前没有面过C++开发岗的原因吧,暂时不适应。最后侥幸通过(估计是手撕代码撕得不错,因为字节几次手撕代码都通过了面试官给的测试用例)
HR面
百度 C++/PHP开发工程师
一面
项目
手撕快排
手撕二叉树的最近公共祖先(leetcode 236)
问了一些C++相关(问得比较基础,印象不深)
聊了30分钟叫我等着,就换面试官了
二面
点赞这个小哥哥,是我所有面试过里面最帅的哈哈,丝毫没有程序员油腻的感觉。聊项目的时候一直很耐心的给我反馈,写代码时候也主动和我交流(最后算是我和他共同完成了代码?)
给我一个类(类似string类,包括无参构造,拷贝构造,赋值运算符,析构),问几种初始化方式分别调用了哪些函数(默认构造or拷贝构造)。
手撕拷贝构造函数
指针和引用区别
map和unordered_map区别
select和epoll知道吗(并不知道)
C++11新特性
线程进程
TCP和UDP的特点
讲讲四次挥手
手撕复制带随机指针的链表(记得刷题看到过,但思路完全不记得了, leetcode 138),最后和面试官交流了下写出来了
三面
综合几家面试来看,基本没有被怼的压力面,腾讯和百度的面试体验很不错,阿里的也可以(因为除了hr面都是电话面试,从和面试官的交互上还是差点意思),字节的面试主要是因为我是边复习边参加 面试,很多细节还没复习到,回答得不算好,没有游刃有余的感觉,最后算是侥幸通过吧。
先更这么多,作业帮(测开)二面+hr已过,有感兴趣的同学再更吧。
#面经##百度##腾讯##阿里巴巴##字节跳动##C++工程师#