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