一、程式填空題
給定程式中,函式fun的功能是:計算形參X所指陣列中N個數的平均值(規定所有數均為正數),作為函式值返回,並將大於平均值的數放在形參Y所指陣列中,在主函式中輸出。
例如,有l0個正數:46、30、32、40、6、17、45、15、
48、26,其平均值為30.500000。
主函式中輸出:46 32 40 45 48。
請在程式的下畫線處填入正確的內容並把下畫線刪除,使程式得出正確的結果。注意:部分源程式在檔案BLANK1.C中。
不得增行或刪行,也不得更改程式的結構!
試題程式:
二、程式修改題
下列給定程式中,函式fun的功能是:根據整型引數m,計算如下公式的值。
例如,若m=2000,則應輸出o.000160。
請改正程式中的錯誤,使它能得出正確豹結果。
注意:部分源程式在檔案blODll.C中,不要改動main函式,不得增行或刪行,也不得更改程式的結構!
三、程式設計題
已知學生豹記錄由學號和學習成績構成。N名學生的資料已a結構體陣列中。請編寫函式fun,該函式的功能是:找出成績最低的學生記錄,通過形參返回主函式(規定只有一個最低分)。已給出函式的首都,請完戒該函式。
注意:部分源程式在檔案PROGl.C中。
請勿改動主函式nlaill和其他函式中的任何內容,僅在函式fun的花括號中填入你編寫的若干語句。
試題程式:
參考答案及解析
一、程式填空題
【參考答案】
(1)0.0(2)X[i]/N(3)j++
【解題思路】
填空1:通過上面的程式可以看出此空考的'是給變數賦初值,av代表的是平均值,因此av的初值應該是0.0。
填空2:通過for迴圈可知,此空代表求平均值,因此應該填寫X[il/N。
填空3:先把大於平均值的數放在形參y所指陣列中,然後使下標值加l,因此此空應該填j++。
二、程式修改題
【參考答案】
(1)double fun(int m)
(2)for(i=100;i<=m;i+=100)
【解題思路】
(1)題目要求在函式fun中求級數前Ill項和,可用迴圈語句,每次計算級數中的一項,然後累加。第一處錯誤在於定義fun(int m),由函式的返回值y可知此處應該定義為double fun(int m)。
(2)for(i=100,i<=m,i+=100)中是一個簡單的語法錯誤。for迴圈語句的形式為for(表示式1;表示式2;表示式3),其表示式之間應以”;”相隔。
三、程式設計題
【參考答案】
【解題思路】 找出結構體陣列元素中的最小值。先認為第1個值最小,即*s=a[o];,如果在迴圈的過程中發現比第l個值更小的,就將指標s指向該元素,直到找到最小元素。另外,本題還涉及結構體中的指向運算子,請考生注意。