- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计-结构体、共同体和枚举类型
C语言程序设计—提高篇;内容概述;教学目标;13.1 结构体类型;;13.1.2 结构体类型的定义;下面是用于描述日期的结构体类型的声明:
struct date
{
int year;
int month;
int day;
};
由于date结构体的三个成员具有相同的类型int,它也可以改为如下形式:
struct date
{
int year,month,day;
};;“学生信息” 的结构体类型可以这样声明:
struct student
{
int num ;
char name[20];
char sex;
struct date birthday;
float score;
char place[10];
};
注意,学生信息结构体中加入类型为struct date的birthday数据项,构成结构体的嵌套定义。 ;结构体类型的几点说明:
(1)关键字struct是用来声明结构体类型的,不能省略。
(2)C语言中的结构体类型可以嵌套定义,即结构体的成员允许又是结构体。
(3)成员表列不可为空,至少要有一个成员。
(4){}不表示复合语句,其后有分号。
(5)同一结构体的成员不能重名;而不同结构体的成员可以重名,结构体成员和其他变量可以重名,结构体类型与其成员或其他变量可以重名。
(6)一般把结构体类型声明放到文件最前面,也可以放在头文件里,若在函数内部声明结构体类型,则该函数之外无法引用此结构体类型。;13.2 结构体变量;(2)在定义结构体类型的同时,定义结构体变量。
struct student
{
int num ;
char name[20];
char sex;
struct data birthday;
float score;
char place[10];
}stu1,stu2; ;(3)直接定义结构体类型变量。
struct
{
int num ;
char name[20];
char sex;
struct data birthday;
float score;
char place[10];
}stu1,stu2;;注意:
正确区分类型与变量的概念,只能对变量赋值、存取或运算,不能对一个类型赋值、存取或运算; ;13.2.2 结构体变量的存储模式;13.2.3 结构体变量的引用;13.2.4 结构体变量的基本操作;(2)结构体变量的输入/输出。;【例13.1】键盘输入学生“张三”的信息,然后输出显示。;(3)结构体变量的赋值;
假设有定义: struct stdent stud1
对结构变量整体???值:
stud1=stud;
结构体变量之间的相互赋值,实质上是两个结构体变量相应的存储空间中的所有数据直接复制,包括复杂类型在内的所有结构体成员都被直接赋值,如字符串、结构体类型等。;13.3 结构体数组;则该数组共有30个元素,分别是stud[0]、…、stud[29],数组元素各成员的引用形式为:
stud[0].num、stud[0].name、stud[0].score;
stud[1].num、stud[1].name、stud[1].score;
……
stud[29].num、stud[29].name、stud[29].score;;13.3.2 结构体数组的初始化;【例13.2】设某组有4个人,填写表13.3所示的成绩登记表,编程实现对表格的计算,求解出每个人的三科平均成绩,并按平均成绩由高分到低分排出名次。;(1)结构体类型数组的输入。
(2)求解各学生的三科平均成绩。
(3)按学生的平均成绩排序。
(4)按名次输出学生成绩信息。
(5)定义main()函数,调用各函数模块。;#include stdlib.h
#include stdio.h
#define STUDENT struct student
STUDENT
{
int num;
文档评论(0)