2015年計算機二級考試《C語言》提高練習題五份(3)
1[單選題] 若有C語言表達式2+3*4+7/3,以下選項中敘述正確的執(zhí)行順序是
A.先執(zhí)行3*4得12,再執(zhí)行2+12得14,再執(zhí)行7/3得2,最后執(zhí)行14+2得16
B.先執(zhí)行3*4得12,再執(zhí)行7/3得2.5,最后執(zhí)行2+12+2.5得16.5
C.先執(zhí)行7/3得2,再執(zhí)行3*4得12,再執(zhí)行12+2得l4,最后執(zhí)行2+14得l6
D.先執(zhí)行2+3得5,再執(zhí)行5*4得20,再執(zhí)行20+7得27,最后執(zhí)行27/3得9
參考答案:A
參考解析:首先,在c語言中,乘除法優(yōu)先級要高于加減法,其次,除法運算符"/"兩邊參加運算對象都是整數(shù),運算結果要取整,故排除B,D選項;C語言中。因為“*”和“/”都滿足從左到右的運算規(guī)則,故應先計算3*4=12。因此c排除,答案為A選項。
2[單選題] 設有以下函數(shù):
voidfun(intn,char}s){……}
則下面對函數(shù)指針的定義和賦值均正確的是( )。
A.void(*pf)(int,char);pf=&fun;
B.void+pf( );pf=fun;
C.void*pf( );*pf=fun;
D.void(*pf)(int,char*);pf=fun;
參考答案:D
參考解析:函數(shù)的參數(shù)可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數(shù)中。函數(shù)名代表函數(shù)的人口地址,指向函數(shù)的指針應該定義為void(+pf)()。如果定義為void·pf(),則表示函數(shù)pf返回值為一個基類型為void的指針。因此D選項正確。
3[簡答題]下列給定程序中,函數(shù)proc()的功能是:將str所指字符串中的字母轉換為按字母序列的后續(xù)字母(但Z轉化為A,z轉化為a),其他字符不變。
請修改函數(shù)proc()中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
參考解析:
(1)錯誤:while(*str!='@')
正確:while(*str)
(2)錯誤:(*str)++;
正確:str++;
4[單選題] )以下敘述中正確的是( )
A.每個后綴為.C的C語言源程序都可以單獨進行編譯
B.每個后綴為.C的C語言源程序都應該包含一個main函數(shù)
C.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
D.在C語言程序中,只有main函數(shù)才可單獨進行編譯
參考答案:A
參考解析:一個普通的C函數(shù)可以單獨作為一個C的程序文件存在被包含到其他程序中。每個后綴為.C的C語言源程序都可以單獨進行編譯,所以B。D錯誤。main函數(shù)可以放在程序的開始。中間,最后,所以C錯誤。
5[簡答題]編寫函數(shù)void proc(int x,int pp[],int*n),它的功能是求出能整除x且不是奇數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參返回。
例如,若x中的值為30,則有4個數(shù)符合要求,它們是2 6 10 30。
請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
參考解析:
【解析】按照題目中要求,求出能整除x且不是奇數(shù)的各整數(shù)。首先判斷小于等于整數(shù)x的所有偶數(shù)是否能被x整除,將能被x整除的奇數(shù)放入數(shù)組pp中。最后將數(shù)組pp中元素的個數(shù)返回到主函數(shù)當中。
6[單選題] 若有下列定義(設int類型變量占2個字節(jié)):int j=8,j=9;則下列語句:printf(”i=%%d,j=%%d\n”,i,j);輸出的結果是( )。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9 D.8,9
參考答案:B
參考解析:本題考查函數(shù)的輸出格式。在printf函數(shù)中,格式說明符中有兩個“%”,表示將第1個%后面的字符原樣輸出,并不輸出其對應的變量值。
7[單選題] 軟件生命周期是指( )。
A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護過程
參考答案:A
參考解析:通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。
8[單選題] 以下敘述中錯誤的是( )。
A.C程序在運行過程中所有計算都以二進制方式進行
B.C程序在運行過程中所有計算都以十進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.C程序中字符變量存放的是字符的ASCIl碼值
參考答案:B
參考解析:C程序在運行過程中的所有計算都以二進制方式進行,所以B選項錯誤。
9[簡答題]編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存人XX所指數(shù)組中,非素數(shù)的個數(shù)通過k返回。
例如,若輸入17,則應輸出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考解析:
【考點分析】
本題考查:如何判斷非素數(shù);循環(huán)判斷結構;數(shù)組的引用。
【解題思路】
題目要求將l—m之問的非素數(shù)存人數(shù)組中,應使用循環(huán)判斷結構。循環(huán)語句用來遍歷1一m之間的每個數(shù),判斷語句用來判斷該數(shù)是否為素數(shù),若不是素數(shù),則將其存人數(shù)組中。這道題目是考查—個數(shù)是否為素數(shù)的簡單延伸,只要掌握了判斷素數(shù)的方法,問題便能順利解決。
【解題寶典】
判定一個數(shù)是否為素數(shù),即該數(shù)除了能被l和它本身外,不能被任何數(shù)整除。
代碼實現(xiàn)為:
for(j=2;j
此語句需要熟記,很多判斷素數(shù)的題目也可通過此法解決。
10[填空題]給定程序中,函數(shù)fun的功能是:計算形參X所指數(shù)組中N個數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),將所指數(shù)組中大于平均值的數(shù)據(jù)移至數(shù)組的前部,小于等于平均值的數(shù)據(jù)移至X所指數(shù)組的后部,平均值作為函數(shù)值返回,在主函數(shù)中輸出平均值和移動后的數(shù)據(jù)。
例如,有l(wèi)0個正數(shù):46、30、32、40、6、17、45、15、48、26,平均值為30.500000。
移動后的輸出為:46、32、40A5、48、30、6、17、15、26。
請在程序的下畫線處填入正確的內容并把下畫線刪除,使程序得出正確的結果。
注意:部分源程序在文件BLANKl.C中。
試題程序:
參考解析:
(1)sdN (2)j++ (3)一1
【解題思路】
填空l:由原程序可知,av代表的是平均值,而平均值的求法是所有數(shù)的總和除以數(shù)的個數(shù),因而本空應該填寫s/N。
填空2:y數(shù)組代表暫時存放X數(shù)組,if(X[i]>av)表達的是當x數(shù)組中的數(shù)大于平均值時,應該把這些大于平均值的數(shù)放在y數(shù)組的前半部分,因而此空應該填y[j++]。
填空3:此空表明當x[i]不等于什么時,X[i]中的數(shù)要賦值給Y數(shù)組,由題意可知此空只能填寫一1。