C语言程序设计教程(第4版)_第9章_结构Word
上传者:史可|上传时间:2017-06-02|密次下载
C语言程序设计教程(第4版)_第9章_结构Word
第9章 构结李丽 娟2031年月2
9章 第构结章本主内容要 .1了解构数据类结的型定义使用及。2. 了解 结数据构类型的义意作用。及3 .了 解结变构与函量数关的系 。4.掌 链握的表作用及操。作5 .了 解合联数据型的类义及使定用 6.。 解枚了类举的定型义使及。用
2
9章第结构 构体数据结型类:种自定一义数据类型的。由不同据数型类数据组的而合成数据整体。结的体构所包中含数的元素称之为据员。
如成:职“”—员→一种结构体—描述员职的息有信
:编号姓名、年、、龄性、别份证身码、号族民、文程度、职务化、址、联系电话住。3
9等. 结1体构据类数型.19. 1结体的定构义 结构类的型义定形式 st:rct 结u体名构{ 成员项 表;列 } 成;员表列同项简变单 的量义形定相式。同例:对“职员如”据,可数以定 如下的义构结体类型:st ruc perton {s ongl no; /职*号*员/ hcar nmae1[]2;/* 姓名/*int age /;*龄年*/ hcr aes; x*性别*/ long/ ndintieyNot /;*份身号*/ ch证are dcatuon[1i]2 /;*学历/* hac ardr[d4];0 *住/址/ long*t elo;n/*电 号码话* };
4/9.
结构体1数类型据9.1.2结构 变量体定义的 定了义结体之后,就构可以义定结构体变量 。 构结量变的义定式形 (。)类1标识符 型变名量列表; 例如 s:rtcutp reonss tu,w orek; r2)(定在义个结一体类型的同时构定义构体结型变量类 str:cut结构体名 { (3直)接义定结构体型的类量变: trsut 成员c项列; 表 }{变量列表名; 成项列员;表 }变量名列表
.9 1构结数据类型体91.3. 构体结变的初量始 (化)略9 ..41结 体构变量员成的用引( 1引用结构体变量中)成的。 员用格引:式构结量名成员. 例名如 :stun.o、st .uage s、t.numa[e0]。 等成 员名能不独单代变表,量能不直接用使结中的成员构名 。若结构体 型类含中另有个结构类一型访,该问员时,成应 取采级逐访问方法的 (。)将结构体变2量为一个作整来体使。用 结构 体变可以相量互值。赋( 件是这条个变量两必须有具相的结同体类型。)构
9. 结构2数组体9..12结构 体组数的定义 结构体数 组定的:义 1(先定义)结构体再,义结构体定组。数 tsurc 结t体名构 { 成项表员 }trucs t构体名 组名 数[组大数](2)在 定结义体构的时同定义结,构数组体 。srtcut 结体构名{ 员项表列数组名成数组大小8
9.2
93 结构体变.量与函数9..13 数函的形参实参与结构体 为 作:传用 值例2:读程序ex阅mplae9_.c,了解2构变量作为函数参数结 的用。 作9..32 数函的回值类返型为构结
体 的C新准标允许函数的中回值返为构体类结型的值例。3:改修例92所-的示程序,“将输购书信入”息模块的 返值修回成改结类型构。10
9.5 枚举据类数型 举数据枚类型:用 标识符表的示整数常的集合量 。举类型枚定的义一形般:式 enmu枚举类 型名{标符1识,识符2标,……,标符n识; 枚举}常量的起值为始0。例 如 :enmu omths{nAN,J FBE, AR,M PR,AM A, JYU,N UL, JUAG, SEP, OCT, ONV D,EC;} 识符标值被的次自动设依为置整数~10。 1可以 变标识改符取的,例如值:e umnm nthos{AJ=1,NF B, EAM, RAR, PAY,M UJ, NULJ AUG,, SE,P CO, TNO, DVEC;} 标识 的符值依次自被动设为置整数11~2
。41
9. 5枚数据类型举 点说几明: 枚类型举义定的标识符必须是中唯的。 一 以可枚举类在定型时义每一为枚个举量常定指不的值同 。也 可对以中的间个某枚常量举指不同定值。 的如:例en m cullor{red, bloue ,geren, elyowl5, b=acl,kw hite} ;于只指定了yel由low的值,则举枚量的取常值情况: re为d=0bl,u=1eg,ere=n2,yel lo=5,bwaclk6=,wile=h7 。 举枚常量的值不可改,但更可作以为整数使型用。15
95.枚 数据举型类6例:读阅程序eaxpmel96_c.了解,举变量的
输枚出方。式
.6 9表的概链念 基本概:念 链表指的是①将干若数据项按个定一的则规接连起的表。 ②来表中链的数项据称为结点。③ 链中表一每结点个的据类型都有一数自个引用构
结④自用引构就是结结构员中包成含个一指成员,针该针指指向与 身同自个类型的一结构。 例如 :sturt cndeo int da{ta;struct nde * onxetPt; }r;8
196 链表.的念概链表是 链用节指连针在接起一结的的点线集合性。结其 如构所示:h图ed a2314 65 87 ULNL 自引用结成构员的变量常通指针型是的。 结 构成员的引与用员的类型相关成 。如有假 : 定结义变构:量s rtutc nde opt;*s rtcu tndeo 结 成构员的引用:{ ptnitd aat p;t- trscutno e * nedxtPrt ;或: }; *p(t.)dta;a( p*t.)nxtetrp;19
.9 6链表的概念9.6.1动态 分内配
动存态配分内空间的系统存数:函ma llc()o和fre(e函数以)及isezof运符算的配合用使(注: m alloc)(f和re()e函数头在件文sdtlbi.或hllaoch.。)函数原 及功能如下。 型.1数原型:函ovi dmal*lo(ucnsgnie sdzi)e 功能:内存从配一分大个小si为ez字节的内个存空。 若间成,功返回新配内分的首地存址若;没足有的内够存 配,分则返NULL回。 常函数mal通olc)通常和(算运s符ziof一e使用。
21
起
96.链表的概 念删除节 点方法修改指针:域的。值 p154 3(a)删前除s 3 t 185p 43 (b) 删除 s 3后 8
根t据被节点的位删置修改,针指域方的要分3种法不同况情: ① 结s在点的中表(即不在表间头也不,在表): 尾p-nex=st-ne t② 结s位于表头:点he ad=s ③es 点结位于尾: 表-nexptNU=L;L 点结除后,用删reef ()函数放被释删结点所占除用内的存空间。 如例:rfee(s) ;*/ 放释节了点s所用占空间。的* 2/8
.96链表的 念概例:9改
修例9-8的序,再程从键盘入一输个要除的删站名点 ,将删除并的后点站次输出依 。分:在例9析8程序的基础上增加-个删一节除点的数函 str:ucts ationt de*_lsa(ttrsuc stattoin*h c,hr a*trs) ;数函功能 在:所指h的表链中删,除结值为str所指点符串的字点结 。程 序 ex:mapl9_e9c. 分请析函:数srtuctst tiao nd*les_a(ttsrcu statiotn* hch,ra str)*;的算法 。 思 考程中序在存的问,怎题处理样可使以序程更完加善?29
9. 链6表概念的96.4 .向链表插入中结点 插入节点法:修方改指针的值域。根据 节点入的位插,置修改指域的方法针要3种不同分情: ① 况s结点入插表到中即(在不表,头也不表在)尾 1p5 4 s3 83t 5 1 p43 s3 t8()a插入前(b)插入后
修改 指:针 s -pnes30
96 链.的概表念head
s结点②入到插头表。t1 s527 a()入插前ehda1 5s 2 7(b插)入后t
图a()所示为插入前链的表,图b)(所为插入示的链表后。 修指改针: - eahd=s
3;1
9
6 链表.的概念②s结点插入 到尾。head表1 5p UNL 2L s7 eadh1 (5b插入)后 p27 sNU LL
()a入前插图(a所)为示插入的前表链,图(b)所示插入后的为表。链 修改指 :针p-xsnext-N=LL;U
23
9
. 链表的概6念1例0修:例改9-的8程序,键盘从输一个入要加的站点入, 并名加将入后的点站次依输。 分出:析可在例以-89序的基程上增加一础个增加点的函节数st:rutcstation a*dd_tas(sturc ttsatoni* h,harc *tradsd ,car hstr*ftaer);
数功函:能s将raddt指所站的点入到插链h中站点原表有的点s站rafttre后面的。 序程e:amxple91_0.c3
3
9.7 程 序 范例例11编写程序:,从键输盘入个矩形一的左角下右上角和 的坐标输出,该形矩中心的点标坐,值输入再意任一点的个 坐标判,该断点否是在形内。
分析:矩xd、yd用表代矩的形下左坐标角;x用、yu代表u矩形的上右角标;用坐x、mm代表y形的中矩坐标;设计点函数 int:pt i(ntrustc opnt ip,sturtc rcetr ,)用于判断入的点p 是输否矩形r的内部在。 程 :e序xmale9p_1.c134
97 . 程序 范例例12改进:例8-25的序。采用结构,程设一计洗牌个和牌发 的程序用,H表红桃代D代,表片,方C代表梅,S花表黑代桃 用1~,31代表每种花一的色面值。 析分:可结用类型来表构示克牌扑的花和面色值: tsrut cacdr { cha r*afe;c/* 扑克 牌的值 面* /cha rs*iu; /t* 扑牌的克色花 * };/设计 数函:vodi shfulf(Caed *)完r成对克牌洗牌。 扑 序程:eamxlpe_192c
3.5
.79程 序 范 例例13:改修例-19,2用段结构成员位表示一副,发牌时显牌示 张牌的每色。颜 分析因为牌:的面只有值13,种牌的花只有色4种牌的颜 ,只有2色种,此,因可用一位段结构个来表示副一牌 :struct btCira{du signne dace:f4; unisgnd seui: t2 u;nignsedc olor:1; ;} fac 表示e面值;suit表花色;c示lor表示o颜。 色 序:e程xmale9_13p.c36
.79 序程范 例 例1:4编写程,序求解另1变化种约瑟的夫问:由n个人围题一成,对 他圈从们1始开次编号,现依指定从第个m人开始数报报到,第s数个时 该,人出列,员后然从一个人下开始数报,是报到第仍个s时数,员人 列出如此重复,,直到有人所出列都输,人出的出列员序顺。 析:分采用结构成员记录每个可人的序和号近的邻下个人的序号:一 struc t hildc{ itn nmu ; ntinex ; t } ;设函计vo数d OutiQuee(unti ,inmtn ,nt iss,rutct hclidring[] 求出队)序。列函数 OuQtueeu)(算的法下如 :( )1用ij、表结示数构组rign的下标,值ocutn为作环循量变 (;)2如果=1(即m第一从个开始人数),报队则的尾下值标j=;n 则队否的尾标下j=值m1; 3)(用二层循环输出出的人列 。一第用循环层变c量uno控t制总的 列出数;第人二层循用环变量i找下一个寻出列间的隔;若第数j人出 个,则置r列nig[]j.unm=;0 。 序:程exmalpe9_4137
下载文档
热门试卷
- 2016年四川省内江市中考化学试卷
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
- 山东省滨州市三校2017届第一学期阶段测试初三英语试题
- 四川省成都七中2017届高三一诊模拟考试文科综合试卷
- 2017届普通高等学校招生全国统一考试模拟试题(附答案)
- 重庆市永川中学高2017级上期12月月考语文试题
- 江西宜春三中2017届高三第一学期第二次月考文科综合试题
- 内蒙古赤峰二中2017届高三上学期第三次月考英语试题
- 2017年六年级(上)数学期末考试卷
- 2017人教版小学英语三年级上期末笔试题
- 江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
- 重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
- 江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
- 江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
- 山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
- 【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
- 四川省简阳市阳安中学2016年12月高二月考英语试卷
- 四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
- 安徽省滁州中学2016—2017学年度第一学期12月月考高三英语试卷
- 山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
- 福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
- 甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷
网友关注
- 如何管理育留90后员工Word
- 拜访细节Word
- 学员培训Word
- 3 生产费用在各种产品之间的归集与分配Word
- 工程训练与大学生创新能力培养
- 国家工程实验室落户郑州大学一附院
- 朗诵比赛校长致词
- 国考资格证考前押题预测-小学综合素质-华图教师网
- 忆儿时伤心事
- 循环荷载频率对高速铁路有砟道床累积变形行为的影响
- 化学品危险性鉴别与分类Word
- 毛概考试重点整理答案
- 《文学理论教程》童庆炳课件第十二章Word
- 第8章 作业调度、第9章设备管理答案Word
- 走近李白 古韵悠悠Word
- 税法与税收实务讲义——消费税Word
- 21世纪是隧道及地下工程开发的世纪081104Word
- 化学品危险性鉴别与分类Word
- TMIGS隧道施工信息化预警平台介绍Word
- 生日快乐_003Word
- JavaEE首期学员最高薪资25000 看千锋如何做到的?
- 新闻写作培训课件Word
- 幼儿园门卫安全工作责任书
- 解决问题复习(2)汇总精编答案Word
- 法国高中排名的评定标准
- 北京大学医学部100217麻醉学考研目录
- 税法与税收实务讲义——消费税Word
- [公司系统培训]目标与计划Word
- 第8章 作业调度、第9章设备管理答案Word
- 光伏工程安装(质量)流转单
网友关注视频
- 七年级下册外研版英语M8U2reading
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 12
- 二年级下册数学第二课
- 沪教版八年级下册数学练习册20.4(2)一次函数的应用2P8
- 第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
- 冀教版小学数学二年级下册第二单元《租船问题》
- 冀教版英语四年级下册第二课
- 飞翔英语—冀教版(三起)英语三年级下册Lesson 2 Cats and Dogs
- 第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T3751175
- 北师大版小学数学四年级下册第15课小数乘小数一
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,广东省
- 外研版英语三起5年级下册(14版)Module3 Unit1
- 苏科版数学 八年级下册 第八章第二节 可能性的大小
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,辽宁省
- 8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
- 第19课 我喜欢的鸟_第一课时(二等奖)(人美杨永善版二年级下册)_T644386
- 外研版八年级英语下学期 Module3
- 沪教版八年级下册数学练习册一次函数复习题B组(P11)
- 《小学数学二年级下册》第二单元测试题讲解
- 冀教版小学数学二年级下册第二单元《有余数除法的整理与复习》
- 小学英语单词
- 沪教版八年级下次数学练习册21.4(2)无理方程P19
- 人教版二年级下册数学
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 3月2日小学二年级数学下册(数一数)
- 北师大版数学四年级下册3.4包装
- 七年级英语下册 上海牛津版 Unit3
- 沪教版牛津小学英语(深圳用)五年级下册 Unit 1
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理