1、二级 C 语言机试 62 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:求 n! 例如 7!=5040。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: # includestdio. h #includeconio. h main() int i,n; long f=1; clrscr (); printf(“Input n: “); scanf (“%d“,U 【1】 /U); for(U
2、【2】 /U;i=n; i+) U【3】 /U; printf (“%d!=%1d/n“, n, f); (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:从 3 个红球,5 个白球,6 个黑球中任意取出 8 个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是 15。程序中 i 的值代表红球数, j 的值代表白球数,k 的值代表黑球数。 请改正程序中的错误,使它能得出正确的结果。 注童:不要改动 main 函数,不得增行或删行,也不得更改程序的蛄构。 试题程序
3、: #include stdio. h int fun () int i,j,k, sum=0; printf (“/nThe result : /n/n “); /*found*/ for (i=0; i=3; i+) for (j=1;j=5;j+) k=8-i-j; /*found */ if (k=1 printf (“red: %4d white: %4d black: %4d/n “, i, j, k); ) return sum; main () int sum; sum=fun (); printf (“sum=%4d/n/n “, sum); (分数:30.00)填空项 1:
4、_三、B编程题/B(总题数:1,分数:40.00)3.请编写函数 fun(),它的功能是计算下列级数和,和值由函数值返回。S=1+x+x2/2!3/3!+/xn/n!例如,当 n=10,x=0.3 时,函数值为 1349859。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.h#includemath.hdouble fun(double x, int n)main ()clrscr ();printf (“%f “,fun(0,3,10);(分数:
5、40.00)_二级 C 语言机试 62 答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:求 n! 例如 7!=5040。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。 试题程序: # includestdio. h #includeconio. h main() int i,n; long f=1; clrscr (); printf(“Input n: “); scanf (“%d“,U 【1】 /U);
6、for(U 【2】 /U;i=n; i+) U【3】 /U; printf (“%d!=%1d/n“, n, f); (分数:30.00)填空项 1:_ (正确答案:1 printf (“/nThe result : /n/n “); /*found*/ for (i=0; i=3; i+) for (j=1;j=5;j+) k=8-i-j; /*found */ if (k=1 printf (“red: %4d white: %4d black: %4d/n “, i, j, k); ) return sum; main () int sum; sum=fun (); printf (“s
7、um=%4d/n/n “, sum); (分数:30.00)填空项 1:_ (正确答案:错误:for(i=0;i=3;i+) 正确:for(i=1;3;i+))解析:(2)错误:if(k1printf (“%f “,fun(0,3,10);(分数:40.00)_正确答案:()解析:double fun(double x,int n) int i; double s=1.0s1=1.0; for(i=1;i=n;i+) s1=s1*i; /*各项中的阶乘*/ s=s+ pow(x,i)/s1; /*按公式求出*/ return s; 解析本程序中用 s1 来表示每项的分母(即各项中的阶乘),要注意本程序中 s 和 s1 的初值都为 1。