




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计 基础篇 第7章简单程序设计之二 1 本章内容提要 多分支选择结构 switch语句循环嵌套break语句和continue语句程序举例 2 教学目标 在三种基本结构的基础上 结合本章介绍流程控制的其他几个语句 switch语句 break语句和continue语句及循环的嵌套 实现复杂的算法 设计出结构清晰 功能强大的程序 对C语言程序开发设计有比较深刻的认识 3 7 1多分支选择结构程序设计 1 语句形式 switch 表达式 case常量1 语句1 case常量2 语句2 case常量3 语句3 case常量n 语句n default 语句n 1 根据表达式的不同值 选择不同的程序分支 又称开关语句 数值型或字符型 常量表达式的值必须互不相同 否则执行时将出现矛盾 即同一个开关值 将对应多种执行方案 4 2 语句执行流程 指语句的最后一条是否为break 简单语句或复合语句 case语句出现的次序并不影响执行结果 5 voidmain intn printf 请输入成绩 scanf d 例7 1 编写程序 对学生成绩进行等级评定 将成绩分为几个等级 0 59分为不及格 60 69分为及格 70 79分为中等 80 89分为良好 90 100分为优秀 要求输入一个成绩 输出其对应的等级 请输入成绩 78 成绩78的等级为中等成绩78的等级为及格成绩78的等级为不及格 出错啦 6 在 switch 语句中 case常量表达式 只相当于一个语句标号 表达式的值和某标号相等则转向该标号执行 但不能在执行完该标号的语句后自动跳出整个switch语句 因此会继续执行所有后面语句的情况 为此 语言提供了一种break语句 其功能是可以跳出它所在的switch语句 7 将上面的例7 1修改如下 voidmain intn printf 请输入成绩 scanf d 请输入成绩 78 成绩78的等级为中等 8 使用switch语句时还应注意以下几点 switch后面圆括号内表达式的值和case语句中常量表达式的值 都必须是整型的 枚举型的或字符型的 不允许是浮点型的 在case后的各常量表达式的值不能相同 每个case子句既可以是一条语句 也可以是多条语句 当是多条语句时 不需要用花括号括起来 各个case子句和default子句的先后顺序可以变动 而不会影响程序执行结果 default子句可以省略不用 多个case的后面可以共用一组执行语句 如例7 1中等级为优秀的判断程序可改为 9 switch int n 10 case10 case9 printf 成绩 d的等级为优秀 n break 10 7 2嵌套循环结构程序设计 在一个循环内又完整地包含另一个循环 称为循环的嵌套 for语句可以与while语句 do while语句相互嵌套 构成多重循环 例如 11 1 2 for do while for while 3 4 while for for for 12 for i 1 i 9 i 打印第i行 例7 2 打印乘法小九九表 使用一个循环9次的循环语句 每次循环打印一行 打印第i行 循环i次 每次循环打印一个表达式 for j 1 j i j 打印第j个表达式 打印完一行后换行 13 includevoidmain inti j for i 1 i 9 i for j 1 j i j printf d d 3d i j i j printf n 程序运行情况如下 1 1 12 1 22 2 43 1 33 2 63 3 94 1 44 2 84 3 124 4 165 1 55 2 105 3 155 4 205 5 256 1 66 2 126 3 186 4 246 5 306 6 367 1 77 2 147 3 217 4 287 5 357 6 427 7 498 1 88 2 168 3 248 4 328 5 408 6 488 7 568 8 649 1 99 2 189 3 279 4 369 5 459 6 549 7 639 8 729 9 81 14 例7 3 百鸡问题 include stdio h voidmain intx y z for x 1 x 20 x 用嵌套的for循环依次设公鸡有1 2 20只 for y 1 y 33 y 设母鸡有1 2 33只 for z 3 z 100 z 3 设小鸡有3 6 99只 if x 5 y 3 z 3 100 程序运行结果如下 公鸡4只 母鸡18只 小鸡78只公鸡8只 母鸡11只 小鸡81只公鸡12只 母鸡4只 小鸡84只 15 7 3break语句和continue语句在循环中的应用 break语句只能用在switch语句或循环语句中 其作用是跳出switch语句或跳出本层循环 转去执行后面的程序 由于break语句的转移方向是明确的 所以不需要语句标号与之配合 break语句的一般形式为break 注意 break语句对if else的条件语句不起作用 在多层循环中 一个break语句只向外跳一层 使用break语句可以使循环语句有多个出口 16 continue语句 continue语句只能用在循环体中 其一般格式是 continue 其语义是 结束本次循环 即不再执行循环体中continue语句之后的语句 转入下一次循环条件的判断与执行 应注意的是 本语句只结束本层本次的循环 并不跳出循环 continue语句只用在for while do while等循环体中 常与if条件语句一起使用 用来加速循环 1 while 表达式1 if 表达式2 break 2 while 表达式1 if 表达式2 continue 17 18 例7 4 输出100以内能被7整除的数 include stdio h voidmain intn for n 1 n 100 n if n 7 0 continue printf d n printf n 程序运行情况如下 714212835424956637077849198 19 例7 5 判断m是否素数 include includeintmain intm i k scanf d 20 7 4程序举例 例7 6 模拟自动饮料机 include stdio h voidmain intbutton printf 自动饮料机 n printf 1 可口可乐 n printf 2 雪碧 n printf 3 百事可乐 n printf 4 芬达 n printf 5 非常可乐 n printf 请按1 5键选择饮料 n scanf d 21 switch button case1 printf n你获得一听可口可乐 n break case2 printf n你获得一听雪碧 n break case3 printf n你获得一听百事可乐 n break case4 printf n你获得一听芬达 n break case5 printf n你获得一听非常可乐 n break default printf n非法操作 n 程序运行情况如下 自动饮料机 1 可口可乐2 雪碧3 百事可乐4 芬达5 非常可乐请按1 5键选择饮料 3 你获得一听百事可乐 22 例7 10 数组元素排序 冒泡排序 以升序为例 排序过程 比较第一个数与第二个数 若为逆序a 0 a 1 则交换 然后比较第二个数与第三个数 依次类推 直至第n 1个数和第n个数比较为止 第一趟冒泡排序 结果最大的数被安置在最后一个元素位置上对前n 1个数进行第二趟冒泡排序 结果使次大的数被安置在第n 1个元素位置重复上述过程 共经过n 1趟冒泡排序后 排序结束 23 例 38 49 76 97 13 97 27 97 30 97 13 76 76 76 27 30 13 65 27 65 30 65 13 13 49 49 30 49 27 38 27 38 30 38 24 includemain inta 10 i j t printf Input10numbers n for i 0 ia j 1 t a j a j a j 1 a j 1 t printf Thesortednumbers n for i 0 i 10 i printf d a i 25 例7 11 数组元素排序 选择排序 以升序为例 排序过程 首先通过n 1次比较 从n个数中找出最小的 将它与第一个数交换 第一趟选择排序 结果最小的数被安置在第一个元素位置上再通过n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 42567.4-2025工业过程测量变送器试验的参比条件和程序第4部分:物位变送器的特定程序
- 别墅果树出售合同范本
- 勘查标准合同范本
- 上海古董拍卖合同范本
- 信托转让合同范本
- 单位与单位入股合同范本
- 乡村道路跨宽施工合同范本
- 加工企业入股合同范本
- 单位施工合同范例
- 包装盒印刷厂合同范本
- 食品经营安全管理制度目录
- 南通大学开题报告模版
- 医院急救中心劳务外包采购项目评标办法(评分细则表)
- JTG H12-2015 公路隧道养护技术规范
- 2024天津工业职业学院教师招聘考试笔试试题
- QCT1067.5-2023汽车电线束和电器设备用连接器第5部分:设备连接器(插座)的型式和尺寸
- 石灰石开采项目可行性分析报告
- 2024年高考历史总复习中外历史大事年表
- 合金固态相变全套教学课件
- 追求理解的教学设计
- 《研学旅行课程设计》课件-1研学课程资源选择
评论
0/150
提交评论