问答题
下列给定程序中,函数fun的功能是:在有n名学生、2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是76.125000 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>typedef struet{ 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******/ 8am+=std[i].8core[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
【答案解析】解析:本题考查:临时变量初始化,C语言里临时变量不初始化,它的默认值是不确定的一个值。再者,考查C语言约定数组的下标是从0开始的。 (1)double sum改为double sum=0.0;累加求和需要初始化累加结果的临时变量。 (2)for(i=0;i<2;i++)改为for(i=0;i