1、全国计算机二级 C语言上机试题 53+2015年及答案解析(总分:30.00,做题时间:90 分钟)1.函数 fun的功能是:计算 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include double fun(double x) double f, t; int n; f = 1.0 + x; /*found*/ t = _1_; n = 1; do n+; /*found*/ t *= (-1.0)*x/_2_; f += t; /*
2、found*/ while (_3_ = 1e-6); return f; main() double x, y; x=2.5; y = fun(x); printf(“/nThe result is :/n“); printf(“x=%-12.6f y=%-12.6f/n“, x, y); (分数:10.00)_2.给定程序 MODI1.C中函数 fun的功能是: 求整数 x的 y次方的低 3位值。例如,整数 5的 6次方为15625, 此值的低 3位值为 625。 请改正函数 fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动 main函数, 不得增行或删行, 也不得更改程
3、序的结构! 给定源程序: #include long fun(int x,int y,long *p ) int i; long t=1; /*found*/ for(i=1; i t=t*x; *p=t; /*found*/ t=t/1000; return t; main() long t,r; int x,y; printf(“/nInput x and y: “); scanf(“%ld%ld“, t=fun(x,y, printf(“/n/nx=%d, y=%d, r=%ld, last=%ld/n/n“,x, y,r,t ); (分数:10.00)_3.例如, 在主函数中从键盘给
4、x输入 0.21后,输出为:s=1.100000。 注意: 部分源程序在文件 PROG1.C中。请勿改动主函数 main和其他函数中的任何内容, 仅在函数 fun的 花括号中填入你编写的若干语句。 给定源程序: #include #include double fun(double x) main() double x,s; printf(“Input x: “); scanf(“%lf“, s=fun(x); printf(“s=%f/n“,s); NONO(); (分数:10.00)_全国计算机二级 C语言上机试题 53+2015年答案解析(总分:30.00,做题时间:90 分钟)1.函数
5、 fun的功能是:计算 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include double fun(double x) double f, t; int n; f = 1.0 + x; /*found*/ t = _1_; n = 1; do n+; /*found*/ t *= (-1.0)*x/_2_; f += t; /*found*/ while (_3_ = 1e-6); return f; main() double x,
6、 y; x=2.5; y = fun(x); printf(“/nThe result is :/n“); printf(“x=%-12.6f y=%-12.6f/n“, x, y); (分数:10.00)_正确答案:(第一处:根据公式可知,变量 t的值为 x。 第二处:根据公式可知,此处应该除以 n,所以应填:n。 第三处:根据试题中条件的要求,所以应填:fabs(t)。)解析:2.给定程序 MODI1.C中函数 fun的功能是: 求整数 x的 y次方的低 3位值。例如,整数 5的 6次方为15625, 此值的低 3位值为 625。 请改正函数 fun中指定部位的错误, 使它能得出正确的结果
7、。 注意: 不要改动 main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include long fun(int x,int y,long *p ) int i; long t=1; /*found*/ for(i=1; i t=t*x; *p=t; /*found*/ t=t/1000; return t; main() long t,r; int x,y; printf(“/nInput x and y: “); scanf(“%ld%ld“, t=fun(x,y, printf(“/n/nx=%d, y=%d, r=%ld, last=%ld/n/n“,x, y,r,t ); (分数:10.00)_正确答案:(第一处:错误在 for循环语句上,根据试题要求,终止条件应该是 i=0.000001)/*绝对值是否满足条件*/ xn=xn*x*(0.5-n+1)/n; /*表达式分解以后 xn=(xn-1)*x*(0.5-n+1)/n*/ n+=1; sn+=xn; /*sn累加上xn*/ return(sn); )解析: