76.設有定義“int x=8,y,z;”,則執(zhí)行“y=z=x++,x=y==z;”后,變量x值是( )
A.0
B.1
C.8
D.9
【解析】這是逗號表達式組成的語句,要先計算“y=z=x++”,結果變量y和z的值均為8。注意++是后綴運算符,同時x等于9。再計算“x=y==z”,由于“==”優(yōu)先于“=”,所以x的值等于“y==z”,而y和z值相等,所以運算結果為1,即x值為1。本題答案應選B。
【參考答案】 B
77.設有“int a=1,b=1;”,“printf("%d,%d",(a++,--b),b-1);”的輸出是( )
A.1,-1
B.1,0
C.0,-1
D.0,0
【解析】printf()函數(shù)的功能是自右向左依次計算表達式的值,然后再按照自左向右的順序輸出各個表達式的值,所以題目中輸出語句執(zhí)行時,是依次計算下列兩個表達式的值:
b-1 結果為0,注意變量b值不變;
(a++,--b)這是逗號表達式,先計算a++,結果變量a值為2;
再計算--b,結果變量b值為0;
整個逗號表達式的值就是--b的值,為0。
按照自左向右的順序輸出(a++,--b)和b-1的值,依次為0,0。本題答案應選D。
【參考答案】D
78.設有定義語句“char s[]="123";”,則表達式“s[3]”的值是 ( )
A.’1’
B.’3’
C.0
D.語法出錯
【解析】字符數(shù)組s在定義時省略了數(shù)組長度,表示給每個數(shù)組元素均賦了初值。對本題來說,數(shù)組的長度為4;數(shù)組元素的值依次為:S[0]為'1'。S[1」為'2'。S[2]為'3'、S[3]為字符率結束標記符'\0',所以“s[3]”的值是'\0'。注意,這個字符的 ASCII代碼值是整數(shù) 0,所以本題答案應選C。
【參考答案】 C
79.定義一個具有10個元素的整型數(shù)組,應當使用語句( )
A.int a[10];
B.int a[2,5];
C.int a[];
D.int *a[10];
【解析】分析備選答案 A:顯然是正確的,本題答案應選 A。至于備選答案 B:其中的“[2,5]”在語法上是錯誤的;備選答案C:數(shù)組沒有給初值而省略了數(shù)組長度,語法上也是錯誤的;備選答案D:定義的是具有10個元素的。指向整型數(shù)據(jù)的指針型數(shù)組。
【參考答案】A
80.設指針變量p1、 p2已經(jīng)指向同一個數(shù)組的元素,則下列表達式中錯誤的是( )
A.p1=p2
B.p1==p2
C.p1-p2
D.p1+p2
【解析】教材中關于指向同一個數(shù)組的元素的指針變量之間可以進行的運算有如下的規(guī)定:可以進行關系運算、賦值運算、減法運算,所以本題答案應選D。
【參考答案】D
81.設有定義語句“int a[]={2, 4,6,8,10},*p=s;”,則值為8的表達式是( )
A.*p+3
B.*p+4
C.*(p+4)
D.*(s+3)
【解析】分析四個備選答案,可以看出是用指針法來引用數(shù)組a的元素。當指針變量p已經(jīng)指向數(shù)組。的首地址后(正如本題那樣),*(p+i)和*(s+i)都是數(shù)組元素a[i]。對于備選答案A:*p就是數(shù)組元素。a[0],其值為2,再加3結果為5,不符合題意。同樣道理,備選答案B中的*p十4的值為6,也不符合題意。對于備選答案C:*(p+4)代表數(shù)組元素a[4],其值為10,也不符合題意。顯然本題答案應選D。因為*(s+3)就是數(shù)組元素s[3],其值為8。
【參考答案】 D
82.下列數(shù)據(jù)類型中不屬于構造類型的是 ( )
A.數(shù)組型
B.結構型
C.共用型
D.枚舉型
【解析】教材中明確指出:構造類型只包括:數(shù)組型、結構型。共用型三種,所以本題答案應選D。
【參考答案】D
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |