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瓶酒中有瓶有毒,老鼠喝了毒酒一週會死亡,一週內找出毒酒最少需要幾隻老鼠(說想法即可)

    美團和騰訊的編程題想不起來了。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章