B024

01-程序填空题 软件121, 唐鼎威 1013浏览

所属年份:2011.3
程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。
例如,a所指变量s中的学号、姓名和三门课的成绩依次是:10001、”ZhangSan”、95、80、88,修改后输出t中的数据应为:10002、”LiSi”、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->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&#91;i&#93;);
  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[i]);
  printf("\n");
}

【参考答案】
(1) struct student *  (2) a->score[i]  (3) a
【考点分析】
本题考查:函数定义;结构变量成员函数的表示方法;函数返回值。
【解题思路】
填空1:函数定义时,类型标识符指明了本函数的类型,我们前面已经多次提到,函数的类型实际上是函数返回值的类型。该题中,用结构指针变量作为函数类型标识符。
填空2: 通过循环语句对指针a所指结构体变量中的3门成绩进行修改,所以此处为a->score[i]。
填空3:通过return语句将形参a返回给主调函数。
【解题宝典】
结构变量各个成员的表示方法:
(*结构指针变量).成员名;
或:结构指针变量->成员名