11.執(zhí)行下列程序后的輸出結(jié)果是( )
int fun(int x1,int x2)
{ int x;x1>x2?(x=3):(x=4);return(x+x1); }
main()
{ printf("%d\n",fun( 7,8));}
A.9
B.10
C.11
D.12
【解析】本程序的輸出是函數(shù)調(diào)用“fun(7,8)”的返回值。分析函數(shù)調(diào)用“fun(7,8)”的過程如下:將實(shí)參7傳給形參x1,實(shí)參8傳給形參x2,然后執(zhí)行函數(shù)體。由于x1>x2的條件不成立,所以執(zhí)行“:”號(hào)后的賦值表達(dá)式:x=4。返回語句中的表達(dá)式是“x+x1”,返回值是:4+7=11。所以本題答案應(yīng)選C.
【參考答案】C
12.下列程序段的輸出是( )
typedef union{ long x[2];
short y[4][5];
char z[10];
。齌YPE1;
TYPE1 u1;
printf("%d\n", sizeof(u1));
A.8
B.10
C.40
D.58
【解析】程序的開始用“typedef"定義了用戶自定義數(shù)據(jù)類型符“TYPE1”,這個(gè)用戶自定義的數(shù)據(jù)類型符對(duì)應(yīng)的是一個(gè)共用型。然后使用"TYPE1",定義了共用型變量u1,本段程序的輸出就是這個(gè)共用型變量所占用的字書數(shù)。共用型變量占用的字節(jié)數(shù)就是其成員中占用字節(jié)數(shù)最多的成員占用的字節(jié)數(shù)。分析這個(gè)共用型的成員有3個(gè):第1個(gè)成員是長整型數(shù)組,占用字節(jié)數(shù)為4*2=8;第2個(gè)成員是短整型數(shù)組,占用字節(jié)數(shù)為2*4*5=40;第3個(gè)成員是字符型數(shù)組,占用的字節(jié)數(shù)為1*10=10。其中占用字節(jié)數(shù)最多的成員是第2個(gè)成員,其占用的字節(jié)數(shù)等于40。所以本題答案應(yīng)選C。
【參考答案】C
13.不屬于C語言保留字的是( )
A.for
B.goto
C.if
D.loop
【解析】關(guān)于保留字教材中有明確規(guī)定。顯然for、goto、if都是組成語句的專用語句成份,都
是保留字。本題答案應(yīng)選D。
【參考答案】 D
14.正確的C語言標(biāo)識(shí)符是( )
A.num(10)
B.file bak
C.continue
D.class+2
【解析】標(biāo)識(shí)符是字母、下劃線開頭的字母、數(shù)字、下劃線組成的一串字符,而且不能是保留字。本題的4個(gè)備選答案中,只有答案B符合這個(gè)規(guī)定。本題答案應(yīng)選B。
【參考答案】 B
15.設(shè)有定義語句“double d1,d2;”,則表達(dá)式“d1=1,d2=d1+5/2”的值是( )
A.1
B.3
C.3.0
D.3.5
【解析】C語言規(guī)定,逗號(hào)表達(dá)式的計(jì)算是自左向右進(jìn)行的,表達(dá)式的值等于右邊表達(dá)式的值,因此,本題的答案應(yīng)為表達(dá)式"d2=d1+5/2"的值。該表達(dá)式是賦值表達(dá)式,所以其值是賦予變量d2的值,也就是表達(dá)式"d1+5/2"的結(jié)果。計(jì)算時(shí),需要先算"5/2",結(jié)果為整數(shù)2,再和double型的d1相加,結(jié)果是實(shí)數(shù)3.0。所以本題答案應(yīng)選C
【參考答案】 C
16.設(shè)有定義“int x=8,y,z;”,則執(zhí)行“y=z=x++,x=y==z;”后,變量x值是( )
A.0
B.1
C.8
D.9
【解析】這是逗號(hào)表達(dá)式組成的語句,要先計(jì)算“y=z=x++”,結(jié)果變量y和z的值均為8。注意++是后綴運(yùn)算符,同時(shí)x等于9。再計(jì)算“x=y==z”,由于“==”優(yōu)先于“=”,所以x的值等于“y==z”,而y和z值相等,所以運(yùn)算結(jié)果為1,即x值為1。本題答案應(yīng)選B。
【參考答案】 B
17.設(shè)有“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ù)的功能是自右向左依次計(jì)算表達(dá)式的值,然后再按照自左向右的順序輸出各個(gè)表達(dá)式的值,所以題目中輸出語句執(zhí)行時(shí),是依次計(jì)算下列兩個(gè)表達(dá)式的值:
b-1 結(jié)果為0,注意變量b值不變;
(a++,--b)這是逗號(hào)表達(dá)式,先計(jì)算a++,結(jié)果變量a值為2;
再計(jì)算--b,結(jié)果變量b值為0;
整個(gè)逗號(hào)表達(dá)式的值就是--b的值,為0。
按照自左向右的順序輸出(a++,--b)和b-1的值,依次為0,0。本題答案應(yīng)選D。
【參考答案】D
18.設(shè)有定義語句“char s[]="123";”,則表達(dá)式“s[3]”的值是 ( )
A.’1’
B.’3’
C.0
D.語法出錯(cuò)
【解析】字符數(shù)組s在定義時(shí)省略了數(shù)組長度,表示給每個(gè)數(shù)組元素均賦了初值。對(duì)本題來說,數(shù)組的長度為4;數(shù)組元素的值依次為:S[0]為'1'。S[1」為'2'。S[2]為'3'、S[3]為字符率結(jié)束標(biāo)記符'\0',所以“s[3]”的值是'\0'。注意,這個(gè)字符的 ASCII代碼值是整數(shù) 0,所以本題答案應(yīng)選C。
【參考答案】 C
19.定義一個(gè)具有10個(gè)元素的整型數(shù)組,應(yīng)當(dāng)使用語句( )
A.int a[10];
B.int a[2,5];
C.int a[];
D.int *a[10];
【解析】分析備選答案 A:顯然是正確的,本題答案應(yīng)選 A。至于備選答案 B:其中的“[2,5]”在語法上是錯(cuò)誤的;備選答案C:數(shù)組沒有給初值而省略了數(shù)組長度,語法上也是錯(cuò)誤的;備選答案D:定義的是具有10個(gè)元素的。指向整型數(shù)據(jù)的指針型數(shù)組。
【參考答案】A
20.設(shè)指針變量p1、 p2已經(jīng)指向同一個(gè)數(shù)組的元素,則下列表達(dá)式中錯(cuò)誤的是( )
A.p1=p2
B.p1==p2
C.p1-p2
D.p1+p2
【解析】教材中關(guān)于指向同一個(gè)數(shù)組的元素的指針變量之間可以進(jìn)行的運(yùn)算有如下的規(guī)定:可以進(jìn)行關(guān)系運(yùn)算、賦值運(yùn)算、減法運(yùn)算,所以本題答案應(yīng)選D。
【參考答案】D
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |