填空题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函 数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。
例如: b所指变量t中的学号、姓名、和三门课的成绩依次是: 10002、
"ZhangQi"、93、85、87,修改后输出t中的数据应为:10004、" LiJie "、93、
85、87。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
struct student {
long sno;
char name[10];
float score[3];
};
void fun( struct student *b)
{ int i;
b__1__ = 10004;
/
strcpy(b__2__, "LiJie");
}
main()
{ struct student t={10002,"ZhangQi", 93, 85, 87};
int i;
printf("\n\nThe original data :\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");
fun(__3__);
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");
}
解题思路:
本题是对结构体变量中的值进行修改并通过函数中的参数进行返回。
第一处:对学号进行更改,所以应填:->no。
第二处:对姓名进行更改,所以应填:->name。
第三处:对函数的调用,所以应填:&t。