问答题 给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:30 6 17 15 26 46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 10 double fun(double *x) { int i, j; double av, y[N]; av=0; /**********found**********/ for(i=0; i for(i=j=0; i if( x[i] /**********found**********/ y[j]=x[i]; x[i]=-1; __2__;} i=0; while(i { if( x[i]!= -1 ) y[j++]=x[i]; /**********found**********/ __3__; } for(i=0; i return av; } main() { int i; double x[N]; for(i=0; i4.0f ",x[i]);} printf("/n"); printf("/nThe average is: %f/n",fun(x)); printf("/nThe result :/n",fun(x)); for(i=0; i5.0f ",x[i]); printf("/n"); }
【正确答案】第一处:求出N个数的平均值,所以应填:N。 第二处:利用for循环语句,把数组x中小于平均值的数,依次存放到数组y中,其中位置由变量j来控制,所以应填:j++。 第三处:i是while循环体的控制变量,每做一次循环均要加1。
【答案解析】