1、国家二级 C语言机试(操作题)模拟试卷 231及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是建立一个 NN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为 1;从外向内第 2层元素的值全部为 2;第 3层元素的值全部为 3, 依此类推。例如,若 N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #iticlude stdio
2、h 2 #define N 7 3 *found* 4 void fun(int(*a)【 1】 ) 5 int i, j, k, m; 6 if(N 2=0)m=N 2; 7 else m=N 2+1; 8 for(i: 0; i m; i+) 9 *found* 10 for(j=【 2】 ; j N-i; j+) 11 aij=aN-i-1j=i+1; 12 for(k=i+1; k【 3】 ; 15 16 17 main() 18 int xNN=0), i, j; 19 fun(x); 20 printf( nThe result is: n); 21 for(i=0; i N; i
3、+) 22 for(j=0; j N; j+) 23 printf( 3 d, xij); 24 printf( n); 25 26 二、程序修改题 2 下列给定程序中,函数 fun的功能是:找出一个大于给定整数 m且紧随 m的素数,并作为函数值返回。 请改正程序中的错 误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdlib h 2 #include conio h 3 #include stdio h 4 int fun(int m) 5 int i, k; 6 f
4、or(i=m+1; i+) 7 for(k=2; ki; k+) 8 *found* 9 if(i k!=0) 10 break; 11 *found* 12 if(ki) 13 return(i); 14 15 16 void main() 17 int n; 18 system(CLS); 19 printf( nPlease enter n: ); 20 scanf( d, n); 21 printf( d n, fun(n); 22 三、程序设计题 3 请编写函数 fun,其功能是:计算并输出下列多项式的值。 例如,当 n=10时,函数值为 0 909091。 注意:部分源程序在文件
5、PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 1 #include conio h 2 #include stdio h 3 #include stdlib h 4 double fun(int n) 5 6 7 8 void main() 9 10 FILE*wf; 11 system(CLS); 12 printf( f n, fun(10); 13 * 14 wf=fopen(out dat, w); 15 fprintf(wf, f, fun(10); 16 fclose(wf); 17 * 18 国家
6、二级 C语言机试(操作题)模拟试卷 231答案与解析 一、程序填 空题 1 【正确答案】 (1)N (2)i (3)i+l 【试题解析】 填空 1:本题考查了形参的确定。参数传递时将实参的值赋给形参,实参和形参是一一对应的,因此该空应该填写 N。 填空 2:第二重 for循环中 aij和 aN-i-1j表示第一行和最后一行数组 aNN的值,因而此空应该填写 i。 填空 3:第三重 for循环代表的是 aNN中每一列的值,因此此空应该填写 i+1。 二、程序修改题 2 【正确答案】 (1)if(i k=0) (2)jf(k=i) 【试题解析】 (1)判断当前数是否为素数,若存在一个数 (除 1和其自身 )能整除当前数,则跳出本次循环,所以 if条件应为 i k=0。 (2)如果 i是素数,则循环结束时 k=j,将该值返回。 三、程序设计题 3 【正确答案】 1 double fun(int n) 2 3 int i; 4 double s=0 0; 5 for(i=1; i=n; i+) 6 s=s+1 0 (i*(i*1); *求级数的和 * 7 return s; 8 【试题解 析】 本题要求级数的和,由多项式的形式可知,应使用循环语句实现,循环的通项为 1 n(n+1)。本程序首先定义了和变量及循环变量,然后运用一个for语句求出级数的和,最后将和变量 s返回。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1