《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 结构体、共用体与枚举类型

问题的提出 令例8-1下表为学生的信息表,要求从键盘输入 学生的信息,并将学生成绩小于平均成绩的学 生信息输出。 char name[NI[20 char N; int ageN; float score[NI; 、学号处名性别年龄「成 int num; 1001 Zhang M 19 88.5 1002 18 90.0 1003 Wang 20 89.0 1004 Zhao 83.5 ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 1 ❖例8-1 下表为学生的信息表,要求从键盘输入 学生的信息,并将学生成绩小于平均成绩的学 生信息输出。 学 号 姓 名 性 别 年 龄 成 绩 1001 Zhang M 19 88.5 1002 Li M 18 90.0 1003 Wang F 20 89.0 1004 Zhao M 19 83.5 int num[N]; char name[N][20]; char sex[N]; int age[N]; floatscore[N]; 问题的提出

问题的提出 #include #define n 4 void main( int numN ∥存放各学生的学号 char nameN20;∥存放各学生的姓名 char sex ne ∥存放各学生的性别 int ageN ∥存放各学生的年龄 float scoreN; ∥存放各学生的成绩 Int l float sum=0,aver;∥/表示总成绩和平均成绩 for(i=0; i<N; i+ scanf("%d", &numi: scanf("%s", nameiD; fflush(stdin) /清除输入缓冲区中剩余的内容 scanf("%", &sexi scanf(%d", &agei scanf("%f", &score i) 问题: sum+=scorei]; num、name、sex、age、 score aver-sum 分别定义为互相独立的数组,难以 printf("n 反映它们之间的内在联系。 for(i=0; i<N; i++) if(scorei<aver) printf("%d %s%c %d%f\n, num il, namei,sex i, agel, score[i; ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 2 问题的提出 #include #define N 4 void main() { int num[N]; // 存放各学生的学号 char name[N][20]; // 存放各学生的姓名 char sex[N]; // 存放各学生的性别 int age[N]; // 存放各学生的年龄 float score[N]; // 存放各学生的成绩 int i; float sum=0,aver; // 表示总成绩和平均成绩 for(i=0;i<N;i++) { scanf("%d",&num[i]); scanf("%s",name[i]); fflush(stdin); //清除输入缓冲区中剩余的内容 scanf("%c",&sex[i]); scanf("%d",&age[i]); scanf("%f",&score[i]); sum+=score[i]; } aver=sum/N; printf("\n"); for(i=0;i<N;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章结构体、共用体与枚举类型 ◆本章要求 理解构造数据类型的概念 ■掌握结构体变量的定义和使用 掌握结构体数组、结构体指针的定义和使用 了解链表的概念和链表的常见操作 ■了解共用体变量的定义和使用 ■了解枚举数据类型及自定义数据类型的使用 ◆本章难点 结构体数组 结构体指针 ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 3 第8章 结构体、共用体与枚举类型 ❖本章要求 ▪ 理解构造数据类型的概念 ▪ 掌握结构体变量的定义和使用 ▪ 掌握结构体数组、结构体指针的定义和使用 ▪ 了解链表的概念和链表的常见操作 ▪ 了解共用体变量的定义和使用 ▪ 了解枚举数据类型及自定义数据类型的使用 ❖本章难点 ▪ 结构体数组 ▪ 结构体指针

第8章结构体、共用体与枚举类型 ◆8.1结构体类型与结构体变量 ◆82结构体数组 ◆8.3结构体与函数 ◆8.4动态数据结构—链表 ◆8.5共用体 ◆86枚举类型 ◆8.7自定义类型标识符 ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 4 第8章 结构体、共用体与枚举类型 ❖8.1 结构体类型与结构体变量 ❖8.2 结构体数组 ❖8.3 结构体与函数 ❖8.4 动态数据结构——链表 ❖8.5 共用体 ❖8.6 枚举类型 ❖8.7 自定义类型标识符

81结构体类型与结构体变量 ◆81.2结构体的声明 °声明结构体类型的一般形式: struct结构体名 声明结构体类型的 关键字,不能省略 数据成员1; 标识符,由用户给定 数据成员2; 今用两个花括号括住的内容}; 数据成员m;÷举例: struct student 是该结构体中的各个成员 i int num; 令每个成员有自己的数据类 char name 20: 型,都应进行类型说明 char sex: int age fle oat score; ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 5 8.1 结构体类型与结构体变量 ❖8.1.2 结构体的声明 声明结构体类型的 关键字,不能省略 •声明结构体类型的一般形式: struct 结构体名 { 数据成员1; 数据成员2; …… 数据成员n; }; 标识符,由用户给定 ❖ 用两个花括号括住的内容 是该结构体中的各个成员 ❖ 每个成员有自己的数据类 型,都应进行类型说明 ❖举例: structstudent { int num; char name[20]; char sex; int age; floatscore; };

81结构体类型与结构体变量 令有关结构体的几点说明: 1、声明结构体类型只是说明了一种结构体的组织形式,在 编译时并不为它分配存储空间。只是在定义结构体类型变 量后,才为变量按照其组织形式分配内存空间。 2、结构体的成员可以是简单变量、数组、指针,还可以是 另一个已定义的结构体或共用体变量。 当定义一个结构体的成员又是一个结构体类型,这称为 结构体的嵌套定义。 struct student struct date i int num i int year char name[20 int month; char sex: int day; struct date birthday; float score ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 6 8.1 结构体类型与结构体变量 ❖有关结构体的几点说明: ▪ 1、声明结构体类型只是说明了一种结构体的组织形式,在 编译时并不为它分配存储空间。只是在定义结构体类型变 量后,才为变量按照其组织形式分配内存空间。 ▪ 2、结构体的成员可以是简单变量、数组、指针,还可以是 另一个已定义的结构体或共用体变量。 • 当定义一个结构体的成员又是一个结构体类型,这称为 结构体的嵌套定义。 struct student { int num; char name[20]; char sex; struct date birthday; float score; }; struct date { int year; int month; int day; };

81结构体类型与结构体变量 3、结构体声明可以在函数内部, void maino 也可在函数外部。 struct student 在函数内部声明的结构体,只能在 Int num char name 20; 函数内部使用; char sex: Int age; n在函数外部声明的结构体,从声明 float scores 处到源文件结尾之间的所有函数都可31,t 使用。 4、结构体成员的名字可以同程序 中的其他变量名相同,两者的意 义不同,不会相混。 ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 7 8.1 结构体类型与结构体变量 3、结构体声明可以在函数内部, 也可在函数外部。 ▪ 在函数内部声明的结构体,只能在 函数内部使用; ▪ 在函数外部声明的结构体,从声明 处到源文件结尾之间的所有函数都可 使用。 4、结构体成员的名字可以同程序 中的其他变量名相同,两者的意 义不同,不会相混。 void main() { struct student { int num; char name[20]; char sex; int age; float score; }stu1,stu2; …… }

81结构体类型与结构体变量 令81.3结构体变量的定义 1、先声明结构体类型,再定义变量 struct student t int num; char name[20]i char sex; int age; float score struct student stul, stu2 ☆☆第8章结构体、共用体与枚举类型 8
☆☆ 第8章 结构体、共用体与枚举类型 8 8.1 结构体类型与结构体变量 ❖8.1.3 结构体变量的定义 ▪ 1、先声明结构体类型,再定义变量 struct student { int num; char name[20]; char sex; int age; float score; }; struct student stu1, stu2;

81结构体类型与结构体变量 令2、在声明类型的同时定义变量 struct结构体名 举例: struct student 成员列表; i int num; char name 20l; }变量名表列 char sex Int age; fe oat score 3stul, stu2; ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 9 8.1 结构体类型与结构体变量 ❖2、在声明类型的同时定义变量 struct 结构体名 { 成员列表; }变量名表列; 举例: struct student { int num; char name[20]; char sex; int age; float score; }stu1,stu2;

81结构体类型与结构体变量 令3、直接定义结构体类型变量 struct 举例: struct 成员表列; int num; char name 20; }变量名表列; char sex. int age. float score 3stul, stu2; 与第2种方式的区别:未声明结构体类型 不建议使用 ☆☆第8章结构体、共用体与枚举类型
☆☆ 第8章 结构体、共用体与枚举类型 10 8.1 结构体类型与结构体变量 ❖3、直接定义结构体类型变量 struct { 成员表列; }变量名表列; 举例: struct { int num; char name[20]; char sex; int age; float score; }stu1,stu2; •与第2种方式的区别:未声明结构体类型 •不建议使用
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机系统安全》课程教学资源(PPT课件讲稿)第二章 黑客常用的系统攻击方法.ppt
- 上海交通大学:《挖掘海量数据集 Mining Massive Datasets》课程教学资源(PPT讲稿)Lecture 06 搜索引擎 Search Engines.ppt
- 《Introduction to Java Programming》课程PPT教学课件(Sixth Edition)Chapter 16 Applets and Multimedia.ppt
- 《计算机组装与维护》课程教学资源(PPT课件讲稿)第9章 BIOS设置(设置BIOS).ppt
- 香港城市大学:基序检测的随机化算法(PPT讲稿)Randomized Algorithm for Motif Detection.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第七章 图及其应用.ppt
- 3D Reconstruction from Images:Image-based Street-side City Modeling.ppt
- 大连理工大学:《计算机网络》课程教学资源(PPT课件讲稿)Chapter 2 应用层 application layer.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 3 Process Description and Control 3.4 Process Control 3.5 Execution of the Operating System 3.6 Unix SVR4 Process Management 3.7 Linux Process management system calls.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第七章 图 Graph.ppt
- 《数据结构》课程教学资源:实践教学大纲.doc
- 《网络算法学》课程教学资源(PPT课件讲稿)第三章 实现原则.ppt
- 《电脑组装与维护实例教程》教学资源(PPT课件讲稿)第5章 多媒体设备介绍及选购.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 02 Network Classification.pptx
- 清华大学:无线网和移动网(PPT课件讲稿)Mobile and wireless network.pptx
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第6章 Data-Level Parallelism in Vector, SIMD, and GPU Architectures.pptx
- 厦门大学:《分布式数据库》课程教学资源(PPT课件讲稿)专题一 分布式数据库介绍.ppt
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 06 OOP with Templates.ppt
- 武汉科技大学中南分校:Windows 2000/XP网络组建与系统管理(系统安装,李燕).ppt
- 电子科技大学:《面向对象程序设计语言C++》课程教学资源(PPT课件讲稿)第五章 构造数据类型.ppt
- 香港浸会大学:Introduction to Linux and PC Cluster.ppt
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)第7讲 图元填充与裁剪算法.pptx
- 北京航空航天大学:SimplyDroid - Efficient Event Sequence Simplification for Android Application.pptx
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 04 Object-Based Programming.ppt
- 中国科学技术大学:Linux内核源代码导读(PPT讲稿,陈香兰).ppt
- 《网上开店实务》课程教学资源(PPT讲稿)学习情境3 网店装修.ppt
- 北京大学:《项目成本管理》课程教学资源(PPT课件讲稿)项目范围计划(主讲:周立新).ppt
- 香港中文大学:Achieving Secure and Cooperative Wireless Networks with Trust Modeling and Game Theory.ppt
- MSCIT 5210/MSCBD 5002:Knowledge Discovery and Data Mining:Chapter 4:Data Warehousing, On-line Analytical Processing and Data Cube.ppt
- 《程序设计基础》课程PPT教学课件(C++)第3讲 C++程序控制结构.ppt
- 四川大学:《数据库技术》课程教学资源(PPT课件讲稿)数据库设计.ppt
- 云计算 Cloud Computing(PPT讲稿)MapReduce进阶.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第7章 用函数实现模块化程序设计.pptx
- 中国科学技术大学:云计算及安全(PPT讲稿)Cloud Computing & Cloud Security.pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)数字图像处理基础 Basics of Digital Image Processing.pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)图像压缩编码 Image Compression.pptx
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第3章 计算机的算术运算.pptx
- Analysis of Algorithms(PPT讲稿)Data Structures and Data Management.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第七章 数组.ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)第二讲 互联网应用软件.ppt