1、国家二级 C语言机试(操作题)模拟试卷 557及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:计算下式前 n项的和,并作为函数值返回。例如,当形参 n的值为 10时,函数返回一 0 204491。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h double fun(int n) int i, k; double s, t; s=0; *found* k=【 1】; for(i=1; i =n; i+)*found* t=【 2】; s=s
2、+k*(2*i一 1)*(2*i+1) (t*t);*found* k=k*【 3】; retuEn s; main() int n=一 1; wlaile(n 0) printf(“Please input(n 0): “); scanf(“ d“, &n); printf (“ nThe result is: f n“, fun(n); 二、程序修改题 2 下列给定程序中函数 fun的功能是:判断一个整数是否为素数,若是素数返回1,否则返回 0。 在 main函数中,若 fun返回 1输出 YES,若 fun返回 O输出 NO!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动
3、 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdlib h #include conio h #2nclude stdio h int fun(int m) int k=2; while(k =m&(m k) *found* k+ *found* if(m=k) return 1; else return 0; void main() int n; system(“CLS“); printf(“ nPlease enter n: “); Scarlf(“ d“, &n); if(fun(n)printf(“YES n“); else printf(
4、“NO! n“); 三、程序设计题 3 请编写函数 fun,其功能是:找出一维整型数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。 主函数中 X是数组名, n是 X中的数据个数, max存放最大值, index存放最大值所在元素的下标。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include time h #include stdlib h #include stdio h void fun(int a, int n, int* max, int*d) void
5、 main() int i, x20, max, index, n=10; stand(unsigned)time(NULL); for(i=0; i =n; i+) xi=rand() 50; printf(“ 4 d“, xi); *输出一个随 机数组 * print: f(“ n“); fun(x, n, &max, &index); printf(“Nax= 5d, Index = 4 d n“, max, index); 国家二级 C语言机试(操作题)模拟试卷 557答案与解析 一、程序填空题 1 【正确答案】 (1)1 (2)2*i (3)(一 1) 【试题解析】 填空 1:由 f
6、un函数整体结构可以看出 k的作用是赋值,并累加各项前边的正负号,由于第一项是正的,因此赋给 k的值为 1。 填空 2:此空下一行的 表达式 k*(2*i 1)* (2*i+1) (t*t)累加的通项, k为正负号,由题目中的公式可知 t=2*i。 填空 3:由于通项前边的正负号每次都要发生变化,因此 k=k*(一 1)。 二、程序修改题 2 【正确答案】 (1)k+; (2)if(m=k) 【试题解析】 函数 fun的功能是判断 m是否为素数: m从 2开始作为除数,并对 m取余,若不存在一个数使樽余数为 0,则 m为素数,程序的错误在于 if(m=k)语句中的逻辑表达式写成了赋值语句。 三、程序设计题 3 【正确答案】 void fun(int a, int n, int *max, int* d) int i; *max=a0; *d=0; for(i=1; i n; i+) *将最大的元素放入指针 max所指的单元,最大元素的下标放入指针 d所指的单元 * if(*max ai) *max=ai; *d=i; 【试题解析】 查找最大值及其下标需要定义两个变量,该程序直接使用形参 max和 d,由于它们都是指针变量,所以在引用它所指向的变量时要对它进行指针运算。循环语句用来遍历数组元素,条件语句用来判断该数组元素 是否最大。