第一范文网 - 专业文章范例文档资料分享平台

第9章结构体类型与共用体类型习题及答案

来源:用户分享 时间:2020-06-21 本文由梦离醒悟 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第九章结构体类型与公用体类型习题及其答案

9-3编写程序,使用结构体类型,输出一年十二个月的英文名称及相应天数。

解:#include \struct date {

char month[10] ; int daynumber ; }

main() {

int i ; date a[12]

={{\{\,{\ for(i=0;i<12;i++);

printf(\ 月:%s %d\\n\}

思考:如何对结构体变量进行初始化?对结构体变量的引用为何要体现为分量(或成员)的引用?

9-4 编写程序求空间任一点到原点的距离,点用结构体描述。并请考虑求空间中任意两点的距离的程序。 解:#include \#include \struct point {

float x ; float y ; float z ; }

void main() {

double d1,d2,d ;

point p1,p2 ;

printf(\请输入第一个点的坐标:\ scanf(\ printf(\请输入第二个点的坐标:\ scanf(\ 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(\第一个点到原点的距离:%f\\n\ printf(\第二个点到原点的距离:%f\\n\ printf(\两点间的距离:%f\\n\}

9-5 编写输入、输出10个朋友数据的通讯录程序,每个朋友数据包括姓名、地址、邮编、电话、传呼、手机等数据。 解:#include \struct AddressBook {

char name[10] ; char address[30] ; char mailnumber[7] ; char telphone[12] ; char byphone[16] ; char movephone[1] ; }

void main() {

int i ;

AddressBook fd[10] ; for(i=0;i<10;i++) {

printf(\请输入第%d个朋友的信息:\\n\ printf(\姓名:\

scanf(\ printf(\地址:\

scanf(\ printf(\邮编:\

scanf(\ printf(\电话:\

scanf(\ printf(\传呼:\

scanf(\ printf(\手机:\

scanf(\ }

for(i=0;i<10;i++) {

printf(\第%d个朋友的信息:\\姓名:%s\\n 地址:%s\\n 邮

编:%s\\n 电话:%s\\n 传呼:%s\\n 手

机:%s\\n\one,fd[i].byphone,fd[i].movephone) ; } }

思考:结构体类型变量的分量可以是各种基本数据类型(整型、实型、字符型等)或数组类型,是否可以是另一结构体类型?

9-6 用一个数组存放图书信息,每本图书包含书名、作者、出版年月、出版社、借出数目、库存数目等信息。编写程序输入若干本图书的信息,按出版年月排序后输出。 解:#include \#include \struct Book {

char booktitle[30] ; char author[10] ; char publishday[10] ; char publishunit[22] ; char lendno[16] ;

char stockno[11] ; }

#define N 100 //假设图书数量不超过110册 main() {

int i,j,k,n;

Book ts[N] ,t;

printf(\请输入欲处理的图书数量:\ scanf(\ for(i=0;i

printf(\请输入第%d本书的信息:\\n\ printf(\书名:\

scanf(\ printf(\作者:\

scanf(\ printf(\出版年月:\

scanf(\ printf(\出版社:\

scanf(\ printf(\借出数:\

scanf(\ printf(\库存数:\

scanf(\ }

for(i=0;i

for(j=i+1;j

if(strcmp(ts[k].publishday,ts[j].publishday)<0) k=j ; {t=ts[i],ts[i]=ts[j];ts[j]=t;} }

printf(\排序后的图书信息:\ for(i=0;i

{

printf(\书名: %s, 作者: %s, 出版年月: %s, 出版社: %s, 借出数: %s, 库存

数:%s\\n\nit,ts[i].lendno,ts[i].stockno) ; } }

思考:在此程序中,ts[N]是一个什么类型的数组?每个数组的元素大约需占多少字节内存?为什么?

9-7 建立一张人员登记表,表中包括人员的姓名、性别、年龄、婚否,如为已婚,还包括爱人的姓名、年龄。将此表输出,假定人数不超过50人。

解:#include \#include \struct registerable {

char name[10] ; char sex ; int age; char marry ;

char wifename[10]; int wifeage ; }

#define N 50 void main() {

int i,n;

struct registerable ts[N] ;

printf(\请输入欲录入人员数量:\ scanf(\ for(i=0;i

printf(\请输入第%d个人的信息:\\n\ printf(\姓名:\

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育第9章结构体类型与共用体类型习题及答案 全文阅读和word下载服务。

第9章结构体类型与共用体类型习题及答案 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1089508.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top