问答题 1.  某学生的记录由学号、8门课的成绩和平均分组成,学号和8门课的成绩已在主函数中给出。请编写proc()函数,它的功能是:求出该学生的平均分并放在记录的ave成员中。请自己定义正确的形参。
    例如,若学生的成绩是65.5,75,88,90,90.5,66,64.5,89.5,则他的平均分应当是78.625。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
    试题程序:
    #include<stdio.h>
    #define M 8
    typedef struct
    {char num[10];
    double s[M];
    double ave;
    }
    STREC;
    void proc(STREC*p)
    {
    }
    void main()
    {
    STREC stu={  "GA005",65.5,75,88,90,90.5,66,64.5,89.5};
    int i;
    proc(&stu);
    printf("The%s's student data:\n",
    stu.num);  //输出学号
    for(i=0; i<M; i++)
    printf("%4.1f\n",stu.s[i]);
    //输出各科成绩
    printf("\nave=%7.3f\n",stu.ave);
    //输出平均分
    }
【正确答案】void proc(STREC*p)
   {
   int i;
   p->ave=0.0; //其平均数初始值为0
   for(i=0; i<M; i++)
   p->ave=p->ave+p->s[i];  //学生的平均分
   放在记录的ave成员中
   p->ave=p->ave/M;
   }
【答案解析】 要求该学生的平均成绩,首先要求出其各科成绩之和,然后求出其平均成绩并放在成员变量ave中。