2019秋招面经(计算机相关专业)

先说说自身情况, 双非本科应届生,科班,19年八月尾放弃考研准备秋招,持续了九月十月两个月。

有一些不厉害的程序设计相关的奖项,无项目开发经验,学科成绩应该在年级前50%吧。

投了一些国内目前还算比较好的互联网公司, 岗位都是c++后台开发相关, 面试机会基本上都是参加笔试获得的。

最后拿到了华为通用软件开发部和百度自动驾驶技术部的offer。

准备面试的同学一定要多投一点公司(大佬除外,中意哪个公司投哪个就好了。。。),暂时手里没有offer也不用太慌好好准备面试就行了,我也是十一月才接到的offer。

把去年秋招被面试官问过的问题回忆了一下,可能会遗漏了一些,给大家参考,希望有帮助。

另外给找工作的同学推荐一下牛客网,个人感觉是一个很好的平台,有很多面经和公司招聘信息。

计算机网络:
    1、子网掩码、主机号、网络号、子网一些相关的知识和运算。
    2、三次握手四次挥手详细过程以及每个状态,TIME-WAIT状态的意义,如果某次握手或者挥手的信息丢失会发生什么,为什么               不是四次握手,为什么不是三次挥手。
    3、TCP和UDP的区别
    4、http的链接过程,https的链接过程,http和https有什么区别。
    5、输入一个url按下回车会经过哪些过程
    6、详细说一下DNS解析过程,ARP协议的作用
    7、网络的七层协议,五层协议
    8、客户端发出的请求到服务端接收到请求,每层协议对数据包做了什么(就是一个封装数据包和解析数据包的过程)
    9、各种状态码的含义
    10、TCP如何保证传输的准确性,拥塞控制
    11、网络编程相关(基本没被问过)

操作系统:
    1、线程和进程的区别
    2、孤儿进程,僵尸进程
    3、进程间通信方式(管道,消息队列,共享内存,信号量)//弄懂原理即可
    4、线程的各种锁(互斥锁,自旋锁,读写锁,信号量)//需要知道详细的原理,能用代码实现最好
    5、c++的内存结构
    6、死锁的四个条件,如何预防死锁,如何解决死锁
    7、为什么要有虚拟内存
    7、进程有哪几种状态
    8、IO多路复用,select、poll、epoll
    9、linux的各种命令(随缘吧,问的我没有一个会的)
    10、linux内核相关

数据库:
    1、索引,联合索引,什么时候应该建立索引,建索引的原则
    2、为什么索引要用b+树(建议了解b树,b+树的原理)
    3、基本的增删查改语句
    4、复杂的查询语句,多表的联合查询
    5、ACID四大特性
    6、可以了解一下redis

c++:
    1、c++11的特性(智能指针、泛型编程等)
    2、static的作用
    3、虚函数的原理,为什么需要虚函数
    4、指针和引用的区别
    5、malloc和new的区别
    6、析构函数为什么设计成虚函数
    7、多态的实现方式

设计模式:
    1、里氏代换原则
    2、依赖倒转原则
    3、观察者模式

算法&&数据结构:
    1、vector和数组有什么区别
    2、链表的数组有什么区别
    3、hash冲突的解决办法,hash表如何扩容,hash的时间复杂度(如何计算来的)
    4、vector如何扩容
    5、队列和栈的区别,分别在那些场景中会用到
    6、手写归并排序,快速排序(递归和非递归),堆排序
    7、红黑树的原理,和avl树的区别
    8、map,set,unorder_map底层实现
    9、二叉树的各种遍历(递归和非递归)
    
编程题:
    头条:
        1、一堆数中只有一个数字出现了奇数次,其他的都是出现偶数次,找到出现奇数次的数。
        2、复杂链表的复制(剑指offer原题)
        3、设计一个LRU算法,要求操作时间复杂度都是O(1)
        4、链表的插入排序,空间复杂度O(1)
        5、链表的奇数项是升序,偶数项是降序,将整个链表变成升序
        6、一个不规则硬币,正面个反面出现的概率不等,现在两个人需要用这个硬币决策出谁先吃饭,设计一个公平的方案
    深信服:
        1、有一个很大的文件里面都是url,如何判断一个url是否在这个文件中出现过(说想法即可)
        2、一个字符串中单词被一些'#'分隔开,设计一个函数返回分离出的单词数组(用纯c写)
        3、有1,2,3,4,5元的纸币,数量不限,凑够一个n元的钱有多少种方式
    华为:
        1、求两个集合的交集
        2、包含+-*/()的计算器
        3、求字符串中的最长回问子串
        4、求一个数组中每个数后面第一个比它大的数
    快手:
        1、大数加法
        2、大数乘法
        3、一个数列1,2,2,3,3,3,4...(n个n),输入一个k,求前k个数的和(要求时间复杂度O(log(k));
        4、输入一个n,求n最少被几个完全平方数组成(输出那些数)
    百度:
        1、A表示1,B表示2...Z表示26,给一个数字,用字母表示,比如27=AA
        2、两个字符串,吧A串变成B串需要的最少步数,可以删除一个字符,增加一个字符,改变一个字符
        3、一个c++文本,里面有很多注释,删掉所有的注释部分。
        4、二维平面上有2*n个点,没有三点共线,判断是否有一条直线能将这些点分成两部分,每边n个点(说想法即可)
        5、1000瓶酒中有瓶有毒,老鼠喝了毒酒一周会死亡,一周内找出毒酒最少需要几只老鼠(说想法即可)

    美团和腾讯的编程题想不起来了。。。

发布了76 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37171272/article/details/104444692