1、二级 C 语言机试 63 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:从键盘输入一组字符串,以*结束输入,并显示出这个字符串。例如,输入 abcdefghi*,结果显示 adcdefghi。 注意:部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio. h #define N 80 main () iht i=-l, j=0; char str IN; clrscr (); pr
2、intf(“/n Input a string /n“); do i+; scanf(U【1】/U); while(U【2】/U); printf (“/n*display the string* /n“); while (ji) printf (U【3】/U); j+; (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.给定程序中,函数 fun()的功能是:使数组中的元素的值增加 10 倍。 改正其中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构 试题程序: #includestdio.h #inclu
3、deconio.h iht m10; void fun(void) int j; printf(“In subfunc after calling/n“); for(j=0;jl0;j+) /*found*/ printf(“%3d“,mj*l0); main() int i; printf(“In main before calling/n“); for (i=0; i10; i+) mi=i; printf (“%3d“,mi); fun (); printf(“/nIn main after calling/n“); for (i=0; i10; i+) printf (“%3d“,mi
4、); getch (); (分数:30.00)填空项 1:_三、B编程题/B(总题数:1,分数:40.00)3.请编写函数 fun(),其功能是:计算并输出给定 10 个数的方差。 其中 (分数:40.00)_二级 C 语言机试 63 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:从键盘输入一组字符串,以*结束输入,并显示出这个字符串。例如,输入 abcdefghi*,结果显示 adcdefghi。 注意:部分源程序给出如下 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的
5、横线上填入所编写的若干表达式或语句。 试题程序: #includestdio. h #define N 80 main () iht i=-l, j=0; char str IN; clrscr (); printf(“/n Input a string /n“); do i+; scanf(U【1】/U); while(U【2】/U); printf (“/n*display the string* /n“); while (ji) printf (U【3】/U); j+; (分数:30.00)填空项 1:_ (正确答案:1“c“, void fun(void) int j; printf(
6、“In subfunc after calling/n“); for(j=0;jl0;j+) /*found*/ printf(“%3d“,mj*l0); main() int i; printf(“In main before calling/n“); for (i=0; i10; i+) mi=i; printf (“%3d“,mi); fun (); printf(“/nIn main after calling/n“); for (i=0; i10; i+) printf (“%3d“,mi); getch (); (分数:30.00)填空项 1:_ (正确答案:错误:printf(“
7、3d“ mj*10); 正确:printf(“%3d“ mj=mj*10)解析:解析 本题考查全局变量相关知识。该题程序中的 fun()没有参数输入,但数组 m10为全局变量,故可在 fun()函数中使用,fun()函数对数组 m 的操作可以反映到主函数的输出结果中。三、B编程题/B(总题数:1,分数:40.00)3.请编写函数 fun(),其功能是:计算并输出给定 10 个数的方差。 其中 (分数:40.00)_正确答案:()解析:double fun(double x10) double xl=0.0,s=0.0; int i; for(i=0;i10;i+) xl=xl+xi; xl-xl/10; /*求 10 个数的平均值*/ for(i=0;il0;i+) s=s+(xi-xl)*(xi-x1); return sqrt(s/l0); /*求 10 个数的方差*/ 解析 又是一道算式表达题,程序中用第 1 个循环来完成求 10 个数的总和,接着再用 x1=x1/10 来求出平均值。