m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为:10、20、30、40、50、6

题目

m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为:10、20、30、40。

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

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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

给定程序的功能是计算score中m个人的平均成绩a-ver,将低于aver的成绩放在below中,通过函数名返回人数。 例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序:


正确答案:

【解析】fun()函数的功能是返回低于平均成绩的人数,通过for循环遍历数组score,求和存入变量aver,然后计算出平均值。第二个循环将低于平均成绩的数据赋值数组b,因此第【1】处填“score[i]”或“*(score+i)”;在主函数中调用函数fun()时,最后一个参数应填入数组名below,即将低分考生数据存入数组below中,然后语句“printf(″\nBelowtheaveragescoreare:%d″n);”输出低分考生个数,n值即fun()函数返回值也就是低分考生的人数值。最后,利用循环输出below中的结果。

第2题:

请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。

删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。

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

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


正确答案:
解析:该程序功能是删去一维数组中所有相同的数,使之只剩一个。解题思路是,首先在函数中定义临时变量指向每一个元素,然后在循环过程中将临时值和其他元素进行比较,如果相同,那么跳过相同字符。

第3题:

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

例如:a数组中的值为:

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

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

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


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

第4题:

m个人的成绩存放在score数组中,请编写函数fun(),它的功能是将高于平均分的人数作为函数值返回,将高于平均分的分数放在叩所指的数组中。

例如,当score数组中的数据为24,35,88,76,90,54, 59,66,96时,函数返回的人数应该是5,up中的数据应为88, 76, 90, 66, 96。

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

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

试题程序:

include <conio.h>

include <stdio.h>

include <string.h>

int fun(int score[],int m,int up[])

{

}

main()

{

int i,n,up[9];

int score[9]={24,35,88,76,90,54,

59,66,96};

clrscr();

n=fun(score,9,up);

printf("\nup to the average score are:");

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

printf("%d",up[i]);

}


正确答案:int fun(int score[]int m int up[]) { int ij=0; float av=0.0 for(i=0;im;i++) av=av+score[i]/m; /*求平均值*/ for(i=0;im;i++) if(score[i]>av) /*如果分数高于平均分则将此分数放入up数组中*/ up[j++]=score[i]; return j; /*返回高于平均分的人数*/ }
int fun(int score[],int m, int up[]) { int i,j=0; float av=0.0 for(i=0;im;i++) av=av+score[i]/m; /*求平均值*/ for(i=0;im;i++) if(score[i]>av) /*如果分数高于平均分,则将此分数放入up数组中*/ up[j++]=score[i]; return j; /*返回高于平均分的人数*/ } 解析:该题第1个循环的作用是求出平均分av,第2个循环的作用是找出高于平均分的成绩并存入up数组中。

第5题:

给定程序MODll.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第l门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第l门课程的平均分是:76.125000

请改正函数fun中指定部位的错误,使它能得出正确的结果。

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


正确答案:
(1)doublesum改为doublesunl=0.0;(2)for(i=0;i<2;i*)改为细(i=0;i<n;i++);(3)sum+=ad[i].scom[1]改为sum+=羽[i].score[0];【考点分析】主要考察桩时变量初始化,c语言里临时变量不初始化,它的默认值是不确定的一个值。再者,考察C语言约定数组的下标是从0开始的。【解题思路】(1)doubleⅫ改为double8am=0.0;累加求和需要初始化累加结果的临时变量。(2)for(i_0;i<2;i++)改为for(i_0;i<n;i++);共有11个学生的成绩,需要累加所有学生第一门课的成绩。(3)sum+.std[i].BCOl.e[1]改为8am+=8td[i].score[0];第1门课程的平均分,c语言的下标是从0开始的。

第6题:

学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生人数:

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

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


正确答案:
【考点分析】本题考查:查找结构体数组中的最小数据,需要通过for循环语句和if条件语句来完成。【解题思路】本题中第一个循环语句的作用是遍历数组求出最低分数,第二个循环语句的作用是将数组中的元素与最低分比较,查找是否存在与最低分相等的成绩。

第7题:

补充程序Ccon0113.C,计算存放在数组score中12位学生成绩的平均分,并输出高于平均分的人数


aver=/**/sum/N;/**/
return(/**/c/**/);
cn=/**/count/**/(score);

第8题:

请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。

例如,输入如下整数:876 675 896 10l 30l 401 980 431451 777则输出结果为:6,980

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

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


正确答案:
解析:(1)该程序功能是求最大元素在数组中的下标。它的解题思路是,用最大值变量max标记第一个待找数据,逐个把所有待找数据和max进行比较,并用pos标记其当前最大值所在位置,从而找出最大值。(2)从已给部分源程序的main主函数开始入手,核心函数“fun(a,10,&k);”中的参数a存放着给出的整数,fun函数实现查找最大元素的下标。

第9题:

请编写函数fun(),该函数的功能是:计算n门课程的平均分,计算结果作为函数值返回。

例如x有5门课程的成绩是90.5,72,80,61.5,55,则函数的值为71.80。

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

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

试题程序:

include <stdio.h>

float fun (float *a, int n)

{

}

main ()

{

float score[30]=(90.5,72,80,61.5,55},

aver;

aver=fun(score, 5);

printf("\nAverage score is: %5.2f

\n",aver);

}


正确答案:float fun (float *a int n) { float av=0.0; int i; for(i=0;i av=av+a[i]; /*求分数的总和*/ return (av/n); /*返回平均值*/ }
float fun (float *a, int n) { float av=0.0; int i; for(i=0;i av=av+a[i]; /*求分数的总和*/ return (av/n); /*返回平均值*/ } 解析:我们先按数学的思路来计算平均分:总分除以人数即可得到平均分,其实用C语言的指针来实现该问题,也不难。当指针变量指向一个数组时,用该指针变量引用数组元素时,引用方式与数组的引用方式相同。如本题中a指向了score,所以通过a引用score中的元素时可以用下标法,也可以用指针运算法,a[i]和*(a+i)具有相同的作用。下标运算实际上是从当前地址开始往后取出地址中的第几个元素,当前地址下标为0。例如:若有int cc[10],*P=cc+5;,即p指向了cc的第5号元素,则p[0]的作用是取出从当前地址(即p所指地址)开始的第0号元素,它与cc[5]相同:p[3]的作用是取出从当前地址(即p所指地址)开始往后的第3号元素,它与cc[8]相同:p[-2]的作用是取出从当前地址开始往前的第2号元素,它与cc[3]相同,但不提倡使用“负”的F标。