9.設(shè)整型變量m,n,a,b,c,d均為1,執(zhí)行“( m=a>b)&&(n=a>b)"后m,n的值是( )
①0,0 ②0,l ③1,0 ④1 ,l
【解】表達(dá)式(m=a >b)&&(n=a >b)是一個(gè)邏輯表達(dá)式,它的計(jì)算過程是先計(jì)算邏輯與的左分量(m=a>b,其中又是先計(jì)算a>b。因a>b不成立,結(jié)果為0,將0賦給變量m,最后邏輯與的左分量結(jié)果為0。由于邏輯運(yùn)算采用特別的優(yōu)化計(jì)算規(guī)則,當(dāng)邏輯與的左分量結(jié)果為0時(shí),不再計(jì)算邏輯與的右分量,而直接以0為邏輯與的結(jié)果。所以,上述表達(dá)式計(jì)算使m的值變?yōu)?,而n的值沒有變,依舊為l。所以解答是②。
10,設(shè)有代碼“int a=3;”,則執(zhí)行了語句“a+=a-= a*a;”后,變量a的值是( )
①3 ② 0 ③ 9 ④ -12
【解】由于賦值運(yùn)算符的結(jié)合性自右至左,語句“a+=a-=a*a;”的執(zhí)行是先計(jì)算a*a,得到值 9,再計(jì)算 a-=a*a,使 a的值為-6,接著計(jì)算 a+=a,使 a的值為-12。所以解答是④。
11.在以下一組運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是( )
①<= ②= ③% ④&&
【解】常規(guī)運(yùn)算符的優(yōu)先級(jí)自高到低的排列順序是算術(shù)運(yùn)算符、移位運(yùn)算符、關(guān)系運(yùn)算符。按位運(yùn)算符、邏輯運(yùn)算符、條件運(yùn)算符、賦值運(yùn)算符、逗號(hào)運(yùn)算符。所以問題所給的四個(gè)運(yùn)算符按優(yōu)先級(jí)自高到低的排列順序是%,<=,&&,=。所以解答是③。
12.設(shè)整型變量i的值為3,則計(jì)算表達(dá)式i---i后表達(dá)式的值為( )
①0 ②l ③2 ④表達(dá)式出錯(cuò)
【解】有些運(yùn)算符只有一個(gè)字符,也有許多運(yùn)算符由兩個(gè)字符組成。特別是有些字符既可是單個(gè)字符的運(yùn)算符,又能組成雙字符的運(yùn)算符。編譯系統(tǒng)在識(shí)別源程序時(shí),通常是盡量多地讀八字符,能組成多字符單詞的先盡量組成多字符單詞。所以表達(dá)式i---i,被編譯器理解為(i--)-i。另外,當(dāng)表達(dá)式中某變量有后綴自增和自減運(yùn)算時(shí),先按變量的原值計(jì)算表達(dá)式,然后再對(duì)變量進(jìn)行自增和自減運(yùn)算。同樣地,當(dāng)表達(dá)式中某變量有前綴自增和自減運(yùn)算時(shí),先對(duì)變量進(jìn)行自增和自減運(yùn)算,然后再按變量的新值計(jì)算表達(dá)式。按這個(gè)約定,求表達(dá)式(i--)-i是計(jì)算i-i的值為0,然后再對(duì)i作自減運(yùn)算。這樣,表達(dá)式(i--)-i的值為0。所以解答是①。
13.設(shè)整型變量 a、b、c均為2,表達(dá)式 a+++b+++c++ 的結(jié)果是( )
①6 ②9 ③8 ④表達(dá)式出錯(cuò)
【解】與上一小題解答的理由相同,表達(dá)式a+++b+++c++被系統(tǒng)理解成:((a++)+(b++))+c++)。表達(dá)式“變量++”的值是變量的原來值,所以在變量a、b.c均為2的前題下,執(zhí)行上述表達(dá)式,得到結(jié)果為6。所以解答是①。
14.若已定義 x和 y為double類型,則表達(dá)式: x=l, y=x+3/2結(jié)果是( )
①l ②2 ③2.0 ④2.5
【解】由于變量x和y都是double類型,表達(dá)式 x=l, y=x+3/2是先計(jì)算 x=1,由于 1是整型的,x是double類型的,該計(jì)算先將整數(shù)1轉(zhuǎn)換成double類型的1.0,并將1.0賦給變量x。計(jì)算 y=X+3/2是先求 3/2的值,因是兩整數(shù)相除,結(jié)果是整型值 1,然后在計(jì)算 X+1時(shí),也先將 1轉(zhuǎn)換成 1.0,然后求得 X+l的值為2.0,最后將該值賦給變量 y,并得到整個(gè)表達(dá)式的值為2.0.所以解答是③。
15.設(shè)a=1,b=2,c=3,d=4則表達(dá)式a< b?a:c< d?a:d的結(jié)果為()
①4 ②3 ③2 ④1
【解】條件運(yùn)算符的優(yōu)先級(jí)比關(guān)系運(yùn)算符的優(yōu)先級(jí)低,并且它的結(jié)合性是自右向左的,所以表達(dá)式a<b?a:c<d?a:d可用圓括號(hào)等價(jià)地寫成(a<b?a:((c
16.設(shè)a為整型變量,下列C表達(dá)式中,不能表達(dá)數(shù)學(xué)關(guān)系式:10<a<15的是( )
①10<a<15 ②a==11||a==12|| a==13|| a==14
③a>10&&a<15 ④。╝<=10)&&。╝>=15)
【解】數(shù)學(xué)關(guān)系式 10<a< 15表示。只能是 11, 12, 13, 14四個(gè)值之 l。用 C表達(dá)式表示這個(gè)條件,可寫成a>10&& a<15,或!(a<=10)&&。╝>=15),或a==11||a==12 || a==13||a==14等。若寫成10<a<15,該算式的計(jì)算順序是先求出10<a的結(jié)果0或1,然后以這個(gè)結(jié)果與15比較,是否小于15,顯然這與數(shù)學(xué)式子的意義是不一致的。所以解答是①。
17.下列表達(dá)式中,正確的C賦值表達(dá)式是( )
①a=7+b+C=a+7 ② C=7+b++=a+7
③a=(7+b, b++, a+7) ④ a= 7+b, c=a+7
【解】賦值運(yùn)算符是運(yùn)算符之一,賦值運(yùn)算也可以出現(xiàn)在一般表達(dá)式中。賦值運(yùn)算時(shí),出現(xiàn)在賦值運(yùn)算符左邊的表達(dá)式應(yīng)該是引用一個(gè)存儲(chǔ)對(duì)象,例如變量。不可以是一個(gè)數(shù)值計(jì)算表達(dá)式。如表達(dá)式a=7+b+c=a+7因算術(shù)運(yùn)算符比賦值運(yùn)算符的優(yōu)先級(jí)高,要把a(bǔ)+7的結(jié)果賦給7+b+c,這是錯(cuò)誤的。同樣理由,表達(dá)式a= 7+b++=a+7也是錯(cuò)誤的。而表達(dá)式a=(7+b,b++,a+7)就是正確的賦值表達(dá)式,它是先計(jì)算賦值號(hào)左邊的括號(hào)內(nèi)的表達(dá)式,括號(hào)表達(dá)式內(nèi)是一個(gè)逗號(hào)表達(dá)式,遠(yuǎn)號(hào)表達(dá)式要求順序逐一計(jì)算各子表達(dá)式,并以最后一個(gè)子表達(dá)式的值作為遠(yuǎn)號(hào)表達(dá)式的結(jié)果,最后將該結(jié)果賦給變量a。而表達(dá)式a=7+b,c=a+7則不是一個(gè)賦值表達(dá)式,而是一個(gè)逗號(hào)表達(dá)式,它由兩個(gè)賦值子表達(dá)式組成。所以解答是③。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |