2015年計(jì)算機(jī)二級(jí)《C語(yǔ)言》最新章練習(xí)題(2)
16關(guān)于“whlile(條件表達(dá)式)循環(huán)體”,以下敘述正確的是
A.循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次
B.條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次
C.條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣
D.條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無(wú)關(guān)
參考答案:B
參考解析:while循環(huán)是先判斷條件,滿足條件后執(zhí)行循環(huán)體,執(zhí)行完后接著判斷條件,執(zhí)行,直到最后一次判斷條件后不成立,跳出循環(huán),所以最后一次執(zhí)行了條件表達(dá)式,但是沒(méi)有執(zhí)行循環(huán)體,所以選擇B選項(xiàng)。
17以下敘述中錯(cuò)誤的是
A.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
B.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡(jiǎn)單類型
C.可以通過(guò)指針變量來(lái)訪問(wèn)結(jié)構(gòu)體變量的任何成員
D.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
參考答案:B
18以下敘述中正確的是
A.對(duì)于邏輯表達(dá)式:a++|| b++,設(shè)a的值為1,則求解表達(dá)式的值后,b的值會(huì)發(fā)生改變
B.對(duì)于邏輯表達(dá)式:a++&&b++,設(shè)a的值為0,則求解表達(dá)式的值后。b的值會(huì)發(fā)生改變
C.else不是一條獨(dú)立的語(yǔ)句,它只是if語(yǔ)句的一部分
D.關(guān)系運(yùn)算符的結(jié)果有三種:0,1,-1
參考答案:C
參考解析:B選項(xiàng)和A選項(xiàng)中,&&、||都是先計(jì)算左邊表達(dá)式的值,當(dāng)左邊表達(dá)式的值能確定整個(gè)表達(dá)式的值。而且&&、||的優(yōu)先級(jí)比++高,所以題中只需判斷a的值即可知道符合表達(dá)式的真假;D選項(xiàng)中,關(guān)系運(yùn)算符的結(jié)果有“真”和“假”兩種。因此c選項(xiàng)正確。
19有以下程序
程序的運(yùn)行結(jié)果是
A.14B.20C.10D.16
參考答案:A
參考解析:*(*(P+m)+k)系統(tǒng)默認(rèn)為指針指向數(shù)組中第[m][k]個(gè)元素,因此,在for循環(huán)中,n+=*(*(P+m)+k);執(zhí)行的是將數(shù)組x[0][1]和x[1][1]累加后賦值給n,最后進(jìn)行輸出,答案為A選項(xiàng)。
20若有定義語(yǔ)句:int m[][3]={1,2,3,4,5,6,7};,則與該語(yǔ)句等價(jià)的是
A.int m[][3j={{1,2,3},{4,5,6},{i 7}};
B.int m[][3]={{1,2},{3,4},{5,6,7}};
C.int m[][3]={{1,2,3},{4,5},{6,7}};
D.int nl[][3]={{1},{2,3,4},{5,6,7}};
參考答案:A
參考解析:
二維數(shù)組的初始化有兩種方式,一種是分行初始化,方式為:數(shù)據(jù)類型數(shù)組名[行下標(biāo)表達(dá)式][列下標(biāo)表達(dá)式]={{第0行初值},{第1行初值表},…{最后l行初值表}};,如果初值表只對(duì)部分元素賦初值,沒(méi)有被賦初值的元素將被自動(dòng)賦值為0。另一種是按二維數(shù)組在內(nèi)存中的排列順序給各元素賦初值,這種方式就是不分行將所有數(shù)據(jù)依次列在一個(gè)花括號(hào)里,方式為:數(shù)據(jù)類型數(shù)組名[行下標(biāo)表達(dá)式][列下標(biāo)表達(dá)式]={初值表};,這種方式的賦值就是將初值表的數(shù)據(jù)依次賦予數(shù)組的每個(gè)元素,其中賦值是按照數(shù)組元素在內(nèi)存中的位置進(jìn)行的。題目中的初始化語(yǔ)句是第二種方法,如果用第一種方法應(yīng)該是int m[][3]={{1,2,3},{4,5,6{,{7{};,這里應(yīng)該保證除了最后一行,每一行都滿列有3個(gè)元素,A選項(xiàng)正確。
21有以下程序
程序運(yùn)行后的輸出結(jié)果是
A.0.000000B.0.250000C.0.500000D.1.000000
參考答案:C
參考解析:本題重點(diǎn)考查if語(yǔ)句,變量x和Y均為double類型,由于變量x賦值為2.0,因此執(zhí)行if((x<5.0)&&(!x)),即條件為0,繼續(xù)執(zhí)行if(x<10.0),條件為1,即執(zhí)行Y=1.0/x;。依據(jù)printf()函數(shù)輸出類型中f是以小數(shù)形式輸出單、雙精度實(shí)數(shù)。因此c選項(xiàng)正確。
22以下fun函數(shù)返回?cái)?shù)組中最大值的下標(biāo)
在橫線處應(yīng)填入的內(nèi)容是
A.++kB.i=kC.k++D.k=i
參考答案:D
參考解析:fu-函數(shù)的功能是返回?cái)?shù)組中最大值的下標(biāo)。通過(guò)for循環(huán)語(yǔ)句,每次將最大的數(shù)給k,即k=i。因此D選項(xiàng)正確。
23有以下程序段
下面針對(duì)上述程序段的描述正確的是
A.最多可以輸出100個(gè)非負(fù)整數(shù)
B.當(dāng)x<0時(shí)結(jié)束整個(gè)循環(huán)
C.當(dāng)X>=0時(shí)沒(méi)有任何輸出
D.pfinff函數(shù)調(diào)用語(yǔ)句總是被跳過(guò)
參考答案:A
參考解析:continue語(yǔ)句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行,因此B選項(xiàng)錯(cuò)誤;當(dāng)x>=0時(shí),程序執(zhí)行prinff("%4d\n",x)語(yǔ)句,因此排除C、D選項(xiàng),答案為A選項(xiàng)。
24設(shè)有定義:
int x[2][3];
則以下關(guān)于二維數(shù)組X的敘述錯(cuò)誤的是
A.元素x[0]可看作是由3個(gè)整型元素組成的一維數(shù)組
B.數(shù)組x可以看作是由X[0]和X[1]兩個(gè)元素組成的一維數(shù)組
C.可以用x[0]=0;的形式為數(shù)組所有元素賦初值0
D.x[O]和x[1]是數(shù)組名,分別代表一個(gè)地址常量
參考答案:C
參考解析:x[o]可看作是由3個(gè)整型元素組成的一維數(shù)組,不可以用語(yǔ)句x[0]=0;為數(shù)組所有元素賦初值0。因此C選項(xiàng)正確。
25若有以下程序
A.1,10,3,8,5,6,7,4,9,2,
B.10,9,8,7,6,5,4,3,2,1,
C.10,1,8,3,6,5,4,7,2,9,
D.2,9,4,7,6,5,8,3,10,l,
參考答案:D
參考解析:該題首先對(duì)一維數(shù)組進(jìn)行初始化,e[O]到c[9]依次賦值為10到1;fun(c,10);語(yǔ)句調(diào)用fun函數(shù),fun函數(shù)的功能是將一維數(shù)組奇數(shù)位元素的數(shù)值由小到大排序;最后將排好序的新的一維數(shù)組進(jìn)行輸出。因此D選項(xiàng)正確。
26若有以下程序
A.0,3,2,2,1,0,3,1,
B.1,4,3,3,2,1,4,2,
C.5,6,5,6,5,6,5,6,
D.6,7,6,7,6,7,6,7,
參考答案:A
參考解析:本題考查二維字符數(shù)組的運(yùn)用,題目中首先定義了一個(gè)一維字符數(shù)組,從三層for循環(huán)可以看出要找的是w數(shù)組中每個(gè)字符在二維數(shù)組中的位置,比如d字母,在a數(shù)組中就是0,3其他字符類似,所以本題答案為A。
27若有以下程序
A.earlsB.ahabjC.ckbdlD.black
參考答案:D
參考解析:程序首先初始化字符數(shù)組a[5][10]和二維數(shù)組p[6][2]。執(zhí)行for循環(huán)語(yǔ)句,循環(huán)變量i從0取值到5,得到字符數(shù)組W[]的值,并通過(guò)字符串輸出函數(shù)pats進(jìn)行輸出操作。w[0]=a[0][1]、w[1]=a[1][5]、w[2]=a[0][0]、w[3]=a[0][2]、w[4]=a[1][4]、w[5]=a[4][4];因此最后字符數(shù)組W的結(jié)果為black。因此D選項(xiàng)正確。
28若有以下程序
A.10B.7C.6D.3
參考答案:B
參考解析:else總是和與之最近的上面的if配對(duì),執(zhí)行第一個(gè)if,判斷條件不成立,執(zhí)行else r=1;語(yǔ)句。再執(zhí)行第二個(gè)if語(yǔ)句中的判斷條件,成立,左移執(zhí)行r+=2,r的值為3,再執(zhí)行第三個(gè)if的判斷條件,不成立執(zhí)行第7行else后面的空語(yǔ)句“;”。再執(zhí)行第四個(gè)訌的判斷條件d==4成立,執(zhí)行r+=4,r的值為7。然后打印輸出。
29若有以下程序
A.1,3B.0,2C.1,2D.2,3
參考答案:A
參考解析:本題重點(diǎn)考查do…while語(yǔ)句及do…while的循環(huán)語(yǔ)句保證會(huì)執(zhí)行一次(表達(dá)式的真值在每次循環(huán)結(jié)束后檢查),++b即變量b自增1后再參與運(yùn)算.而a++則表示a參與運(yùn)算后,再自增1。所以第一次循環(huán)結(jié)束后,b=1,a=-1。第二次循環(huán)后,b=2,a=0,這里先對(duì)while的判斷為真,然后a+自增為零時(shí),還會(huì)進(jìn)行第三次循環(huán)。第三次循環(huán)后。b=3,a=1。因此A選項(xiàng)正確。
30若有以下程序
A.3B.7C.6D.10
參考答案:D
參考解析:第—個(gè)if語(yǔ)句a!=1條件為假,所以執(zhí)行dse后的語(yǔ)句r=1。第二個(gè)if語(yǔ)句b==2條件成立,執(zhí)行r+=2,r的值變?yōu)?,第三個(gè)if語(yǔ)句c!=3條件為假,所以不做任何操作。執(zhí)行下面的r+=3操作,r的值變?yōu)?。判斷第四個(gè)訌條件,d==4條件成立,執(zhí)行r+=4操作,結(jié)果為10。