问题 问答题

某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
试题程序:
#include <stdio .h>
#define N 8
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’s student data:\n",
s.num);
printf("% 4.1f\n", s.s[i]);
printf "\nave=% 7.3f\n", s.
ave);

答案

参考答案:oid fun(STREC *a)
{
double ave=0.0;
int i;
for(i=0;i<N;i++)
a->ave=a->ave+a->s[i];
/*求各门成绩的总和*/
a->ave/=N;
/*求平均分*/
}
答案考生文件夹

解析: 本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。
[解题思路] 本题考查自定义形参的相关知识点,程序流程是这样的:在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a ,此时,引用成员的方式可以使用指向运算符,即a->ave和a->s[i],当然也可用(*a).ave和(*a).s[i]。

综合
单项选择题