中科大软件学院硕士:实习秋招百多轮面试总结(上)
大家好,我是对白。
今天给大家介绍一位我的朋友,他是中科大软件学院的硕士,在去年秋招中斩获了多个互联网大厂的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. 代码题五:链表是否有环?
二面:
- 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. 怎么防止重入攻击?共识机制?
- 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年后一个算法工程师的门槛有多高?
[
ACL2021 | 对比学习8篇论文一句话总结
[
Google提出用对比学习解决推荐系统长尾问题
最后欢迎大家关注我的微信公众号:对白的算法屋(duibainotes),跟踪NLP、推荐系统和对比学习等机器学习领域前沿,日常还会分享我的创业心得和人生感悟。想进一步交流的同学也可以通过公众号加我的微信,和我一同探讨技术问题,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用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数据库中的各环境参数