问题 填空题

请补充函数fun,其功能是:计算并输出给定10个数的方差:

例如,给定的10个数为15.0,19.0,16.0,15.0,18.0,12.0, 15.0,11.0,10.0,16.0,输出为s=2.758623。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

#include<stdio.h>

#include<math. h>

double fun (double x[10])

int i;

double avg=0.0;

double sum=0.0;

double abs=0.0;

double sd;

for (i=0; i<10; i++)

【1】 ;

avg=sum/10;

for(i=0;i<10;i++)

【2】 ;

sd= 【3】 ;

return sd;

main()

double s,x[10]=15.0,19.0,16.0,15.0,

18.0,12.0,15.0,11.0,10.0,16.0;

int i;

printf("\nThe original data is :\n");

for(i=0;i<10;i++)

printf("%6.1f",x[i]);

printf("\n\n");

s=fun(x);

printf("s=%f\n\n",s);

答案

参考答案:[1] sum+=x[i] [2] abs+=(x[i]-avg)*(x[i]-avg) [3] sqrt(abs/10)

解析:

填空1:根据求方差的公式可知,首先要求出10个数的平均值,此处是利用for循环对10个数求累加和。填空2:使用for循环求出每个数与平均值之差的平方和。填空3:通过开方,求出10个数的方差,此处需要注意对库函数sqrt()的调用。

判断题
单项选择题