標籤:des style http color java 使用 os io
基礎篇:作業系統、電腦網路、設計模式
一:作業系統
1. 進程的有哪幾種狀態,狀態轉換圖,及導致轉換的事件。
2. 進程與線程的區別。
3. 進程通訊的幾種方式。
4. 線程同步幾種方式。(一定要會寫生產者、消費者問題,完全消化理解)
5. 線程的實現方式. (也就是使用者線程與核心線程的區別)
6. 使用者態和核心態的區別。
7. 使用者棧和核心棧的區別。
8. 記憶體池、進程池、線程池。(c++程式員必須掌握)
9. 死結的概念,導致死結的原因.
10. 導致死結的四個必要條件。
11. 處理死結的四個方式。
12. 預防死結的方法、避免死結的方法。
13. 進程調度演算法。(周轉時間 = 程式結束時間 -- 開始服務時間、帶權周轉時間= 周轉時間 / 要求服務時間)
14. Windows記憶體管理的方式(塊式、頁式、段式、段頁式).
15. 記憶體連續分配方式採用的幾種演算法及各自優劣。
16. 動態連結及靜態連結.
17. 基本分頁、請求分頁儲存管理方式。
18. 基本分段、請求分段儲存管理方式。
19. 分段分頁方式的比較各自優缺點。
20. 幾種頁面置換演算法,會算所需換頁數。(LRU用程式如何??)
21. 虛擬記憶體的定義及實現方式。
22. 作業系統的四個特性。
23. DMA。
24. Spooling。
25. 外存分配的幾種方式,及各種優劣。
二:電腦網路
1. 電路交換與封包交換的區別?優劣對比。
2. OSI有哪幾層,會畫出來,知道主要幾層的各自作用。
3. TCP/IP有哪幾層,會畫出來,知道所有層數的作用,會列舉各層主要的協議名稱。
4. 硬體(MAC)地址的概念及作用。
5. ARP協議的用途 及演算法、在哪一層上會使用arp ?
6. CRC冗餘校正演算法,反碼和檢驗演算法。
7. 如何?透明傳輸。
8. 知道各個層使用的是哪個資料交換裝置。(交換器、路由器、網關)
9. 路由表的內容。
10. 分組轉寄演算法。
11. IP報文的格式,格式的各個欄位的含義要理解。
12.MTU的概念,啥叫路徑MTU? MTU發現機制,TraceRoute(瞭解)。
13.RIP協議的概念及演算法。
14.ICMP協議的主要功能。
15.組播和廣播的概念,IGMP的用途。(迴路位址、廣播位址)
16.Ping協議的實現原理,ping 命令格式。
17. 子網劃分的概念,子網路遮罩。
18. IP地址的分類,如何劃分的,及會計算各類地址支援的主機數。
19.DNS的概念,用途,DNS查詢的實現演算法。
20. TCP與UDP的概念,相互的區別及優劣。
21.UDP報文的格式,欄位的意義。
22. TCP 報文的格式,欄位的意義。
23.TCP通過哪些措施,保證傳輸可靠?
24. 三向交握,四次斷開過程。
25. TIME_WAIT狀態的概念及意義。
26.滑動視窗協議 與停止等待協議的區別。
27. TCP的流量控制和擁塞控制實現原理(會畫擁塞控制的典型圖)。
28.TCP的快速重傳與快速恢複演算法。
29.TFTP 與 FTP的區別。
30.阻塞方式和非阻塞方式,阻塞connect與非阻塞connect。(比較難,有興趣可以瞭解)
31. HTTP基本格式。(java程式員必須掌握)
三:設計模式
1. 各種常用模式的用途,使用方法(類圖)。
2. 單例模式的雙重檢查實現。
3. MVC模式
提高篇:WIN32、MFC與Linux
一: WIN32
1. Win32應用程式的基本類型.
2. 建立win32視窗程序的幾個步驟,及使用到的函數。
3. nmake 與 makefile。
4. 有哪些字元集? Win32對於各種字元集如何進行相容及轉換? (wchar_t、TCHAR、TEXT() )。
5. 怎麼建立一個子視窗?在哪進行設定?
6. 視窗類別的分類,如何建立一個應用程式全域視窗類別。
7. Win32視窗程序運行機制與控制台程式的運行機制有何區別?
8. Getmessage函數的作用,與Peekmessage函數的區別。
9. 發送WM_QUIT訊息使程式終止的內部過程。
11. TranslateMessage及 DispatchMessage的作用。
12. SendMessage與PostMessage的區別。
13. Win32訊息機制擷取訊息的過程(先查看什麼訊息?再查看什麼訊息?)
14. 知道有哪幾類主要的訊息。(WM_CREATE, WM_DESTROY, WM_SIZE, WM_SYSCOMMAND, WM_COMMAND, WM_PAINT, 滑鼠訊息, 鍵盤訊息)。
15. 定時器如何使用。
16. 使用者自訂訊息如何定義。
17. 建立菜單、設定菜單的函數,在哪處理功能表命令的訊息。
18. 加速鍵如何使用?
19. GDI繪圖對象,使用的步驟,及函數。
20. 使用位元影像的步驟及用到的主要函數。
21. 可用於文字繪製的API函數。
22. 有強制回應對話方塊與無強制回應對話方塊的區別,建立步驟。收到的建立訊息是什嗎?
23. 子控制項和父視窗通過什麼進行通訊? 父視窗在哪裡處理子視窗發送的訊息?
24. 有哪些常見的子控制項?(靜態框、編輯框、按鈕、listbox、comboBox、捲軸)25. 什麼樣的控制項支援自繪製?
26. 動態庫與靜態庫的區別。
27. Win32裡面怎樣用靜態庫? C++程式在引用c的靜態庫時,需要注意什嗎?
28. Win32裡面動態庫有哪幾種匯出方式,有哪幾種匯入方式?(注意c++的匯出方式)
29. Win32裡面檔案開啟和關閉的API。
30. Windows地址空間的劃分。
31. Windows 記憶體使用量的幾種方式及相應的函數(虛擬記憶體、堆記憶體、棧記憶體)。
32. Malloc內部調用A函數,A函數調用B函數。A和B分別是什嗎?
33. 記憶體對應檔的作用。主要函數。
34. 建立進程和開啟進程用什麼函數? 有什麼區別?
35. 建立線程用什麼函數?
36. Waitforsingleobject與Waitformultiobjects的區別。Waitforsingleobject的第二個參數為0表示什麼意思?37. 關閉線程和關閉進程的函數分別是什嗎?
38. 線程局部儲存(TLS)的意義,如何指定一個變數的TLS屬性。
39. Win32線程同步提供的方式,及主要函數為什嗎?
40. 提供的同步措施中哪些是核心對象? 試比較互斥量和臨界區。
二:MFC
1. MFC包含哪幾類程式? 其中MFC應用程式又包含哪幾類?
2. MFC的中的大多數類都繼承自哪個類?
3. MFC主要要用到哪幾個類?及其各個類的作用。
4. MFC中有哪6類核心機制?Cobject中封裝了哪些機制?
5. 在哪個類的什麼函數中進行MFC程式初始化? 相當於main功能的函數。
6. MFC應用程式的啟動機制的實現。(幾個步驟及相關函數)
7. 視窗的建立及視窗處理函數機制的實現。(幾個步驟及相關用到函數)
8. 訊息映射機制的原理及實現。宏。(尋找訊息處理函數的幾個步驟及其函數)
9. MFC的訊息分類。自註冊訊息用什麼函數進行註冊?訊息映射宏是什嗎?
10. MFC菜單、工具列、狀態列所用的類是什嗎?
11. 怎麼定義一個視圖視窗?
12. 劃分視窗使用什麼類? 劃分視窗有哪兩類,有什麼區別?
13. 運行時類資訊 機制的宏,及原理。CRuntimeClass的內容,isKindOf實現方法。
14. 動態建立 機制的宏,及實現。與運行時類資訊在內容添加上的區別?
15. 訊息的派發會經過哪幾個類?一般在哪個類裡進行處理?SetActiveView的作用。
16. 單文檔、多文件範本類是什嗎? 儲存模板類用什麼函數?建立模板用什麼函數?
17. 單文檔視圖的建立過程及所用到的相關函數。
18. MFC繪圖有哪幾類DC?各自的類名,及區別。
19. MFC有哪幾類繪圖對象?各自的類名。
20. MFC有哪幾類資料集合類?CMAP的底層實現?
21. MFC的檔案類是什嗎?檔案尋找類是什嗎?
22. 序列化機制 的宏,怎麼使用? 執行>>和<<時進行的內部操作及其相應函數。
23. MFC的對話方塊的種類,各自怎麼使用?及相關函數。
24. 定義對話方塊資料交換的步驟,及使用方法,實現原理。
25. 通用對話方塊有哪些,試舉例。
26. MFC常用的通用控制項有哪些?舉出類名。
27. MFC的動態庫有哪幾種類型?擴充庫一般用來做什嗎?
28. MFC的線程有哪幾類? 相互有什麼區別?各自的建立方法是什嗎?
29. VC環境下可以使用哪幾類socket? 其中MFC的socket類 有哪幾種,各自區別?類名是什嗎?用什麼函數初始化MFC的socket庫。
三:Linux基本命令
1. 絕對路徑用什麼符號表示?目前的目錄、上層目錄用什麼表示?主目錄用什麼表示? 切換目錄用什麼命令?
2. 怎麼查看當前進程?怎麼執行退出?怎麼查看當前路徑?
3. 怎麼清屏?怎麼退出當前命令?怎麼執行睡眠?怎麼查看目前使用者id?查看指定協助用什麼命令?
4. Ls 命令執行什麼功能? 可以帶哪些參數,有什麼區別?
5. 建立軟連結(捷徑),以及永久連結的命令。
6. 目錄建立用什麼命令?建立檔案用什麼命令?複製檔案用什麼命令?
7. 檔案許可權修改用什麼命令?格式是怎麼樣的?
8. 查看檔案內容有哪些命令可以使用?
9. 隨意寫檔案命令?怎麼向螢幕輸出帶空格的字串,比如”hello world”?
10. 終端是哪個檔案夾下的哪個檔案?黑洞檔案是哪個檔案夾下的哪個命令?
11. 移動檔案用哪個命令?改名用哪個命令?
12. 複製檔案用哪個命令?如果需要連同檔案夾一塊複製呢?如何需要有提示功能呢?
13. 刪除檔案用哪個命令?如果需要連目錄及目錄下檔案一塊刪除呢?刪除空檔案夾用什麼命令?
14. Linux下命令有哪幾種可使用的萬用字元?分別代表什麼含義?
15. 用什麼命令對一個檔案的內容進行統計?(行號、單詞數、位元組數)
16. Grep命令有什麼用? 如何忽略大小寫? 如何尋找不含該串的行?
17. Linux中進程有哪幾種狀態?在ps顯示出來的資訊中,分別用什麼符號表示的?
18. 怎麼使一個命令在後台運行?
19. 利用ps怎麼顯示所有的進程? 怎麼利用ps查看指定進程的資訊?
20. 哪個命令專門用來查看背景工作?
21. 把背景工作調到前台執行使用什麼命令?把停下的背景工作在後台執行起來用什麼命令?
22. 終止進程用什麼命令? 帶什麼參數?
23. 怎麼查看系統支援的所有訊號?
24. 搜尋檔案用什麼命令? 格式是怎麼樣的?
25. 查看當前誰在使用該主機用什麼命令? 尋找自己所在的終端資訊用什麼命令?
26. 使用什麼命令查看用過的命令列表?
27. 使用什麼命令查看磁碟使用空間? 空閑空間呢?
28. 使用什麼命令查看網路是否連通?
29. 使用什麼命令查看ip地址及介面資訊?
30. 查看各類環境變數用什麼命令?
31. 通過什麼命令指定命令提示字元?
32. 尋找命令的可執行檔是去哪尋找的? 怎麼對其進行設定及添加?
33. 通過什麼命令尋找執行命令?34. 怎麼對命令進行取別名?
四:Linux編程
1. 列舉Linux記憶體管理相關的幾個函數,各自有什麼功能?
2. GCC只編譯的選項是什嗎?只進行預先處理的選項是什嗎?在命令列定義宏的選項是什嗎?
3. Linux靜態庫的使用,怎麼建立一個靜態庫? 怎麼使用一個靜態庫?靜態庫檔案的尾碼名是什嗎?靜態庫的命名規範。
4. nm 工具的作用,ldd工具的作用。
5. Linux動態庫的使用,怎麼建立一個動態庫? 動態庫檔案的尾碼名是什嗎?怎麼使用一個動態庫?動態庫的命名規範? 系統預設的動態庫的尋找路徑?動態庫顯示串連所使用的系統庫是什嗎?
6. Linux下make 與makefile。用什麼參數指定makefile檔案? 什麼是預設的makefile檔案。
7. 在哪個檔案夾下存有進程運行時的所有資訊?
8. 每個程式預設開啟哪三個檔案裝置?
9. 操作檔案描述符的讀寫函數是什嗎?開啟檔案描述符以及關閉檔案描述符的函數?
10. Fcntl函數主要的幾個作用。
11. 建立進程的幾個函數,及各自區別。
12. 父進程先結束,子進程會變為? 子進程先結束,子進程會變為?
13. 怎麼使父進程回收子進程? 相關的幾個函數。
14. 子進程在建立時與父進程的記憶體資源的複製問題。
15. 中斷訊號、終止訊號、定時器訊號的宏是什嗎?
16. 在程式中註冊訊號和發送訊號用什麼函數?
17. 訊號的可靠與不可靠的含義。哪些訊號是可靠的?哪些訊號是不可靠的?
18. 訊號屏蔽用什麼函數? SigSuspend的作用? Sigpending的作用?
19. 訊號處理函數處理訊號時是否會被訊號中斷?
20. 最新版本的訊號發送與處理函數?與老版本的發送與資料函數有什麼區別?
21. Linux下進程有哪些通訊方式(IPC)?
22. TCP伺服器編程模型。
23. UDP伺服器編程模型。
24. TCP編程特徵,由於每次不定長資料到達,則一般使用什麼選項?
25. Selected模型是什嗎? 相比而言多進程實現方式有什麼區別?Selected、epoll模型、poll模型的區別。
26. 常用的socket選項有哪些?利用哪個函數來設定socket選項?
27. 怎麼發送和設定帶外(OOB)資料?
28. Linux 下多線程的庫是什嗎? 利用哪個函數建立線程?利用哪個函數強制結束線程?主線程等待子線程結束時使用的函數?
29. 線程怎樣在被迫退出時能做一些善後處理?以及怎麼用linux特有的方式處理?
演算法篇:演算法與資料結構
一:演算法
1. 演算法的幾個特徵是什麼。
2. 演算法複雜性的定義。大O、θ、、小o分別表示的含義。
3. 遞迴演算法的定義、遞迴演算法的兩要素。
4. 分治演算法的思想,經典的分治演算法(全排列、二分搜尋、歸併排序、快速排序、線性時間選擇、最接近點對問題)。
5. 動態規划算法解題架構,動態規划算法的兩個要素是什嗎?備忘錄方法是什嗎?
6. 經典的動態規劃問題(矩陣連乘問題、最長公用子序列問題、0-1背包問題)。
7. 貪心演算法的思想,貪心演算法的兩個要素。
8. 經典的貪心問題(活動安排問題、背包問題、裝載問題、哈夫曼編碼、單源最短路徑、最小產生樹問題)。9. 回溯法的思想,回溯法中有哪兩種典型的模型。
10. 經典的回溯演算法(n後問題、0-1背包問題、旅行售貨商問題)。
11. 分支限界法思想,有哪兩種分支限界法。
12. 經典的分支限界演算法(0-1背包問題、旅行售貨商問題)。
二:資料結構
1. 資料結構的定義。
2. 棧的兩個應用:括弧匹配和運算式的計算。是怎麼應用的?運算式計算用的是哪種表達方式?有什麼好處?
3. 字串匹配演算法:樸素的匹配演算法、KMP演算法。
4. 二叉樹前序、中序、後序遞迴遍曆演算法。二叉樹前序非遞迴遍曆演算法。
5. 堆,建堆演算法,堆的插入和刪除演算法,堆排序。
6. 雜湊。雜湊函數的有哪些種?餘數的取法? 處理衝突的方法? 閉散列方法有哪些?
7. 二叉搜尋樹的搜尋、插入、刪除。時間複雜度。
8. 二叉平衡樹的插入結點的原理,有哪幾種旋轉方式?分別適用於哪種情況。分析二叉平衡樹的時間複雜度。
9. 紅/黑樹狀結構的定義,紅/黑樹狀結構的效能分析和與二叉平衡樹的比較。
10. 圖有哪些儲存表示。
11. 鏈表插入排序、鏈表歸併排序。
12. 常見的有哪幾種排序演算法,試比較其時間複雜度,以及是否穩定,及各自使用的情形。
13. 常用分配排序有哪幾種? 基數排序的定義,分類及原理。
14. 外部排序的過程。
15. B樹、B+樹、Trie的概念及用途,添加刪除結點的原理。
轉載:http://www.itmian4.com/forum.php?mod=viewthread&tid=3614