某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72, 64.5,87.5,则

admin2019-03-19  28

问题 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
    例如,学生的成绩是:85.5,76,69.5,85,91,72,
64.5,87.5,则他的平均分应为78.875。
    注意:部分源程序给出如下。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
    试题程序:
#incl ude < stdio.h >
#define N 8
typectef struct
{
  char num[1 ];
  double s[N];
  double ave;
    }
    STREC,
    void fun(STREC*a)
    {
    }
    void main()
    {
    STREC S={"GA005",85.5,7 6,69.5,85 ,91, 72 ,64.5 r 87.5};
    int i;
    fun(&s);
    printf("The%s’s student da
ta:\n",s.num);
    for(i=0;i < N;i++)
    printf("%4.1 f\n",s.s
);
    printf("knave=%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/VBRp777K
0

最新回复(0)