给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文

admin2013-04-02  29

问题 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和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);
  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 *=a;”。
第三空:modify函数的第一个参数是指针,故调用该函数时第一个参数应该是变量std的地址“&std”。
转载请注明原文地址:https://kaotiyun.com/show/KJJp777K
0

最新回复(0)