小猿圈之嵌入式軟件工程師面試題匯總二(有答案)

上次小猿圈加加已經(jīng)總結(jié)過(guò)一套《嵌入式軟件工程師面試題一》,這次更新了,歡迎大家閱讀,建議大家看的時(shí)候先不要看答案,先自己做一下,做完之后和正確答案對(duì)一下,看看自己做的怎么樣,不說(shuō)太多雞湯了,小猿圈帶你看一下面試題。

1、char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s);有什么錯(cuò)?

答案:"AAA"是字符串常量。s是指針,指向這個(gè)字符串常量,所以聲明s的時(shí)候就有問(wèn)題。 cosnt char*s="AAA"; 然后又因?yàn)槭浅A浚詫?duì)是s[0]的賦值操作是不合法的。

2、char * constp? ? ? char const * p? ? const char *p 上述三個(gè)有什么區(qū)別?

答案:char * const p; //常量指針,p的值不可以修改

char const * p;//指向常量的指針,指向的常量值不可以改 const char *p; //和char const *p

char * const p是一個(gè)char型指針,指針是常量,不允許修改,即類似p=q的語(yǔ)句是錯(cuò)誤的;

char const * p和const char * p是同一種char型指針,指針指向的字符被看作是常量,不允許修改,即類似*p = q的語(yǔ)句是錯(cuò)誤的。

3、一個(gè)32位的機(jī)器,該機(jī)器的指針是多少位?

答案:指針是多少位只要看地址總線的位數(shù)就行了。80386以后的機(jī)子都是32的數(shù)據(jù)總線。所以指針的位數(shù)就是4個(gè)字節(jié)了。

4、請(qǐng)問(wèn)以下代碼有什么問(wèn)題:

int? main() { chara; char *str=&a; strcpy(str,"hello"); printf(str); return 0; }

答案:沒(méi)有為str分配內(nèi)存空間,將會(huì)發(fā)生異常問(wèn)題出在將一個(gè)字符串復(fù)制進(jìn)一個(gè)字符變量指針?biāo)傅刂?。雖然可以正確輸出結(jié)果,但因?yàn)樵浇邕M(jìn)行內(nèi)在讀寫(xiě)而導(dǎo)致程序崩潰。

5、嵌入式系統(tǒng)中經(jīng)常要用到無(wú)限循環(huán),你怎么用C編寫(xiě)死循環(huán)。

答案:while(1){}或者for(;;)

6、列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)。

答案:? 原子操作 信號(hào)量機(jī)制? ? 自旋鎖? ? 管程,會(huì)合,分布式系統(tǒng)

7、進(jìn)程之間通信的途徑

答案:共享存儲(chǔ)系統(tǒng)消息傳遞系統(tǒng)管道:以文件系統(tǒng)為基礎(chǔ)

8、死鎖的4個(gè)必要條件

答案:互斥、請(qǐng)求保持、不可剝奪、環(huán)路

9、.數(shù)組和鏈表的區(qū)別

答案:數(shù)組:數(shù)據(jù)順序存儲(chǔ),固定大小連表:數(shù)據(jù)可以隨機(jī)存儲(chǔ),大小可動(dòng)態(tài)改變

10、已知一個(gè)數(shù)組table,用一個(gè)宏定義,求出數(shù)據(jù)的元素個(gè)數(shù)

答案:#defineNTBL #define NTBL (sizeof(table)/sizeof(table[0]))

11、 寫(xiě)出程序運(yùn)行結(jié)果

int sum(int a)

{?

auto int c=0;?

static int b=3;

c+=1;

b+=2;

return(a+b+c);

}

void main()

{?

int I;

int a=2;

for(I=0;I <5;I++)

{?

printf("%d,", sum(a));

}

}

答:8,10,12,14,16該題比較簡(jiǎn)單。只要注意b聲明為static靜態(tài)全局變量,其值在下次調(diào)用時(shí)是可以保持住原來(lái)的賦值的就可以。

12、請(qǐng)寫(xiě)出下列代碼的輸出內(nèi)容#include <stdio.h> main() { int a,b,c,d; a=10; b=a++; c=++a;d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; }

答案:10,12,120? a=10;? b=a++;//a=11 b=10? c=++a;//a=12 c=12? d=10*a++;//a=13 d=120

第二套嵌入式軟件開(kāi)發(fā)面試題就到這里了,大家做的怎么樣,自我感覺(jué)良好的朋友,那應(yīng)該是基礎(chǔ)很牢靠了,如果你現(xiàn)在處于找工作狀態(tài),你可以大膽試試;感覺(jué)做的不是很順暢的朋友,也不要?dú)怵H,把不會(huì)的知識(shí)點(diǎn)重新好好學(xué)習(xí)一下,也可以去小猿圈看看,把不會(huì)的好好掌握一下。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容