第 1 頁:選擇題 |
點(diǎn)擊查看:2017年12月計算機(jī)二級考試C語言考前提分卷匯總
一、選擇題(每小題1分,共40分)
1[單選題] 有以下程序(注:字符a的ASCII碼值為97):
程序運(yùn)行后的輸出結(jié)果是( )。
A.789
B.abe
C.7890
D.979899
參考答案:A
參考解析:因?yàn)樾懽址鸻,b,c的ASCII碼值分別為97,98,99,而在do while循環(huán)語句中,每次對字符的ASCII碼值取余數(shù)并輸出,所以分別輸出7,8,9。
2[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.7
B.10
C.8
D.9
參考答案:D
參考解析:調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。
3[單選題] 下面敘述中錯誤的是( )。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性
參考答案:A
參考解析:軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項(xiàng)A錯誤。程序調(diào)試的基本步驟有:錯誤定位、修改設(shè)計和代碼,以排除錯誤、進(jìn)行回歸測試,防止引進(jìn)新的錯誤。程序調(diào)試通常稱為Debug,即排錯。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。
4[單選題] 以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是( )。
A.結(jié)構(gòu)化程序使用goto語句會很便捷
B.在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D)由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
參考答案:B
參考解析:濫用goto語句將使程序的流程毫無規(guī)律,可讀性差,對于初學(xué)者來說盡量不要使用,所以A錯誤。一個結(jié)構(gòu)化程序可以包含順序、分支、循環(huán)結(jié)構(gòu)中的一種或多種,所以C錯誤。由三種基本結(jié)構(gòu)構(gòu)成的程序可以解決任何復(fù)雜的問題,所以D錯誤。
5[單選題] 若變量已正確定義為int型,要通過語句:
scanf("%d,%d,%d",&a,&b,&c);
給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是( )。(注:口代表一個空格符)
ABCD參考答案:D
參考解析:scanf()的格式控制串可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配。所以逗號必須輸入。
6[單選題] 以下四個程序中,完全正確的是( )。
ABCD參考答案:B
參考解析:C語言中注釋語句的注釋方法是:/*注釋內(nèi)容*/或//注釋一行。所以A與C錯誤,D選項(xiàng)中預(yù)編譯命令indade前丟掉了”#”號。所以選擇B。
7[單選題] 算法的空間復(fù)雜度是指( )。
A.算法在執(zhí)行過程中所需要的計算機(jī)存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
參考答案:A
參考解析:算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A。
8[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
參考答案:A
參考解析:函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給形參而不能把形參的值反向地傳送給實(shí)參。因此在函致調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會變化,所以數(shù)組C中的元素的值并沒有變化,選擇A。
9[單選題] 若變量x,y已正確定義并賦值,以下符合C語言語法的表達(dá)式是( )。
A.x+1=y
B.++x,y=x- -
C.x=z+10=z+y
D.double(x)/10
參考答案:B
參考解析:A選項(xiàng)中不能將變量Y賦給表達(dá)式,C選項(xiàng)中錯誤與A選項(xiàng)一樣,D選項(xiàng)中強(qiáng)制類型轉(zhuǎn)換表達(dá)式應(yīng)寫成(double)x/10。
10[單選題] 若有以下函數(shù)首部:
則下面針對此函數(shù)的函數(shù)聲明語句中正確的是( )。
ABCD參考答案:B
參考解析:函數(shù)聲明的一般形式為:“類型說明符被調(diào)函數(shù)名(類型形參,類型形參,……);"或"類型說明符被調(diào)函數(shù)名(類型,類型,……);”由于函數(shù)首部為int fun(double x[10],int * n),因此B選項(xiàng)正確。
11[單選題] 設(shè)有以下語句:
執(zhí)行后,c的值為( )。
A.7
B.9
C.8
D.6
參考答案:B
參考解析:b為2,二進(jìn)制為00000010,執(zhí)行左移兩位操作后為00001000,然后與a 00000001做異或操作結(jié)果為00001001,即十進(jìn)制的9。
12[單選題] 數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是( )。
A.數(shù)據(jù)庫設(shè)計
B.數(shù)據(jù)庫系統(tǒng)設(shè)計
C.數(shù)據(jù)庫維護(hù)
D.數(shù)據(jù)庫管理員培訓(xùn)
參考答案:A
參考解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是數(shù)據(jù)庫的設(shè)計。
13[單選題] 以下定義語句中正確的是( )。
ABCD參考答案:B
參考解析:A選項(xiàng)語句中b變量還沒有定義不能直接用于給a變量賦值。c選項(xiàng)語句中*b、* c表示的是一個實(shí)型變量的地址,不能再將&b賦值給指針型變量c。D選項(xiàng)語句中a=0.0后面應(yīng)該為逗號,不能是分號。
14[單選題] 下列敘述中正確的是( )。
A.在switch語句中,不一定使用break語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.break語句只能用于switch語句
參考答案:A
參考解析:default語句在switch語句中可以省略,所以B錯誤;switch語句中并非每個case后都需要使用break語句,所以C錯誤;break語句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D錯誤。
15[單選題] 對于一個正常運(yùn)行的C程序,以下敘述中正確的是( )。
A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始
D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
參考答案:C
參考解析:任何一個c程序都是從主函數(shù)main開始,至主函數(shù)main結(jié)束,所以選擇c選項(xiàng)。
16[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.7
B.5
C.3
D.9
參考答案:C
參考解析:向switch語句塊傳送參數(shù)后,編譯器會先尋找匹配的case語句塊,找到后就執(zhí)行該語句塊,遇到break跳出;如果沒有匹配的語句塊,則執(zhí)行default語句塊。case與default沒有順序之分。所以第一次循環(huán)k的值為1,執(zhí)行c+=k,c的值為l,再執(zhí)行case 2后的語句c++,c的值為2,遇到break語句跳出循環(huán);第二次循環(huán)k的值為2,執(zhí)行case 2后面的語句c++,c的值為3,跳出循環(huán)。
17[單選題] 以下定義數(shù)組的語句中錯誤的是( )。
A.int num[][3]={{1,2},3,4,5,6};
B.int num[2][4]={{1,2},{3,4},{5,6}};
C.int num[]={1,2,3,4,5,6};
D.int hum[][4]={1,2,3,4,5,6};
參考答案:B
參考解析:B)選項(xiàng)中定義的數(shù)組為2行4列,而賦值時賦成了3行所以出錯。
18[單選題] 下列語句組中,正確的是( )。
ABCD參考答案:A
參考解析:字符型指針變量可以用選項(xiàng)A的賦值方法:char*s;s="Olympic",選項(xiàng)C的寫法:char*s,s={"Olympic"};是錯誤的。字符數(shù)組可以在定義的時候初始化:char s[]={"Olympic"};?或者char s[]="Olympic",都是正確的。但是不可以在定義字符數(shù)組后,對數(shù)組名賦值。(數(shù)組名是常量,代表數(shù)組首地址)所以選項(xiàng)B和選項(xiàng)D都是錯誤的。對于本例,選項(xiàng)B、D中字符數(shù)組8的大小至少為8,才能存放下字符串。(字符串的末尾都有結(jié)束標(biāo)識‘\0’)。
19[單選題] 以下關(guān)于typedef的敘述錯誤的是( )。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代替
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
參考答案:A
參考解析:typedef并不是增加了新類型,而是用一個新名字替代已存在的類型,不能為變量說明一個新名,使用typedef可以增強(qiáng)程序的可移植性。所以A選項(xiàng)錯誤。
20[單選題] 在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是( )。
A.橢圓形
B.矩形
C.菱形
D.三角形
參考答案:C
參考解析:在E-R圖中實(shí)體集用矩形,屬性用橢圓,聯(lián)系用菱形。
21[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.Zhao,m,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
參考答案:A
參考解析:本題考查的是函數(shù)調(diào)用時的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個拷貝,函數(shù)f所做所有操作只是針對這個數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會影響變量c的值。
22[單選題] 耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是( )。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊問互相連接的緊密程度
參考答案:B
參考解析:模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個模塊內(nèi)部各個元素問彼此結(jié)合的緊密程度,所以C與D錯誤。
23[單選題] 以下不能輸出字符A的語句是( )。(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)
ABCD參考答案:B
參考解析:B選項(xiàng)輸出的格式為%d,即為整型格式,所以輸出字符A的ASCII碼值65,而不是字符A。由于大寫字母比與其對應(yīng)的小寫字母的ASCII碼值小32,所以A正確。字符A的ASCII碼值就是65,所以以%c格式輸出可以輸出字符A,所以C正確。由于字符A的ASCII碼值比字符B的小1,所以D正確。
24[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.120
B.11
C.6
D.21
參考答案:D
參考解析:fun函數(shù)中的變量x為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可以保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),s的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,X的定義相當(dāng)于不存在,直接使用上次x的值。fun函數(shù)被調(diào)用了5次,每次調(diào)用后的返回值累加到s上。5次調(diào)用后,x的值為6,s的值為1+2+3+4+5+6=21。因此D選項(xiàng)正確。
25[單選題] 軟件設(shè)計中劃分模塊的一個準(zhǔn)則是( )。
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D.高內(nèi)聚高耦合
參考答案:B
參考解析:一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。
26[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.2,3,1,6,8.7,5,4,10,9,
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3,4,5,6,7,8,9,10,
D.10,9,8,7,6,1,2,3,4,5,
參考答案:C
參考解析:本題的子函數(shù)f的功能是對結(jié)構(gòu)體變量8中第二個成員數(shù)組中所有的數(shù)據(jù)進(jìn)行從小到大的冒泡排序,所以結(jié)果是C。
27[單選題] 有三個關(guān)系R、S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為( )。
A.選擇
B.投影
C.交
D.并
參考答案:D
參考解析:關(guān)系T中包含了關(guān)系R與S中的所有元組,所以進(jìn)行的是并的運(yùn)算。
28[單選題] 有以下程序:
程序執(zhí)行后的輸出結(jié)果是( )。
A.20
B.25
C.45
D.36
參考答案:B
參考解析:統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運(yùn)行的結(jié)果是l+3+5+7+9=25。
29[單選題] 下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是( )。
A.循環(huán)隊(duì)列
B.棧
C.隊(duì)列
D.二叉樹
參考答案:B
參考解析:棧是按先進(jìn)后出的原則組織數(shù)據(jù)的。隊(duì)列是先進(jìn)先出的原則組織數(shù)據(jù)。
30[單選題] 以下敘述中錯誤的是( )。
A.gets函數(shù)用于從終端讀入字符串
B.getchar函數(shù)用于從磁盤文件讀入字符
C.fput,函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
參考答案:B
參考解析:本題考查字符處理函數(shù)和文件操作函數(shù),屬于基礎(chǔ)知識,其中B選項(xiàng)getehar函數(shù)是用于從終端讀入一個字符。
31[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.33
B.197
C.143
D.28
參考答案:C
參考解析:本題考查帶參數(shù)的宏定義,s為帶參數(shù)的宏定義,運(yùn)行S(k+j)為4*(k+j)*k+j+1=143,選項(xiàng)C正確。
32[單選題] 以下選項(xiàng)中能表示合法常量的是( )。
A.1,200
B.1.5E2.0
C.'\'
D."\007"
參考答案:D
參考解析:A選項(xiàng)中整型常量應(yīng)表示為1200,不能包含“,”。B選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C選項(xiàng)中轉(zhuǎn)義字符以“\”開始,若要表示字符“\”,應(yīng)寫為“\\”。
33[單選題] 設(shè)有如下函數(shù)定義:
若執(zhí)行調(diào)用語句“n=fun(3);”,則函數(shù)fun總共被調(diào)用的次數(shù)是( )。
A.2
B.3
C.4
D.5
參考答案:B
參考解析:首先n=fun(3),3被當(dāng)作參數(shù)傳遞進(jìn)去,這就進(jìn)行了一次調(diào)用,3被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行這句else returnfun(k-1)+1;這就調(diào)用了第二次,而參數(shù)是3-l也就是2。2被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行這句elsereturn fun(k-1)+1;這就調(diào)用了第三次,而參數(shù)是2-1也就是1。1被當(dāng)作參數(shù)傳進(jìn)去后,程序會執(zhí)行這句else if(k==1)return 1;不再遞歸調(diào)用,所以最終結(jié)果為3次。
34[單選題] 若有定義語句:
char s[10]="1234567\0\0";
則strlen(S)的值是( )。
A.7
B.8
C.9
D.10
參考答案:A
參考解析:strlen()函數(shù)在計算字符串長度時,遇到結(jié)束標(biāo)識為止,且長度不包括結(jié)束標(biāo)識。本題中字符串,從第一個字符開始,遇到第一個結(jié)束標(biāo)識‘\0’為止,注意‘\0’不占字符串長度,所以字符串長度為7。因此A選項(xiàng)正確。
35[單選題] C源程序中不能表示的數(shù)制是( )。
A.十六進(jìn)制
B.八進(jìn)制
C.十進(jìn)制
D.二進(jìn)制
參考答案:D
參考解析:在C語言中整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制等形式表示,但不包括二進(jìn)制,所以選擇D。
36[單選題] 若有以下定義:
則對x數(shù)組元素的正確引用是( )。
A.pt+3
B.*&x[10]
C.*(pt+10)
D.*(x+3)
參考答案:D
參考解析:沒有A選項(xiàng)的引用形式。*與&放在一起作用抵消,所以B選項(xiàng)錯誤,最大只能引用到x[9]。*(pt+i)表示引用指針pt所指元素后的第i個元素,所以c選項(xiàng)錯誤,最大只能為*(pt+9)。因此D選項(xiàng)正確。
37[單選題] 有以下程序:
程序運(yùn)行后的輸出結(jié)果是( )。
A.A B E F
B.C D E F
C.A B C D
D.C D A B
參考答案:B
參考解析:本題考察的是變量的作用范圍。如果在同一個源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即不起作用。本題中,在funl()和main()函數(shù)內(nèi)訪問的是全局變量a和b,在fun2()函數(shù)中訪問的是形參變量a和b。所以,main()函數(shù)中的printf()函數(shù)輸出的是在fun1()函數(shù)中被改變的全局變量a和b的值C、D,而fun2()函數(shù)中輸出的是傳遞給它的實(shí)參值E、F。因此B選項(xiàng)正確。
38[單選題] 有以下程序:
若運(yùn)行時輸入:246<回車>,則輸出結(jié)果為( )。
A.204
B.200
C.240
D.246
參考答案:A
參考解析:奉題中輸入的3個數(shù)據(jù)2,4,6分別賦值給了x[0][0],x[1][0],x[2][0]。x[0][1]仍為初始時的0,所以打印輸出時的結(jié)果為A選項(xiàng)。
39[單選題] 設(shè)有定義:
int a=1,b=2,e=3;
以下語句中執(zhí)行效果與其他三個不同的是( )。
A.if(a>b) c=a,a=b,b=c;
B.if(a>b) {e=a,a=b,b=e;}
C.if(a>b)e=a;a=b;b=C;
D.if(a>b) {c-7-a;a=b;b=e;}
參考答案:C
參考解析:由于a小于b,所以所有選項(xiàng)中的條件都為假,c選項(xiàng)中實(shí)際執(zhí)行了a=b;b=c;兩個操作。而A、B、D選項(xiàng)由于條件不成立.所以什么也沒有做,所以選擇C選項(xiàng)。
40[單選題] 軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是( )。
A.編譯程序
B.操作系統(tǒng)
C.教務(wù)管理系統(tǒng)
D.匯編程序
參考答案:C
參考解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有C教務(wù)管理系統(tǒng)才是應(yīng)用軟件。
二、程序填空題(共18分)
41[填空題]
下列給定程序中,函數(shù)fun的功能是進(jìn)行數(shù)字字符轉(zhuǎn)換。若形參ch中是數(shù)字字符‘0’~‘9’,則將‘0’轉(zhuǎn)換成‘9’,‘1’轉(zhuǎn)換成‘8’,‘2’轉(zhuǎn)換成‘7’,……,‘9’轉(zhuǎn)換成‘0’;若是其他字符則保持不變;并將轉(zhuǎn)換后的結(jié)果作為函數(shù)值返回。
請?jiān)诔绦虻南聞澗處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。
注意:部分源程序在文件BLANKl.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
參考解析:【參考答案】 (1)char
(2)eh<='9'
(3)'0'
【考點(diǎn)分析】
本題考查:函數(shù)定義,注意函數(shù)定義的一般形式以及有參函數(shù)和無參函數(shù)的區(qū)別;if語句條件表達(dá)式,本題的條件表達(dá)式是判斷數(shù)字字符;函數(shù)返回值,其一般形式為“return表達(dá)式;”。
【解題思路】
填空l:函數(shù)定義時,類型標(biāo)識符指明了本函數(shù)的類型,函數(shù)的類型實(shí)際上是函數(shù)返回值的類型,所以此處應(yīng)該填char。
填空2:通過if條件語句判斷字符串中字符是否是數(shù)字字符,既大于等于字符‘0’,同時小于等于字符‘9’。
填空3:return語句完成函數(shù)返回操作,要實(shí)現(xiàn)字符轉(zhuǎn)換,應(yīng)填入return'9'-(ch-'0')。
【解題寶典】
有參函數(shù)定義,其一般形式為:類型標(biāo)識符函數(shù)名(形式參數(shù)表列)
{聲明部分
語句
在形參表中給出的參數(shù)稱為形式參數(shù),它們可以是各種類型的變量,各參數(shù)之間用逗號間隔。在進(jìn)行函數(shù)調(diào)用時,主調(diào)函數(shù)將賦予這些形式參數(shù)實(shí)際的值。形參既然是變量,必須在形參列表中給出類型說明。
三、程序修改題(共18分)
42[簡答題]
下列給定程序中,函數(shù)fun的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼值升序排序后輸出。例如,若輸入“edcba”,則應(yīng)輸出“abcde”。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODI1.C中,不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
參考解析:【參考答案】
【解題思路】
(1)本題是利用選擇法對數(shù)組元素進(jìn)行比較排序。所謂選擇法,是依次用當(dāng)前取得的元素和其后面的元素進(jìn)行比較,在第一個元素和其后面的元素順次比較時,可以借助中間變量來對兩個數(shù)進(jìn)行交換,要保證第一個元素始終存放數(shù)組中的最大數(shù),以后依次挑選出次大數(shù),這樣最終的數(shù)組就是有序的。strlen函數(shù)所求得的字符串長度包括字符串結(jié)束符,所以要減1。
(2)這里是一個分析邏輯錯誤,題中要求按升序排序,所以應(yīng)改為
四、程序設(shè)計題(共24分)
43[簡答題]
m個人的成績存放在score數(shù)組中,請編寫函數(shù)fun,它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為10、20、30、40、50、印、70、80、90時,函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為10、20、30、40。
注意:部分源程序在文件PROG1.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:【參考答案】
【解題思路】
要計算低于平均分的人數(shù),首先應(yīng)該求出平均分,然后通過for循環(huán)語句和if條件語句找出低于平均分的分?jǐn)?shù)。該題第1個循環(huán)的作用是求出平均分av,第2個循環(huán)的作用是找出低于平均分的成績記錄并存入below數(shù)組中。
相關(guān)推薦:
【考試吧整理】計算機(jī)等級考試各科目歷年真題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |