1、国家二级 C语言机试(操作题)模拟试卷 491及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:计算形参 x所指数组中 N个数的平均值 (规定所有数均为正数 ),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至 x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10个正数: 46 30 32 40 6 17 45 15 48 26,平均值为: 30 500000 移动后的输出为: 30 6 17 15 26 46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程
2、序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! #include #include #define N 10 double fun(double *x) int i, j; double av, yN; av=0; *found* for(i=0; i void fun(char *s, int num5) int k, i=5; for(k=0; k=0) numi+; main() char s181; int num15, i; printf(“ nPlease enter a string: “); gets(s1); fun(s1, nums)
3、; for (i=0; i #define M 4 #define N 5 int fun(int aMN) main() Int aaMN=1, 3, 5, 7, 9, 2, 9, 9, 9, 4), 6, 9, 9, 9, 8, 1, 3, 5, 7, 0; int i, j, y; void NONO(); printf(“The original data is: n“); for(i=0; iM; i+) for (j=0; jN; j+) printf(“ 6d“, aaij); printf(“ n“); y=fun(aa); printf(“ nThe sum: d n“, y
4、); printf(“ n“); NONO(); void NONO() *请在此函数内打开文件,输入测试数 据,调用 fun函数,输出数据,关闭文 件。 * int i, j, y, k, aaMN; FILE *rf, *wf; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “W“); for(k=0; k10; k+) for(i=0; iM; i+) for(j=0; jN; j+) fscanf(rf, “ d“, for(i=0; iN; i+) tot+=a0i; tot+=aM-li; for(i=l; KM -1; i+) tot+=ai0; tot+=aiN-1; return tot; 【试题解析】 进入 fun函数,根据前面的分析:求周边元素的和,可以采用两个循环分别把行元素和列元素相加。但要避免把周边元素重复相加。