C语言习题及答案(第九章).doc

上传人:小** 文档编号:90646931 上传时间:2019-06-14 格式:DOC 页数:28 大小:111KB
返回 下载 相关 举报
C语言习题及答案(第九章).doc_第1页
第1页 / 共28页
C语言习题及答案(第九章).doc_第2页
第2页 / 共28页
C语言习题及答案(第九章).doc_第3页
第3页 / 共28页
C语言习题及答案(第九章).doc_第4页
第4页 / 共28页
C语言习题及答案(第九章).doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《C语言习题及答案(第九章).doc》由会员分享,可在线阅读,更多相关《C语言习题及答案(第九章).doc(28页珍藏版)》请在金锄头文库上搜索。

1、9-3编写程序,使用结构体类型,输出一年十二个月的英文名称及相应天数。 解:#include stdio.hstruct date char month10 ; int daynumber ; main() int i ; struct date a12=January,31,February,29,March,31,Aprial,30,May,31,June,30,july,31,August,31,September,30,October,31,November,30,December,31 ; for(i=0;i12;i+); printf(%d 月:%s %dn,i+1,ai.mont

2、h,ai.daynumber) ; 思考:如何对结构体变量进行初始化?对结构体变量的引用为何要体现为分量(或成员)的引用? 9-4 编写程序求空间任一点到原点的距离,点用结构体描述。并请考虑求空间中任意两点的距离的程序。解:#include stdio.h#include math.hstruct point float x ; float y ; float z ; main() double d1,d2,d ; struct point p1,p2 ; printf(请输入第一个点的坐标:); scanf(%f,%f,%f,&p1.x,&p1.y,&p1.z); printf(请输入第二个

3、点的坐标:); scanf(%f,%f,%f,&p2.x,&p2.y,&p2.z); d1=sqrt(p1.x*p1.x+p1.y*p1.y+p1.z*p1.z); d2=sqrt(p2.x*p2.x+p2.y*p2.y+p2.z*p2.z); d=sqrt(p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y)+(p2.z-p1.z)*(p2.z-p1.z); printf(第一个点到原点的距离:%fn,d1); printf(第二个点到原点的距离:%fn,d2); printf(两点间的距离:%fn,d); 9-5 编写输入、输出10个朋友数据的通讯录

4、程序,每个朋友数据包括姓名、地址、邮编、电话、传呼、手机等数据。解:#include stdio.hstruct AddressBook char name10 ; char address30 ; char mailnumber7 ; char telphone12 ; char byphone16 ; char movephone1 ; main() int i ; struct AddressBook fd10 ; for(i=0;i10;i+) printf(请输入第%d个朋友的信息:n,i+1); printf(姓名:); scanf(%s,&fdi.name) ; printf(地

5、址:); scanf(%s,&fdi.address) ; printf(邮编:); scanf(%s,&fdi.mailnumber) ; printf(电话:); scanf(%s,&fdi.telphone) ; printf(传呼:); scanf(%s,&fdi.byphone) ; printf(手机:); scanf(%s,&fdi.movephone) ; for(i=0;i10;i+) printf(n第%d个朋友的信息:姓名:%sn 地址:%sn 邮编:%sn 电话:%sn 传呼:%sn 手机:%sn,i+1,fdi.name,fdi.address,fdi.mailnum

6、ber,fdi.telphone,fdi.byphone,fdi.movephone) ; 思考:结构体类型变量的分量可以是各种基本数据类型(整形、实型、字符型等)或数组类型,是否可以是另一结构体类型?9-6 用一个数组存放图书信息,每本图书包含书名、作者、出版年月、出版社、借出数目、库存数目等信息。编写程序输入若干本图书的信息,按出版年月排序后输出。 解:#include stdio.h#include string.hstruct Book char booktitle30 ; char author10 ; char publishday10 ; char publishunit22 ;

7、 char lendno16 ; char stockno11 ;#define N 100 /假设图书数量不超过110册 main() int i,j,k,n; struct Book tsN ,t; printf(请输入欲处理的图书数量:); scanf(%d,&n); for(i=0;in;i+) printf(请输入第%d本书的信息:n,i+1); printf(书名:); scanf(%s,&tsi.booktitle) ; printf(作者:); scanf(%s,&tsi.author) ; printf(出版年月:); scanf(%s,&tsi.publishday) ;

8、printf(出版社:); scanf(%s,&tsi.publishunit) ; printf(借出数:); scanf(%s,&tsi.lendno) ; printf(库存数:); scanf(%s,&tsi.stockno) ; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(strcmp(tsk.publishday,tsj.publishday)0) k=j ; t=tsi,tsi=tsj;tsj=t; printf(n排序后的图书信息:); for(i=0;in;i+) printf(n书名: %s, 作者: %s, 出版年月: %s, 出版

9、社: %s, 借出数: %s, 库存数:%sn,tsi.booktitle,tsi.author,tsi.publishday,tsi.publishunit,tsi.lendno,tsi.stockno) ; 思考:在此程序中,tsN是一个什么类型的数组?每个数组的元素大约需占多少字节内存?为什么? 9-7 建立一张人员登记表,表中包括人员的姓名、性别、年龄、婚否,如为已婚,还包括爱人的姓名、年龄。将此表输出,假定人数不超过50人。解:#include stdio.h#include string.hstruct registerable char name10 ; char sex ; i

10、nt age; char marry ; char wifename10; int wifeage ;#define N 50 main() int i,n; struct registerable tsN ; printf(请输入欲录入人员数量:) ; scanf(%d,&n); for(i=0;in;i+) printf(请输入第%d个人的信息:n,i+1); printf(姓名:) ; scanf(%s,tsi.name); printf(性别:) ; scanf(%s,tsi.sex); printf(年龄:) ; scanf(%s,tsi.age); printf(婚否(y/n):)

11、 ; scanf(%s,tsi.marry); if(tsi.marry=y|tsi.marry=Y) printf(妻子姓名:); scanf(%s,&tsi.wifename); printf(妻子年龄:); scanf(%s,&tsi.wifeage); else tsi.wifename= ; tsi.wifeage=0 ; printf(n通信录信息表:); printf(n 姓名 性别 年龄 婚否 妻子姓名 妻子年龄n) ; for(i=0;in;i+) printf(%8s %c %d %c %8s %dn,tsi.name,tsi.sex,tsi.age,tsi.marry,t

12、si.wifename,tsi.wifeage); 思考: 结构体类型变量的分量与其对应类型的一般变量的区别是什么?在使用中有何不同?9-8 定义一函数output(),输出学生的成绩数组。成绩数组中有20个学生的数据记录,每个记录包括学号、姓名及三门课的成绩。解:#include stdio.h#include string.h#define STT struct studentSTT int no ; char name8 ; int c3 ;#define N 20output(STT aN) int i; printf(n学生成绩信息表n) ; printf( 学号 姓名 成绩1 成绩2 成绩3n) ; for(i=0;iN;i+) printf(%6d %8s %3d %3d %3dn,ai.no,ai.name,ai.c0,ai.c1,ai.c2); void main() int i ; STT csN ; printf(请输入学生的学号、姓名、成绩:); for(i=0;iN;i+) printf(第%d个人的信息:n,i+1); printf(学号:); scanf(%d,&csi.no); printf(姓名:);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号