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

发布时间:2019-02-04 19:01:17

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("nPlease enter m: ");

scanf("%d",&m);

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

for(i=0;i

scanf("%f",s i);

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

printf("Ave=%fn",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是一个数,不能将一个数赋值给一个指针,而要用符号’*’。 

阅读更多其他试题,请访问生活日记网 用日志记录点滴生活!考试试题频道。
喜欢考试试题,那就经常来哦

该内容由生活日记网提供.