C语言程序设计基础-结构体习题_第1页
C语言程序设计基础-结构体习题_第2页
C语言程序设计基础-结构体习题_第3页
C语言程序设计基础-结构体习题_第4页
C语言程序设计基础-结构体习题_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这 个学生的信息。#i nclude <stdio.h>int mai n()struct Stude ntlong int num;char n ame20;char sex;char addr20;a=10101,“ Li Lin ”, M ,“123 Beijing Road ” ;prin tf("NO.:%ldnn ame:%snsex:%c naddress:%sn",a. nu m,a. name,a.sex,a.addr);return 0;2、输入两个学生的学号、

2、姓名和成绩,输出成绩较高学生的学号、姓名和成绩#i nclude <stdio.h>int mai n() struct Stude ntint num;char n ame20;float score;stude nt1,stude nt2;scan f("%d%s%f", &stude nt1. num,stude nt1. name, &stude nt1.score);scanf(“ d%s%”,&student2.num,, &student2.score);prin tf("The

3、higher score is:n");if (stude nt1.score>stude nt2.score)prin tf("%d %s %6.2fn",stude nt1. nu m,stude nt1. name, stude nt1.score);else if (stude nt1.score<stude nt2.score)prin tf("%d %s %6.2fn",stude nt2. nu m,stude nt2. name, stude nt2.score);elsepri ntf("%d %s %6

4、.2fn",stude nt1. nu m,stude nt1. name, stude nt1.score);prin tf("%d %s %6.2fn",stude nt2. nu m,stude nt2. name, stude nt2.score);return 0;3、有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选 人的名字,最后输出各人得票结果。#in clude <stri ng.h>#i nclude <stdio.h>struct Pers on char n ame20;int count;

5、leader3= “ Li ”,0,“ Zhang ”,0,“ Sun”,0;int mai n() int i,j;char leader_ name20;for (i=1;i<=10;i+) scanf(“ S' ,leader_name);for(j=0;j<3;j+)if(strcmp(leader_ name,leaderj. name)=0) leaderj.co un t+;for(i=0;i<3;i+)printf("%5s:%dn“ ,,leaderi.co un t); return 0;4、有n个学生的信息(包括

6、学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。#in clude <stdio.h> struct Stude nt int num; char n ame20; float score; ;int mai n() struct Stude nt stu5=10101,"Zha ng",78,10103,"Wa ng",98.5,10106,"Li",86 ,10108,“ Ling ” , 73.5,10110,; Fun” , 100 struct Stude nt temp;const int n =

7、5 ;int i,j,k;prin tf("The order is:n");for(i=0;i<n -1;i+) k=i;for(j=i+1;j <n ;j+)if(stuj.score>stuk.score) k=j;temp=stuk;stuk=stui;stui=temp;for(i=0;i <n ;i+)prin tf("%6d %8s %6.2fn",stui. nu m,stui. name,stui.score);prin tf("n");return 0;5、通过指向结构体变量的指针变量输出结

8、构体变量中成员的信息。#i nclude <stdio.h>#in elude <stri ng.h>int mai n() struct Stude nt long num;char n ame20;char sex;float score;struct Stude nt stu_1;struct Stude nt * p;p=&stu_1;stu_1. nu m=10101;strcpy(stu_1.name, “ Li Lin ”);stu_1.sex='M stu_1.score=89.5;prin tf("No.:%ldn->”

9、 um);printf("n ame:%sn", p ->.n ame);prin tf("sex:%cn->.sex);printf( ” score:%5.1fn”,stu_1.score);return 0;6、有3个学生的信息,放在结构体数组中,要求输出全部学生的信息。#i nclude <stdio.h>struct Stude nt int num;char n ame20;char sex;int age;struct Stude ntstu3=10101,"LiLin ”,'M',18,10102,

10、"Zha ngFu n",'M',19,10104,"Wa ngMin ”,'F',20 ;int mai n() struct Stude nt *p;printf(” No.Name sex agen");for(p=stu;p<stu+3;p+)printf(“ 5dC% %2c %4dn "->pum, p->name, p->sex, p->age);return 0;7、有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名

11、、3门课程成绩和平均成绩)。#i nclude <stdio.h>#defi ne N 3struct Stude nt int num;char n ame20;float score3;float aver;int mai n() void in put(struct Stude nt stu);struct Stude nt max(struct Stude nt stu);void prin t(struct Stude nt stu);struct Stude nt stuN;in put(stu);prin t(max(stu);return 0;void in put

12、(struct Stude nt stu) int i;printf("请输入各学生的信息:学号、姓名、三门课成绩:n");for(i=0;i<N;i+)scanf("%d %s %f %f %f",&stui.num,,&stui.score0,&stui.score1,&stui.score2);stui.aver=(stui.score0+stui.score1+stui.score2)/3.0;struct Student max(struct Student stu)int i,m=0;f

13、or(i=0;i<N;i+)if (stui.aver>stum.aver) m=i;return stum;void prin t(struct Stude nt stud) printf("n成绩最高的学生是:n");printf(” 学号:dn 姓名:sn三门课成绩:5.1f,%5.1f,%5.1fn 平均成绩:%6.2fn",stud. nu m,stud. name,stud.score0,stud.score1,stud.score2,stud.aver);8、有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、

14、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求用同一个表格来处理。#i nclude <stdio.h>union Categ int clas;char positi on 10;struct int num;char n ame10;char sex;char job;union Categ categorypers on 2;int mai n()int i;for(i=0;i<2;i+)scanf("%d %s %c %c “,&personi.num,&pers on i. name,&pers on i.sex,&

15、;pers on i.job);if(pers on i.job = 's')scanf("%d“,&personi.category.clas);else if(pers on i.job = 't)sca nf(“ s ,pers on i.category.positi on) ;elseprintf( "In put error!” );prin tf("n");for(i=0;i<2;i+)if (personi.job = s')printf("% -6d%-10s%-4c%-4c%-1

16、0dn",pers on i. nu m,pers on i.n ame,pers on i.sex,pers on i.job,pers on i.category.clas);elseprintf("% -6d%-10s%-4c%-4c%-10sn",pers on i. nu m,pers on i.n ame,pers on i.sex, pers on i.job,pers on i.category.positi on);return 0;9、编程,输入2个时刻,定义一个时间结构体类型(包括时分秒),计算2个时刻之间的时间差。#i nclude <

17、;stdio.h>typedef struct Mytimeint hour;int min;int sec;T;int mai n()T t1, t2, t3;int seel, sec2, sec3;printf(”输入两个时间值,以 XX:XX:XX勺格式n");sea nf("%d:%d:%d", tl.hour, tl.mi n, tl.sec);sea nf("%d:%d:%d", t2.hour, t2.mi n, t2.sec);sec1 = tl.hour * 3600 + tl.min * 60 + tl.sec;sec2 = t2.hour * 3600 + t2.min * 60 + t2.sec;if( secl >= sec2 )sec3 = secl - sec2;elsesec3 = sec2- secl;t3.hour = sec3 / 3600;sec3 %= 3600;t3.min = sec3 /60;t3.sec = sec3 %60;pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论