C习题新篇.docx
- 文档编号:2385508
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:9
- 大小:16.07KB
C习题新篇.docx
《C习题新篇.docx》由会员分享,可在线阅读,更多相关《C习题新篇.docx(9页珍藏版)》请在冰点文库上搜索。
C习题新篇
1.以下程序中函数fun的功能是:
统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。
请填空:
#include
#defineN3
typedefstruct
{intnum;
charnam[10];
charsex;
}SS;
intfun(SSperson[])
{inti,n=0;
for(i=0;i if(【1】=='M')n++; returnn; } main() {SSW[N]={{1,"AA",'F'},{2,"BB",'M'},{3,"CC",'M'}}; intn; n=fun(W); printf("n=%d\n",n); }答案: person[i].sex□*(person+i).sex 2.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体中,给定程序的功能是找出成绩最低的学生记录,通过 形参返回主函数。 将程序补充完整: typedefstructstudent {intnum; floatscore; }STU; fun(STUa[],STU*s) {【1】h; inti; h=a[0]; for(i=1;i if(a[i].score *s=h; } main() {STUaa[20],*ss; inti; printf("输入学生的学号和成绩: "); for(i=0;i<20;i++) scanf("%d,%f",&a[i].num,&a[i].score); fun(aa,ss); printf("最低分的学号和成绩: %d,%f",ss->num,ss->score); } 答案: STU□structstudent 3.人员的记录由编号(id)和出生年月日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号是唯一。 函数fun的功能是: 找出指定编号人员的数据,作为函数值返回,由主函数输出;若指定编号不存在,返回编号为空串的数据。 #defineN20 typedefstructstudent {charid[40]; intyear; intmonth; intdate; }STU; STUfun(STUstd[],char*id) {inti; STUa={"",9999,99,99}; for(i=0;i if(strcmp(std[i].id,id)==0) returnstd[i]; return【1】; } main() {STUs[N],ps; charid[40]; inti; printf("输入所有人员的编号和出生日期: "); for(i=0;i scanf("%s,%d,%d,%d",s[i].id,&s[i].year,&s[i].month,&s[i].date); printf("输入待查找人员的编号: "); gets(id); ps=fun(s,id); if(strcmp(ps.id,"")! =0) printf("查找结果: %s,%d,%d,%d",ps.id,ps.year,ps.month,ps.date); else printf("返回空串,不存在该编号"); } 答案: a 4.typedefstructs {intnum; charname[40]; floatscore; }PERSON; voidfun(PERSONstd[3]) {PERSONtemp; if(std[0].num>std[1].num){temp=std[0];std[0]=std[1];std[1]=temp;} if(std[0].num>std[2].num){temp=std[0];std[0]=std[2];std[2]=temp;} if(std[1].num>std[2].num){temp=std[1];std[1]=std[2];std[2]=temp;} } main() {PERSONstd[]={{12,"sunny",89}, {8,"train",73} {,21,"smelle",91}}; inti; fun(【1】); for(i=0;i<3;i++) printf("%d,%s,%f\n",std[i].num,std[i].name,std[i].score); } 答案: std 5.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门的成绩。 函数fun的功能是将形参a所指结构体变量中的数据 赋给函数中的结构体变量b,并修改了b中的学号和姓名,最后输出修改后的数据。 例如: a所指变量中的学号、姓名和三门课的成绩 依次是: 10001、“zhangsan"、95、80、88,则修改后的输出b中的数据应为: 10002、“lisa”、95、80、88. structstudent {intnum; charname[40]; foatscore[3]; }; voidfun(structstudenta) {structstudentb; inti; b=a; b.num=10002; strcpy(【1】,"lisa"); printf("改变后的信息: "); printf("%d,%s",b.num,b.name); for(i=0;i<3;i++) printf("%f",b.score[i]); } main() {strucntstudentaa={10001,"zhangsan",95、80、88}; fun(aa); }答案: b.name 6.通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。 函数fun的功能是将该学生的各科成绩都乘以一个系数a。 将程序补充完整。 typedefstructstudent {intnum; charname[40]; floatscore[3]; }STU; voidmodify(STU*ss,floata) {inti; for(i=0;i<3;i++) ss->score[i]*=a; } main() {STUstd={1,"sunny",{89,67,75}}; floata; printf("输入系数: "); scanf("%f",&a); modify(&std,【1】); printf("修改结果: %f,%f,%f",std.score[0],std.score[1],std.score[2]); } 答案: a 7.通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。 函数fun的功能是将该学生的各科成绩都乘以一个系数a。 将程序补充完整。 typedefstructstudent {intnum; charname[40]; floatscore[3]; }STU; voidmodify(STU*ss,floata) {inti; for(i=0;i<3;i++) ss->score[i]*=a; } main() {STUstd={1,"sunny",{89,67,75}}; floata; printf("输入系数: "); scanf("%f",&a); modify(&std,【1】); printf("修改结果: %f,%f,%f",std.score[0],std.score[1],std.score[2]); } 答案: a 8.下面程序的输出结果是【1】 structks {inta; int*b; } main() {structkss[4],*p;intn=1,i; for(i=0;i<4;i++) {s[i].a=n; s[i].b=&s[i].a; n=n+2; } p=&s[0]; printf("%d,%d\n",++(*p->b),*(s+2)->b); }答案2,5 8.intmonth; intdate; }STU; 【1】fun(STUstd[],char*id) {inti; STUa={"",9999,99,99}; for(i=0;i if(strcmp(std[i].id,id)==0) returnstd[i]; returna; } main() {STUs[N],ps; charid[40]; inti; printf("输入所有人员的编号和出生日期: "); for(i=0;i scanf("%s,%d,%d,%d",s[i].id,&s[i].year,&s[i].month,&s[i].date); printf("输入待查找人员的编号: "); gets(id); ps=fun(s,id); if(strcmp(ps.id,"")! =0) printf("查找结果: %s,%d,%d,%d",ps.id,ps.year,ps.month,ps.date); else printf("返回空串,不存在该编号"); } 答案: STU□structstudent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题