C語言常見面試試題

2021-12-23 15:13:17 字數 1088 閱讀 4843

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十個位元組...