有以下程序 #include<stdio.h> double funl(double a[],int n) { int i;double sum=0.0; for(i=0;i<n;i++) SHm+=a[i]/n; return sum; } void f

admin2018-06-29  26

问题 有以下程序
#include<stdio.h>
double funl(double a[],int n)
{
int i;double sum=0.0;
for(i=0;i<n;i++)
SHm+=a/n;
return sum;
}
void fun2(double a[],int n,double*p,double*q)
{
int i;
*p=*q=a[0];
for(i=1;i<n;i++)
if(a>*p)*p=a
else if(a<*q)*q=a
}
void main( )
{
double a[]={1,2,3,4,5};
double mx,mn,av;
av=fun1(a,5);
fun2(a,5,&mx,&mn);
printf("%f%f%f\n’,av,mx,mn);
}
程序的运行结果是(    )。

选项 A、5.0000003.0000001.000000
B、3.0000005.0000001.000000
C、1.0000005.0000003.000000
D、3.0000001.0000005.000000

答案B

解析 程序中,fun1( )函数的功能是返回数组a中前n个元素的平均值;fun2( )函数的功能是遍历数组a的前n个元素,将最大值存放p指向的地址,将最小值存放q指向的地址,所以对于main( )函数中的数组a,av的值是3.000000,mx的值是5.000000,mn的值是1.000000,本题答案为B。
转载请注明原文地址:https://kaotiyun.com/show/J3xp777K
0

最新回复(0)