中国石油大学(华东)C语言在线测评答案-第12章结构体和共用体(2013级亲测正确)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12.1 修改学生的各科成绩
给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。请在程序的下划线处填入正确的容并把下划线删除,使程序得出正确的结果。
注意:只需提交补充完整的fun函数和main函数
预设代码
/**********found**********/
void fun(___1___ *ss,float a)
{
int i;
for(i=0; i<3; i++)
/**********found**********/
ss->___2___ *=a;
}
int main( )
{
STU std={ 1,"Zhanghua",76.5,78.0,82.0 };
float a;
scanf("%f",&a);
/**********found**********/
fun(___3___,a);
show(std);
return 0;
}
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include
#include
#include
typedef struct
{
int num;
char name[9];
float score[3];
}STU;
void show(STU tt)
{
int i;
printf("%d %s : ",tt.num,);
for(i=0; i<3; i++)
printf("%5.1f",tt.score[i]);
printf("\n");
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
/**********found**********/
void fun(STU *ss,float a)
{
int i;
for(i=0; i<3; i++)
/**********found**********/
ss->score[i] *=a;
}
int main( )
{
STU std={ 1,"Zhanghua",76.5,78.0,82.0 }; float a;
scanf("%f",&a);
/**********found**********/
fun(&std,a);
show(std);
return 0;
}
12.2 修改学生信息
程序通过定义学生结构体变量,存储了学生的学号、和 3 门课的成绩。函数 fun 的功能是对形参 b 所指结构体变量中的数据进行修改 , 最后在主函数中输出修改后的数据。
例如 : b 所指变量 t 中的学号、、和三门课的成绩依次是 : 10002 、 "ZhangQi" 、93 、 85 、 87 ,修改后输出 t 中的数据应为: 10004 、 " LiJie " 、 93 、 85 、87 。
请在程序的下划线处填入正确的容并把下划线删除 , 使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
注意:只需提交补充完整的fun函数和main主函数
预设代码
void fun( struct student *b)
{
/**********found**********/
b__1__ = 10004;
/**********found**********/
strcpy(b__2__, "LiJie");
}
int main()
{
struct student t={10002,"ZhangQi", {93, 85, 87}};
int i;
/**********found**********/
fun(__3__);
printf("No: %ld Name: %s\nScores:",t.sno, );
for (i=0; i<3; i++) printf("%6.2f", t.score[i]);
printf("\n");
return 0;
}
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include
#include
struct student
{
long sno;
char name[10];
float score[3];
};
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
void fun( struct student *b)
{
/**********found**********/
b->sno = 10004;
/**********found**********/
strcpy(b->name, "LiJie");
}
int main()
{
struct student t={10002,"ZhangQi", {93, 85, 87}}; int i;
/**********found**********/
fun(&t);
printf("No: %ld Name: %s\nScores:",t.sno, ); for (i=0; i<3; i++) printf("%6.2f", t.score[i]);