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 是錯誤的。函式的返回值可以是位址,即指標。函式...