首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
2017-07-27
85
问题
给定程序MODI1.C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
1 #include<stdio.h>
2 typedef struct
3 {char num[8];
4 double score[2];
5 }STU;
6 double fun(STU std[],int n)
7 {int i;
8 /**********found**********/
9 double sum;
10 /**********found**********/
11 for(i=0;i<2;i++)
12 /**********found**********/
13 sum+=std
.score[1];
14 return sum/n;}
15 main()
16 { STU std[]={’’N1001’’,76.5,82.0,’’N1002’’,66.5,73.0,’’N1005’’,80.5,66.0,
17 ’’N1006’’,81.0,56.0};
18 printf(’’第1 门课程的平均分是:%if\n’’,fun(std,4));
19 }
选项
答案
(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].scote[0]
解析
(1)第一个错误在定义单门课程所有人总分sum时,因为sum是总分,而后面的计算式也确定为“sum+=std
,score[1]”。很明显地,这里的sum需要定义一个初始值才能正确计算,而初始值只能是为0计算才是正确的,所以这里应该是“double sum”改为“double sum=0;”。
第二个错误在fun函数的for循环条件中。这里的for循环是为了求各科的分数和然后计算平均分,因此for循环的次数和计算平均分的个数是一样的,fun函数是计算n个学生第一门课的平均分,所以这里的sum的循环肯定也是要进行n次,而原程序却是“i<2”,这样明显只会进行2次循环,显然是不对的,所以为了进行必要的分数相加,这里的“i<2”应该改成“i<n”。
第三个错误在for循环的求和算式中,这里是结构体变量的求和,语法上本来是没有任何错误的,但是要看清题目要求的计算学生第1门课程的平均分,然后再作为函数值返回。这里“sum+=std
.score[1]”变量看起来是第一门,但根据数组从0位开始我们就能发现这里其实求的是学生第2门课程的总分,然后求出来的平均分也是第二门学科的,这完全不是题目的要求,所以这里的“sum+=std
.score[1]”应该要改为“sum+=std
.score[0]”。
转载请注明原文地址:https://kaotiyun.com/show/qKDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序用以删除字符串中所有的空格,请填空。#include<stdio.h>main(){chars[100]={"OurteacherteachClanguage!"};inti,j;for(i=j=0;s[i
若x和n均是int型变量,且x=12,n=5,则执行y=x%=(n%=2)表达式后y的值为()。
若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是()。
以下程序的输出结果是()。#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main()
有以下程序:#include<stdio.h>main(){inta=6,b=7,m=I;switch(a%2){case0:m++;break;case1:m++;switch(b%2)
若有定义:inta=6,b=8,c=14;接着顺序执行下列语句后,变量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);
已知:intc[3][4];,则对数组元素引用正确的是()。
以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。#include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26
二叉树的遍历可以分为三种:前序遍历、()遍历和后序遍历。
C语言中,文件组成的基本单位为()。
随机试题
微型计算机存储系统中的的Cache是
A.延髓B.脊髓C.脑桥D.下丘脑基本生命中枢位于
A.临时心脏起搏B.药物治疗C.安置永久性心房起搏器D.心脏电复律E.安置永久性房室顺序双腔心脏起搏器下列病例采用上述哪项治疗最合理:男性,26岁。因感冒2周后感胸闷就诊。体检:心率40~45次/min
4月28日,气温18~28.5℃,动物医院接诊一京巴犬(小名贝贝),1岁,♂,体况中等,体温39.3℃。主诉,最近发现该犬小便次数增加,颜色发黄,吃食渐少。临诊发现该犬精神委顿,不停弓腰举尾,但仅排出少量黄色尿液,滴水状,浑浊;腹胀,触诊腹壁较紧张、神态不
某档案馆大型档案储存室设计时整体采用二氧化碳气体管网灭火系统保护。档案储存室建筑面积790m2,地面至吊顶垂直距离4m,吊顶净高1m。则设计时应划分为()个气体灭火系统防护区。
会计核算软件具有查询机内会计数据的功能,发现错账时,可以随时修改。()
乙公司2014年全年税前会计利润为988万元,经查乙公司当年营业外支出中有12万元为税收滞纳金,适用所得税税率为25%。已知乙公司递延所得税负债年初数为40万元,年末数50万元,递延所得税资产年初数为25万元,年末数为20万元。乙公司2014年的所得税费用
"Whereistheuniversity?"isaquestionmanyvisitorstoCambridgeask,butnoonecangivethemaclearanswerforthereisno
MycousinNancyisofteninapoisonousmood;Isupposeit’sbecausesheis._____child.
A、Findanotherequipment.B、Connecthiscomputertotheoffice.C、Findthemanger’soffice.D、Dopreparationfortheminutes.B女
最新回复
(
0
)