首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODI1.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000 请改正函数fun中指定部
给定程序MODI1.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000 请改正函数fun中指定部
admin
2020-07-28
39
问题
给定程序MODI1.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
typedef struct
{char num[8];
double score[2];
}STU;
double fun(STU std[],int n)
{int i;
/**********found**********/
double slim;
/**********found**********/
for(i=0;i<2;i++)
/**********found**********/
sum+=std
.score[1];
return sum/n;}
main()
{STU std[]={"N1001",76.5,82.0,"N1002",66.5,73.0,"N1005",80.5,66.0,
"N1006",81.0,56.0);
printf("第1门课程的平均分是:%lf\n",fun(std,4));
}
选项
答案
(1)double sum改为 double sum=0 (2)for(i=0;i<2;i++)改为 for(i=0; i<n ; i++) (3)sum+=std[i].score[1]改为 sum+=std[i].score[0]
解析
本题fun函数的主要功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。这里就是很基本的求平均数,只不过这里涉及到结构体,稍微要比普通的求平均数复杂一点。fun()函数就是相加求和,注意结构体涉及的细节问题即可。
(1)第一个错误在定义单门课程所有人总分sum时,因为sum是总分,而后面的计算式也确定为“sum+=std
.score[1]”。很明显地,这里的s啪需要定义一个初始值才能正确计算,而初始值只能是为0计算才是正确的,所以这里应该是“double sum”改为“double sum=0:”。
第二个错误在fun函数的for循环条件中。这里的for循环是为了求各科的分数和然后计算平均分,因此,for循环的次数和计算平均分的个数是一样的,fun函数是计算n个学生第一门课的平均分,所以这里的sum的循环肯定也是要进行n次,而原程序却是“i<2”,这样明显只会进行2次循环,显然是不对的,所以为了进行必要的分数相加,这里的“i<2”应该改成“j<n”。
第三个错误在for循环的求和算式中,这里是结构体变量的求和,语法上本来是没有任何错误的,但是要看清题目要求的计算学生第1门课程的平均分,然后再作为函数值返回。这里“sum+=std
.score[1]”变量看起来是第一门,但根据数组从0位开始我们就能发现这里其实求的是学生第2门课程的总分,然后求出来的平均分也是第二门学科的,这完全不是题目的要求,所以这里的“sum+=std
.score[1]”应该要改为“sum+=std
.score[0]”。
转载请注明原文地址:https://jikaoti.com/ti/xND0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有以下程序structstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;a.name=(char*)malloc(10);strc
有以下程序#include<stdio.h>voidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int
以下选项中关于程序模块化的叙述错误的是
关于do循环体while(条件表达式);以下叙述中正确的是
设二叉树的前序序列与中序序列均为ABCDEFGH,则该二叉树的后序序列为
以下选项中非法的C语言字符常量是
某图书集团数据库中有关系模式R(书店编号,书籍编号,库存数量,部门编号,部门负责人),其中要求①每个书店的每种书籍只在该书店的一个部门销售;②每个书店的每个部门只有一个负责人;③每个书店的每种书籍只有一个库存数量。则关系模式R最高是
设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则后序序列为
下面属于系统软件的是
以下关于C语言数据类型使用的叙述中错误的是
随机试题
小建中汤与桂枝汤共有的药物是
测得某溶液的pH为8,则溶液中[H+]应表示为
患者,女,23岁。2个月前因外伤致一上前牙脱落,今要求烤瓷修复。口腔检查:缺失,间隙正常,牙槽嵴无明显吸收。牙冠1/2缺损,已露髓,探诊稍敏感,叩诊(-),无松动。左上尖牙牙冠良好,叩诊(-),无松动。余牙未见异常。最佳治疗方案是
正常小儿后囟闭合的时间一般于出生后
关于板式橡胶支座抗剪弹性模量的试验检测,请回答下列问题。若某支座3次加载测得的综合抗剪弹性模量分别为1.03MPa、1.04MPa、1.08MPa,则该板式橡胶支座的综合抗剪弹性模量应取()。
南方某加工厂新接到一批订单,需要工人加班。该企业拟延长工作时间,列选项中符合规定的是()。
彩塑是中国民间手工艺品之一,以黏土加上纤维物、河沙、水,揉合成胶泥,多在木制骨架上进行形体塑造,阴干后填缝、打磨,再着色描绘。我国的彩塑发展到盛唐达到了顶峰,这一时期的代表作品是()。
一名就读于苏州某小学的王同学,因为在上音乐课时自言自语,被音乐老师用封箱胶带施以“封嘴”半节课的惩罚。下列关于该音乐老师课堂问题处理方式的说法,不正确的是()。
Industrialism,atleastwithinourexperienceofitformorethan200years,never【B1】______apointofequilibriumoralevel
A、 B、 C、 A本句是陈述身体不舒服以至于不能来上班这一事实的陈述句。
最新回复
(
0
)