填空题
下列给定程序中,函数fun的功能是:给定n个实数,输出平均值,并统汁平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763、所得平均值为195.838745,在平均值以上的实数个数应为5。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int fun(float x[],int n)
/*********found*********/
int j,c=0;float xa=0.0;
for(j=0;j<n;j++)
xa+=x[j]/n;
printf("ave=%f/n",xa);
for(j=0;j<n;j++)
/*********found*********/
if(x[j]=>xa)
c++;
return c;
}
main()
{float x[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};
system("CLS");
printf("%d/n",fun(x,8));
}
【正确答案】
【答案解析】(1){int j,c=0;float xa=0.0;
(2)if(x[j]>=xa)
[解析]
(1)本题着重考查考生对C语言基本语法以及比较运算符的掌握情况。
(2)本题中的第一个错误:在C语言中,{}应成对出现,所以程序中的语句"int j,c=0;float xa=0.0;”应改为"{int j,c=0;float xa=0.0;"或相同作用的语句;
本题中的第二个错误:在C语言中,判断大于或等于的运算符应为>=,所以程序中的语句"if(x[j]=>xa)"应改为"if(x[j]>=xa)"或相同作用的语句。