程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、’’ZhangQi’’、9

admin2018-09-27  51

问题 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
  例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、’’ZhangQi’’、93、85,87,修改后输出t中的数:据应为:10004、’’LiLie’’、93、85、87。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  #include<string.h>
3  struct student  {
4   long sno;
5  char name[10];
6  float score[3];
7  };
8  void fun(struct student *b)
9  {
10  /**********found**********/
11  b__1__=10004;
12  /**********found**********/
13  strcpy(b___2__,’’LiJie’’);
14  }
15  main()
16  {struct student t={10002,’’ZhangQi’’,93,85,87};
17   int i;
18  printf(’’\n\nThe original data:\n’’);
19  printf(’’\nNo:%1d Name:%s\nScores:’’,t.sno,t.name);
20  for(i=0;i<3;i++)printf(’’%6.2f’’,t.score);
21  printf(’’\n’’);
22  /**********found**********/
23  fun(__3__);
24  printf(’’\nThe data after modified:\n’’);
25  printf(’’\nNo:%1d Name:%s\nScores:’’,t.sno,t.name);
26  for(i=0;i<3;i++)printf(’’%6.2f’’,t.score);
27  printf(’’\n’’);
28  }

选项

答案(1)->sno (2)->name (3)&t

解析 函数fun的功能是对形参b所指结构体变量中的数据进行修改。
    第一空:“b__1___=10004;”等号右边是整型值,故这里是修改结构体成员sno的值,b是结构体指针,访问结构体数据成员时使用“->”运算符,因此,第一空为“b->sno”。
    第二空:“strcpy(b__2___,’’LiJie’’);”,strcpy是字符串拷贝函数,因此,这里是修改结构体的name成员值,故第二空处为“b->name"。
    第三空:fun函数的定义形式是:void fun(structstudent *b),可知fun的参数是指针,因此,主函数内调用fun函数时传入的参数是结构体t的地址,故第三空处为“&t”。
转载请注明原文地址:https://kaotiyun.com/show/j8xp777K
0

最新回复(0)