填空题 1.  请补充函数proc(),其功能是:计算并输出给定10个数的方差。
    例如,给定的10个数为12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0,输出为“s=8.877500”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdio.h>
    #include<math.h>
    double proc(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++)
    ______;
    avg=sum/10;
    for(i=0;i<10;i++)
    ______;
    sd=______;
    return sd;
    }
    void main()
    {
    double s, str[10]={12.0,9.0,26.0,5.0,6.0,31.0,9.0,3.0,8.0,18.0};
    int i;
    printf("\nThe original data is: \n");
    for(i=0;i<10;i++)
    printf("%6.1f",str[i]);
    printf("\n\n");
    s=proc(str);
    printf("s=%f\n\n",s);
    }
  • 1、
【正确答案】 1、sum+=x[i]
   abs+=(x[i]-avg)*(x[i]-avg)
   sqrt(abs/10)    
【答案解析】 由函数proc()可知,变量sum中存放n个数的和,因此,第一空处填“sum+=x[i]”;然后,求其平方差,因此,第二空处填“abs+=(x[i]-avg)*(x[i]-avg)”;最后,求10个数的方差,因此,第三空处填“sqrt(abs/10)”。