計算機二級C語言基礎選擇易錯題及答案解析(六)

2021-10-02 18:10:11 字數 3022 閱讀 9994

1.有以下程式:

#include

main()

在vc6平台上編譯執行,程式執行後的輸出結果是()。

a.2,4

b.1,4

c.4,8

d.10,6

解析:

c語言中利用sizeof

(函式判斷資料型別長度,在vc6.

0平台中,整型int占有4個位元組,double型資料占有8個位元組。

2.有以下程式

#include

main()

a、16

b、1c、32

d、0

解析:

無符號整型變數a的值為8,二進位制表示為000000,右移3位後為0000001

,即十進位制的1,所以輸出1。

3.設有定義,intx=2,以下表示式中,值不為6的是()

a x*=x+1

b x++,2x

c x=(1+x)

d 2*x,x+=2

解析:

a:變形形式為:x=x*

(x+1

);結果為2*3

=6;b:x++

,x為3;2

*x=2*3

=6,結果為6;

c:變形形式為:x=x*(1

+x);結果為6;

d:2*x為4

,但是x的值沒有變;x+

=2 變形為 x=x+2=

2+2=

4,結果為4

;考察逗號的運算,從左向右進行運算:d中只是進行2

*x的運算,沒有付給變數且x的值沒有變化;

4.有以下程式:

#include

main()

程式執行後的輸出結果是

a) 3

b) 4

c) 5

d) 6

解析:

將a的值轉換成二進位制為:0000

0010,b的值轉換成二進位制為:0000

0100,

將a、b進行按位或運算(參加計算的兩個位只要有乙個為1,那麼運算結果為1

),因此此時d的二進位制為:0000

0110,

c的值轉換成二進位制為:00000101,接下來將d和c進行按位與運算(參加計算的兩個位都為1,則結果為1,否則為0

),結果為:0000

0100,轉換成十進位制數結果為4。

設有以下語句: int a=1,b=2,c; c=a^(b<<2); 執行後,c的值為______。

a.6b.7

c.8d.9

解析:

b=2表示的二進位制數為00000010,經過移位操作得到00001000,異或操作」a^

(00001000

)」得到00001001,即十進位制數9。

異或也就是將兩個值化成二進位制,按位運算,如果同一位上的值相等(均為1或0),則結果為0,如果同一位上的值不等,則結果為1,例1011

^1111的結果為0100

6.以下定義語句中正確的是()

a.int a=b=0;

b.char a=65+1;b=『b』;

c.float a=1,*b=&a,*c=&b;

d.double a=0.0,b=1.1;

解析:

a選項中語句b變數還沒有定義不能直接用於給a變數賦值,

c語句中*c=

&b,因為變數b已經為指標變數,取指標變數b的位址,這時變數c應該是指標的指標。

d選項語句中a=

0.0後面是分號不是逗號

7.若變數x、y已正確定義並賦值,以下符合c語言語法的表示式是( )

a.++x,y=x–

b.x+1=y

c.x=x+10=x+y

d.double(x)/10

解析: 

在c語言的賦值表示式中,賦值物件必須是乙個變數,而在選項b中其子表示式x+

1代表的是乙個臨時常量,因此不能將y賦給x+

1,選項b錯誤。

而選項c中由於「=」運算子是從右至左運算的,即原表示式相當於x=

(x+10

=x+y),所以也犯了對乙個臨時常量賦值的錯誤。

選項d中,將 x強制轉換為double型別的表示式應該為(

double

)x,所以選項d也不正確。

8.表示式:(int)((double)9/2)-9%2的值是()

a、0b、3

c、4d、5

解析:

這個表示式首先從左往右計算,首先9/2

=4(double)4

=4.0,(double)4意思是將int型別的4強制轉換為 double型

(int)4.0

=4,(int)4.0又將double型的4.0強制轉換為了int,即減號前結果為4;

(9)%2=

9%2=

1,所以結果為4-1

=3.

9.設有定義:int k=0;,以下選項的四個表示式中與其他三個表示式的值不相同的是( )

a.k++

b.k+=1

c.++k

d.k+1

解析:

++k 先使得k的值自增1後再使用k+

+是先取得k的值再將k的值自增1.所以c選項中表示式的值為0,而其他三個表示式的值均為1.所以選擇a。

10.若定義有語句:int a=3, b=2, c=1; 以下選項()

a、a=(b=4)=3;

b、a=b=c+1;

c、a=(b=4) +c;

d、a=1+(b=c=4);

解析:

不能將變數或常量賦值給乙個表示式,所以a錯誤

計算機二級C語言基礎選擇易錯題及答案解析(二)

1.有兩個關係r,s如下 由關係r通過運算得到關係s,則所使用的運算為 a 選擇 b 投影 c 插入 d 連線 解析 投影運算是指對於關係內的域指定可引入新的運算。本題中s是在原有關係r的內部進行的,是由r中原有的那些域的列所組成的關係。所以選擇b 2.對於迴圈佇列,下列敘述中正確的是 a 隊頭指標...

計算機二級C語言基礎選擇易錯題及答案解析(三)

1.某二叉樹共有七個節點,其中葉子節點只有乙個,則該二叉樹的深度為 假設根節點在第一層 a 3b 4 c 6d 7 解析 根據二叉樹的基本性質3 在任意 棵二叉樹中,多為的葉子結點總比度為2的結點多 個,所以本題中度為2的結點為1 1 0個,所以可以知道本題目中的二叉樹的每乙個結點都有乙個分支,所以...

計算機二級C語言基礎選擇易錯題及答案解析(五)

1.以下敘述中錯誤的是 a 可以給指標變數賦乙個整數作為位址值 b 函式可以返回位址值 c 改變函式形參的值,不會改變對應實參的值 d 當在程式的開頭包含標頭檔案stio時,可以給指標變數賦null 解析 不能將乙個整數直接賦給指標變數作為位址,所以a 是錯誤的。函式的返回值可以是位址,即指標。函式...