當前位置:才華齋>IT認證>嵌入式>

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

嵌入式 閱讀(1.98W)

嵌入式開發考試內容是什麼呢?下面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);