2016年嵌入式軟件工程師筆試題(含答案)
yjbys小編為大家總結(jié)了一些嵌入式軟件工程師筆試題及答案,希望對您有所幫助。
選擇題
1:設(shè)float a=2, b=4, c=3;,以下C語言表達(dá)式與代數(shù)式 (a+b)+c計(jì)算結(jié)果不一致的是
A.(a+b)*c/2
B.(1/2)*(a+b)*c
C.(a+b)*c*1/2
D.c/2*(a+b)
參考答案:B,因?yàn)閍,b,c三個(gè)變量都是浮點(diǎn)數(shù),所以在B答案中其結(jié)果是0,因?yàn)樵谟?jì)算1/2是就是0,如果改成1/2.0就正確了。
2:為了向二進(jìn)制文件尾部增加數(shù)據(jù),打開文件的方式應(yīng)采用
A.″ab″
B.″rb+″
C.″wb″
D.″wb+″
參考答案:D
3:下述程序執(zhí)行后的輸出結(jié)果是
#include
main()
{
int x='f';
printf("%c\n",'a'+(x-'a'+1));
}
A.g
B.h
C.i
D.j
參考答案:A
4:C語言中,下列運(yùn)算符優(yōu)先級(jí)最高的是
A.!
B.%
C.>>
D.= =
參考答案:A
5:數(shù)組定義為“ int a [ 4 ] ; ”,表達(dá)式 ( ) 是錯(cuò)誤的。
A.*a
B.a [ 0 ]
C.a
D.a++
參考答案:D
6:執(zhí)行語句“ k=7>>1; ”后,變量 k 的當(dāng)前值是
A.15
B.31
C.3
D.1
參考答案:C
7:定義函數(shù)時(shí),缺省函數(shù)的類型聲明,則函數(shù)類型取缺省類型
A.void
B.char
C.float
D.int
參考答案:D
8:若main()函數(shù)帶參數(shù),參數(shù)個(gè)數(shù)最多是
A.0
B.1
C.2
D.3
參考答案:C 只知道有定義形式main(int argc,char* argv[]))
9:若有宏定義:#define MOD(x,y) x%y
則執(zhí)行以下語句后的輸出結(jié)果是
int a=13,b=94;
printf(″%d\n″,MOD(b,a+4));
A.5
B.7
C.9
D.11
參考答案:B
10:下列各個(gè)錯(cuò)誤中,哪一個(gè)不屬于編譯錯(cuò)誤
A.改變 x 原值 3 為 5 ,寫作“ x==5 ;”
B.花括號(hào)不配對
C.復(fù)合語句中的最后一條語句后未加分號(hào)
D.變量有引用、無定義
參考答案:A
11:下列程序段運(yùn)行后, 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:設(shè)
#define N 3
#define Y(n) ((N+1)*n)
則表達(dá)式2*(N+Y(5+1))的值是
A.42
B.48
C.54
D.出錯(cuò)
參考答案:B Y(5+1) 傳遞過去的應(yīng)該是6,而不是簡單的把5+1給替換掉
13:若定義了char ch[]={″abc\0def″},*p=ch;則執(zhí)行printf(″%c″,*p+4);語句的輸出結(jié)果是
A.def
B.d
C.e
D.0
參考答案:C
14:下列轉(zhuǎn)義字符中錯(cuò)誤的是
A.′\000′
B.′\14′
C.′\x111′
D.′\2′
參考答案:C error C2022: '273' : too big for character
15:算術(shù)運(yùn)算符,賦值運(yùn)算符和關(guān)系運(yùn)算符的`運(yùn)算優(yōu)先級(jí)按從高到低依次為
A.算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系運(yùn)算
B.算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算
C.關(guān)系運(yùn)算、賦值運(yùn)算、算術(shù)運(yùn)算
D.關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算
參考答案:B
16:設(shè)#define N 3
#define Y(n) ((N+1)*n)
則表達(dá)式2*(N+Y(5+1))的值是
A.42
B.48
C.54
D.出錯(cuò)
參考答案:B
17:表達(dá)式 strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一個(gè)
A.非零整數(shù)
B.浮點(diǎn)數(shù)
C.0
D.字符
參考答案: A
18:設(shè)struct
{ short a;
char b;
float c;
}cs;
則sizeof(cs)的值是
A.4
B.5
C.6
D.7
參考答案: D 字節(jié)對齊的話應(yīng)該是8
19:若變量已正確定義,表達(dá)式( j=3 , j++ )的值是
A.3
B.4
C.5
D.0
參考答案:A
20:C 語言中運(yùn)算對象必須是整型的運(yùn)算符是
A.%
B./
C.!
D.**
參考答案:A
簡答題
21:打印一個(gè)N*N的方陣,N為每邊字符的個(gè)數(shù)( 3〈N〈20 ),要求最外層為“X”,第二層為“Y”,從第三層起每層依次打印數(shù)字0,1,2,3,...
例子:當(dāng)N =5,打印出下面的圖形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X
22:談?wù)凜OM的線程模型。然后討論進(jìn)程內(nèi)/外組件的差別。
23:多態(tài)類中的虛函數(shù)表是Compile-Time,還是Run-Time時(shí)建立的?
參考答案:
虛擬函數(shù)表是在編譯期就建立了,各個(gè)虛擬函數(shù)這時(shí)被組織成了一個(gè)虛擬函數(shù)的入口地址的數(shù)組.
而對象的隱藏成員--虛擬函數(shù)表指針是在運(yùn)行期--也就是構(gòu)造函數(shù)被調(diào)用時(shí)進(jìn)行初始化的,這是實(shí)現(xiàn)多態(tài)的關(guān)鍵.
24:#include
void main()
{ int c;
while ((c=getchar())!= ′\ n ′ )
switch(c - ′ 2 ′ )
{ case 0:
case 1:putchar(c+4);break;
case 2:putchar(c+4);break;
case 3:putchar(c+3);break;
default:putchar(c+2);break;
}
printf( ″\ n ″ );
}
運(yùn)行時(shí)輸入: 2473 ,輸出結(jié)果:
參考答案:6897 VC++6.0測試過
25:用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的功能?
參考答案:
設(shè)2個(gè)棧為A,B, 一開始均為空.入隊(duì):
將新元素push入棧A;出隊(duì):
(1)判斷棧B是否為空;
(2)如果不為空,則將棧A中所有元素依次pop出并push到棧B;
(3)將棧B的棧頂元素pop出;這樣實(shí)現(xiàn)的隊(duì)列入隊(duì)和出隊(duì)的平攤復(fù)雜度都還是O(1),
26:寫一語句實(shí)現(xiàn)x是否為2的若干次冪的判斷。
參考答案:!(X)&(X-1)
27:解二次方程:a*x*x+b*x+c
int Quadratic( double a,double b,double c,double& x1,double& x2);
返回值:解的個(gè)數(shù)
28:如何判別一個(gè)數(shù)是unsigned。
參考答案;
#define issignal(x) ((x>=0 && ~x>=0) ? 1:0) //為1是無符號(hào) 為0有符號(hào)
29:執(zhí)行下述程序的輸出結(jié)果是 ABCDEFCDEFEF 。
#include
char b[]="ABCDEF";
main()
{
char *bp;
for (bp=b;*bp;bp+=2)
printf("%s",bp);
printf("\n");
}
30:已知一個(gè)數(shù)組table,用一個(gè)宏定義,求出數(shù)據(jù)的元素個(gè)數(shù)。
參考答案:#define NTBL
#define NTBL (sizeof(table)/sizeof(table[0]))
嵌入式相關(guān)文章推薦:
3.2016年嵌入式系統(tǒng)復(fù)習(xí)試題及答案
4.2016年計(jì)算機(jī)四級(jí)嵌入式軟件開發(fā)工程師考試試題及答案
10.2016年嵌入式系統(tǒng)開發(fā)人員C語言測試題
【2016年嵌入式軟件工程師筆試題(含答案)】相關(guān)文章: