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

2016年嵌入式面試C語言試題「精選」

嵌入式 閱讀(7.13K)

  第1題: 考查對volatile關鍵字的認識

2016年嵌入式面試C語言試題「精選」

#include

static jmp_buf buf;

main()

{

volatile int b;

b =3;

if(setjmp(buf)!=0)

{

printf("%d ", b);

exit(0);

}

b=5;

longjmp(buf , 1);

}

請問, 這段程式的輸出是

(a) 3

(b) 5

(c) 0

(d) 以上均不是

  第2題:考查型別轉換

main()

{

struct node

{

int a;

int b;

int c;

};

struct node s= { 3, 5,6 };

struct node *pt = &s;

printf("%d" , *(int*)pt);

}

這段程式的輸出是:

(a) 3

(b) 5

(c) 6

(d) 7

  第3題:考查遞迴呼叫

int foo ( int x , int n)

{

int val;

val =1;

if (n>0)

{

if (n%2 == 1) val = val *x;

val = val * foo(x*x , n/2);

}

return val;

}

這段程式碼對x和n完成什麼樣的'功能(操作)?

(a) x^n (x的n次冪)

(b) x*n(x與n的乘積)

(c) n^x(n的x次冪)

(d) 以上均不是

  第4題:考查指標,這道題只適合於那些特別細心且對指標和陣列有深入理解的人

main()

{

int a[5] = {1,2,3,4,5};

int *ptr = (int*)(&a+1);

printf("%d %d" , *(a+1), *(ptr-1));

}

這段程式的輸出是:

(a) 2 2

(b) 2 1

(c) 2 5

(d) 以上均不是

  第5題:考查多維陣列與指標

void foo(int [][3]);

main()

{

int a [3][3]= { { 1,2,3} , { 4,5,6},{7,8,9}};

foo(a);

printf("%d" , a[2][1]);

}

void foo(int b[][3])

{

++ b;

b[1][1] =9;

}

這段程式的輸出是:

(a) 8

(b) 9

(c) 7

(d)以上均不對