2015年計(jì)算機(jī)二級(jí)考試《C語(yǔ)言》提高練習(xí)題匯總?cè)?/h1>
時(shí)間:
家輝2
資訊
參考解析:只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選項(xiàng)。
2[填空題]數(shù)組xx[M]保存著一組3位數(shù)的無(wú)符號(hào)正整數(shù),其元素的個(gè)數(shù)通過(guò)變量m傳人函數(shù)proc()。請(qǐng)補(bǔ)充函數(shù)proc(),該函數(shù)的功能是:從數(shù)組xx中找出十位和百位的數(shù)字相等的所有無(wú)符號(hào)整數(shù),結(jié)果保存在數(shù)組yy中,其個(gè)數(shù)由函數(shù)proc()返回。
例如,當(dāng)xx[8]={234 339 666 850 220 448 528 440)時(shí),bb[5]={339 666 220 448 440}。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的橫線上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。
試題程序:
參考解析:
【解析】要找出數(shù)組xx中十位和百位數(shù)字相等的所有整數(shù),首先要得到數(shù)組中每一個(gè)整數(shù)的十位和百位數(shù)字,因此,【1】處填“(xx[i]/10)%10”;如果十位和百位數(shù)字相等,則將該整數(shù)放在數(shù)組bb ee,因此,【2】處填“bb[n++]=xx[i]”;符合條件的整數(shù)個(gè)數(shù)放在變量n中,返回給主函數(shù),因此,【3】處填“n”。
3[單選題] 有下列程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.45B.20C.25 D.36
參考解析:在for循環(huán)語(yǔ)句中自變量i從0開(kāi)始,每次自加2,執(zhí)行s+一*(t+i)語(yǔ)句,因?yàn)镃語(yǔ)言規(guī)定數(shù)組名做表達(dá)式相當(dāng)于數(shù)組的首地址,也就是第一個(gè)元素的地址。因此,*(t+i)代表數(shù)組的第i+1個(gè)元素,所以程序運(yùn)行的結(jié)果是1+3+5+7+9=25,即變量S的值等于25。
4[簡(jiǎn)答題]下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。
例如,若n=12,則應(yīng)輸出0.618026。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
參考解析:
(1)錯(cuò)誤:int proc(int n)
正確:float proc(int n)
(2)錯(cuò)誤:for(i=2;i
正確:for(i=2;i<=n;i++)
由主函數(shù)中的調(diào)用以及函數(shù)proc()的返回值可知,函數(shù)proc()的返回值類(lèi)型應(yīng)為float型數(shù)據(jù)。因此,“intproc(int n)”應(yīng)改為“float proc(int n)”;由題目中所給公式可知,循環(huán)中應(yīng)該包含n的值,因此,“for(i=2;i
5[單選題] 以下敘述中正確的是( )。
A.do-while語(yǔ)句構(gòu)成的循環(huán)不能用其他語(yǔ)句構(gòu)成的循環(huán)來(lái)代替
B.do-while語(yǔ)句構(gòu)成的循環(huán)只能用break語(yǔ)句退出
C.用do-while語(yǔ)句構(gòu)成循環(huán)時(shí),只有在while后的表達(dá)式為非零時(shí)結(jié)束循環(huán)
D.用do-while語(yǔ)句構(gòu)成循環(huán)時(shí),只有在while后的表達(dá)式為零時(shí)結(jié)束循環(huán)
參考答案:D
參考解析:選項(xiàng)A,可以用for循環(huán)代替;選項(xiàng)B,不滿足條件時(shí)即條件的邏輯值為假(0)時(shí)退出,break也可以;選項(xiàng)C,while(條件),條件為真時(shí)進(jìn)行循環(huán),為假(0)時(shí)退出。
6[單選題] 下面程序的運(yùn)行結(jié)果是( )。
A.1B.2C.3D.4
參考答案:B
參考解析:本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是逐個(gè)讀入s數(shù)組中的字符,如果遇到數(shù)字。則將數(shù)字存在s中,遇到非數(shù)字字符則跳過(guò)。所以最后輸出的應(yīng)該是字符串s中所有數(shù)字的個(gè)數(shù)。
7[單選題] 若有以下程序段
則程序段的輸出結(jié)果是( )
A.5.170000B.5.175000C.5.169000D.5.168000
參考解析:本題考查強(qiáng)制類(lèi)型轉(zhuǎn)換與輸出格式。%f的輸出格式是以帶小數(shù)點(diǎn)的數(shù)學(xué)形式輸出浮點(diǎn)數(shù)。首先計(jì)算x*1000,結(jié)果為5168.94然后+0.5,結(jié)果為5169.44。然后進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,轉(zhuǎn)換成整型為5169,然后除以雙精度數(shù)據(jù)1000,結(jié)果也為雙精度數(shù)據(jù)5.169,輸出時(shí)按照%f的格式輸出,所以輸出結(jié)果為5.169000。
8[單選題] 表達(dá)式'5'一'1'的值是( )。
A.整數(shù)4B.字符4C.表達(dá)式不合法D.字符6
參考答案:A
參考解析:在C語(yǔ)言中,字符都是變?yōu)槠鋵?duì)應(yīng)的ASCⅡ碼值來(lái)參加算術(shù)運(yùn)算的,但字符間的相對(duì)位置關(guān)系還是不變的,字符5和字符1的ASCⅡ碼值相差仍是4。
9[單選題] 有以下程序:
程序的輸出結(jié)果是( )。
A.62B.63C.33D.32
參考答案:D
參考解析:本題考查while循環(huán)。當(dāng)i<20時(shí),進(jìn)入while循環(huán)體,循環(huán)體內(nèi)的for循環(huán)實(shí)現(xiàn)的功能是i%l0==0,也就是說(shuō)當(dāng)i值為0或者10的倍數(shù)的時(shí)候,跳出循環(huán),執(zhí)行i+=11;a+=i;,若i值不是l0的倍數(shù),則一直執(zhí)行for循環(huán)i--。①判斷i=0時(shí),執(zhí)行i+=11;a+=i;,i=11,a=11;②判斷i=10時(shí),跳出for循環(huán),執(zhí)行i+=11;a+=i;,i=21,a=32;③判斷i=21>20,不符合題意,結(jié)束循環(huán)。
10[單選題] 若有說(shuō)明語(yǔ)句:double*P,a;則通過(guò)scanf語(yǔ)句正確給輸入項(xiàng)讀人數(shù)據(jù)的程序段是( )。
A.
B.
C.
D.
參考答案:D
參考解析:double*P,a定義了一個(gè)指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量P;scanf(”%If”,p)表示用鍵盤(pán)輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf()函數(shù)要求在輸入double型數(shù)據(jù)時(shí),格式控制符必須用%lf。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D正確。