填空题  
    给定程序中函数fun的功能:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
    例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为30.500000。
    主函数中输出:46 32 40 45 48。
    请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.c中,不得增行或删行,也不得更改程序的结构!
    给定源程序如下:
    #include <stdlib.h>
#include <stdio.h>
#define  N  10
double fun(double  x[],double  *y)
{ int  i,j;    double  av;
/**********found**********/
  av=__1__;
/**********found**********/
  for(i=0; i<N; i++)  av = av + __2__;
  for(i=j=0; i<N; i++)
/**********found**********/
    if(x[i]>av)  y[__3__]= x[i];
  y[j]=-1;
  return  av;
}
main()
{ int  i;    double  x[N] = {46,30,32,40,6,17,45,15,48,26};
  double  y[N];
  for(i=0; i<N; i++) printf('%4.0f ',x[i]);
  printf('\n');
  printf('\nThe average is: %f\n',fun(x,y));
  for(i=0; y[i]>=0; i++)  printf('%5.0f ',y[i]);
  printf('\n');
}
 
【正确答案】
【答案解析】(1)通过读上面的程序可以看出,此空考的是给变量赋初值,av代表的是平均值,因此av的初值应该是0.0。 (2)通过for循环可知,此空代表求平均值,因此应该填x[i]/N。 (3)先把大于平均值的数放在形参y所指数组中,然后使下标值加1,因此此空应该填j++。