下列给定程序中,函数fun的功能是:在有n名学生、2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是76.125000 请改正函数fun中指定部位的错误,使

admin2019-04-14  12

问题 下列给定程序中,函数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 sum;
/* * * * * * 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.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];

解析 本题考查:临时变量初始化,C语言里临时变量不初始化,它的默认值是不确定的一一个值。再者,考查C语言约定数组的下标是从0开始的。
(1)double sum改为double sum=0.0;累加求和需要初始化累加结果的临时变量。
(2)for(i=0;i<2;i+ +)改为for(i=0;i<n;i+ +);共有n个学生的成绩,需要累加所有学生第一门课的成绩。
(3)sum + =std.score[1]改为sum + =std.score[0];第1门课程的平均分,C语言的下标是从0开始的。
转载请注明原文地址:https://kaotiyun.com/show/a9Rp777K
0

最新回复(0)