程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。 例如,a所指变量s中的学号、姓名和3门课的成绩依次是:100

admin2021-04-28  41

问题 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。
    例如,a所指变量s中的学号、姓名和3门课的成绩依次是:10001、“ZhangSan”、95、80、88,修改后输出t中的数据应为:10002、“LSi”、96、81、89。
    请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
#include<stdio.h>
#include<string.h>
struct student{
    long sno;
    char name[10];
    float score[3];
},
/**********found***********/
【1】fun(struct student*a)
{  int i;
    a一>8no=10002;
    strcpy(a一>name,“LiSi”);
/**********found***********/
  for(i=o;i<3;i++)【2】+=1;
/**********found***********/
  return 【3】
}
main()
{struct student s={10001,“ZhangSan”,95,80,88},*t;
    int i;
    printf(“\n\nThe original data:
\n”);
  printf(“\nNo:%ld Name:%S
\nScores:”,S.sno,S.name);
    for(i=0;i<3,i++)
    printf(“%6.2f”,s.score);
  printf(“\n”);
  t=fun(&S);
  printf (“\nThe data after modilied:\n”);
    printf(“\nNo:%ld Name:%s\n
Scores:”,t一>sno,t一>name);
    for(i=0;i<3;i++)
    printf(“%6.2 f”,t一>Score
);
  printf(“\n”);

选项

答案(1)street student* (2)s一>score[i] (3)a

解析 填空1:函数定义时,类型标识符指明了本函数的类型,前面已经多次提到,函数的类型实际上是函数返回值的类型。该题中,用结构体指针变量作为函数类型标识符。
  填空2:通过循环语句对指针a所指结构体变量中的三门成绩进行修改,所以此处为a一>score
  填空3:通过return语句将形参a返回给主函数。
转载请注明原文地址:https://kaotiyun.com/show/Lttp777K
0

最新回复(0)