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

大家好,我是对白。

今天给大家介绍一位我的朋友,他是中科大软件学院的硕士,在去年秋招中斩获了多个互联网大厂的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. 怎么防止重入攻击?共识机制?

  1. 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/推荐系统/多模态/内推求职等交流群!想要进交流群学习的同学,可以直接扫下方二维码进群。

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

图片

图片

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

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

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

获取最新对比学习

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

往期精彩回顾

[

图片

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

](http://mp.weixin.qq.com/s?__biz=Mzg3NzY2ODIzOA==&mid=2247512470&idx=1&sn=6268fdefab256d11f7ca53a7b421e365&chksm=cf1d8377f86a0a616b8243a25415616e5f2d50eec6aecc117d968527422843e0361588aeada1&scene=21#wechat_redirect)

[

图片

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

](http://mp.weixin.qq.com/s?__biz=Mzg3NzY2ODIzOA==&mid=2247512441&idx=1&sn=298cc0d653d59f27d3f68e166c174f9b&chksm=cf1d8398f86a0a8ef30d86afeb694b1b5c19e5ae4f50af63fecd1e7e11b4e35a5976c1108c9b&scene=21#wechat_redirect)

[

图片

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

](http://mp.weixin.qq.com/s?__biz=Mzg3NzY2ODIzOA==&mid=2247512388&idx=1&sn=cba24383ddd1e4b04e12430a3328bbcc&chksm=cf1d83a5f86a0ab37283c25d007dd475f4a9c5a28fe8c1b951b7fcac191480376a6baa99409e&scene=21#wechat_redirect)

最后欢迎大家关注我的微信公众号:对白的算法屋(duibainotes),跟踪NLP、推荐系统和对比学习等机器学习领域前沿,日常还会分享我的创业心得和人生感悟。想进一步交流的同学也可以通过公众号加我的微信,和我一同探讨技术问题,谢谢!

posted @   对白的算法屋  阅读(413)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2018-03-13 hiveserver2连接报错: User: root is not allowed to impersonate anonymous (state=08S01,code=0)
2018-03-13 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
2018-03-13 允许Ubuntu系统下Mysql数据库远程连接
2018-03-13 详解如何使用Docker Hub官方的MySQL镜像生成容器
2018-03-13 Docker的Mysql数据库:把数据存储在本地目录
2018-03-13 Docker搭建Mysql容器
2018-03-13 Docker中查看Mysql数据库中的各环境参数
点击右上角即可分享
微信分享提示