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

付费下载

下载本文档

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

文档简介

1、1、把一个学生的信息 (包括学号、姓名、性别、住址 )放在一个结构体变量中 ,然后输出这个 学生的信息。#include int main()struct Studentlong 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 、 name,a 、 sex,a、 addr); return 0;2、输入两个学生的学号、姓名与成绩 ,输出成绩较高学生的学号、姓名与成绩#

2、include int main() struct Studentint num;char name20;float score;student1,student2;scanf(%d%s%f,&student1 、num,student1 、 name, &student1 、 score);scanf( “ %d%s%”f ,&stude、nt2num,student2 、 name, &student2 、 score); printf(The higher score is:n);if (student1 、 scorestudent2 、 score)printf(%d %s %6 、

3、 2fn,student1 、 num,student1 、 name, student1 、 score); else if (student1 、 scorestudent2 、 score)printf(%d %s %6 、 2fn,student2 、 num,student2 、 name, student2 、 score); elseprintf(%d %s %6 、 2fn,student1 、 num,student1 、 name, student1 、 score); printf(%d %s %6 、 2fn,student2 、 num,student2 、 name

4、, student2 、 score);return 0;3、有 3 个候选人 ,每个选民只能投票选一人 ,要求编一个统计选票的程序 ,先后输入被选人的 名字 ,最后输出各人得票结果。#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(leade

5、r_name,leaderj 、 name)=0) leaderj 、 count+; for(i=0;i3;i+) n“ ,leaderi、 name, 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, “Ling73”、

6、,5,10110, “ Fun” ,100;struct Student temp;const int n = 5 ;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 、 name,stui 、 score);printf(n);return 0;5、通过指向结构体变量的指针变量输出结构体变量中成员的信息

7、。#include #include int main() struct Student long num;char name20;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 、 n”p,-、 num); printf(name:%sn, p- 、 name);n”,p-、sex);printf( ” score、

8、:%5 n” ,stu_、1 score);return 0;6、有 3 个学生的信息 ,放在结构体数组中 ,要求输出全部学生的信息。#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 sexagen);for(p=stu;pnum, p-name, p-sex, p-age

9、);return 0;7、有 n 个结构体变量 ,内含学生学号、 姓名与 3门课程的成绩。 要求输出平均成绩最高的学 生的信息 (包括学号、姓名、 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;

10、input(stu);print(max(stu);return 0;void input(struct Student stu) int i;printf( 请输入各学生的信息 :学号、姓名、三门课成绩 :n);for(i=0;iN;i+)scanf(%d %s %f %f %f,&stui 、num,stui 、name,&stui 、score0,&stui 、score1,&stui 、 score2); stui 、 aver=(stui 、 score0+stui 、 score1+stui 、 score2)/ 3、 0;struct Student max(struct Stu

11、dent stu)int i,m=0;for(i=0;istum 、 aver) m=i;return stum;void print(struct Student stud) printf(n 成绩最高的学生就是 :n);printf( 学号 :%dn 姓名 :%sn 三门课成绩 :%5、1f,%5、 1f,%5、 1fn 平均成绩 :%6、 2fn,stud 、 num,stud 、 name,stud 、 score0,stud 、score1,stud 、score2,stud 、aver);8、有若干个人员的数据 ,其中有学生与教师。学生的数据中包括 :姓名、号码、性别、职业、 班级

12、。教师的数据包括 :姓名、号码、性别、职业、职务。要求用同一个表格来处理。#include union Categ int clas;char position10;struct int num;char name10;char sex;char job;union Categ categoryperson2;int main()int i;for(i=0;i2;i+)scanf(%d %s %c %c“ ,&person、i num,&personi 、 name,&personi 、 sex,&personi 、 job);if(personi 、 job = s)scanf(%d “ ,

13、&perso、nicategory、 clas);else if(personi 、 job = t )scanf( “ %s” ,pers、onciategory、 position);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); elseprintf(%-6

14、d%-10s%-4c%-4c%-10sn,personi 、 num,personi 、 name,personi 、sex, personi 、 job, personi 、category、 position);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的格式

15、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 - seel;t3、hour = sec3 / 3600;sec3 %= 3600;t3、min = sec3 /60;t3、sec = sec3 %60;printf(” 时间差就是 d 小时 d 分d 秒n

温馨提示

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

最新文档

评论

0/150

提交评论