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

admin2013-04-02  27

问题 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量8中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
    例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、”ZhangSan”、95、80、88,修改后输出t中的数据应为:10002、”LiSi”、96、81、89。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构l
#include  
#include  
struct student {
  long sno;
  char name[10];
  float score[3];
};
/**********found**********/
【1】fun(struct student *a)
{int i;
  a->sno = 10002;
  strcpy(a->name, "LiSi");
/**********found**********/
  for (i=0; 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 modified :\n");
  printf("\nNo: %ld Name: %s\nScores: ",t->sno, t->name);
  for (i=0; i<3; i++) printf("%6.2f ", t->score);
  printf("\n");
}

选项

答案struct student* a->score[i] a

解析 第一空:主函数内fun函数的调用形式是“t=fun(&s);”,t是student结构体指针,故fun函数的返回值是student结构体指针,因此第一空为“struct student *”。
第二空:“for (i=0; i<3; i++) __2__+=1;”是修改a的score数组元素的值,故第二空为“a->score”。
第三空:此处补充返回值,由第一空的分析可知,返回值是指针,a是指针变量,所以返回值为a,即第三空为“a”。
转载请注明原文地址:https://jikaoti.com/ti/Hin0FFFM
0

相关试题推荐
最新回复(0)