- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 结构体、共用体与枚举类型 本章要求 理解结构体类型的概念,掌握结构体变量的定义和使用 掌握结构体数组、结构体指针的定义和使用 理解共用体的概念,掌握共用体变量的定义和使用 了解枚举数据类型及自定义数据类型的使用 领会自定义数据类型标识符的意义 理解链表的概念,初步掌握动态链表的常见操作 本章重点 结构体变量的定义和使用 链表的概念 本章难点 动态链表的常见操作 第8章 结构体、共用体与枚举类型 8.1 结构体类型与结构体变量 8.2 结构体数组 8.3 结构体与函数 8.4 共用体 8.5 枚举类型 8.6 自定义类型标识符 8.7 动态数据结构——链表 8.1 结构体类型与结构体变量 8.1.1 结构体概述 例8-1 通过建立表8-1的学生的信息表,要求从键盘输入学生的信息,并将学生成绩小于平均成绩的学生信息输出。 8.1 结构体类型与结构体变量 #include stdio.h #define N 4 void main() { int num[N]; /* 存放各学生的学号 */ char name[N][10]; /* 存放各学生的姓名 */ char sex[N]; /* 存放各学生的性别*/ int age[N]; /* 存放各学生的年龄*/ float score[N]; /* 存放各学生的成绩*/ int i; float sum=0,aver; /* 表示总成绩和平均成绩 */ for(i=0;iN;i++) { scanf(%d %s %c %d %f,num[i],name[i],sex[i],age[i],score[i]); sum+=score[i]; } aver=sum/N; printf(\n); 8.1 结构体类型与结构体变量 for(i=0;iN;i++) if (score[i]aver) printf(%d %s %c %d %f\n,num[i],name[i],sex[i],age[i], score[i]); } 由于程序num、name、sex、age、score分别定义为互相独立的数组,难以反映它们之间的内在联系。 8.1 结构体类型与结构体变量 #include stdio.h #define N 4 struct student /* 定义学生类型结构体 */ { int num; /* 学号成员 */ char name[20]; /* 姓名成员 */ char sex; /* 性别成员 */ int age; /* 年龄成员 */ float score; /* 成绩成员 */ }; void main() { struct student stu[N]; /* 定义学生结构体类型数组 */ int i; float sum=0,aver; /* 表示总成绩和平均成绩 */ 8.1 结构体类型与结构体变量 for(i=0;iN;i++) {scanf(% d% s% c%d %f,stu[i].num,stu[i].name,stu[i].sex, stu[i].age,stu[i].score); sum+=stu[i].score; } aver=sum/N; printf(\n); for(i=0;iN;i++) if (stu[i].scoreaver) printf(%d %s %c %d %f\n,stu[i].num,stu[i].name,stu[i].sex, stu[i].age,stu[i].score); } 8.1 结构体类型与结构体变量 说明: 使用结构体数据,可将一个学生的数据有机组合起来,例中的stu是个结构体数组,stu[i]表第i个学生的数组,stu[i].num表第i个学生的学号,stu[i].name表第i个学生的姓名等。 结构体的每一个成员都是通过其名字来引用,引用形式如下: 结构体变量名. 成员名 结构体的引入为处理复杂的数据结构提供了有力的手段(如链表等),也为函数间传递一组不同类型的数据提供了方便。特别是对于数据结构比较复杂的大型程序提供了方便。 8.1 结构体类型与结构体变量 8.1.2 结构体的声明 定义结构体类型的一般形式: struct 结构体名 { 结构成员1; 结构成员2; …… 结构成员n; } 其中,struct为结构体定义的关键字,不能省略。结
您可能关注的文档
- C#编程和.NET框架 崔建江 第5章 第五章新.ppt
- C#编程和.NET框架 崔建江 第6章 .NET框架 第六章新.ppt
- C#编程和.NET框架 崔建江 第7章 ADO.NET程序开发 NO7-2006新.ppt
- C#程序设计基础 熊壮 第0章:C#程序设计课程简介新.ppt
- C#程序设计基础 熊壮 第1章:C#及Visual Studio 2010开发环境介绍新.ppt
- C#程序设计基础 熊壮 第2章:C#程序设计基础新.ppt
- C#程序设计基础 熊壮 第3章:流程控制新.ppt
- C#程序设计基础 熊壮 第4章: 面向对象程序设计基础新.ppt
- C#程序设计基础 熊壮 第5章:数组新.ppt
- C#程序设计基础 熊壮 第7章:文件读写新.ppt
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
最近下载
- 2024-2025学年初中信息科技冀教版2024七年级全一册-冀教版2024教学设计合集.docx
- 重大危险源管控措施及方案.doc VIP
- 十三辙《韵辙表》——合辙押韵必备.pdf VIP
- 2024年凉山州越西县卫生健康局聘用村卫生室村医笔试真题.docx VIP
- 生产与运作分析第七版史蒂文·纳米亚斯习题答案第6章.docx VIP
- 数字逻辑与数字系统朱正东习题答案.pdf VIP
- 冀教版英语九年级上册课堂同步练习试题及答案(全册).pdf VIP
- 烟雾病讲解课件.ppt
- 生产与运作分析第七版史蒂文·纳米亚斯习题答案第5章.docx VIP
- 以病例分析为主导的营养诊疗示范题库答案-2025年华医网继续教育答案.docx VIP
文档评论(0)