资源描述:
《C语言程序与设计_第8章_源程序代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、源程序代码和习题答案说明:1)以下给出的所有源程序代码都在VisualC++6.0环境中运行验证过;若需要,可以将每一题的代码复制到C语言环境中;2)为了书上印出的源程序代码格式清楚,在源程序代码中增加了一些西文空格;3)用P标明了一些源程序代码的页码(红色字);4)为方便读者查对,习题答案直接写在题中(红色字)第8章结构体、共用体和链表P241:【例8-1】利用结构体类型编写程序,实现输入、存储两个学生的个人信息(信息包括姓名和年龄),交换两个学生的信息,计算两人的平均年龄,然后输出交换和计算的结果。#incl
2、udestructstu_xx{charname[10];intage;};main(){structstu_xxs1,s2,t;floatave_age;scanf("%s%d",s1.name,&s1.age);/*输入第1个学生信息*/scanf("%s%d",s2.name,&s2.age);/*输入第2个学生信息*/t=s1;s1=s2;s2=t;/*交换两个学生的信息*/ave_age=(s1.age+s2.age)/2.0f;/*计算两人的平均年龄*/printf("%s%dt%
3、s%dt",s1.name,s1.age,s2.name,s2.age);printf("ave_age=%.2f",ave_age);}三、任务的实现方法1:使用初始化方法。程序如下:#includestructstu_xx/*定义结构体类型*/{charnum[5],name[10];floatscore[4];};main(){structstu_xxs1={"3001","zhang",98.0,78.0,76.0,80.0};printf("NumtNametChtMatht
4、EntC");/*输出表头*/printf("%st%st%-6.0ft%-6.0ft%-6.0ft%-6.0f",s1.num,s1.name, s1.score[0],s1.score[1],s1.score[2],s1.score[3]);}方法2:从键盘输入数据。程序如下:(定义结构体类型同上,此处略)#includemain(){structstu_xxs1;/*定义结构体变量*/printf("请输入NumNameScore(4):");/*输出提示信息*/s
5、canf("%s%s%f%f%f%f",s1.num,s1.name,&s1.score[0],&s1.score[1],&s1.score[2],&s1.score[3]);printf("NumtNametChtMathtEntC");/*输出表头*/printf("%st%st%-6.0ft%-6.0ft%-6.0ft%-6.0f",s1.num,s1.name,s1.score[0],s1.score[1],s1.score[2],s1.score[3]);}运行结果:运行程序
6、,显示:请输入NumNameScore(4):3001zhang98787680'输出:NumNameChMathEnC3001zhang98787680【例8-2】设学生基本信息有学号、姓名、出生日期(年、月、日)和3科成绩(英语、数学、C语言),分别用初始化和输入的方法保存并输出一个学生的基本信息。分析:①学生的出生日期包含了3个数据,可定义为一个日期型结构体类型。3科成绩也包含了3个数据,也可定义为一个成绩结构体类型。②学生的基本信息有4项,将其定义为学生基本信息结构体类型。保存1个学生信息,需要1个同类型
7、结构体的变量。方法1:使用初始化的方法保存并输出一个学生的基本信息。程序如下:structdate/*定义日期结构体类型date*/{intyear,month,day;};structscore/*定义成绩结构体类型score*/{inten,math,c;} ;structstu_xx/*定义学生基本信息结构体类型stu_xx*/{charnum[5],name[10];structdated;/*d成员为结构体类型date*/structscores;/*s成员为结构体类型score*/} ;#includ
8、emain(){structstu_xxs1={"3001","Wang",{1989,1,3},{98,99,80}};printf("NumtNametyeartmonthtdaytentmathtC");printf("%st%st%dt%dt%dt%dt%dt%d",s1.num,s1.name,s1.d.ye