全国计算机等级考试题库二级C操作题100套(第57套)
第57套:
函數fun的功能是:把形參a所指數組中的最小值放在元素a[0]中,接著把 形參a所指數組中的最大值放在a[1]元素中;再把a所指數組元素中的次小值放 在a[2]中,把a所指數組元素中的次大值放在a[3];其余以此類推。例如:若a 所指數組中的數據最初排列為:9、1、4、2、3、6、5、8、7;則按規則移動 后,數據排列為:1、9、2、8、3、7、4、6、5。形參n中存放a所指數組中數 據的個數。
注意:規定fun函數中的max存放當前所找的最大值,px存放當前所找最大 值的下標。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
給定源程序:
include <stdio.h>
#define N 9 void fun(int a[], int n) { int i,j, max, min, px, pn, t; for (i=0; i<n-1; i+=2) { max = min = ___1___; px = pn = i; for (j=i+1; j<n; j++) { if (max<___2___) { max = a[j]; px = j; } if (min>___3___) { min = a[j]; pn = j; } } if (pn != i) { t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; } if (px != i+1) { t = a[i+1]; a[i+1] = max; a[px] = t; } } } main() { int b[N]={9,1,4,2,3,6,5,8,7}, i; printf("\nThe original data :\n"); for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n"); fun(b, N); printf("\nThe data after moving :\n"); for (i=0; i<N; i++) printf("%4d ", b[i]); printf("\n"); }解題思路:
第一處:外循環每循環一次均把數組a當前位置的值,分別賦值給max和min變量,所以應填: a[i]。
第二處:判斷max是否小于a[j],若小于,則把a[j]賦值給max,所以應填:a[j]。
第三處:判斷min是否大于a[j],若大于,則把a[j]賦值給min,所以應填:a[j]。
給定程序MODI1.C中函數fun的功能是:用遞歸算法計算斐波拉契數列中第n 項的值。從第1項起,斐波拉契數列為:1、1、2、3、5、8、13、21、……
例如,若給n輸入7,該項的斐波拉契數值為:13。
請改正程序中的錯誤,使它能得出正確結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
給定源程序:
解題思路:
第一處:switch后有多余的分號。
第二處:case 1后沒有返回語句,也應該為return 1;。所以應改為:case 1: return 1; case
2:return 1;。
某學生的記錄由學號、8門課程成績和平均分組成,學號和8門課程的成績已 在主函數中給出。請編寫函數fun,它的功能是:求出該學生的平均分放在記錄的ave成員中。
例如,學生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,他的平均分應當
是:78.875。
注意: 部分源程序在文件PROG1.C中。
請勿改動主函數main和其它函數中的任何內容,僅在函數fun部位中填入你編寫的若干語句。
給定源程序:
解題思路:
本題是求記錄結構中學生課程成績的平均值,其結果仍放在該記錄結構中。
參考答案:
總結
以上是生活随笔為你收集整理的全国计算机等级考试题库二级C操作题100套(第57套)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GAN应用汇总
- 下一篇: lvs-dr模式原理详解和可能存在的“假