itgle.com

请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。例如:当x[10]={15.6, 19.9, 16.7, 15.2, 18.3, 12.1, 15.5,11.0, 10.0, 16.0},结果为:avg=15.030000。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仪在函数fun的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>double fun(doub

题目

请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。

例如:当x[10]={15.6, 19.9, 16.7, 15.2, 18.3, 12.1, 15.5,11.0, 10.0, 16.0},结果为:avg=15.030000。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仪在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:

include<stdio.h>

include<conio.h>

double fun(double x[10])

{

int i;

long t;

double avg=0.0;

double sum=0.0;

for(i=0;i<l0;i++)

【 】;

avg=sum/10;

avg=【 】;

t=【 】;

avg=(double)t/100;

return avg;

}

main()

{

double avg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};

int i;

clrscr();

printf(“\nThe original data is:\n”);

for(i=0;i<l0;i++)

printf("%6.lf",x[i]);

printf(“\n\n”);

avg=fun(x);

printf(“average=%f\n\n”,avg);

}


相似考题
参考答案和解析
正确答案:sum+=x[i] avg*1000 (avg+5)/10
sum+=x[i] avg*1000 (avg+5)/10 解析:第一空:通过for循环求出10个数的累加和,存于变量sum中。第二空:为了实现四舍五入保留两位小数的功能,应将平均值先扩大1000倍。第三空:将平均值加上5,再除以10,实现四舍五入的功能。
更多“请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数 ”相关问题
  • 第1题:

    以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回,请填空。(设N己定义)

    int fun(int x[N])

    {int i,k=0

    for(i=0;i<N;i++)

    if(x[i]<x[k])k=_____;

    return x[k];

    }


    正确答案:i
    i 解析:循环语句依次查找数组的元素,下标从0到N-1,当x[i]的值小于k时,记录i值即此元素的下标,然后再将其余元素与新的k元素比较,最终求得最小值。所以填i。

  • 第2题:

    请编一个函数float fun (double h),函数的功能是对变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数)。

    例如:若h值为8.32433,则函数返回8.32:若h值为 8.32533,则函数返回8.33。

    注意:部分源程序给出如下。

    请勿改动主函数main 和其他函数中的任何内容,仅在函数。fun 的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio. h>

    include <conio. h>

    float fun (float h )

    {

    }

    main()

    {

    float a;

    clrscr ();

    printf ("Enter a: ");

    scanf ("%f", &a);

    printf("The original data is : ");

    printf("%f\n\n", a) ;

    printf("The result: %f\n", fun(a) );

    }


    正确答案:float fun (float h) { long t; t=(h*1000+5)/10; /*单精度数h乘以1000后再加5相当十对h中的第三位小数进行四舍五入 除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/ return (float) t/100; /*除以100保留2位小数*/
    float fun (float h) { long t; t=(h*1000+5)/10; /*单精度数h乘以1000后再加5,相当十对h中的第三位小数进行四舍五入 除以10后将其赋给一个长整型数时就把第三位小数后的数全部截去*/ return (float) t/100; /*除以100,保留2位小数*/ 解析:注意本题要求h的值真正发生了四舍五入,而不是为了输出,即不能用printf(“%7.2f”,h)来直接得到结果。由于单精度数h乘以1000后再加5,此时相当于对h中的第三位小数进行四舍五入,再将其赋给一个长整型数时就把第三位小数后的数全部截去。注意在return 中要将其中一个数转成浮点型数。

  • 第3题:

    请补充fun()函数,fun()函数的功能是求n的阶乘。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。 试题程序:


    正确答案:
    【1】n>1或1<n【2】n-1【3】1或11或lL
    【解析】此题应用的是递归算法,因为10!=1091,91=98!,8!=87!…依此类推,而1!=1,2!=21!=2,3!=32!=6…,依此可以推出101,递推算法表示为:n!=1(n=1或n=0)n!=11*(n=1)(n>1)

  • 第4题:

    给定程序MODll.c中函数fun的功能是;由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。

    例如,n=8时,输入:193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763

    所得平均值为:195.838745,在平均值以上的实数个数应为:5

    请改正程序中的错误,使程序能输出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)int j-c=0;double xa=0.0; (2)if (x[j]>=xa)
    (1)int j-c=0;double xa=0.0; (2)if (x[j]>=xa) 解析:本题中函数的功能是输出平均值,并统计在平均值以上(含平均值)的实数个数。本题中的函数实现过程首先求解平均值,然后将所有值与平均值进行比较,统计高于平均值的实数个数。

  • 第5题:

    程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。

    例如:a数组中的值为:

    则返回主程序后s的值应为:3.375。

    注意:部分源程序存在文件PROGl.C文件中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。