问答题 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。 例如:传给形参a的数据中,学号、姓名、和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,修改后的数据应为:10002、"LiSi"、96、81、89。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include struct student { long sno; char name[10]; float score[3]; }; /**********found**********/ __1__ fun(struct student a) { int i; a.sno = 10002; /**********found**********/ strcpy(__2__, "LiSi"); /**********found**********/ for (i=0; i<3; i++) __3__+= 1; return a; } 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[i]); 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"); }
【正确答案】
【答案解析】解题思路: 本题是对结构体变量中的值进行修改并通过函数值返回。 第一处:必须定义结构返回类型,所以应填:struct student。 第二处:对姓名进行修改,所以应填:a.name。 第三处:分别对成绩增加1分,所以应填:a.score[i]。