1、二级 C 语言-190 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是:在 34 的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 例如,有下列矩阵: (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:根据整数形参 m 的值,计算如下公式的值。 (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:将低于平均分的人数
2、作为函数值返回,将低于平均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为 10、20、30、40、50、60、70、80、90 时,函数返回的人数应该是4,below 中的数据应为 10、20、30、40。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includestring.h int fun(int score,int m,int below) void mai
3、n() int i,n,below9; int score9=10,20,30,40,50,60,70,80,90; system(“CLS“); n=fun(score,9,below); printf(“/nBelow the average score are:“); for(i=0;in;i+) printf(“%d“,belowi); (分数:40.00)_二级 C 语言-190 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是:在 34 的矩阵中找出在行上最大、在列上最小的那个元素,若没有符
4、合条件的元素则输出相应信息。 例如,有下列矩阵: (分数:30.00)解析:i 0 i+ 考点 本题关键字有:变量赋值;while 循环。 解析 填空 1:找出行上最大的数,并将该数的列下标保存在 c 中,所以应填 j。 填空 2:用 while 循环查找列中的最小数,如果行上最大列上非最小则把 find 置 0,所以应填 0。 填空 3:while 控制行循环,每做一次循环控制变量加 1,所以应填 i+。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:根据整数形参 m 的值,计算如下公式的值。 (分数:30.00)_正确答案:()解析:for(i=2
5、;i=m;i+) y-=1.0/(i*i); 考点 本题关键字有:for 循环变量取值范围;除法运算;数据类型。 解析 (1)根据给出的计算公式可知包含的 m,所以应改为 for(i=2;i=m;i+)。 (2)在除法运算中,两个整数相除的结果也是整数,因此应改为 y-=1.0/(i*i)。三、程序设计题(总题数:1,分数:40.00)3.m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为 10、20、30、40、50、60、70、80、90 时,函
6、数返回的人数应该是4,below 中的数据应为 10、20、30、40。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includestring.h int fun(int score,int m,int below) void main() int i,n,below9; int score9=10,20,30,40,50,60,70,80,90; system(“CLS“); n=fun(sco
7、re,9,below); printf(“/nBelow the average score are:“); for(i=0;in;i+) printf(“%d“,belowi); (分数:40.00)_正确答案:()解析:int fun(int score,int m,int below int i,j=0; float av=0.0; for(i=0;im;i+) av=av+(float)scorei/m;/*求平均值*/ for(i=0;im;i+) if(scoreiav)/*如果分数低于平均分,则将此分数放入 below 数组中*/ belowj+=scorei; return j;/*返回低于平均分的人数*/ 考点 本题关键字有:累加操作;求平均值;数组操作。 解析 要计算低于平均分的人数,首先通过循环求出平均分,然后通过循环判断找出低于平均分的分数存入below 数组中。