




免费预览已结束,剩余33页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C 语言及编程技巧 主讲 匡纲要国防科技大学电子科学与工程学院 湖南长沙 2 第4讲程序控制结构 续 3 第4讲程序控制结构 二 2 6用于循环控制的几个特殊运算符2 7多重循环结构2 8break语句 continue语句和goto语句2 9小结与程序设计示例 4 2 6用于循环控制的几个特殊运算符 增量运算符 又称自增运算符 减量运算符 又称自减运算符 运算符 和 都是单目运算符 但它们可出现在相应操作数的前面 作为前缀 或后面 作为后缀 其结合规则是从右到左 增量运算符与减量运算符 表3 1增量运算符与减量运算符 5 2 6用于循环控制的几个特殊运算符 inti 3 j 5 cout i j endl cout i j endl 增量运算符和减量运算符示例 例26执行下述复合语句将输出什么 inti 3 j 5 cout i j endl cout i j endl 3544 4444 6 2 6用于循环控制的几个特殊运算符 示例写出程序的执行结果 postincrementingandpreincrementing includevoidmain intc 5 cout c endl cout c endl cout c endl cout c endl cout c endl cout c endl cout c endl cout c endl cout c endl cout c endl 增量运算符和减量运算符示例 5566776665 7 2 6用于循环控制的几个特殊运算符 逗号运算符用于将多个表达式串联在一起 它是个双目运算符 其优先级最低 结合规则从左到右 由逗号运算符与左右两个操作数组成逗号表达式 表达式1 表达式2功能 先求表达式1的值 再求表达式2的值 并以表达式2的值作为该逗号表达式的结果值 逗号运算符 8 2 6用于循环控制的几个特殊运算符 例27承例23 可将sum 0 for counter 1 counter N counter counter 2 sum sum counter 改写为for sum 0 counter 1 counter N counter counter 2 sum sum counter 还可改写为for sum 0 counter 1 counter N sum sum counter counter counter 2 for循环体为空语句 逗号运算符示例 9 2 6用于循环控制的几个特殊运算符 自反赋值运算符是一个复合运算符 它用于简写赋值表达式 自反赋值运算符 表3 2算术自反赋值运算符 10 2 6用于循环控制的几个特殊运算符 例28承例27 可进一步改写for语句for sum 0 counter 1 counter N counter 2 sum counter 或者for sum 0 counter 1 counter N sum counter counter 2 又 counter 2亦可改写为counter counter 为提供程序可读性 兼顾程序执行效率 宜采用sum 0 for counter 1 counter N counter 2 sum counter 自反赋值运算符示例 11 2 6用于循环控制的几个特殊运算符 运算符的优先级及结合性 12 2 7多重循环结构 while语句 do while语句和for语句互相嵌套使用 形成多重循环结构循环结构可以多层嵌套 但每一层嵌套在逻辑上必须是完整的在同一层中 亦可以平行地使用诸循环结构用多重循环结构进行语句编码 是C 程序设计的有力手段 循环结构的嵌套 13 2 7多重循环结构 例29承例19 求两个正整数i与j的最大公因子的另一种编码形式 使用嵌套while语句while i j while i j i i j while i j j j i Cout Thelargestcommonfactoris i n 或输出j 多重循环结构示例 do例19 k i j i j j k while j 0 Cout 14 2 7多重循环结构 例30读取N值 设0 N 20 输出N行图形 以N 5为例 多重循环结构示例 for i 1 i n i for j 1 j n i j cout BRANK for j 1 j n j cout STAR cout endl fori programc2 12 cpp includevoidmain constintMAX 20 constcharBRANK constcharSTAR inti j n do cout n while n 0 15 2 7多重循环结构 例31编写程序 按 左下三角 形式输出乘法九九表 多重循环结构示例 12345678911224336944812165510152025661218243036771421283542498816243240485664991827364554637281 16 2 7多重循环结构 programmultitable multiplicationtable include includevoidmain constcharSTAR introw col printtableheadingcout setw 4 STAR for col 1 col 9 col cout setw 4 col cout edl endl calculateandprintresultsfor row 1 row 9 row cout setw 4 row for col 1 col row col cout setw 4 row col cout endl endl 多重循环结构示例 怎样修改语句编码 使能获得 右上三角 形式的乘法九九表 17 2 7多重循环结构 例32编写程序 使之能输出如下形式的 字母塔 AABAABCBAABCDCBA ABCDEFGHIHGFEDCBA ABCDE UVWXYXWVU EDCBAABCDEF VWXYZYXWV FEDCBA 多重循环结构示例 18 2 7多重循环结构 programtowerof1 cpp printthetowerofletters includevoidmain constcharBRANK inti charch centralch lastch do cout lastch while lastch A 多重循环结构示例 怎样编写程序 以能输出字母菱形 19 2 7多重循环结构 例33编写 万年历 程序 输入年份 月份 按万年历算法求得该年该月天数 并输出结果 要求程序能反复运行 直至键入的年份和月份分别为2100年和12月为止 设年份取1701年至2100年 分析按万年历算法 每400年中只能有97个闰年 以1701年至2100年为例 这97个闰年为 1 凡能被4整除而不能被100整除的年份 共96个 2 能被400整除的年份 1个 即2000年 运行示例 多重循环结构示例 Entertestedyearandmonth 210012tostop 20002 ThedaysinFeb 2000are29 Entertestedyearandmonth 210012tostop 20012 ThedaysinFeb 2001are28 Entertestedyearandmonth 210012tostop 200113 Entertestedyearandmonth 210012tostop 200110 ThedaysinOct 2001are31 Entertestedyearandmonth 210012tostop 210012 Theendoftheprogram 20 2 7多重循环结构 programcalendar cpp includevoidmain intyear month days do do cout year month while year 1701 多重循环结构示例 21 2 7多重循环结构 case2 if year 4 0 多重循环结构示例 22 2 8break语句 continue语句和goto语句 break语句用来转换控制流 它可用于switch while do while或for结构中 break 功能 立即退出该结构 使流程控制转向执行该结构后的第一条语句 break语句通常用来及早地退出循环或跳略switch结构余下的部分 break语句 23 2 8break语句 continue语句和goto语句 例34承例19 例29 今用for语句实现求两正整数的最大公因子 programcommonfac cpp includevoidmain inti j min k do cout0 cin i j while i 0 break语句示例 24 2 8break语句 continue语句和goto语句 continue语句亦用来转换控制流 它仅可用于while do while或for结构中 continue 功能 从当前位置将流程控制转移至本次循环的结束位置 并继续执行下一次循环 在while和do while结构中 执行完continue语句后就立即测试继续循环的条件 在for结构中 执行完continue语句后即执行增量表达式 然后测试继续循环的条件 continue语句 25 2 8break语句 continue语句和goto语句 例35承例34 改写程序 对所给两个正整数i j 输出其所有能够整除i与j的公因子 programcommonf1 cpp includevoidmain inti j min k do cout0 cin i j while i 0 continue语句示例 Enteri j 0 168 Thecommonfactoris8 Thecommonfactoris4 Thecommonfactoris2 Thecommonfactoris1 Enteri j 0 77 24 Enteri j 0 7724 Thecommonfactoris1 26 2 8break语句 continue语句和goto语句 例36下述程序实现 把101到200之间的不能被3整除的数输出 每10个数据输出在一行上 programnumdemo cpp include includevoidmain inti 0 n for n 101 n 200 n if n 3 0 continue cout setw 5 n if i 10 0 cout endl cout endl continue语句示例 101103104106107109110112113115116118119121122124125127128130131133134136137139140142143145146148149151152154155157158160161163164166167169170172173175176178179181182184185187188190191193194196197199200 27 2 8break语句 continue语句和goto语句 在for结构中使用break语句 include includevoidmain intx for x 1 x 10 x if x 5 break cout setw 4 x cout endl Brokeoutofloopat cout x x endl endl break语句和continue语句示例 在for结构中使用continue语句 include includevoidmain intx for x 1 x 10 x if x 5 continue cout setw 4 x cout endl Usedcontinuetoskip cout endl printingthevalue5 endl 示例写出运行下述两个程序的输出结果 1234Brokeoutofloopatx 5 1234678910Usedcontinuetoskipprintingthevalue5 28 2 8break语句 continue语句和goto语句 goto语句是又一种实现无条件控制结构的语句 goto标号名 功能 将流程控制转向由标号名所指定的语句处继续执行 在C 中 标号名不必特殊地加以定义 它可以是任意合法的标识符标号名加上冒号 就形成一个语句标号语句标号可以出现在任何语句之前示例 gotostop gotoend stop end cout Theend n goto语句 29 2 8break语句 continue语句和goto语句 例37利用goto语句实现计算前100个自然数之和并输出结果 programsum100 cpp includevoidmain inti sum 0 i 1 loop if i 100 sum i i gotoloop cout Thesumis sum n goto语句示例 Thesumis 5050 for循环结构for i 1 i 100 i sum i 30 2 9小结与程序设计示例 结构化程序设计的三种控制形式顺序结构选择结构循环结构选择结构的三种实现方式if结构 单向选择结构if else结构 双路选择结构switch结构 多路选择结构循环结构的三种实现方式while结构do while结构for结构程序控制结构中所使用的各种语句if switch while do while for Break continue goto 复合语句 小结 31 2 9小结与程序设计示例 C语言程序所需的任何控制形式可用如下三种控制结构完成顺序结构if结构 选择结构 while结构 循环结构 这种控制结构只能以栈式和嵌套式两种方式组合 恰当地嵌套使用循环语句 形成多重循环结构编码 是C语言程序设计的有力手段 小结 32 2 9小结与程序设计示例 问题 编写一个猜数游戏程序 任给一个1至100之间的整数 程序应能迅速地猜出此数是多少 并输出此数及所猜次数 要求猜的次数不超过7次 程序应能反复运行 每次猜完一数后 询问是否继续 若回答是继续 则再做猜数游戏 当回答不继续时 结束程序 分析题意选择算法程序设计具体编码 程序设计示例 33 2 9小结与程序设计示例 程序设计步骤 1 随机生成一个被猜数 1 100 2 键入一个猜数 1 100 比较猜数与被猜数是否相等 并输出相应信息 3 反复执行步骤 2 直至猜数与被猜数相等时为止 4 输出猜测结果 5 确定是否再猜数或结束程序 程序基本框架main intcount
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训课程毕业总结
- 地埋式箱泵施工方案
- 2026届内蒙古磴口县化学九上期末学业水平测试试题含解析
- 中介月度工作总结
- 2026届九江市重点中学化学九上期末考试模拟试题含解析
- 2026届-度河北省正定县化学九上期中综合测试模拟试题含解析
- 形体矫正培训课件
- 沥青摊铺安全规范
- 山东省济南市2026届化学九上期中质量跟踪监视模拟试题含解析
- 企业工作总结培训
- 班级小法庭培训课件
- 前交叉韧带损伤治疗讲课件
- 电销公司风控管理制度
- 部编版九年级历史上册第19课法国大革命和拿破仑帝国 课件(内嵌视频)
- 髋关节置换术后讲课件
- 2025至2030年中国环保胶黏剂行业市场运行格局及产业需求研判报告
- 人才画像管理制度
- 胖东来导购管理制度
- DeepSeek+AI大模型赋能制造业智能化供应链解决方案
- 医院夜晚值班期间火灾应急预案(3篇)
- 探究车用锂离子动力电池热失控的引发机制、过程建模与防控策略
评论
0/150
提交评论