没有合适的资源?快使用搜索试试~ 我知道了~
09 教师用书_第9章_结构 2017021
需积分: 0 0 下载量 31 浏览量
2022-08-03
12:11:16
上传
评论
收藏 1.28MB PDF 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/86277921/0001-781acd26c6e53cb560f73a5ed8b60a06_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
20页
介绍结构变量定义的三种方式。特别指出 struct student 是类型名,student是结构名,s1、s2 是结构变量名。139.1.4结构变量的定义和初
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86277921/bg1.jpg)
第 9 章 结构
9.1 教学要点
本章主要介绍结构的基本概念与定义(含嵌套结构)、结构变量的定义和使用、结构数
组的应用、结构指针的概念和使用等知识。其中,重点介绍结构的定义与成员引用方式、结
构数组的应用、结构指针的基本概念与使用,而 嵌 套 结 构 的 定 义 、结构指针作为函数参数是
难点。
9.1 节通过综合示例程序“输出平均分最高的学生信息”,引 出 结 构 的 概 念 和 主 要 知 识 点 ,
教师在讲授时,先介绍和分析该示例程序的总体框架结构,结合程序把各知识点引出即可,
不需要对源代码进行详细分析,可以让学生课后自己细读。然后重点介绍结构的概念,并与
数组进行对比,并举例说明结构定义(包括嵌套结构)的具体方法。结构变量主要介绍定义、
初始化以及使用方式。在介绍结构变量的定义时,要举例讲解三种定义方式。介绍结构变量
初始化时,要讲清楚结构变量数据在内存中的存储情形。在介绍结构变量的使用时,重点介
绍三种情况:结构成员引用方式、相同类型结构变量的相互赋值、结构变量作为函数参数。
9.2 节通过示例程序“学生成绩排序”, 介绍结构数组的概念、定义、初始化、成员引用
以及应用编程。要结合示例重点向学生讲清楚结构数组的概念以及结构数组成员的引用方式。
9.3 节通过示例程序“修改学生成绩”,重点介绍结构指针的概念,以及通过结构指针变
量间接访问数据的方式,特别是通过对比介绍结构指针指向运算符“->”的 使 用 方 法 。此 外 ,
还要结合示例详细介绍结构指针作为函数参数的使用方法,并分析其特点。
讲授学时:4 学时,实验学时同讲授学时。
本章的知识能力结构图见图 9.1。
图 9.1 知识能力结构图
结构定义
(含嵌套结构 )
结
构
结构变量
结构数组
结构指针
定义方式
初始化
变量使用
结构成员引用
结构变量赋值
结构变量作为
函数参数
定义
初始化
数组成员引用
结构指针
指向操作
结构指针作为
函数参数
能够根据实际情况
合理定义结构
能够使用
结构变量
与结构数
组进行熟
练编程
掌握结构指针的
操作,并应用于函
数参数传递
![](https://csdnimg.cn/release/download_crawler_static/86277921/bg2.jpg)
9.2 讲稿
1
Chap 9 结构
9.1 输出平均分最高的学生信息
9.2 学生成绩排序
9.3 修改学生成绩
本章分 3 节。
通过示例程序引导的方式分别介绍结构
相关的知识。
2
本章要点
! 什么是结构?结构与数组有什么差别?
! 有几种结构的定义形式,它们之间有什么不同?
! 什么是结构的嵌套?
! 什么是结构变量和结构成员变量?如何引用结构成
员变量?
! 结构变量如何作为函数参数使用?
! 什么是结构数组?如何定义和使用结构数组?
! 什么是结构指针?它如何实现对结构分量的操作?
! 结构指针是如何作为函数的参数的?
提出本章的学习要点。
3
9.1输出平均分最高的学生信息
9.1.1 程序解析
9.1.2 结构的概念与定义
9.1.3 结构的嵌套定义
9.1.4 结构变量的定义和初始化
9.1.5 结构变量的使用
通过示例程序“输出平均分最高的学生信
息”,介绍结构的概念与一般定义方式,
结构的嵌套定义方法,结构变量的定义、
初始化和使用。
4
9.1.1 程序解析
例9-1 输出平均分最高的学生信息
! 假设学生的基本信息包括学号、姓名、三
门课程成绩以及个人平均成绩。输入n 个
学生的成绩信息, 计算并输出平均分最高
的学生信息。
介绍示例程序“输出平均分最高的学生信
息”。
在课堂上无需详细的代码分析,只要运行
演示该程序,并分析程序的整体结构和结
构相关语句即可,可以让学生在课后自己
认真细读此示例程序。
![](https://csdnimg.cn/release/download_crawler_static/86277921/bg3.jpg)
5
9.1.1 程序解析
#include<stdio.h>
struct student{ /* 学生信息结构定义 */
int num; /* 学号 */
char name[10]; /* 姓名 */
int computer, english, math; /* 三门课程成绩 */
double average; /* 个人平均成绩 */
};
展示结构类型的定义。
6
int main(void)
{ int i, n;
struct student s1,max; /* 定义结构变量 */
printf("Input n: ");
scanf("%d", &n);
printf("Input the student’s number, name and course scores\n");
for(i = 1; i <= n; i++){
printf("No.%d: ", i);
scanf("%d%s%d%d%d",&s1.num,s1.name,&s1.math,&s1.english,&s1.c
omputer);
s1.average=(s1.math + s1.english + s1.computer) / 3.0;
if(i == 1) max = s1; /* 结构变量 操作 */
if(max.average < s1.average)
max = s1;
}
printf("num:%d, name:%s, average:%.2lf\n", max.num, max.name,
max.average);
return 0;
}
介绍程序中结构变量的定义与使用语句。
结构的概念和相关定义语法规则在后面
展开介绍。
7
9.1.2 结构的概念与定义
! 使用结构来表示学生信息:
struct student{
int num; /* 学号 */
char name[10]; /* 姓名 */
int computer, english, math; /* 三门课程成绩 */
double average; /* 个人平均成绩 */
};
! 结构是C语言中一种新的构造数据类型,它能够
把有内在联系的不同类型的数据统一成一个整体,
使它们相互关联
! 结构又是变量的集合,可以按照对基本数据类型
的操作方法单独使用其变量成员。
结构与数组比较:
•都是构造类型,是多个变
量的集合
•数组成员类型相同,结构
成员类型不同
介绍结构的概念,指出:结构是 C 语言中
一种新的构造数据类型,能够将不同类型
的数据统一成一个整体,每个成员都是一
个变量,可以单独操作。
分析结构与数组的区别:数组成员类型必
须相同,而结构成员类型可以不同。
8
9.1.2 结构的概念与定义
! 结构类型定义的一般形式为:
struct
struct
结构名
结构名
{
{
类型名
类型名
结构成员名
结构成员名
1
1
;
;
类型名
类型名
结构成员名
结构成员名
2
2
;
;
•
•
•
•
•
•
类型名
类型名
结构成员名
结构成员名
n
n
;
;
};
};
结构的定义以分号结
结构的定义以分号结
束,
束,
C
C
语言中把结构的
语言中把结构的
定义看作是一条语句
定义看作是一条语句
关键字struct和它后面
的结构名一起组成一个
新的数据类型名
要说清楚结构类型定义中各部分的含义。
关键字 struct 和它后面的结构名一起组
成一个新的数据类型名。
结构的定义以分号结束,C 语言中把结构
的定义看作是一条语句。
![](https://csdnimg.cn/release/download_crawler_static/86277921/bg4.jpg)
9
9.1.2 结构的概念与定义
! 例如,平面坐标结构:
struct point
{
float x;
float y;
};
•虽然x、y的类型相同,也
可以用数组的方式表示,
但采用结构进行描述,更
贴近事物本质,从而增加
了程序的可读性,使程序
更易理解
•
•
结构比较适合用于描述具
结构比较适合用于描述具
有多个属性的实体或对象
有多个属性的实体或对象
举例说明结构的定义,并对比分析采用结
构方式来描述事物,表述更加准确,更贴
近事物本质,从而增强程序的可读性,易
于理解。
进一步分析和总结什么情况下更适合用
结构来描述事物。
10
9.1.3 结构的嵌套定义
! 在我们的实际生活中,一个较大的实体可能由多
个成员构成,而这些成员中有些又有可能是由一
些更小的成员构成。
! 在学生信息中可以再增加一项:“通信地址”,
它又可以再划分为:城市、街道、门牌号、邮政
编码。
学号 姓名
通信地址
计算机 英语 数学
平均
成绩
城市 街道 门牌号 邮编
举例说明什么情况下需要使用嵌套的结
构。
11
9.1.3 结构的嵌套定义
! 由此,我们可以对其结构类型进行如下重
新定义:
struct address{
char city[10];
char street[20];
int code;
int zip;
};
struct nest_student{
int num;
char name[10];
struct address addr;
int computer, english,
math;
double average;
};
•在定义嵌套的结构类型时,必须先定义
成员的结构类型,再定义主结构类型。
需要特别提醒学生,在定义嵌套的结构类
型时,必须先定义成员的结构类型,再定
义主结构类型。
12
9.1.4 结构变量的定义和初始化
! 在C语言中定义结构变量的方式有三种:
1.单独定义:先定义一个结构类型,再定义一个具
有这种结构类型的变量
struct student{
int num; /* 学号 */
char name[10]; /* 姓名 */
int computer, english, math; /* 三门课程成绩 */
double average; /* 个人平均成绩 */
};
struct student s1,s2;
介绍结构变量定义的三种方式。
特别指出 struct student 是类型名,student
是结构名,s1、s2 是结构变量名。
剩余19页未读,继续阅读
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![avatar](https://profile-avatar.csdnimg.cn/93d8ef0891dc42c5aa79aa12d4504765_weixin_35788914.jpg!1)
啊看看
- 粉丝: 30
- 资源: 323
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0