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