2017嵌入式軟件工程師筆試題及答案

 一、選擇題

2017嵌入式軟件工程師筆試題及答案

1:設float a=2, b=4, c=3;,以下C語言表達式與代數式 (a+b)+c計算結果不一致的是

A.(a+b)*c/2

B.(1/2)*(a+b)*c

C.(a+b)*c*1/2

D.c/2*(a+b)

參考答案:B,因爲a,b,c三個變量都是浮點數,所以在B答案中其結果是0,因爲在計算1/2是就是0,如果改成1/2.0就正確了。

2:爲了向二進制文件尾部增加數據,打開文件的方式應採用

A.″ab″

B.″rb+″

C.″wb″

D.″wb+″

參考答案:D

3:下述程序執行後的輸出結果是

#include

main()

{

int x='f';

printf("%cn",'a'+(x-'a'+1));

}

A.g

B.h

C.i

D.j

參考答案:A

4:C語言中,下列運算符優先級最高的是

A.!

B.%

C.>>

D.= =

參考答案:A

5:數組定義爲“ int a [ 4 ] ; ”,表達式 ( ) 是錯誤的。

A.*a

B.a [ 0 ]

C.a

D.a++

參考答案:D

6:執行語句“ k=7>>1; ”後,變量 k 的當前值是

A.15

B.31

C.3

D.1

參考答案:C

7:定義函數時,缺省函數的類型聲明,則函數類型取缺省類型

t

參考答案:D

8:若main()函數帶參數,參數個數最多是

A.0

B.1

C.2

D.3

參考答案:C 只知道有定義形式main(int argc,char* argv[]))

9:若有宏定義:#define MOD(x,y) x%y

則執行以下語句後的輸出結果是

int a=13,b=94;

printf(″%dn″,MOD(b,a+4));

A.5

B.7

C.9

D.11

參考答案:B

10:下列各個錯誤中,哪一個不屬於編譯錯誤

A.改變 x 原值 3 爲 5 ,寫作“ x==5 ;”

B.花括號不配對

C.複合語句中的最後一條語句後未加分號

D.變量有引用、無定義

參考答案:A

11:下列程序段運行後, x 的值是( )

a=1;b=2;x=0;

if(!( -- a))x -- ;

if(!b)x=7;else ++x;

A.0

B.3

C.6

D.7

參考答案:A

12:設

#define N 3

#define Y(n) ((N+1)*n)

則表達式2*(N+Y(5+1))的值是

A.42

B.48

C.54

D.出錯

參考答案:B Y(5+1) 傳遞過去的應該是6,而不是簡單的把5+1給替換

13:若定義了char ch[]={″abc