1、二级 C 语言分类模拟题 258 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.函数 fun 的功能是:计算 (分数:30.00)_二、程序修改题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是:从 3 个红球,5 个白球,6 个黑球中任意取出 8 个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。 组合数作为函数值返回。正确的组合数应该是 15。程序中 i 的值代表红球数,j 的值代表白球数,k 的值代表黑球数。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意
2、:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #includestdio.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=0 printf(“red:%4d white:%4d black:%4d/n“, i, j, k); return sum; main() int sum; sum=fun(); printf(“sum=%4d/n/n“, sum); (分
3、数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是:计算并输出下列多项式的值: (分数:40.00)_二级 C 语言分类模拟题 258 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.函数 fun 的功能是:计算 (分数:30.00)_正确答案:()解析:(1)1 (2)-1 (3)t 答案考生文件夹 解析 函数的功能是求级数和。 第一空:由“return f; ”可知 f 是级数和,由审题分析可知,级数从第二项开始规律变化,因此循环从第二项开始计算,故 f 初始化应为第一项的值,故第一空应为“
4、1”。 第二空:由审题分析可知,级数的后一项在前一项的基础上乘以(-1)*x,除以 n,故第二空处应为“-1”。第三空:t 是级数项,f 把各个级数项累加起来,故第三空处应为“t”。 考点 for 循环结构、数据类型和常量、变量。二、程序修改题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是:从 3 个红球,5 个白球,6 个黑球中任意取出 8 个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。 组合数作为函数值返回。正确的组合数应该是 15。程序中 i 的值代表红球数,j 的值代表白球数,k 的值代表黑球数。 请改正函数 fun 中指定
5、部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #includestdio.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=0 printf(“red:%4d white:%4d black:%4d/n“, i, j, k); return sum; main() int sum; sum=fun(); printf(“su
6、m=%4d/n/n“, sum); (分数:30.00)_正确答案:()解析:(1)for(i=1; i=3; i+) (2)if(k=0 i=3; i+)”说明是 3 个红球,题干要求必须有红球 s,即 i 是从 1 开始变化的,所以将“for(i=0; i=3; i+)”改为“for(i=1; i=3; i+)”。 (2)第二标识下变量 K 没有定义,编译时会提示出错。根据题目中要求“在每组中,可以没有黑球,但必须要有红球和白球”因此单单判断黑球是不行的,即 k 应该大于等于 1 且小于等于 6,即第二个标识下“if(K=1 long t=1; int i; for(i=1; i=n; i+) t=t*i; /*计算阶乘*/ s+=1./t; /*计算每项的值并累加至变量 s 中*/ return s; /*返回多项式的值*/ 答案考生文件夹 解析 该程序功能是计算并输出多项式的值。该题的解题思路是,根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。 考点 for 循环结构、数据类型和常量、变量。