中科大软件学院硕士:实习秋招百多轮面试总结(上)

大家好,我是对白。

今天给大家介绍一位我的朋友,他是中科大软件学院的硕士,在去年秋招中斩获了多个互联网大厂的offer,后来他将自己从实习到秋招参加的一百多轮面试进行了总结,希望对即将找工作的大家有所帮助,以下为正文。

本人为中科大软件学院硕士,众所周知,中科大的软件学院提供了大量的外出实习的机会,所以在研一研二的时间内,有幸积累了丰富的面试经验,最后收获了一些还不错的offer,今天就把本人经历拿出来和大家分享一下吧~

阶段一:2020年春--日常实习

1. 阿里巴巴

一面:

1. 进程与线程,线程怎么共享数据的?

2. 指令流水线(顺序与乱序);

3. C++11新特性,智能指针,左值与右值;

4. 网络模型OSI、TCP/IP,ARP协议?

5. 排序算法的比较;

6. 代码题:二叉树的遍历方式;

7. 内存中的堆和栈?

8. 项目,代码调优(循环展开,goto禁用,行优先访存,循环内定义外移)

二面:

1. 内核同步:原子操作、自旋锁、读写锁、信号量(计数信号量、二值信号量)、屏障(barrier)分别的实现原理与应用机制;

2. 操作系统相关的项目经验有吗?平时写过什么代码?

三面:

1. 介绍一下区块链系统的工作原理,实践时候的难点(默克尔树)?

2 .对称加密与非对称加密,http与https的区别?

3. Https加密怎么实现的?

4 .C++中面向对象的三大特点(封装、继承、多态),多态的实现方式?

5. Go与C++的区别,Go怎么实现内存回收的?

6. Malloc与new的区别,数据库中第一范式与第二范式;

结果:

挂了

2. 英伟达开发

一面:

1. 项目的目的;

2. 指针操作:指针越界的危害,野指针的危害?

3. 为什么指针越界在编译的时候不会报错,在运行的时候会报段错误?

4. 操作系统怎么判断的?

5. C++的特点,面向对象的优点,举例说明?

6. 函数调用的特点,如果一个指针赋值为函数,那么这个指针获取的是函数的值还是返回值?

7. 代码题:二叉树的层序遍历;

8. char * f(){     return "Hello world"; } void main(){     char * p = f();     p[0] = 'h'; }是否合法?

结果:

挂了

3. 腾讯后台开发

一面:

1. 聊了项目,数据库里面group by和order的执行顺序;

2. 网络中信息传递的顺序,同网段、不同网段;

3. 代码题:手撕二分查找;

二面:

1. C++ inline函数的作用;

2. 函数传参入栈的顺序;

3. 项目经历(个人在项目中的角色与遇到的困难);

4. 死锁与死循环,如何判断是死锁还是死循环;

5. 代码题:两个相交链表的交点;

三面:

1. 做一个新的编程语言的意义?

3. 线程与进程的区别,线程同步(自旋锁、读写锁、信号量(二值信号量、计数信号量)、原子操作、barrier等等);

4. 软件开发应该具有的特性(低耦合高内聚),敏捷开发?

5. 代码题一:n个节点的二叉树的最大最小深度;

6. 代码题二:平衡二叉树的删除操作的时间复杂度;

7. 代码题三:动态规划(爬楼梯);

结果:

通过

4. 百度贴吧

一面:

1. C语言动态内存分配的几种方式与比较(malloc,calloc,realloc);

2. malloc的特点与底层实现,malloc与new的区别;

3. TCP与UDP的比较,进程通信的方式,进程与线程的比较;

4. 为什么网络层已经有了差错控制,传输层还要再来一遍?

5. 快排与堆排的应用场景,归并排序的空间复杂度;

6. 代码题一:判断回文串;

7. 代码题二:数组中只出现一次的数字(hash、排序、异或);

8. 代码题三:数组中的两数相加之和(暴力法、二分法)以及时间复杂度;

9. 代码题四:链表中倒数第k个元素;

10. 代码题五:链表是否有环?

二面:

1. C++多态怎么实现的?

2. 虚表存放的位置;虚表的大小?

3. 四种类型转换的区别,class与struct的区别;

4. 数据库:主键与外键、数据库的锁(读写锁、乐观悲观锁);

5. 操作系统:进程与线程、同步I/O,异步I/O;

6. 内核态与进程态,系统调用时操作系统发生的事情;

7. 网络:画图--TCP三次握手、四次挥手,四次挥手中的wait-time出现在哪里,如何避免wait-time造成的服务端空等?

8. 代码题一:链表逆置(两种方法:指针改变方向,头插法);

9. 代码题二:一个数组中找出min和max的方法(排序(nlogn)、遍历(n)、堆排序的重建堆(logn?))

结果:

挂了

5. SmartX

一面:

1. 代码题一:剑指offer中二维数组寻值,两种方法(暴力搜索、从右上角逐步逼近);

2. 堆排序的思想,时间复杂度、怎么建堆?如果是二叉树不是数组怎么建堆?3. 快排的时间复杂度?

4. 数据库中删除数据但保留表结构用什么?

5. TCP为什么四次挥手?

6. ARP是哪一层的协议?

7. Linux命令:一个文件有多少行?

8. 查看内存和cpu,排序算法的稳定性是什么?

结果:

挂了

6. 美团

笔试:

1、代码题一:两个数组比较最大三个数字之和;

2、代码题二:删除一个数字之后的最大连续上升子序列;

3、代码题三:背包问题;

4、代码题四:无向图;

一面:

1. 介绍一下项目;

2. http与https的差别,公私钥加密解密的过程?

3. 数据库里面的三个范式,索引是什么?;

4. Linux用过什么命令?(free、df、ping、netstat等等),top命令干嘛的?

5. 数据库里面的“脏读”与“幻读”;

6. 锁机制有哪些?线程安全是什么?

7. TCP三次握手的原理,为什么二次握手之后要有第三次?

8. 让你设计一个登录系统?密码在数据库里面怎么存(MD5加密?)

9. 怎么判断用户超时了需要重新登录?(访问的时间戳判断),

10. 代码题一:生产者消费者伪代码(如果只有一个生产者、消费者,需要加锁吗?(要判断生产者和消费者的操作是否为原子性的));

11. 代码题二:链表有环;

12. 代码题三:二进制转换为十进制;

结果:

挂了

7. 快手

一面:

1. 代码题一:去除字符串里面的空格(不能使用string,空间复杂度为O(1));2. 如何实现C++里面的string?

3. 读取字符串有哪些方式?

4. C++函数为什么只有一个返回值,怎么返回的?

5. 函数参数保存在哪里?怎么入栈?有没有办法返回多个返回值?

6. float型如何判断是否为0,0.0和0的区别?整型和浮点型比特存放的区别(IEEE754);

7. int a = 10, !!a = ?;

8. A、B间有TCP连接,如果B拔网线了,会怎么样?四次挥手的过程?为什么要四次挥手;怎么判断连接超时?

9. AWK是啥,程序运行很慢怎么排错?

10. Mysql中索引怎么实现的?有什么用?

结果:

挂了

8. 网易互娱

一面:

1. 聊了聊项目;

2. C++的多态如何实现的?虚函数的作用?析构函数可以是虚函数嘛?虚析构函数的作用(可以避免内存泄漏),举个例子?

3. 虚函数表存在哪里?一个类一个还是一个对象一个?

4. 编译器会构造几个构造函数?

5. STL里面:vector、set、map是用什么数据结构实现的?

6. Push_back的底层实现,什么时候会resize?

7. Move语义了解过吗?哈希表避免冲突的方式?

8. 举例说明一下链表法?从cpp程序到exe程序都需要经历那些步骤?

9. TCP与UDP的区别?讲一下拥塞控制?讲一下进程与线程的区别?讲一下多路复用;

10. 代码题一:求数组中前K大的数字(大顶堆);

11. 代码题二:最大的正方形(暴力、动规)

结果:

通过

9. DELL

一面:

1. 为什么要设计一种基于实时系统的编程语言?

2. 什么是面向对象?什么是多态,介绍一下常见的多态(重载、继承、虚函数);

3. STL用过什么?(vector、queue、stack);

4. 介绍一下queue和stack常用方法;

5. 如何实现一个最小栈?(辅助栈);C++中堆和栈的区别?

6. 常见的排序算法有哪些?介绍一下堆排和快排,两者适用的环境?

7. Linux系统中进程与线程的区别?线程间如何通信?

8. 什么是死锁?

9. Http中get与post的区别,设计模式会吗?

10. cookie是什么?

11. 你实习的优势是什么?(学习能力ok、实习时间长)

结果:

通过

10. 华为操作系统(哥德尔实验室)

一面:

1. 你对车载os有何想法?如何保证os的实时性?说一下race condition;

2. 了解无锁编程嘛?了解物联网平台吗?

3. 说一个你比较熟悉的内核模块(进程调度);

4. 对于实时进程来说,FIFO与RR调度哪个优先级最高?

5. 说一下TCP/IP模型,每层都有哪些协议?每种协议都是干嘛的?(ARP,RIP,OSPF,TCP、UDP,HTTP,DNS);

6.  代码题一:十进制转换成十六进制,用补码表示;

7. 代码题二:用随机数函数random(),求圆周率;

8. 代码题三:二分法求log2n;

二面:

1. 车载os需要哪些特性?和你做的项目有何关系?

2. 为什么实时系统要选择C语言?

3. 区块链在无人驾驶系统中可以有应用吗?

4. 操作系统熟嘛?说一个了解比较多的(我说了内核同步);

5. 原子操作会对cache的命中率造成损失吗?自旋锁保证了什么特性?

6. 研究生写过多少代码?以后怎么规划职业发展的?

7. 看过什么书?有什么感悟?平时会怎么学习?有没有写过博客?

8. 反问环节:华为的实习生培养机制?支持长期实习吗?

结果:

通过

11. 携程云计算

一面:

1. 介绍一下PCA算法,区块链的核心是什么?

2. C/C++与java的区别,C++中面向对象的特性,并举例说明;

3. 虚函数与纯虚函数?

4. 代码题一:不许使用“==”和“if”,统计一个数组中“7”出现的次数(哈希表或者双指针);

5. 二分查找;

结果:

挂了

12. 字节跳动

一面:

1. 比特币中的挖矿是指什么?

2. 怎么防止重入攻击?共识机制?

3. C++:C++11的新特性(智能指针、vector);

4. move用过吗?动态库与静态库的差别、内存对齐及其原因;

5. 如果一块较大的数据放入内存应该怎么办?(虚存/分块);

6. 代码题一:大于N的最小非重复数;

二面:

1. 聊一聊项目;

2. IP网络报文格式?TTL含义?Https与http差别?

3. 三种数据库范式是啥,传递依赖有什么不好?(答了一个数据冗余,还有一个不会)

4. 死锁怎么形成的?代码优化的方法?

5. 代码题一:已知前序中序求二叉树;数组的zigzag(a0 <= a1,a1 >= a1,a2 <= a3 .....)

结果:

挂了 

技术交流群邀请函

已建立CV/NLP/推荐系统/多模态/内推求职等交流群!想要进交流群学习的同学,可以直接扫下方二维码进群。

加的时候备注一下:昵称+学校/公司。群里聚集了很多学术界和工业界大佬,欢迎一起交流算法心得,日常还可以唠嗑~

10345f7e05354078e56110a6eda52ceb.png

b22c1d66e2af475bf20bbb0c48ed7c73.png

后台回复关键词【人工智能】

领取整理最全面的人工智能学习礼包

后台回复关键词【对比学习】

获取最新对比学习

在各大顶会上的论文合集!

往期精彩回顾

5fe03dc38bbe3642074e6335ff17adf3.png

2021年后一个算法工程师的门槛有多高?


f2db1d9ab283d2bf6616c2ffa46eaa07.png

ACL2021 | 对比学习8篇论文一句话总结


3798687fe51f9f352132b86a7c6ef19d.png

Google提出用对比学习解决推荐系统长尾问题

6ca4248c70161211b627c5ab613d751e.png

你好,我是对白,清华计算机硕士毕业,现大厂算法工程师,拿过8家大厂算法岗SSP offer(含特殊计划),薪资40+W-80+W不等。

高中荣获全国数学和化学竞赛二等奖。

本科独立创业五年,两家公司创始人,拿过三百多万元融资(已到账),项目入选南京321高层次创业人才引进计划。创业做过无人机、机器人和互联网教育,保研清华后退居股东。

我每周至少更新三篇原创,分享人工智能前沿算法、创业心得和人生感悟。我正在努力实现人生中的第二个小目标,上方关注后可以加我微信交流

期待你的关注,我们一起悄悄拔尖,惊艳所有~

32c7798b396df5c232acacf26028e873.gif

您的“点赞/在看/分享”是我坚持的最大动力!

坚持不易,卖萌打滚求鼓励 (ฅ>ω<*ฅ)

分享

收藏

点赞

在看

c13e025f91f5d3310ff8d9dc28d4e703.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值