使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,

admin2021-07-09  48

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放人记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#defiFie N8
typedef struct
{
char num[10];
double s[N];
double ave;
}
STREC;
void fun(STREC*a)
{

}
void main()
{
STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
int i;
fun(&s);
printf("The%s rs student data:\n",s.num);
for(i=0;i<N;i++)
printf("%4.if\n",s.s);
printf("\nave=%7.3f\n",s.
ave);
}

选项

答案void fun(STREC*a) { int i; a->ave=0.0; for(i=0;i<N;i++) a->ave=a->ave+a->s[i]; /*求各门课程成绩的总和*/ a->ave=a->ave/N;/*求平均分*/ }

解析 本题考查自定义形参的相关知识点,程序流程为:在fun函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a,此时,引用成员的方式可以使用指向运算符,即a->ave和a->s,也可用(*a).ave和(*a).s
转载请注明原文地址:https://kaotiyun.com/show/6ptp777K
0

最新回复(0)