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

下载本文档

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

文档简介

1、.1、把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。#include int main()struct Student long int num; char name20; char sex; char addr20; a=10101,“Li Lin”,M, “123 Beijing Road”; printf(NO.:%ldnname:%sn sex:%cnaddress:%sn,a.num,,a.sex,a.addr); return 0; 2、输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩#include in

2、t main() struct Student int num; char name20; float score; student1,student2; scanf(%d%s%f,&student1.num,, &student1.score); scanf(“%d%s%f”,&student2.num,, &student2.score); printf(The higher score is:n); if (student1.scorestudent2.score) printf(%d %s %6.2fn,student1.num,st

3、, student1.score); else if (student1.scorestudent2.score)printf(%d %s %6.2fn,student2.num,, student2.score); else printf(%d %s %6.2fn,student1.num,, student1.score); printf(%d %s %6.2fn,student2.num,, student2.score); return 0;3、有3个候选人,每个选民只能投票选一人,要求

4、编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。#include #include struct Person char name20; int count; leader3=“Li”,0,“Zhang”,0,“Sun”,0;int main() int i,j; char leader_name20; for (i=1;i=10;i+) scanf(“%s”,leader_name); for(j=0;j3;j+) if(strcmp(leader_name, )=0) leaderj.count+; for(i=0;i3;i+) printf(%5

5、s:%dn“,, leaderi.count); return 0;4、有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。#include struct Student int num; char name20; float score; ; int main() struct Student stu5=10101,Zhang,78,10103,Wang,98.5,10106,Li, 86 ,10108,“Ling”, 73.5,10110,“Fun”, 100 ; struct Student temp; const int n = 5

6、 ; int i,j,k;printf(The order is:n); for(i=0;in-1;i+) k=i; for(j=i+1;jstuk.score) k=j; temp=stuk; stuk=stui; stui=temp; for(i=0;in;i+) printf(%6d %8s %6.2fn, stui.num,,stui.score); printf(n); return 0;5、通过指向结构体变量的指针变量输出结构体变量中成员的信息。#include #include int main() struct Student long num; char n

7、ame20; char sex; float score; ;struct Student stu_1; struct Student * p; p=&stu_1; stu_1.num=10101; strcpy(stu_1.name,“Li Lin”); stu_1.sex=M; stu_1.score=89.5; printf(No.:%ldn”,p-.num); printf(name:%sn, ); printf(sex:%cn”, p-.sex); printf(”score:%5.1fn”,stu_1.score); return 0;6、有3个学生的信息,放在结构体

8、数组中,要求输出全部学生的信息。#include struct Student int num; char name20;char sex; int age;struct Student stu3=10101,Li Lin,M,18,10102,Zhang Fun,M,19,10104,Wang Min,F,20 ;int main() struct Student *p; printf( No. Name sex agen); for(p=stu;pnum, p-name, p-sex, p-age); return 0;7、有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均

9、成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。#include #define N 3struct Student int num; char name20; float score3; float aver; ;int main() void input(struct Student stu); struct Student max(struct Student stu); void print(struct Student stu); struct Student stuN; input(stu); print(max(stu); return 0;void input(

10、struct Student stu) int i; printf(请输入各学生的信息:学号、姓名、三门课成绩:n); for(i=0;iN;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; for(i=0;istum.aver) m=i; return stum; vo

11、id print(struct Student stud) printf(n成绩最高的学生是:n);printf(学号:%dn姓名:%sn三门课成绩:%5.1f,%5.1f,%5.1fn平均成绩:%6.2fn,stud.num,,stud.score0,stud.score1,stud.score2,stud.aver); 8、有若干个人员的数据,其中有学生和教师。学生的数据中包括:姓名、号码、性别、职业、班级。教师的数据包括:姓名、号码、性别、职业、职务。要求用同一个表格来处理。#include union Categ int clas; char position10;

12、; struct int num; char name10; char sex; char job; union Categ category person2; int main()int i; for(i=0;i2;i+) scanf(%d %s %c %c“,&personi.num, &, &personi.sex,&personi.job); if(personi.job = s) scanf(%d“,&personi.category.clas); else if(personi.job = t) scanf(“%s”,personi.category.pos

13、ition); else printf(“Input error!”); printf(n); for(i=0;i2;i+) if (personi.job = s) printf(%-6d%-10s%-4c%-4c% -10dn,personi.num,personi. name,personi.sex,personi.job, personi.category.clas); else printf(%-6d%-10s%-4c%-4c% -10sn,personi.num,personi. name,personi.sex, personi.job, personi.category.pos

14、ition); return 0;9、编程,输入2个时刻, 定义一个时间结构体类型(包括时分秒),计算2个时刻之间的时间差。#include typedef struct Mytimeint hour;int min;int sec;T;int main()T t1, t2, t3;int sec1, sec2, sec3;printf(输入两个时间值,以XX:XX:XX的格式n);scanf(%d:%d:%d, t1.hour, t1.min, t1.sec);scanf(%d:%d:%d, t2.hour, t2.min, t2.sec);sec1 = t1.hour * 3600 + t1.min * 60 + t1.sec;sec2 = t2.hour * 3600 + t2.min * 60 + t2.sec;if( sec1 = sec2 )sec3 = sec1 - sec2;elsesec3 = sec2 - sec1;t3.hour = sec3 / 3600;sec3 %= 3600;t3.min = sec3 /60;t3.sec = sec3 %60;printf(时间差是%d小时%d分%d秒n, t3

温馨提示

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

评论

0/150

提交评论