2011年计算机二级C语言十套上机题11

全国等级考试资料网 2019-01-23 14:14:25 208

2011年计算机二级C语言十套上机题11

2. 改错题

下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:

85 65.5 69 95.5 87 55 62.5 75

则高于平均分的学生人数为4(平均分为74.312500)。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#define N 20

int fun(float *s, int n,float *aver)

{

/**********************found***********************/

int ave ,t=0;

int count=0,k,i;

for(k=0;k

t+=s[k];

ave=t/n;

for(i=0;i

/**********************found***********************/

if(s[i]

count++;

/**********************found***********************/

aver=ave;

return count;

}

main()

{ float s[30],aver;

int m,i;

clrscr();

printf(" Please enter m: ");

scanf("%d",&m);

printf(" Please enter %d mark : ",m);

for(i=0;i

scanf("%f",s+i);

printf(" The number of students :%d ",fun(s,m,&aver));

printf("Ave=%f ",aver);

}

答案及评析:(1)错误:int ave ,t=0;正确:float ave ,t=0.0;(2)错误:if(s[i]ave)

(3)错误:aver=ave;正确:*aver=ave;

【解析】错误1:ave和t分别用来存放成绩的平均值和总分,应为实型数。

错误2:根据题意,找出高于平均分的数,所以此处的关系运算符应为">"

错误3:aver是指针,而ave是一个数,不能将一个数赋值给一个指针,而要用符号’*’。 

相关资料

相关阅读