1[填空題]給定程序中,函數fun的功能是:計算形參X所指數組中N個數的平均值(規(guī)定所有數均為正數),將所指數組中大于平均值的數據移至數組的前部,小于等于平均值的數據移至X所指數組的后部,平均值作為函數值返回,在主函數中輸出平均值和移動后的數據。
例如,有l(wèi)0個正數: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代表的是平均值,而平均值的求法是所有數的總和除以數的個數,因而本空應該填寫s/N。
填空2:y數組代表暫時存放X數組,if(X[i]>av)表達的是當x數組中的數大于平均值時,應該把這些大于平均值的數放在y數組的前半部分,因而此空應該填y[j++]。
填空3:此空表明當x[i]不等于什么時,X[i]中的數要賦值給Y數組,由題意可知此空只能填寫一1。
2[單選題] 有以下程序:
程序運行后的輸出結果是( )。
A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World
參考答案:A
參考解析:P是指向二維字符數組第二行One+Dream!的數組指針,所以長度是l0,打印輸出的也是該字符串。
3[簡答題]學生的記錄由學號和成績組成,N名學生的數據已放入主函數中的結構體數組s中,請編寫函數fun,其功能是:把分數最高的學生數據放在b所指的數組中。注意:分數最高的學生可能不止一個,函數返回分數最高的學生人數。
注意:部分源程序給出如下。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。
試題程序:
參考解析:
【考點分析】
本題考查:結構體數組操作;用循環(huán)判斷結構查找數組中的最大值。
【解題思路】
該程序使用兩個循環(huán)判斷語句,第1個循環(huán)判斷語句的作用是找出最大值;第2個循環(huán)判斷語句的作用是找出與max相等的成績(即最高成績)的學生記錄,并存入b中。
【解題寶典】’
對于如何找出數組中最大值(多個相等)的方法,我們已經不陌生。如何對結構體數組進行類似操作呢?
掌握以下語句:
4[單選題] 有以下程序:
程序運行后的輸出結果是( )。
A.7B.10C.8D.9
參考答案:D
參考解析:調用f(a,b)函數返回3,調用f(a,c)函數返回6,所以外層調用f(f(a,b),f(a,c));即調用f(3,6)函數返回9。
5[單選題] 有以下程序
程序的輸出結果是
A.9B.14C.10D.15
參考答案:D
參考解析:考查函數的遞歸調用,只需要一步一步遞歸調用fun函數即可,執(zhí)行fun(5)=5+(4+(3+(2+fun(1))))=15。所以答案為D選項。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |