有以下程序
#include< stdio.h >
double fun1(double a[],int n)
{
int i;double sum=0.0;
for(i=0;i< n;i++)
sum+=a[i]/n;
return sum;
}
void fun2(double a[],in tn,double*p,double*q)
{
int i;
*p=*q=a[0];
for(i=1;i< n;i++)
if(a[i] >*p)*p=a[i];
else if(a[i]< *q)术q=a[i];
voic{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);
}
程序的运行结果是( )。
【正确答案】 B
【答案解析】程序中,fun1()函数的功能是返回数组a中前n个元素的平均值;fun2()函数的功能是遍历数组a的前n个元素,将最大值存放p指向的地址,将最小值存放q指向的地址,所以对于main()函数中的数组a,av的值是3.000000,姒的值是5.000000,mn的值是1.000000,本题答案为B。