1、全国计算机二级 C 语言上机试题 48+2015 年及答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun 的功能是:将形参 s 所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。 例如,形参 s 所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #include int fun(char *s)
2、 int sum=0; while(*s) /*found*/ if( isdigit(*s) ) sum+= *s- _1_ ; /*found*/ _2_; /*found*/ return _3_ ; main() char s81; int n; printf(“/nEnter a string:/n/n“); gets(s); n=fun(s); printf(“/nThe result is: %d/n/n“,n); (分数:10.00)_2.给定程序 MODI1.C 中函数 fun 的功能是:计算小于形参 k 的最大的 10 个能被 13 或 17 整除的自然数之和。k 的值由主
3、函数传入,若 k 的值为 500,则函数值为 4622。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: (分数:10.00)_3.编写函数 fun,它的功能是:求小于形参 n 同时能被 3 与 7 整除的所有自然数之和的平方根,并作为函数值返回。 例如若 n 为 1000 时,程序输出应为:s = 153.909064。 注意: 部分源程序在文件 PROG1.C文件中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #include #inc
4、lude double fun( int n) main() /* 主函数 */ printf(“s =%f/n“, fun ( 1000) ); NONO(); (分数:10.00)_全国计算机二级 C 语言上机试题 48+2015 年答案解析(总分:30.00,做题时间:90 分钟)1.给定程序中,函数 fun 的功能是:将形参 s 所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。 例如,形参 s 所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序
5、存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #include int fun(char *s) int sum=0; while(*s) /*found*/ if( isdigit(*s) ) sum+= *s- _1_ ; /*found*/ _2_; /*found*/ return _3_ ; main() char s81; int n; printf(“/nEnter a string:/n/n“); gets(s); n=fun(s); printf(“/nThe result is: %d/
6、n/n“,n); (分数:10.00)_正确答案:(第一处:0字符对应的 ASCII 值是 48,因此数字字符转换成对应数值时只要减去 48,即是该数字字符对应的数值,所以应填:48。 第二处:到字符串下一个位置,所以应填:s+。 第三处:返回累加和 sum,所以应填:sum。)解析:2.给定程序 MODI1.C 中函数 fun 的功能是:计算小于形参 k 的最大的 10 个能被 13 或 17 整除的自然数之和。k 的值由主函数传入,若 k 的值为 500,则函数值为 4622。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结
7、构! 给定源程序: (分数:10.00)_正确答案:(第一处:判断相等的条件是=,而不是=,所以只能在比较处再添加一个=。 第二处:经过编译可知,“和“没有配对,所以在横线处加上“。)解析:3.编写函数 fun,它的功能是:求小于形参 n 同时能被 3 与 7 整除的所有自然数之和的平方根,并作为函数值返回。 例如若 n 为 1000 时,程序输出应为:s = 153.909064。 注意: 部分源程序在文件 PROG1.C文件中。请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #include #include double fun( int n) main() /* 主函数 */ printf(“s =%f/n“, fun ( 1000) ); NONO(); (分数:10.00)_正确答案:(double fun( int n) double sum=0.0; int i; for(i=21; i=n; i+) if(i % 3=0) return sqrt(sum) ; )解析: