面試官簡單問了下工作地點的問題後,就直入主題了,沒問專案,全是程式設計基礎和演算法,感覺問題都是隨機的,從乙個問題根據你的回答深入到下乙個問題。
1. static 使用與作用
2. inline -》中斷
3. 程序與儲存
4. 棧的兩種指標,(哎,才知道原來有個ebp是幀指標啊)
5. 殭屍程序的理解
6. awk,sed一些東西
7. 兩個集合,求交集,並集
8. 100億個qq號碼,可能有重複,去重,考慮時間複雜性和空間複雜性
9. a-z求所有子集
補充,tcp與udp區別,系統呼叫與庫區別。
1)tcp三次握手的過程,accept發生在三次握手哪個階段?
2)tcp流, udp的資料報,之間有什麼區別,為什麼tcp要叫做資料流?
3)const的含義及實現機制,比如:const int i,是怎麼做到i只可讀的?
4) valitale的含義。
5)offsetof(s, m)的巨集定義,s是結構型別,m是s的成員,求m在s中的偏移量。
6)100億個數,求最大的1萬個數,並說出演算法的時間複雜度。
7)設計乙個洗牌的演算法,並說出演算法的時間複雜度。
9)流量控制與擁塞控制的區別,節點計算機怎樣感知網路擁塞了?
1)三次握手之後
第一次握手:客戶端傳送syn包(syn=j)到伺服器。
第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個ask包(ask=k)。
第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1)。
三次握手完成後,客戶端和伺服器就建立了tcp連線。這時可以呼叫accept函式獲得此連線。
2)tcp是資料流,udp是資料報,流無邊界,資料報有邊界.tcp是先進先出的,並且可靠.
3)編譯器相關,優化可能讓其直接轉為一常量代入.(編譯期間完成,可以用常數直接替換)
5)#define offsetof(s, m) () /*gcc*/
#define offsetof(s, m) ((size_t)&(((s*)0)->m))
6)建乙個堆,先把最開始的1萬個數放進去。以後每進乙個,都把最小的趕出來。(考慮儲存空間的限制)
7)產生2*54+rand()%2次交換,所有序列已經很接近平均分布(只要rand()滿足均分),並且比較快。否則會是複雜度比較高的演算法。我統計過。
9)擁塞控制是把整體看成乙個處理物件的,流量控制是對單個的。感知的手段應該不少,比如在tcp協議裡,tcp報文的重傳本身就可以作為擁塞的依據。依據這樣的原理,應該可以設計出很多手段。(流量控制:控制連線的兩端傳送資料不要太快;
擁塞控制:控制連線所經過的路由器別超負荷;
感知擁塞應該是受到了icmp抑制報文)
第8個問題就是在議協層來說,比如當緩衝區資料達到一定數量socket就可讀了,除此之外還有對方把鏈結關閉了也可讀。
騰訊後台開發面試經驗
今年秋招找完工作有乙個段時間了,今天晚上比較閒,就稍微總結一下2016年這個秋招的面試經歷。面試流程 總共3面,第一面是技術面,第二面也是技術面,第三面是hr面 面試題目 這個網上比較多,隨便搜搜面試的時候都能碰到很多,我也記不清了 面試準備 主要準備的知識包括,c c tcp ip http 作業...
騰訊後台開發面試總結
linux和os netstat tcpdump ipcs ipcrm 如果這四個命令沒聽說過或者不能熟練使用,基本上可以回家,通過的概率較小 這四個命令的熟練掌握程度基本上能體現面試者實際開發和除錯程式的經驗 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網...
騰訊後台開發面試題
三面是總監面,本人不幸被拒了,這次面試沒有問 專案相關的問題,專案的問題是放在二面問的。三面給人的 感覺要求很嚴,有些問題看似基礎,但問得很細,稍有閃失就被pass,絕不能有模稜兩可那種回答,以下是面試題 1 tcp三次握手的過程,accept發生在三次握手哪個階段?2 tcp流,udp的資料報,之...