给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。 例如,有10个正数:46 30 32 40 6 17 45 15 48

admin2013-03-29  26

问题 给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。
    例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000
    主函数中输出:m=30.0
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKI.C中。
    不得增行或删行,也不得更改程序的结构!
#include  
#include
#define N 10
double fun(double x[],double*av)
{int i,j;double d,s;
  s=0;
  for(i=0,i
/*************found**************/
   【1】=s/N;
  d=32767 ;
  for(i=0;i    if(x<*av&&*av-x<=d){
/********************found*********************/
    d=*av—x;j=【2】;}
/********************found*********************/
  return  【3】;
}
main()
(  int i; double x[N],av,m;
  for(i=0; i=rand()%50;
printf("%4.0f",x);}
  printf("\n");
  m=fun(x,&av);
  printf("\nThe average is:%f\n",
av);
  printf("m=%5.1f",m);
  printf("\n");
}

选项

答案(1)*av (2)i (3)x[j]或(1)*av (2)x[i] (3)j

解析 第一空:由“if(x<*ava&*av.x<=d)"可知,*av:是数组元素的平均值,故第一空处应为"*av"。
    第二空:“d=*av-x;j=【2】;"d是平均值和元素x的差值,j在这里保存这个最接近平均值的元素,因此j可以保存x的值或x的下标均可。
    第三空:当j保存的是x的下标时,返回值是x[j];如果j保存的x,那么函数返回j。
转载请注明原文地址:https://jikaoti.com/ti/rIn0FFFM
0

最新回复(0)