2015年9月計(jì)算機(jī)二級(jí)《C語(yǔ)言》突破模擬卷(2)
22有如下程序:
該程序的執(zhí)行結(jié)果是( )。
A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)
參考答案:B
參考解析:本題考查do-while語(yǔ)句,當(dāng)x=23時(shí),執(zhí)行do后的語(yǔ)句,x--的表達(dá)式值為x=x=1,此時(shí)x的值為22,而!x為0,因此while循環(huán)不成立,退出,故選擇B選項(xiàng)。
23有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.運(yùn)行后報(bào)錯(cuò)B.6 6C.611 D.510
參考答案:A
參考解析:本題中首先定義了一個(gè)一維數(shù)組。并初始化,由于定義該數(shù)組的時(shí)候省了長(zhǎng)度,因此該數(shù)組的長(zhǎng)度為初始化時(shí)候賦初值的個(gè)數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語(yǔ)句使得P指向數(shù)組的第6個(gè)元素,而在程序中定義了一個(gè)指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲(chǔ)空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯(cuò)。
24下列程序的運(yùn)行結(jié)果是( )。
A.gaeB.angC.program D.有語(yǔ)法錯(cuò)
參考答案:A
參考解析:本題考查指針用法,if語(yǔ)句的功能是判斷兩個(gè)數(shù)組中的字符是否相同,如果相同則輸出。
25C語(yǔ)言中的簡(jiǎn)單數(shù)據(jù)類型有( )。
A.整型、實(shí)型、邏輯型
B.整型、實(shí)型、字符型
C.整型、字符型、邏輯型
D.整型、實(shí)型、邏輯型、字符型
參考答案:B
參考解析:整(數(shù))型(長(zhǎng)、短)、實(shí)(數(shù))型(長(zhǎng)、短)、字符型這3種是最常用,也是最簡(jiǎn)單的數(shù)據(jù)類型。
26下列敘述中正確的是( )。
A.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句
B.cotinue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句
參考答案:A
參考解析:本題考查循環(huán)跳出的知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在switch循環(huán)體內(nèi)及語(yǔ)句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語(yǔ)句不會(huì)使整個(gè)循環(huán)終止;③循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用goto語(yǔ)句或者break語(yǔ)句。
27有以下程序:
當(dāng)程序運(yùn)行時(shí)輸入a<回車>后,下列敘述中正確的是( )。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2無確定值
參考答案:A
參考解析:本題考查getchar()函數(shù),從終端讀入一個(gè)字符作為函數(shù)值。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入回車鍵時(shí),讀入才開始執(zhí)行。所以當(dāng)輸入a<回車>后,變量c1被賦予字符a,而變量c2被賦予回車符。
28以三級(jí)模式為框架形成的3種數(shù)據(jù)庫(kù)中,真實(shí)存在于計(jì)算機(jī)外存的數(shù)據(jù)庫(kù)是( )。
A.概念數(shù)據(jù)庫(kù)B.用戶數(shù)據(jù)庫(kù)C.物理數(shù)據(jù)庫(kù)D.邏輯數(shù)據(jù)庫(kù)
參考答案:B
參考解析:以內(nèi)模式為框架所組成的數(shù)據(jù)庫(kù)叫物理數(shù)據(jù)庫(kù);以概念模式為框架所組成的數(shù)據(jù)庫(kù)-1概念數(shù)據(jù)庫(kù);以外模式為框架所組成的數(shù)據(jù)庫(kù)叫用戶數(shù)據(jù)庫(kù),它是真實(shí)存在于計(jì)算機(jī)外存中的數(shù)據(jù)庫(kù)。
29設(shè)int x=7,則~x的值是( )。
A.-8B.7C.-1D.1
參考答案:A
參考解析:本題主要考查按位求反運(yùn)算和C語(yǔ)言正負(fù)數(shù)的表示。“0”代表正數(shù),“1”代表負(fù)數(shù);x=7的二進(jìn)制為00111,第一個(gè)0代表正數(shù),~x為ll000,第一個(gè)1代表負(fù)數(shù),值為8。
30下面的函數(shù)調(diào)用語(yǔ)句中fune函數(shù)的實(shí)參個(gè)數(shù)是( )。
func((f2vl,v2),(v3,v4,v5),(v6,max(v7,v8)))
A.3B.4C.5D.8
參考答案:A
參考解析:實(shí)參是在調(diào)用時(shí)傳遞該函數(shù)的參數(shù),故選A。
31有以下程序片段:
其能正確表示的數(shù)學(xué)函數(shù)關(guān)系是( )。
A.
B.
C.
D.
參考答案:C
參考解析:y的初始值為~1,當(dāng)x不等于0時(shí),給y賦值為1,也就是這時(shí)x>0和x>0都為1,然后如果x>0時(shí)y的值又賦值為1,注意后面的else語(yǔ)句是跟if(x>0)y=1相匹配,就是說除了x>0 y=1之外,其他的情況y都為0。
32下述程序的輸出結(jié)果是( )。
A.6357B.6135C.37D.691357
參考答案:C
參考解析:本題先將指針p指向二維數(shù)組ch[2][5],相當(dāng)于p[0]=″1234″,p[1]=″5678″;通過雙重for循環(huán),將P中的字符隔一個(gè)輸出一個(gè),通過“s=p[i][j]- ˊ0ˊ;”語(yǔ)句將所要輸出的字符轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù)。
33以下程序的輸出結(jié)果是( )。
A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7 D.2,3,4,5,1
參考答案:B
參考解析:函數(shù)調(diào)用時(shí),prt函數(shù)的作用是為使m數(shù)組中的數(shù)自增1,因此數(shù)組下標(biāo)從0開始,每個(gè)元素都自加1。
34有以下程序:
程序的輸出結(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,也就是說當(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)。
35已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,那么它的前序遍歷序列是( )。
A.AcbedB.decabC.deabc D.cedba
參考答案:D
參考解析:二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點(diǎn),然后按左右順序遍歷子結(jié)點(diǎn);②中序首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對(duì)其進(jìn)行前序遍歷,正確答案選項(xiàng)為D。
36現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個(gè)鏈表中連續(xù)的3個(gè)結(jié)點(diǎn)。
現(xiàn)要將q和r所指結(jié)點(diǎn)交換前后位置,同時(shí)要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語(yǔ)句是( )。
A.q->next=r->next;p->next=r;r-->next=q;
B.Q->next=r;q->next=r->next;r-->next=q;
C.Q->next=r->next;r->next=q;p-->next=r;
D.qnext=q;p->next=r;q->next=r->next;
參考答案:D
參考解析:由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點(diǎn)交換前后位置,只要使q指向r的后一個(gè)結(jié)點(diǎn),P指向r結(jié)點(diǎn),r指向q結(jié)點(diǎn)即可。而在選項(xiàng)D中,r->next=q,這時(shí)r指向的節(jié)點(diǎn)為q;p->next=r,這時(shí)P指向的節(jié)點(diǎn)為r;q->next=r->next,因?yàn)閞結(jié)點(diǎn)已經(jīng)指向q,所以執(zhí)行這個(gè)語(yǔ)句后q又指向q,所以選項(xiàng)D不正確。
37下列程序的輸出結(jié)果是( )。
A.3,6,18B.3,6,2C.6,3,18 D.6,3,2
參考答案:B
參考解析:本題考查if…else語(yǔ)句。如果if條件成立,則執(zhí)行if下面的語(yǔ)句,不成立則執(zhí)行else,判斷條件,發(fā)現(xiàn)a
38有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.AbB.B.aaC.Aa D.Bb
參考答案:A
參考解析:函數(shù)fun的作用是將指針a指向指針b的內(nèi)容,然后將該內(nèi)容加1。執(zhí)行語(yǔ)句“fun(p1,p2);”后,pl和p2指向的地址并未改變,只是將p2指向的存儲(chǔ)單元的值增加1。所以,答案是A。
39假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是( )。
A.11B.4C.12D.3
參考答案:B
參考解析:本題考查if…else語(yǔ)句。if條件為真則執(zhí)行后面的表達(dá)武,如果if為假則執(zhí)行else語(yǔ)句。
40面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是( )。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
參考答案:C
參考解析:面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念但不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
二、程序填空題
41函數(shù)fun()的功能是:逆置數(shù)組元素中的值。形參n給出數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如:若a所指數(shù)組中的數(shù)據(jù)依次為:1、2、3、4、5、6、7、8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在fun()函數(shù)的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。
試題程序:
參考解析:
【1】n/2【2】i【3】a[n-i-1]
【解析】fun()函數(shù)實(shí)現(xiàn)的功能是實(shí)現(xiàn)數(shù)組的逆置。具體步驟通過參數(shù)傳遞,得到數(shù)組指針(即數(shù)組名)和數(shù)組記錄大小的變量n,通過這兩個(gè)參數(shù)配置for循環(huán),遍歷數(shù)組的中間的元素位置,每次循環(huán)都將i位置和對(duì)應(yīng)位置結(jié)點(diǎn)(i距離0位置等于其距離尾位置的結(jié)點(diǎn))的元素交換,由此實(shí)現(xiàn)數(shù)組的逆置。
三、程序改錯(cuò)題
42下列給定程序中,函數(shù)proc()的功能是求出數(shù)組中最小數(shù)和次最小數(shù),并把最小數(shù)和arr[O]中的數(shù)對(duì)調(diào),次最小數(shù)和arr[1]中的數(shù)對(duì)調(diào)。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
參考解析:
四、程序設(shè)計(jì)題
43請(qǐng)編寫函數(shù)proc(),它的功能是求Fibonacci數(shù)列中小于n的最大的一個(gè)數(shù),結(jié)果由函數(shù)返回。
Fibonacci數(shù)列F(n)的定義為
F(0)=O,F(xiàn)(1)=1
F(n)=F(n-1)+F(n-2)
例如,n=500時(shí),函數(shù)值為377。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填寫所編寫的若干語(yǔ)句。
試題程序:
參考解析:
【解析】由題目中所給的公式可知,F(xiàn)ibonacci數(shù)列的第n項(xiàng)為第n-1項(xiàng)和第n-2項(xiàng)的和。要求Fibonacci數(shù)列中小于n的最大的一個(gè)數(shù)。首先根據(jù)公式求出Fibonacci數(shù)列的第n項(xiàng)的值,當(dāng)?shù)趇項(xiàng)大于n,則返回第i-1項(xiàng)的值。