国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式招聘 > 嵌入式面試題 > 經(jīng)典企業(yè)面試題整理(C語言),讓你不再發(fā)愁

經(jīng)典企業(yè)面試題整理(C語言),讓你不再發(fā)愁 時間:2018-08-06      來源:未知

1. C語言有多少關(guān)鍵字?

32個,注意sizeof是關(guān)鍵字,不是函數(shù)。

2. C程序的一般結(jié)構(gòu)那 些?

順序,分支,循環(huán)

3. 簡單列舉幾種常用的循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)。

循環(huán):For,while do,if goto(慎用)。分支:if else, switch case(注意default 的使用,和break 的添加)。

4. while 和dowhile 有何區(qū)別?

前者先判斷再執(zhí)行,后者先執(zhí)行再判斷;后者比前者多執(zhí)行一次。

5. continue 和 break 有何需別?

前者結(jié)束本次循環(huán)繼續(xù)下次循環(huán),后者直接推出循環(huán)。

6. register 有何作用?

聲明一個變量常駐寄存器,以達(dá)到提高程序運(yùn)行效率的目的,在嵌入式開發(fā)中尤其常用,但它是一個建議性的聲明,編譯器會根據(jù)程序情況決定是否申請成功。

7. static 有何作用?

兩方面:1)限定存儲域;2)限定作用域。

8. volatile關(guān)鍵字有什么用途?

聲明為一個異變的變量,一般的變量會暫存在處理器的緩存區(qū)中,當(dāng)內(nèi)存中變量發(fā)生改變時處理器可能無法及時更新其變量的值導(dǎo)致災(zāi)難,在嵌入式開發(fā)中尤其重要,也可達(dá)到防止編譯器優(yōu)化的目的。

9. 指針函數(shù)和函數(shù)指針有和區(qū)別?

概念不同,前者是一個函數(shù)返回值為指針類型;后者為一個指針,指向一個函數(shù)入口地址。

10. 簡述0,'0',"0",'\0'的區(qū)別。

分別為數(shù)值0,字符0(ascii碼數(shù)值為48),字符串0(占兩個字節(jié),有‘\0’作為結(jié)束符),字符串結(jié)束標(biāo)志(其數(shù)值等于0是絕對的0,但意義不同)

11. 使用gets時應(yīng)注意哪些事項(xiàng)?

防止越界,gets不檢查目的地址的空間大小。

12. 簡述堆和棧的區(qū)別:

前者為程序動態(tài)分配,創(chuàng)建和銷毀都需要手動完成(使用完一定要銷毀,防止內(nèi)存泄露);后者為系統(tǒng)自動分配,在函數(shù)返回時自動銷毀(所以不能在函數(shù)中返回變量)。

13. 函數(shù)傳參有哪些方法?各有何特色?

值傳遞和地址傳遞,前者在傳遞時函數(shù)形參接受實(shí)參的拷貝,所以原形參不會被改變(但是大數(shù)據(jù)的拷貝會降低效率);后者傳遞變量的地址,不需拷貝,但是會改變參數(shù)的值。

14. 全局變量和局部變量有何區(qū)別?

前者在靜態(tài)區(qū),作用域是整個程序;后者在棧區(qū),作用域僅限于函數(shù)內(nèi)部。

15. 局部變量能否和全局變量重名?

可以,局部變量會屏蔽全局變量。

16. 靜態(tài)全局變量和普通全局變量有何區(qū)別?

存儲域方面:都相同,都在靜態(tài)區(qū);作用域方面:不同,前者是本文件,后者是全局可見。

17. 靜態(tài)局部變量和普通局部變量有何區(qū)別?

存儲域:相同,都在靜態(tài)去;作用域:相同,都在函數(shù)內(nèi)部;

但是聲明周期不同,前者聲明周期為整個程序的聲明周期知道程序推出自動消亡;后者聲明周期為一次函數(shù)調(diào)用,函數(shù)返回即銷毀。

18.地址對齊方式有哪幾種?

字節(jié)對齊,半字對齊,字對齊

19.

Struct a{

Char a;

Int b;

Short c;

}

Sizeof(a) = ?

結(jié)構(gòu)體a的大小是4*3=12個字節(jié),而不是1+2+4=7個字節(jié);這里主要考察內(nèi)存對齊(地址對齊)的特點(diǎn),應(yīng)為結(jié)構(gòu)體中最大數(shù)據(jù)寬度是整型(4字節(jié)),所以按字對齊。

思考一下如何改良結(jié)構(gòu)使得存儲空間變小。

20. 簡述程序的局部變量存在于(棧區(qū))中,全局變量存在于(靜態(tài)區(qū) )中,動態(tài)申請數(shù)據(jù)存在于( 堆區(qū))中。

21.結(jié)構(gòu)體和聯(lián)合體的區(qū)別?

22. 宏函數(shù)與內(nèi)聯(lián)函數(shù)和普通函數(shù)的執(zhí)行效率的比:

宏函數(shù)效率高,因?yàn)槭蔷幾g器在預(yù)處理階段的替換;

23.C語言中注釋有哪些方法?

/**/和 #if 0 #endif 。后者是預(yù)處理命令,可以方便的對代碼區(qū)進(jìn)行選擇編譯。

解釋一下語句的含義:

Const int a;

int const a;

const int *a;

int * const a;

int const * a const;

前兩個的作用是一樣,a是一個常整型數(shù)。第三個意味著a是一個指向常整型數(shù)的指針(也就是,整型數(shù)是不可修改的,但指針可以)。第四個意思a是一個指向整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是可以修改的,但指針是不可修改的)。最后一個意味著a是一個指向常整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是不可修改的,同時指針也是不可修改的)。如果應(yīng)試者能正確回答這些問題,那么他就給我留下了一個好印象。順帶提一句,也許你可能會問,即使不用關(guān)鍵字const,也還是能很容易寫出功能正確的程序,那么我為什么還要如此看重關(guān)鍵字const呢?我也如下的幾下理由:

1). 關(guān)鍵字const的作用是為給讀你代碼的人傳達(dá)非常有用的信息,實(shí)際上,聲明一個參數(shù)為常量是為了告訴了用戶這個參數(shù)的應(yīng)用目的。如果你曾花很多時間清理其它人留下的垃圾,你就會很快學(xué)會感謝這點(diǎn)多余的信息。(當(dāng)然,懂得用const的程序員很少會留下的垃圾讓別人來清理的。)

2). 通過給優(yōu)化器一些附加的信息,使用關(guān)鍵字const也許能產(chǎn)生更緊湊的代碼。

3). 合理地使用關(guān)鍵字const可以使編譯器很自然地保護(hù)那些不希望被改變的參數(shù),防止其被無意的代碼修改。簡而言之,這樣可以減少bug的出現(xiàn)。

24.

int * a;

*a = 2;

上式有錯嗎,錯到哪里?(指針沒有初始化)

25、頭文件中的 ifndef/define/endif 干什么用?(5分)

答:防止該頭文件被重復(fù)引用。

26、#include 和 #include “filename.h” 有什么區(qū)別?(5分)

答:對于#include ,編譯器從標(biāo)準(zhǔn)庫路徑開始搜索 filename.h

對于#include “filename.h” ,編譯器從用戶的工作路徑開始搜索 filename.h

上一篇:有了這樣的C++/C筆試題,再也不用擔(dān)心筆試了

下一篇:50道經(jīng)典c語言筆試題(精華)

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部