11.在以下字符列中,合法的長整型常數(shù)是( )
A. OL
B. 4962710
C. 0.054838743
D. 2.1869el0
【解析】為表示不同范圍的整數(shù),整型數(shù)據(jù)分短整型、基本型和長整型,并對三種整型內(nèi)部表示的最高位的不同理解,又分別分成無符號和帶符號兩種。若要明確指明一個整數(shù)是長整型的,必須在整數(shù)之后接上字符’L’。所以O(shè)L是一個長整型的整型常量,而4962710是基本整型數(shù)據(jù),而對于用2個字節(jié)表示一個基本整型數(shù)據(jù)的系統(tǒng)來說,該整數(shù)將因超出范圍而是一個錯誤的整數(shù);0.054839743和2.1869el0都是double型的實數(shù)。所以解答是A。
【參考答案】A
12.一個char型數(shù)據(jù),它的值在內(nèi)存中存放的是()
A.ASCll代碼值
B.BCD代碼值
C.內(nèi)碼值
D.十進(jìn)制代碼值
【解析】計算機存儲字符,通常是存儲字符的某種代碼值。有許多種字符編碼的方法,最流行的是ASCII代碼。在C語言中,Char型數(shù)據(jù)也用ASCII代碼表示。所以解答是A。
【參考答案】A
13.設(shè)變量 m,n,a,b,c,d均為以執(zhí)行(m=a==)||(n=c==d)后,m,n的值是( )
A.0,0
B.0,1
C.l,0
D.1,1
【解析】計算(m=a==b)||(n=c==d)的過程是先計算邏輯或的左運算分量(m=a==b)的值,由于賦位運算符的優(yōu)先級比關(guān)系運算符==的優(yōu)先級低,又先計算 a==b。因 a,b均為0后,所以比較結(jié)果值為1。將1賦給變量m,使變量m的值變?yōu)? 。同時這個賦值運算的結(jié)果也是1,這樣邏輯運算的左運算分量的值為1。由于邏輯或運算的左運算分量值為1,按照C語言對邏輯或運算優(yōu)化計算的規(guī)定,不再計算邏輯或的右運算分量,而直接得到邏輯或運算的結(jié)果為1 。由于邏輯或的右運算分量不曾計算過,所以變量n的值也不為變化。這樣,上述表達(dá)式計算后,變量m的情為1,變量n的值為0。所以解答是C。
【參考答案】C
14.設(shè)a為5,執(zhí)行下列計算后,b的值不為2的是( )
A. b=a/2
B. b=6-(--a)
C. b=a%2
D. b=a<3?3:2
【解析】因兩個整型數(shù)據(jù)相除,結(jié)果是整數(shù),當(dāng)a的值為5時,計算表達(dá)式b=a/2后,使b的值為2。計算表達(dá)式b=6-(--a)是先計算子表達(dá)式(--a)的,先讓a的值減1變成4,并以減1后的a為子表達(dá)式的結(jié)果,所以子表達(dá)式的結(jié)果為4,最后使b的值為2。在計算表達(dá)式b= a%2時,求余運算a%2的結(jié)果為1,最后使變量b的值為1。計算表達(dá)式b=a<3?3:2時,先計算條件表達(dá)式a<3?3:2,以2為結(jié)果,最后也使變量b的值為人所以解答是C。
【參考答案】C
15.執(zhí)行語句“x=(a=3,b=a--);”后,X,a,b的值依次為( )
A.3,3,2
B.2,3,2
C.3,2,3
D.2,3,3
【解析】計算表達(dá)式x=(a=3,b=a--)時,先計算賦值號右端圓括號內(nèi)的逗號表達(dá)式。遠(yuǎn)號表達(dá)式要求各子表達(dá)式順序計算,并以最后予表達(dá)式的值為整個逗號表達(dá)式的結(jié)果。所以該表達(dá)式計算時,先讓變量a的值為3,a--的值是a當(dāng)時的值,以該值為結(jié)果賦給變量b,并以該值為遠(yuǎn)號表達(dá)式的值賦給變量x,然后a的值被減少1。所以計算該表達(dá)式后,使變量x,a,b的值依次為3,2,3。所以解答是C。
【參考答案】C
16.設(shè)整型變量m,n,a,b,c,d均為1,執(zhí)行“( m=a>b)&&(n=a>b)"后m,n的值是( )
A.0,0
B.0,l
C.1,0
D.1,l
【解析】表達(dá)式(m=a >b)&&(n=a >b)是一個邏輯表達(dá)式,它的計算過程是先計算邏輯與的左分量(m=a>b,其中又是先計算a>b。因a>b不成立,結(jié)果為0,將0賦給變量m,最后邏輯與的左分量結(jié)果為0。由于邏輯運算采用特別的優(yōu)化計算規(guī)則,當(dāng)邏輯與的左分量結(jié)果為0時,不再計算邏輯與的右分量,而直接以0為邏輯與的結(jié)果。所以,上述表達(dá)式計算使m的值變?yōu)?,而n的值沒有變,依舊為l。所以解答是B。
【參考答案】B
17. 設(shè)有代碼“int a=3;”,則執(zhí)行了語句“a+=a-= a*a;”后,變量a的值是( )
A.3
B. 0
C. 9
D. -12
【解析】由于賦值運算符的結(jié)合性自右至左,語句“a+=a-=a*a;”的執(zhí)行是先計算a*a,得到值 9,再計算 a-=a*a,使 a的值為-6,接著計算 a+=a,使 a的值為-12。所以解答是D。
【參考答案】D
18.在以下一組運算符中,優(yōu)先級最高的運算符是( )
A.<=
B.=
C.%
D.&&
【解析】常規(guī)運算符的優(yōu)先級自高到低的排列順序是算術(shù)運算符、移位運算符、關(guān)系運算符。按位運算符、邏輯運算符、條件運算符、賦值運算符、逗號運算符。所以問題所給的四個運算符按優(yōu)先級自高到低的排列順序是%,<=,&&,=。所以解答是C。
【參考答案】C
19.設(shè)整型變量i的值為3,則計算表達(dá)式i---i后表達(dá)式的值為( )
A.0
B.l
C.2
D.表達(dá)式出錯
【解析】有些運算符只有一個字符,也有許多運算符由兩個字符組成。特別是有些字符既可是單個字符的運算符,又能組成雙字符的運算符。編譯系統(tǒng)在識別源程序時,通常是盡量多地讀八字符,能組成多字符單詞的先盡量組成多字符單詞。所以表達(dá)式i---i,被編譯器理解為(i--)-i。另外,當(dāng)表達(dá)式中某變量有后綴自增和自減運算時,先按變量的原值計算表達(dá)式,然后再對變量進(jìn)行自增和自減運算。同樣地,當(dāng)表達(dá)式中某變量有前綴自增和自減運算時,先對變量進(jìn)行自增和自減運算,然后再按變量的新值計算表達(dá)式。按這個約定,求表達(dá)式(i--)-i是計算i-i的值為0,然后再對i作自減運算。這樣,表達(dá)式(i--)-i的值為0。所以解答是A。
【參考答案】A
20.設(shè)整型變量 a、b、c均為2,表達(dá)式 a+++b+++c++ 的結(jié)果是( )
A.6
B.9
C.8
D.表達(dá)式出錯
【解析】與上一小題解答的理由相同,表達(dá)式a+++b+++c++被系統(tǒng)理解成:((a++)+(b++))+c++)。表達(dá)式“變量++”的值是變量的原來值,所以在變量a、b.c均為2的前題下,執(zhí)行上述表達(dá)式,得到結(jié)果為6。所以解答是A。
【參考答案】A
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |