填空题
1. 给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。
例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。
试题程序: # include<stdio.h>
# include<string. h>
int fun(int score[],int m,int below[])
{
int i,j=0;
float aver=0.0;
for(i=0;i<m;i++)
aver+=score[i];
aver/=(float)m;
for(i=0;i<m;i++)
if(score[i]<aver)
below[j++]=______;
return j;
}
void main()
{
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80990};
n=fun(score,9,______);
printf("\n Below the average score are:%d\n",n);
for(i=0;i<n;i++)
printf("%d",______);
}
【正确答案】
1、score[i]或*(score+i) below below[i]或*(below+i)
【答案解析】 fun()函数的功能是返回低于平均成绩的人数,通过for循环遍历数组score,求和存入变量aver,然后计算出平均值。第二个循环将低于平均成绩的数据赋值数组b,因此第一空处填“score[i]”或“*(score+i)”;在主函数中调用函数fun()时,最后一个参数应填入数组名blew,即将低分考生数据存入数组blew中,然后语句“printf("\n Below the average score are:%d"n);”输出低分考生个数,n值即fun()函数返回值也就是低分考生的人数值。最后利用循环输出below中的结果。