實習面試準備
華為線上筆試
三道程式設計題目(100+200+300)
題目一
題目二
題目三
思路與程式碼可以參考這個部落格
面試
1 專案經歷
2 static的作用
3 常用的排序演算法都有哪些,分別在什麼場景下使用?
4 平衡二叉樹,紅黑樹,霍夫曼樹如何構造?
5 用過哪些開源庫?哪些資料結構讓你驚豔?哪些演算法讓你印象深刻?
6 如果有一個程式存在記憶體洩漏,如何找到洩露的地方?
7 如果有一個幾百萬程式碼的程式崩潰了,如何定位問題所在?
8 如果想對linux核心進行修改,怎麼修改?
C++
1 解構函式原理及步驟
2 類物件的記憶體儲存方式
3 STL各種容器的特點以及實現方式/方式 frequency 2
4 C++程序記憶體空間分佈(棧從高到低分配,堆從低到高分配)
5 虛擬函式以及虛擬函式的作用(多型,本質是為了封裝),哪些是編譯時刻確定,哪些是執行時刻確定?
6 makefile編譯
7 gdb除錯
8 如何定位記憶體洩漏 frequency 2
9 動態連結和靜態連結的區別?
10 32位系統一個程序最多多少堆記憶體?
11 寫一個C程式辨別系統是64位或32位?
12 寫一個C程式辨別系統是打斷或小端位元組序?
13 巨集定義和展開?
14 位操作?
15 記憶體分配?
16 哪些困函式屬於高危函式?為什麼?(strcpy等等)
17 一個String類的完整實現必須快速寫出來(賦值構造,operator=是關鍵);
18 指標和引用的區別?
19 多重類構造和析構的順序(對稱)
20 extern c是幹啥的?必須將編譯器的函式名修飾的機制解答的很透析
21 volatile是幹啥的?必須將CPU的暫存器快取機制回答的很透徹
22 static/ const的用法 frequency 2
Linux
1 linux中各種I/O模型原理--select和epoll;阻塞和非阻塞I//O的區別;
2 linux系統檔案機制
3 多程序同步方式
4 使用過
演算法
資料結構
網路程式設計
資料庫
1 sql;
2 伺服器資料庫大規模資料如何設計
3 db各種效能和指標
海量資料程式設計
1 請統計100W個不等長字串中個字串的出現次數:
思路:建立雜湊表,遍歷一遍讓等長的字串對映到同一位置,裡面可以再雜湊連結串列。有2種情況:一種雜湊連結串列中沒出現過就儲存該字串並將對應的計數器設為0,有出現過的就加一。遍歷一遍就完成統計,然後遍歷雜湊表的計數器輸出就可以了。
2 設計資料結構可以快速返回0-10億中哪些數出現了0r沒出現。用125M的bitmap就可以實現(與上一題思路相同)
3 一個每秒百萬級訪問量的網際網路伺服器,每個訪問都有資料計算和I/O操作,如果讓你設計,如何設計?