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

上次小猿圈加加已經總結過一套《嵌入式軟件工程師面試題一》,此次更新了,歡迎你們閱讀,建議你們看的時候先不要看答案,先本身作一下,作完以後和正確答案對一下,看看本身作的怎麼樣,不說太多雞湯了,小猿圈帶你看一下面試題。面試

一、char* s="AAA"; printf("%s",s); s[0]='B'; printf("%s",s);有什麼錯?數組

答案:"AAA"是字符串常量。s是指針,指向這個字符串常量,因此聲明s的時候就有問題。 cosnt char*s="AAA"; 而後又由於是常量,因此對是s[0]的賦值操做是不合法的。分佈式

二、char constp char const p const char *p 上述三個有什麼區別?學習

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

char const p;//指向常量的指針,指向的常量值不能夠改 const char p; //和char const *p進程

char * const p是一個char型指針,指針是常量,不容許修改,即相似p=q的語句是錯誤的;內存

char const p和const char p是同一種char型指針,指針指向的字符被看做是常量,不容許修改,即相似*p = q的語句是錯誤的。開發

三、一個32位的機器,該機器的指針是多少位?字符串

答案:指針是多少位只要看地址總線的位數就好了。80386之後的機子都是32的數據總線。因此指針的位數就是4個字節了。get

四、請問如下代碼有什麼問題:

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

答案:沒有爲str分配內存空間,將會發生異常問題出在將一個字符串複製進一個字符變量指針所指地址。雖然能夠正確輸出結果,但由於越界進行內在讀寫而致使程序崩潰。

五、嵌入式系統中常常要用到無限循環,你怎麼用C編寫死循環。

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

六、列舉幾種進程的同步機制,並比較其優缺點。

答案: 原子操做 信號量機制 自旋鎖 管程,會合,分佈式系統

七、進程之間通訊的途徑

答案:共享存儲系統消息傳遞系統管道:以文件系統爲基礎

八、死鎖的4個必要條件

答案:互斥、請求保持、不可剝奪、環路

九、.數組和鏈表的區別

答案:數組:數據順序存儲,固定大小連表:數據能夠隨機存儲,大小可動態改變

十、已知一個數組table,用一個宏定義,求出數據的元素個數

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

十一、 寫出程序運行結果

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該題比較簡單。只要注意b聲明爲static靜態全局變量,其值在下次調用時是能夠保持住原來的賦值的就能夠。

十二、請寫出下列代碼的輸出內容#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

第二套嵌入式軟件開發面試題就到這裏了,你們作的怎麼樣,自我感受良好的朋友,那應該是基礎很牢靠了,若是你如今處於找工做狀態,你能夠大膽試試;感受作的不是很順暢的朋友,也不要氣餒,把不會的知識點從新好好學習一下,也能夠去小猿圈看看,把不會的好好掌握一下。

相關文章
相關標籤/搜索