1. 有結構aa,中間有cc域,比較這兩種對cc引用的不同:
pp->cc,
pp,qq各應如何定義。
a:pp是指向結構aa的指標,定義為struct aa *pp;
qq是結構aa型別的變數,定義為 struct aa qq;
2. 比較 union 和 struct 的不同;
a:在分配空間時,union中的各個域的空間是重疊的,struct中的各個域的空間是不重疊的。
3. 如果乙個header標頭檔案要被多個原始檔同時#include, 如何避免對header中變數的重複定義?
a:在某個原始檔中對變數定義,在header中僅對變數進行宣告,即前面加 extern;
4. 編譯和連線有什麼不同?(如外部變數的處理)
a:編譯生成目標檔案,外部的符號參考不被解釋和替換;
連線生成可執行檔案,外部的符號參考要被解釋和替換;
5. 畫出你所知道的一種作業系統的記憶體分配表
至少有四個區:中斷區、系統保留區、系統核心、使用者區(對於intel系統還要有高384k中的顯示區等)
6. 從socket程式設計到底層乙太網物理包要經過哪幾次封裝
socket包、ip包、乙太網包
7. 說出tcp/ip分別對應osi七層中的哪一層
傳輸層,網路層
8. 二維字元陣列與一維字元指標陣列的差異
二維字元陣列:char aabcde"; "a"; "tpp"; "poipqqewr" };
一維字元指標陣列:char *b = ;
前者在定義空間是固定分配的,後者如果在定義時未初始化則在使用時要注意。如果按照以上的初始化a與b,占用的系統空間(不考慮優化):前者為40b的資料空間和乙個32位的位址數;後者為22b的資料空間和四個32位的位址數。
在使用時後者如果賦值就一定要注意長度問題。
9. 作業系統的記憶體分配一般有哪幾種方式,各有什麼優缺點?
定長和變長。
變長:記憶體時比較靈活,但是易產生記憶體碎片。
定長:靈活性差,但分配效率較高,不會產生記憶體碎片。
10. 作業系統的致命錯誤有哪些?
致命錯誤主要包括啟動配置錯、內部資源耗盡和各種其它型別的不可恢復性錯誤。
C語言常見面試試題
1.1,2,7,28,126請問28和126中間那個數是什麼?為什麼?第一題的答案應該是4 3 1 63 規律是n 3 1 當n為偶數0,2,4 n 3 1 當n為奇數1,3,5 答案 63 2.用兩個棧實現乙個佇列的功能?要求給出演算法和思路!設2個棧為a,b,一開始均為空.入隊 將新元素push...
C語言常見面試試題
華為1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性...
C語言常見面試試題
1 下面的測試題中,認為所有必須的標頭檔案都已經正確的包含了 2 資料型別 char乙個位元組1byte int兩個位元組2byte 16位系統,認為整型是2個位元組 longint四個位元組4byte float四個位元組4byet double八個位元組8byte longdouble十個位元組...