聯想筆試題(附簡單答案)

2021-07-02 21:36:03 字數 665 閱讀 5263

(1)設計函式 int atoi(char *s)。

(2)int i=(j=4,k=8,l=16,m=32); printf(「%d」, i); 輸出是多少?

(3)解釋區域性變數、全域性變數和靜態變數的含義。

(4)解釋堆和棧的區別。

解答:(1)

(2)逗號表示式,i=32;

(3)定義在函式裡的就是內部變數,其作用域就是本函式範圍,又被稱為區域性變數。區域性變數被儲存在棧區;定義在函式外的是外部變數,作用域從定義時刻開始到程式執行結束。如果外部變數在程式一開始就被定義,一直作用到程式結束。外部變數又被稱為全域性變數,被儲存在記憶體的全域性資料區里。給變數冠以static,變數就是靜態變數。靜態變數採用靜態儲存方式,在定義時就已分配好記憶體,程式執行過程中不會改變。靜態變數只在本原始檔內有效。

(4)堆(heap)、棧(stack)

堆由程式設計師分配,c語言中用malloc函式,c++中用new函式,堆區在記憶體區,而記憶體區是向高位址位擴充套件的不連續區域。如果程式設計師在程式結束時沒有人工釋放記憶體,os會自動會**記憶體。

棧由編譯器分配,棧是向低位址位擴充套件的連續記憶體區域。先入棧的是待執行的下一條指令,接著是引數(從右往左依次),最後是區域性變數。棧的分配速度較快。

華為C語言筆試題 附答案

華為c語言筆試題 附答案 1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內...

很經典的C 筆試題(附答案)

1.以下三條輸出語句分別輸出什麼?char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 str2 ...

某重工企業筆試題目合集 附答案

由於涉及到機密問題,就不指明是什麼公司了,總之很大的了,看看吧,挺基礎也挺實用的 1 h標頭檔案中的 ifndef define endif 的作用?答 防止該標頭檔案被重複引用。2 define double x x x int i 5 double 5 i 的值為 答 為30 3 設某32位系統...