给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
typedef struct
{int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{int i;
printf("%d %s : ",tt.num,tt.name);
for(i=0; i<3; i++)
printf("%5.1f",tt.score[i]);
printf("/n");
}
/**********found**********/
void modify(【1】 *ss,float a)
{int i;
for(i=0; i<3; i++)
/**********found**********/
ss->【2】 *=a;
}
main()
{STU std={ 1,"Zhanghua",76.5,78.0,82.0 };
float a;
printf("/nThe original number and name and scores :/n");
show(std);
printf("/nInput a number : "); scanf("%f",&a);
/**********found**********/
modify(【3】,a);
printf("/nA result of modifying :/n");
show(std);
}
【正确答案】正确答案:STU score[i] &std
【答案解析】解析:第一空:由“void modify(___1___ *ss,float a)”可知函数的第一个参数是个指针,又函数必须完成结构体各科成绩数据成员都乘以一个系数a,因此传入的参数是结构体指针,即第一空处应为“void modify(STU *ss,float a)”。 第二空:对结构体各科成绩数据成员都乘以一个系数a,因此第二空处应为“ss->score[i] *=a;”。 第三空:modify函数的第一个参数是指针,故调用该函数时第一个参数应该是变量std的地址“&std”。