使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中.函数fun()的功能是计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均

admin2023-02-27  9

问题 使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中.函数fun()的功能是计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并在主函数中输出。
  例如,有10个正数:46、30、32、40、6、17、45、15、
48、26,其平均值为30.500000。
    主函数中输出m=30。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:部分源程序在文件blank1.c中。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
1 #include<stdlib.h>
2 #include<stdio.h>
3 #define N 10
4 double fun(double x[],double*av)
5 {int i,j;double d,s;
6   s=0;
7  for(i=0;i<N;i++)s=s+x;
8 /*********found*********/
9 <u>【1】</u>=s/N;
10 d=32767;
11 for(i=0;i<N;i++)
12   if(x<*av&&*av-x<=d){
13 /*********found*********/
14    d=*av-x;
15    j=<u>【2】</u>;
16    }
17 /*********found*********/
18  return[3];
19 }
20 main()
21 {int i;double x[N],av,m;
22  for(i;0;i<N;i++);
23 {  x=rand()%50;
24 printf("%4.0f",x);}
25 printf("\n");
26 m=fun(x,&av);
27 printf("\nThe average is:%f\n",av);
28   printf("m=%5.1f",m);
29   printf("\n");
30 }

选项

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

解析 填空1:从源程序中可以看出,*av代表的是平均值,而s/N用来计算平均值,故空1处应该填*av,对*av赋值。
    填空2:if语句用来查找最接近平均值的数,下标为i的元素最接近平均值,将此下标赋给变量j,故空2处应该填i。
    填空3:题目要求将小于平均值且最接近平均值的数作为函数值返回。而j表达的是最接近平均值的数在数组中的下标,故空3处应该填x[j]。  
转载请注明原文地址:https://kaotiyun.com/show/cD0D777K
0

相关试题推荐
最新回复(0)