下列给定程序中,函数fun()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如, n=8时,输入193.199,195.673,195.757,196.051,196.092, 196.596,196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <conio.h>include <stdio.h>i

题目

下列给定程序中,函数fun()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如, n=8时,输入193.199,195.673,195.757,196.051,196.092, 196.596,196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。

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

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

试题程序:

include <conio.h>

include <stdio.h>

int fun(float x[], int n)

/***************found*******************/

iht j, c=0;float xa=0.0;

for (j=0; j<n;.j++)

xa+=x[j]/n;

printf("ave=%f\n",xa);

for (j=0; j<n;j++)

if(x[j]>=xa)

c++;

returnc;

}

main()

{float x[l00]={ 193.199,195.673,195.757,

196.051,196.092,196.596,

196.579,196.763};

clrscr ();

printf("%d\n",fun (x,8));

}


相似考题
更多“下列给定程序中,函数fun()的功能是:给定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个 ”相关问题
  • 第1题:

    给定程序MODll.C中函数fun的功能是:计算n!。

    例如,给n输入5,则输出120.000000。

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

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


    正确答案:(1)if (n==0) (2)result *=n--;
    (1)if (n==0) (2)result *=n--; 解析:本题中函数的功能是计算阶乘,其中,阶乘的计算公式分为参数n是1和大于1两种情况,例如,1的阶乘1!=1;5的阶乘5!=5×4×3×2×1。

  • 第2题:

    给定程序中,函数fun的功能是:计算形参X所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至X所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

    例如,有l0个正数:46、30、32、40、6、17、45、15、48、26,平均值为30.500000。

    移动后的输出为:46、32、40A5、48、30、6、17、15、26。

    请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

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

    不得增行或删行,也不得更改程序的结构!

    试题程序:


    正确答案:
    (1)sdN(2)j++(3)一1【解题思路】填空l:由原程序可知,av代表的是平均值,而平均值的求法是所有数的总和除以数的个数,因而本空应该填写s/N。填空2:y数组代表暂时存放X数组,if(X[i]>av)表达的是当x数组中的数大于平均值时,应该把这些大于平均值的数放在y数组的前半部分,因而此空应该填y[j++]。填空3:此空表明当x[i]不等于什么时,X[i]中的数要赋值给Y数组,由题意可知此空只能填写一1。

  • 第3题:

    人工预先创建一个文本文件data.txt,其内容为若干实数,数据之间以空白字符分隔。编程从该文件中读入这些实数,统计实数个数并求出这些实数的平均值,在程序中创建并产生一个文本文件result.txt,内容为 data.txt 中的全体实数,每行5个数,最后一行输出实数个数以及平均值。


    import randomf=open('data.txt','w+')for i in range(100): a=random.randint(1,100) f.writelines(str(a)+'\n')f.seek(0)s=f.readlines()f.close()for i in range(len(s)): s[i]=eval(s[i].strip('\n'))print(s)

  • 第4题:

    已知在文件in.dat中存有N个实数(N<200),函数ReadDat是读取这N个实数并存入数组xx中。请编制函数CalValue,其功能要求:1.求出这N个实数的平均值aver;2.分别求出这N个实数的整数部分值之和sumint以及小数部分值之和sumdec,最后调用函数WriteDat把所求的结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main、读函数ReadDat和输出函数WriteDat的内容。


    正确答案:
    【审题关键句】求实数的平均值aver;求实数的整数部分之和及小数部分之和。
    【解题思路】
    ①定义整型循环变量i和长整型变量num。
    ②在for循环语句中,循环变量i从0开始,依次递增直到其值等于或大于N时,结束循环。在循环体中,把数组元素 xx[i]的数据类型通过强制数据类型转换成长整型数据所得的整数赋给变量mum,再把mum的值累加到变量sumint,用数组元素xx[i]的值减去num的值就得到xx[i]的小数部分,把这个值累加到变量sumdec。把数组元素xx[i]累加到变量aver。 ⑨退出循环后,用变量aver的值除N就得到了这N个实数的平均值,赋给变量aver。
    【参考答案】

  • 第5题:

    编写函数,计算成绩序列元素的平均值。实现:给定一个成绩序列,返回成绩平均值,并调用函数输出返回值。


    在链式队列中删除元素即为用链式队列的存储结构进行出队操作。 LinkQueue DeQueue(LinkQueue QQueueElementType*e) { QueueNode*P; if(QueueEmpty(Q)) printf(“队列为空出队操作失败!\n”); else{ p=Q.front->next; *e=p->data Q.front->next=p->next; if(Q.rear==p) Q.rear=Q.front; free(P); } return Q;} 在链式队列中删除元素,即为用链式队列的存储结构进行出队操作。LinkQueueDeQueue(LinkQueueQ,QueueElementType*e){QueueNode*P;if(QueueEmpty(Q))printf(“队列为空,出队操作失败!\n”);else{p=Q.front->next;*e=p->dataQ.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;free(P);}returnQ;}