内容正文:
《C语言学习与应用》教学课件
任务说明
本学习任务通过学习结构体类型的说明,变量、数组和指针的定义,数组元素各成员的遍历等知识,掌握针对结构体类型数据的程序设计技能,能够按照要求编写出处理学生信息的程序,如查找、排序、删除等,并在任务实施中得以实现。
学习任务11 结构体操作—按学生成绩排序
微课
任务说明
学习任务11 结构体操作—按学生成绩排序
知识要求
用typedef说明一种新类型。
结构体类型的说明。
结构体类型变量、数组和指针的定义。
结构体成员的引用。
了解链表知识。
学习任务11 结构体操作—按学生成绩排序
‹#›
能够输入、输出结构体变量的各成员值。
能够编写结构体数组各元素的函数。
能够编写针对结构体数组操作的函数。
能够认真耐心地调试程序。
能够排查程序中的错误。
能力要求
学习任务11 结构体操作—按学生成绩排序
‹#›
用typedef说明一种新类型名
01
形式:typedef 类型名 标识符
类型名是C语言中的数据类型名或前面已有定义的类型标识符,如结构体数据类型,标识符是一个用户命名的新的类型名。
注意:typedef语句的作用仅仅是用标识符来代表已存在的类型名,并未产生新的数据类型且原有类型名仍然有效。
例如:typedef int INTEGER;
表示用INTEGER标识符代表int,则INTEGER m,n; 语句,等价于int m,n; 语句。
学习任务11 结构体操作—按学生成绩排序
‹#›
结构体类型
02
结构体是一种较为复杂但却非常灵活的构造型数据类型,由若干个成员组成,各成员的数量及类型视需要而定。对一个具体的结构体,其成员的数量是固定的,各成员的数据类型可以不同且确定。这点与数组不同,当需要把一些相关信息(数据类型不同)组合在一起时,就需要采用结构体类型。
学习任务11 结构体操作—按学生成绩排序
‹#›
结构体类型
02
1.结构体类型的说明
struct 结构体标识名
{类型名1 结构体成员名表1;
类型名2 结构体成员名表2;
…
类型名n 结构体成员名表n;};
struct是关键字,是结构体类型的标志。结构体标识名是用户定义的标识符,可省略,成员名表中可以含有多个不同类型的成员,相同类型的多个成员名之间可以用逗号分隔一并类型声明,成员名可以与程序中的其他变量同名,不同结构体中的成员也可以同名,成员声明必须以分号结尾,结构体的说明也可以嵌套。
学习任务11 结构体操作—按学生成绩排序
微课
结构体类型的说明
学习任务11 结构体操作—按学生成绩排序
应用举例11-1 结构体类型的说明
(1)说明一个名为data的结构体,含有三个整型成员year、month和day。
struct data{
int year,month,day;
};
(2)说明一个名为student的结构体,它的成员中含结构体类型。
struct student{
char name[12];
char sex;
struct data birthday;
float sc[4];
};
(3)嵌套说明student结构体。
struct student{char name[12];
char sex;
struct{int year,month,day;}birthday;
float sc[4];
};
注意:结构体类型的说明并不分配存储空间,占有存储空间的是具有相应结构体类型的变量,数组等。
学习任务11 结构体操作—按学生成绩排序
问题11-1 说明一个结构体类型
说明一个结构体类型st,含有姓名(name)、年龄(age)和身高(heigh)三个成员。
学习任务11 结构体操作—按学生成绩排序
结构体类型
02
2.结构体类型变量的定义
(1)紧跟在结构体类型说明之后进行相应结构体变量定义。例如:
struct data{int year,month,day;}birthday; // birthday就是定义的变量
(2)说明一个无名结构体类型的同时定义变量。例如:
struct {int year,month,day;}birthday;
(