這篇文章主要介紹“C語言有哪些面試題”,在日常操作中,相信很多人在C語言有哪些面試題問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C語言有哪些面試題”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都廣告制作等網(wǎng)站設(shè)計(jì)、全網(wǎng)營(yíng)銷推廣解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。
1、c語言里面關(guān)鍵static的作用是什么?(看到這個(gè)問題讀者可以自己先思考一下,再看答案)
答案:
(1)、在函數(shù)體中,一個(gè)被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值保持不變。
(2)、在模塊內(nèi),模塊就是你寫的".C"文件(在函數(shù)體外),一個(gè)被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但是不能被模塊外其它函數(shù)訪問,它相當(dāng)于一個(gè)本地的一個(gè)靜態(tài)全局變量(注意它和非靜態(tài)全局變量的區(qū)別哦)。
(3)、在模塊內(nèi),一個(gè)被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。也就是說,這個(gè)函數(shù)被限制在聲明它的模塊本地內(nèi)使用,不可以在模塊外使用。
2、寫一個(gè)“標(biāo)準(zhǔn)”宏,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè);同時(shí)講出 # 與 ##的作用區(qū)別?
答案:
(1)、第一個(gè)問題可以這樣來寫,注意里面使用了三目運(yùn)算符:
#define MIN(x,y) ((x)<(y)?(x):(y))
(2)、"#"作用是把宏參數(shù)轉(zhuǎn)化為字符串的運(yùn)算符,而"##"是把兩個(gè)宏參數(shù)連接的運(yùn)算符:
#define STR(arg) #arg
這里當(dāng)參數(shù) arg 為 hello ,則宏展開的結(jié)果是"hello"
#define STR(arg) name_y
#define STR(arg) name_##y
#define STR(arg,arg2) arg arg2##_##arg2##_arg2
上面示例中,假設(shè) arg 為 int , arg2 為 a ,則上面宏展開的結(jié)果為:
name_y
name_int
inta_a_a
3、C語言里面關(guān)鍵字sizeof的作用是什么?
答案:
(1)sizeof是在編譯階段處理,且不能被編譯為機(jī)器碼。還有一點(diǎn),很多人會(huì)認(rèn)為它是一個(gè)庫函數(shù);它的作用是計(jì)算出各種類型變量或者結(jié)構(gòu)所占的字節(jié)數(shù):
int a ,sizeof(a)
int *a,sizeof(a)
int a[10],sizeof(a)
int a[0],sizeof(a)
sizeof(void)
sizeof(void *)
上面演示結(jié)果:
4
4
40
0
1
4
4、請(qǐng)簡(jiǎn)述用戶空間的內(nèi)存分配及各空間保存的數(shù)據(jù)類型:
答案:
(1) 用戶空間供為3G,分為:棧空間,堆空間,數(shù)據(jù)區(qū),代碼段。
??臻g保存:局部變量,函數(shù)形參,自動(dòng)變量。??臻g特點(diǎn),先進(jìn)后出,空間由系統(tǒng)管理;??臻g生命周期所在函數(shù)執(zhí)行結(jié)束后釋放;棧空間保存的局部變量未初始化時(shí),默認(rèn)初始化為隨機(jī)值。
堆空間:由malloc , calloc ,ralloc,這些好函數(shù)分配的空間位堆空間,堆空間特點(diǎn):先進(jìn)先出,由用戶管理。
數(shù)據(jù)區(qū):又分為.bss段、.data段、常量區(qū)。其中.bss段保存的是未初始化的全局變量,當(dāng)全局變量未初始化時(shí),系統(tǒng)默認(rèn)初始化為0;常量區(qū)保存的是常量,里面保存的值不能被修改,只能做讀操作;.data段是保存已經(jīng)初始化的全局變量以及被static修飾的變量(靜態(tài)變量)。數(shù)據(jù)區(qū)的聲明周期是整個(gè)程序執(zhí)行完之后再釋放。
代碼段保存的是代碼。
到此,關(guān)于“C語言有哪些面試題”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!