嵌入式系統開發人員C語言測試題

嵌入式開發考試內容是什麼呢?下面yjbys小編為大家分享最新嵌入式開發考試面試題,希望對大家備考有幫助!

嵌入式系統開發人員C語言測試題

1.2 填空題

(32)説明下面變量的定義:

char (*p[])(); _____________________

char *p()[]; _____________________

char (*p)[10][10]; _____________________

*(*p())[])[]; _____________________

(33)下面共同體的存儲空間是_____

union BOOKNUMBER

{

T_S16 age;

T_S8 title[10];

T_S8 post[32];

}

(34)若整數值範圍是 -32768 至 32767。在執行下面的表達式之後, i 的結果是什麼?

int i=32766;

i=i+1; i =

i=i+1; i =

(35)對於聯合類型:

union x

{

char ch[7];

int i[2];

float f;

}tom;

那麼, sizeof(tom) =

(36)有以下程序,程序的輸出結果是______(注意: ch[0]在低字節,ch[1]在高字節)。

#include

union pw

{

int i;

char ch[2];

}a;

main()

{

[0] = 13;

[1] = 0;

printf("%d ", a.i);

}

(37)以下程序用以輸出結構體變量bt所佔內存單元的字節數,請在橫線內填上適當內容。

struct ps

{

double i;

char arr[20];

};

main()

{

struct ps bt;

printf("bt size :%d ", _______);

}

(38)設位段的`空間分配由右到左,則以下程序的運行結果是_____。

struct packed_bit

{

unsigned a:2;

unsigned b:3;

unsigned c:4;

int i;

}data;

main()

{

data.a = 1;

data.b = 2;

data.c = 3;

data.i = 0;

printf("%d ", data);

}

(39)以下程序的運行結果是_____。

main()

{

enum COLOR{

RED,

BLUE = 5,

YELLOW

}cl;

printf("%d", OW);

}

(40)以下程序的運行結果是______。

main()

{

union EXAMPLE{

struct{

int x;

int y;

}in;

int a;

int b;

}e;

e.a = 1;

e.b = 2;

.x = e.a * e.b;

.y = e.a + e.b;

printf("%d %d", .x, .y);

}

(41)請補充下面代碼:

#include

main()

{

T_S16 *a;

a = (int*)malloc(_________);

*a = 123;

______ = 456;

______ = 789;

}

(42)在小類型轉大類型時應確保不會改變數據的值,在程序的邏輯上確認後,還應在強制轉換代碼後加上清高位代碼以確保轉換正確,請填充下面的代碼以示例:

T_S8 cLocalHeight = 0xfe;

T_U32 g_lHeight = 0;

g_lHeight = _________cLocalHeight;

(43)在不同符號位轉換時(T_U8?àT_S8, T_U16?àT_S16, T_U32?àT_S32)應在邏輯上確保不會改變數據的符號位或是含義值,請填充下面的代碼以示例:

T_S16 nTop;

T_S16 nBottom;

T_VOID Img_SetHeight(T_U16 nHght)

T_S16 nHeight = nTop - nBottom;

Img_SetHeight(___________);

(44)寫出判斷字符變量c是英文字母的表達式____________。

(45)下面函數的返回值是______。

int data()

{

float x = 9.9;

return(x);

}

(46)下面程序段的輸出結果是______。

Union

{

int b1, b2, b3;

} yy;

yy.b1 = 1;

yy.b2 = 2;

yy.b3 = 10 * yy.b1 + yy.b2;

printf("%d, %d, %d", yy.b1, yy.b2, yy.b3);