121.設(shè)X、y、Z、t均為int型變量,則執(zhí)行以下語句后,t的值為(139)
x=y=z=1;t=++x||++y&&++z;
(139)A. 不定值
B. 2
C. l
D. 0
參考答案:(139)C。
解析:語句序列“x=y=z=l;t=++x||++y&&++z;”使變量x的值為1,變量t是賦一個邏輯表達式的值。在C語言中,由邏輯與和邏輯或構(gòu)成的邏輯表達式有特別的計算規(guī)則,順序計算各邏輯子表達式,并當一旦能得到邏輯表達式的結(jié)果時,就立即結(jié)束邏輯表達式的計算,不再計算后繼邏輯子表達式。本題的邏輯表達式是兩個運算分量的邏輯或,而且左運算分量++X的值為非0,立即得到邏輯或運算的結(jié)果為1,并將1賦給變量t,所以變量t的值為1。正確解答為C。
122.設(shè)x、y、z均為int型變量,則執(zhí)行以下語句后,x、y,z的值為(140)
X=1;y=0;Z=2;y++&&++Z||++X;
(140)A.2、l、3
B. 2、0、3
C. 2、l、3
D. 2、1、2
參考答案:(140)D。
解析:語句序列“x=l;y=0;z=2;y++&&++z||++x;”先使變量x的值為1,變量y的值為0,變量Z的值為2。由邏輯與和邏輯或構(gòu)成的邏輯表達式的特別計算規(guī)則,順序計算各邏輯子表達式,并當一旦能得到邏輯子表達式的結(jié)果時,就立即結(jié)束邏輯子表達式的計算,不再計算該邏輯子表達式。計算y++因y的值為0,使y++&&++z的結(jié)果為0,立即去計算++X,這次計算使變量y的值變成1,而變量Z的值本改變。接著計算++X,使X的值變?yōu)?。所以經(jīng)上述語句執(zhí)行后,X、y、Z的值依次為2、1、Z。確解答為D。
123.假定所有變量均已正確定義,下列程序段運行后X的值是(141)
a=b=c=0;x=35;
if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34
B.4
C.35
D.3
參考答案:(141)B。
解析:以變量a,b,c的值均為0,變量x的值為35,語句:
if(!a)x--;elseif(b);if(c)x=3;elsex=4;
由兩個證語句組成。首先執(zhí)行前一個if語句“if(!a)x--;elseif(b);”,因變量a的值為0,條件!a成立,執(zhí)行x--使x的值變?yōu)?4。接著執(zhí)行后繼的if語句“if(c)x=3;elseX=4;”,因變量c的值為0,條件不成立而執(zhí)行X=4,最終使變量X的值為4。正確解答是B。
注意前一個if語句的else部分的成分語句只有“if(b);”,這是一個單分支if語句,且其成分語句為空語句。
相關(guān)推薦:考試吧策劃:2010年軟件水平考試完全指南北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |