给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10

admin2013-03-29  15

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

选项

答案(1)s/N (2)j++ (3)-1

解析 第一空:“for(i=0;i;"可知,该循环完成了元素的累加和的计算,故第一空处是累加和s除以N得到平均值av,因此第一空处应为“s/N"。
    第二空:“y[【2】]=x;x=-1;"是将大于平均值的x保存在y数组中,第二空处要求填入y数组的下标变量,显然i是循环变量不能用作y数组的下标变量,所以第二空处应填“j++"。
    第三空:“if[x!=【3】)y[j++]=x;"是判断x在不满足某个条件后,将x放在y数组的后面。由第二空处的循环可知,大于平均值的元素已经变成-1,小于等于平均值的元素仍然是正数没有变化,该循环的作用是将把小于等于平均值的元素放在数组y后面。故if语句是判断元素x是否不等于一1,如果不等于-1,那么x就是小于等于平均值的元素,将其放在y数组后面,因此第三处是“-1"。
转载请注明原文地址:https://kaotiyun.com/show/jWJp777K
0

最新回复(0)