问答题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。 例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、''ZhangQi''、93、85、87,修改后输出t中的数据应为:10004、''LiJie''、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:%id Name:%s\nScores:'',t.sno,t.name);20 for(i=0;i<3;i++)printf(''%6.2f'',t.score[i]);21 printf(''\n'');22 /**********found**********/23 fun( __3__);24 printf(''\nThe data after modified:\n'');25 printf(''\nNo:%id Name:%s\nScores:'',t.sno,t.name);26 for(i=0;i<3;i++) printf(''%6.2f'',t.score[i]);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(struct student *b),可知fun的参数是指针,因此主函数内调用fun函数时传入的参数是结构体t的地址,故第 三空处为“&t”。