版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务十 设计完整评分系统10 结构体、共用体、枚举类型结构体、共用体、枚举类型 将选手姓名、评委打分、最后得分及名次列表输出。概 述任务描述教学目标 熟悉构造类型的含义; 熟悉结构体数组的使用方法; 掌握定义结构体类型及其变量的方法; 掌握结构体数组的使用方法; 了解共用体类型、枚举类型的定义及其变量的使用方法。 共用体共用体10.2 结构体结构体10.1 枚举类型枚举类型10.310.1 结构体10.1.1 结构体定义、引用和初始化一种构造类型数据 结构体由若干不同类型的数据项组成,构成结构体的各个数据项称为结构体成员。 struct 结构体名 数据类型1 成员名1; 数据类型2 成员名2;
2、 数据类型n 成员名n; ;结构体类型定义的一般形式lstruct为关键字;l结构体名是用户定义的类型标识。l 中是组成该结构体的成员。成员的数据类型可以是C语言所允许的任何数据类型。10.1.1 结构体定义、引用和初始化10.1 结构体例如:例如: struct student long xh; / /* * 学号是长整类型学号是长整类型 * */ / char xm20; / /* * 姓名是字符数组类型姓名是字符数组类型 * */ / float zf; / /* * 总分是浮点类型总分是浮点类型 * */ / int mc; ; / /* * 名次是整型类型名次是整型类型 * */ /
3、10.1 结构体10.1.1 结构体定义、引用和初始化结构体类型定义的一般形式说明:说明:(1)结构体成员的类型可能是一个简单的类型、数组类型或者是结构体类型等任何数据类型。 当一个结构体类型的成员项又是另一个结构体类型的变量时,就形成了结构体嵌套。 该成员项是结构体类型该成员项是结构体类型struct date, ,嵌套定义嵌套定义struct account long id; char name20; struct date Date; float money; ; 10.1 结构体10.1.1 结构体定义、引用和初始化说明:说明:(2)在定义结构体类型时,数据类型相同的成员可以在一行中说
4、明,成员间用逗号分开。struct date int year,month,day;(3)结构体类型定义可以在函数的内部,也可以在函数的外部。在函数内部定义的结构体,其作用域仅限于该函数内部,而在函数外部定义的结构体,其作用域是从定义处开始到本文件结束。10.1 结构体10.1.1 结构体定义、引用和初始化结构体类型变量的定义的结构体类型变量的定义的3种方法:种方法:10.1.2 结构体类型变量的定义 1先定义结构体类型,再定义该种类型的变量 struct date Date;struct account zhang, wang;定义结构体类型变量的一般形式 struct 结构体名 结构体变量
5、名表;结构体名结构体变量名10.1 结构体结构体类型变量的定义的结构体类型变量的定义的3种方法:种方法:10.1.2 结构体类型变量的定义 2在定义结构体类型的同时定义结构体变量struct 结构体名数据类型 成员名1; 数据类型 成员名2; 数据类型 成员名n; 结构体变量名表;struct account long id; char name20; struct date Date; float money; zhang,wang;10.1 结构体结构体类型变量的定义的结构体类型变量的定义的3种方法:种方法:10.1.2 结构体类型变量的定义 3直接定义结构体类型变量struct数据类型
6、成员名1; 数据类型 成员名2; 数据类型 成员名n; 结构体变量名表;struct long id; char name20; struct date Date; float money; zhang, wang;10.1 结构体10.1.2 结构体类型变量的定义(1)结构体变量的定义在函数的数据说明部分进行,也可以在函数的外部定义。但都必须是参照上述3种结构体变量的定义形式,类型定义在前,变量定义在后。 (2)结构体变量一经定义,在程序运行时,系统将按照结构体类型定义时的内存模式为结构体变量分配一定的存储单元。 10.1 结构体10.1.2 结构体类型变量的定义说明:结构体类型与结构体变量
7、概念不同结构体类型不分配内存不能赋值不能存取不能运算结构体变量分配内存可以赋值可以存取可以运算10.1 结构体10.1.3 结构体变量的使用结构体变量名 . 成员名“.”是分量运算符,运算级别最高10.1 结构体 struct date int year, month, day; struct student char num8, name20, sex; struct date birthday; float score; a;a.birthday.yeara.birthday.montha.birthday.day 结构体变量a的各成员可分别表示为:a.num、、a.sex、a
8、.score 结构体变量的各个成员可进行何种运算,由该成员的数据类型决定10.1 结构体10.1.3 结构体变量的使用wang.idwang.Date.year例如,对于上述的结构体变量Date,不能这样输出: printf(“%d,%d,%d”,Date);(1)不能将一个结构体变量作为一个整体进行输入和输出。(2)如果一个结构体成员本身又是一个结构体类型变量,则要用若干个成员运算符,一级一级地找到最低的一级成员10.1 结构体wang.id=2005001;wang.id+;由于“. .”运算符的优先级最高,因此wang.id+是对wang.id进行自加1运算 (3)对结构体变量的成员可以
9、像变量一样进行各种运算(根据其类型决定可以进行的运算)(4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址scanf(“%f”,&wang.money); /*输入输入wang.money的值的值*/printf(“%o”,&wang); /*输出输出wang的首地址的首地址*/10.1 结构体一个结构体变量作为一个整体来引用 C语言允许两个相同类型的结构体变量之间相互赋值 wang=zhang; 合法合法 wang=123456,“Wang Qiang”,2003,5,1,23456.98; 不合法的不合法的 不允许使用赋值语句将一组常量赋值给一个结构体变量 10.
10、1 结构体结构体变量的初始化 struct date int year, month, day; struct student char num8, name20, sex; struct date birthday; float score; a=9606011,Li ming,M,1977,12,9,83, b=9608025,Zhang liming,F,1978,5,10,87,c;如果初值个数少于结构体成员个数如果初值个数少于结构体成员个数, ,则将无初值对应的成员则将无初值对应的成员赋以赋以0 0值;如果初值个数多于结构体成员个数值;如果初值个数多于结构体成员个数, ,则编译出错。
11、则编译出错。10.1 结构体 共用体共用体10.2 结构体结构体10.1 枚举类型枚举类型10.3 在需要节省内存储空间时,c语言还提供了一种由若干个不同类型的数据项组成,但共享同一存储空间的构造类型。一种构造类型数据 共用体由若干不同类型的数据项组成, 构成共用体的各个数据项称为共用体成员。由于共享的特性,由于共享的特性,只有最新只有最新存储的数存储的数据是有效的。据是有效的。10.2 共用体v共用体类型的定义10.2 共用体v共用体类型的定义 union 共用体名 数据类型1 成员名1; 数据类型2 成员名2; 数据类型n 成员名n; ;lunion为关键字;l共用体名是用户定义的类型标识
12、。l 中是组成该共用体的成员。成员的数据类型可以是C语言所允许的任何数据类型。10.2 共用体v共用体变量的使用(1)用共用体变量名的引用形式:x.u1 x.u2(2)用共用体指针变量的引用形式:(*p).u1 (*p).u2例如: union u char u1; int u2; x,*p=&x;10.2 共用体v共用体变量的初始化共用体变量赋初值一般格式:union 共用体类型 共用体变量=第一个成员类型的数据;共用体类型变量在定义时只能对第一个成员进行赋初值。共用体类型变量在定义时只能对第一个成员进行赋初值。 union data u1=24; 则使共用体变量u1的第一个成员获得
13、了值,即相当于执行了u1.i=24语句。10.2 共用体v共用体类型数据的特点(1)共用体类型变量在同一个内存段存放几种不同类型的成员,但在每一瞬时只能存放其中一种,而不是同时存放几种(2)共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原来的成员就失去作用(3)共用体变量的地址和它的各成员的地址都是用一地址(4)不能对共用体变量名赋值,不能企图引用变量名来得到一个值,也不能在定义共用体变量时对所有成员进行初始化。 共用体共用体10.2 结构体结构体10.1 枚举类型枚举类型10.310.3 枚举类型v枚举类型的定义 enum 枚举名 枚举常量取值表 ;lenum是关键字;是关键字;l枚举名和枚举常量是枚举名和枚举常量是标识符;标识符;l枚举常量之间用逗号枚举常量之间用逗号分隔。分隔。枚举把变量的值一一列举出来,以后该变量的取值范围只能是所列举出来的值 10.3 枚举类型v枚举变量的定义先定义枚举类型,再定义枚举变量 enum weekdays workday;在定义枚举类型的同时定义枚举变量 enum weekdaysSunday, Monday, Tuesday, Wednesday, Thursda
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025维修电工工业机器人试题及答案
- (班组级)汽车吊司索三级安全教育考试卷及答案
- 花卉栽培考试题及答案
- 2026安徽合肥长丰县北城幼儿教育中心临聘后勤人员招聘考试备考试题及答案解析
- 2026北京大学中国社会科学调查中心招聘劳动合同制人员1人考试参考试题及答案解析
- 2026年郑州市两级法院招聘聘用制书记员535人考试参考试题及答案解析
- 2026友利银行成都分行社会招聘考试参考题库及答案解析
- 2026四川宜宾屏山县兴纺建设发展有限公司及其下属子公司第一次招聘工作员3人笔试模拟试题及答案解析
- 2026华电广西能源有限公司校园招聘(第二批)笔试参考题库及答案解析
- 2026安徽黄山青绿新安商贸有限公司招聘2人考试备考试题及答案解析
- 2026年永州职业技术学院高职单招职业适应性测试模拟试题带答案解析
- 2026春三年级下册第一单元1《古诗三首》 教学教学课件
- 《应急预案编制与演练》全套教学课件
- 海信集团AI面试求职者常见疑惑解答
- 销售润滑油合同范本
- 城镇燃气经营安全重大隐患判定标准试题(有答案)
- 钢铁是怎样炼成的-保尔·柯察金的成长历程与精神品格
- 2026年苏州卫生职业技术学院单招职业技能测试必刷测试卷及答案1套
- 《2025年剑桥商务英语(BEC)初级考试历年真题解析与预测试卷》
- 湖北省2025年普通高中学业水平合格性考试数学试题及答案
- 【MOOC】《现代世界警察》(江苏警官学院)期末考试慕课答案
评论
0/150
提交评论