1. 首頁
  2. 筆試

微軟亞洲技術中心面試筆試題

微軟亞洲技術中心面試筆試題

1.程序和執行緒的差別。

執行緒是指程序內的一個執行單元,也是程序內的可排程實體.

與程序的區別:

(1)排程:執行緒作為排程和分配的基本單位,程序作為擁有資源的基本單位

(2)併發性:不僅程序之間可以併發執行,同一個程序的多個執行緒之間也可併發執行

(3)擁有資源:程序是擁有資源的一個獨立單位,執行緒不擁有系統資源,但可以訪問隸屬於程序的資源.

(4)系統開銷:在建立或撤消程序時,由於系統都要為之分配和回收資源,導致系統的開銷明顯大於建立或撤消執行緒時的開銷。

2.測試方法

人工測試:個人複查、抽查和會審

機器測試:黑盒測試和白盒測試

2.Heap與stack的差別。

Heap是堆,stack是棧。

Stack的空間由作業系統自動分配/釋放,Heap上的空間手動分配/釋放。

Stack空間有限,Heap是很大的自由儲存區

C中的malloc函式分配的記憶體空間即在堆上,C++中對應的是new運算子。

程式在編譯期對變數和函式分配記憶體都在棧上進行,且程式執行過程中函式呼叫時引數的傳遞也在棧上進行

3.Windows下的'記憶體是如何管理的?

4.介紹.Net和.Net的安全性。

5.客戶端如何訪問.Net元件實現Web Service?

6.C/C++編譯器中虛表是如何完成的?

7.談談COM的執行緒模型。然後討論程序內/外元件的差別。

8.談談IA32下的分頁機制

小頁(4K)兩級分頁模式,大頁(4M)一級

9.給兩個變數,如何找出一個帶環單鏈表中是什麼地方出現環的?

一個遞增一,一個遞增二,他們指向同一個接點時就是環出現的地方

10.在IA32中一共有多少種辦法從使用者態跳到核心態?

透過呼叫門,從ring3到ring0,中斷從ring3到ring0,進入vm86等等

11.如果只想讓程式有一個例項執行,不能執行兩個。像winamp一樣,只能開一個視窗,怎樣實現?

用記憶體對映或全域性原子(互斥變數)、查詢視窗控制代碼..

FindWindow,互斥,寫標誌到檔案或登錄檔,共享記憶體。.

12.如何擷取鍵盤的響應,讓所有的‘a’變成‘b’?

鍵盤鉤子SetWindowsHookEx

13.Apartment在COM中有什麼用?為什麼要引入?

14.儲存過程是什麼?有什麼用?有什麼優點?

我的理解就是一堆sql的集合,可以建立非常複雜的查詢,編譯執行,所以執行一次後,以後再執行速度比單獨執行SQL快很多

15.Template有什麼特點?什麼時候用?