




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 程序设计基础 第3章C 控制语句北京邮电大学信通院方莉mrs fangli 2 第3章C 控制语句 用计算机解决实际问题 首先要分析问题 设计合适的算法 然后编程实现算法 主要介绍C 控制语句和程序基本结构使用基本结构实现简单算法 3 目录 4 3 1算法的基本控制结构 算法1 计算机执行的操作2 这些操作的顺序伪码采用类似计算机语言的分句格式 以自然语言描述算法 5 3 1算法的基本控制结构 流程图 可以直观表示算法和程序执行的流程专用的图形符号组合表示算法和程序开始 结束执行判断联系 6 3 1算法的基本控制结构 程序的三种基本控制结构 1 顺序结构 2 选择结构 3 循环结构 7 3 1算法的基本控制结构 流程控制语句选择语句 if else switch循环语句 while for do while转向语句 break continue 8 算法及其表示伪代码表示类似于计算机语言的分句格式 以少量关键词和自然语言形式描述 流程图表示以流程图符号表示程序的执行流程 3 1算法的基本控制结构 9 欧几里得算法描述举例 辗转相除法求两个自然数m和n的最大公约数 假定m n伪代码描述 流程图描述 1 inputm n2 r m n 3 while r 0 3 1m n 3 2n r 3 3r m n 4 outputn 10 目录 11 3 2if选择语句 If else1 没有else分支2 双分支3 多分支4 if语句的嵌套 12 3 2if选择语句 1 没有else分支 有条件执行特定的操作例如 比较x和y的大小 如果x大则输出x的值 if 表达式 语句 if x y cout x endl 13 3 2if选择语句 2 双分支 基本if else语句形式例如 比较x y的大小 将较大的数输出 if 表达式 语句1 else语句2 if x y cout x endl elsecout y endl 14 例3 1润年 任意输入一个4位整数的年份 判断该年是否是润年 润年是指年份能被4整除的那些年 但不包括能被100整除而不能被400整除的年 15 includeusingnamespacestd voidmain intyear cin year if year 4 0 例3 1润年 16 3 2if选择语句 3 多分支 多种选择 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else语句n F 17 includeusingnamespacestd voidmain intx cin x if x 90 cout 80 cout 60 cout x x 合格 endl elsecout x x 不及格 endl 例3 2 输出学生的成绩 18 3 2if选择语句 4 if语句的嵌套 if 表达式1 if 表达式2 语句1else语句2elseif 表达式3 语句3else语句4 19 3 2if选择语句 4 if语句的嵌套 20 例3 3 输出a b c中较大的数 includeusingnamespacestd voidmain inta b c cin a b c if a b if a c coutc cout b endl elsecout c endl coutb a c a c b c b c 21 3 2if选择语句 注意 二义性intx 1 if x 0 if x 50 cout xis 50 endl elsecout xis 0 endl if和else的对应关系 else总是与离它最近的if匹配 22 3 2if选择语句 注意 加 括号 不出现逻辑错误 测试条件为真出现概率大的操作放在if结构的开头 尽早满足测试条件 结束if结构执行 提高程序运行速度 使用嵌套if结构时 if和else的对应 从内层考查else 与之最近的if匹配 注意二义性 23 目录 24 3 3switch选择语句 switch 表达式 case常量表达式1 语句1break case常量表达式2 语句2break case常量表达式n 语句nbreak default 语句n 1 25 3 3switch选择语句 26 intx cin x switch x 10 case10 case9 cout 优秀 endl break case8 cout 良好 endl break case7 case6 cout 合格 endl break default cout 不及格 endl 例3 4 输出学生的成绩 1009580756055 27 switch 多分支选择语句 常量表达式不同取值 执行不同操作 注意 常量表达式的值可以是字符型 整型 枚举型 不能是实型 通常 也只是一个常量 不能放置条件不等式或变量 各case值不同 各个case的先后顺序不影响执行结果 由编程者合理安排 switch语句每当找到匹配的常量表达式 则从此标号开始执行下去 不再进行判断 即将此后的其它case下的语句也都执行 直到碰到break语句或switch语句结束 一般来说 在每个case的执行语句结束处 应该加上break语句 可以共用一个break break终止语句执行 并跳出switch循环 提供default情况 提醒编程者需要处理异常条件 放在最后 3 3switch选择语句 28 目录 29 3 4循环语句 三种基本语法1 while语句2 do while语句3 for语句 30 include includeusingnamespacestd voidmain cout setfill setw 2 n setw 3 n setw 4 n setw 5 n setw 6 n setw 7 n setw 8 n 3 4循环语句 31 include includeusingnamespacestd voidmain inti 2 cout setfill while i 8 cout setw i n i 循环变量 循环体 循环控制条件 3 4循环语句 32 3 4循环语句 主要包括3个部分 1 循环控制条件 判断循环操作是否进行的条件 2 循环体 重复进行的操作 3 循环控制变量 记录循环体执行的次数 或控制循环的结束条件 33 3 4循环语句 while循环语句 while 表达式 循环体语句 34 includeusingnamespacestd voidmain inti 1 while i 9 cout i endl i cout 循环结束 endl 运行结果 123456789循环结束 例3 5 编程循环输出1 9 35 例3 6 编程计算1 2 3 10的值 includeusingnamespacestd voidmain intsum 0 i 0 while i 10 sum i i cout sum endl 结果 55 36 例3 7 打印可视字符 includeusingnamespacestd voidmain unsignedcharch 32 while ch 127 cout int ch t ch t ch 可显示的字符的ASCII编码从32到126 37 includeusingnamespacestd voidmain intk 1 sum 0 n cout0 cin n while k0 cout sum n endl elsecout n不能 0 endl 例3 8 编程计算的值 38 do while循环语句至少执行一次 do 循环体语句 while 表达式 3 4循环语句 39 include includeusingnamespacestd voidmain inti 2 cout setfill while i 8 cout setw i n i do cout setw i n i while i 8 40 includeusingnamespacestd voidmain intk 1 sum 0 n cout0 cin n while k0 cout sum n endl elsecout n不能 0 endl do sum sum k k k while k n 例3 8 编程计算的值 41 3 4循环语句 for循环语句循环结构1 表达式1 循环变量初始化 2 表达式2 循环控制条件 3 表达式3 循环变量的变化 for 表达式1 表达式2 表达式3 循环体 42 includeusingnamespacestd voidmain for inti 1 i 10 i cout i endl cout 循环结束 endl 运行结果 123456789循环结束 例3 5 编程循环输出1 9 43 includeusingnamespacestd voidmain intsum 0 i for i 1 i 10 i sum i cout sum endl 运行结果 55 例3 6 编程计算1 2 3 10的值 44 include includeusingnamespacestd voidmain cout setfill for inti 2 i 8 i cout setw i n 例 45 3 4循环语句 for语句 1 可以省略for inti 1 i 9 i 循环体 inti 1 for i 9 i 循环体 46 3 4循环语句 for语句 2 可以省略for inti 1 i 9 i 循环体 for inti 1 i if i 9 循环体 elsebreak 跳转语句 用来跳出循环 47 3 4循环语句 for语句 3 可以省略for inti 1 i 9 i 循环体 for inti 1 i 9 循环体 i 48 3 4循环语句 for语句 4 同时省略for inti 1 i 9 i 循环体 inti 1 for i 9 循环体 i 49 3 4循环语句 for语句 5 极端情况 可实现无限循环for 循环体 注意 一般还是使用完整的for结构形式 程序的可读性更好 50 例3 9 判断输出结果 includeusingnamespacestd voidmain for inti 0 j 10 k 0 i j i j k i j cout k endl 分析 ijk010019928253746467055跳出 51 3 4循环语句 1 for 最适合循环次数固定 循环规律非常明显程序 2 while 使用最多最频繁的循环结构 具有普适性 3 do while 最适合至少循环一次的循环结构 52 转向语句 1 break语句用途 常用在while do while for和switch语句中 用来跳出循环或switch语句 2 continue语句用途 用于循环语句中 结束本次循环 进行下一次循环 即跳过循环体中尚未执行的部分 53 includeusingnamespacestd voidmain intsum 0 for inti 1 i 10 i if i 3 0 break sum i cout sum endl 分析isum11233跳出 例3 10 判断输出结果 54 includeusingnamespacestd voidmain intsum 0 for inti 1 i 10 i if i 3 0 continue sum i cout sum endl 分析isum11233371212192727跳出 例3 11 判断输出结果 55 目录 56 3 5循环嵌套 编程输出国际象棋棋盘 includeusingnamespacestd voidmain for inti 0 i 8 i for intj 0 j 8 j if i j 2 0 cout elsecout cout n j 01234567 01234567 57 A for i 0 k 1 i 10 i if i 5 k i 10 elsecout k k B for i 0 k 1 i 10 i if i 5 k i 10 cout k k D for i 0 k 1 i 10 i if i 5 k i 10 cout k k C for i 0 k 1 i 10 i if i 5 0 k i 10 cout k k 思考 写出每个程序各输出结果 58 思考 题目 使用for循环输出如下图形 59 includeusingnamespacestd voidmain for inti 1 i 7 i for intj 1 j 7 i j cout for j 1 j i j cout cout endl 思考 60 目录 61 题目 计算方程ax2 bx c 0的解 分析 根据方程的系数取值 存在下面几种情况 1 a 0 不是二次方程 2 b2 4ac 0 有两个相等的实根 3 b2 4ac 0 有两个不等的实根 4 b2 4ac 0 有两个共轭复根 所以 程序中将使用选择结构分别实现各种情况 3 6应用举例1 62 注意 由于a b c数据类型为浮点数 当b2 4ac很小时 可近似为0 因此判断时若 10 6 可认为是0具体代码请看见课本P66 3 6应用举例1 63 3 6应用举例2 任意输入一个整数 判断是否是素数 问题 什么是素数 指在一个大于1的自然数中 除了1和此整数自身外 没法被其他自然数整除的数 64 includeusingnamespacestd voidmain intn i cout n for i 2 i n i if n i 0 brea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单招服装考试题及答案
- 大学造型基础考试题及答案
- 中国烧碱氧化物项目创业投资方案
- 大学电磁理论考试题及答案
- 老师招聘协议书
- 船厂起重工考试题及答案
- 年会舞协议书
- 急救药品考试试题及答案
- 机械员考试试题及答案
- 回转窑考试试题及答案
- 筏板基础施工课件
- 法理学-第五编-法的价值
- 人教鄂教版五年级上册科学期中测试题(1-3单元)(含答案)
- 心灵树洞中小学生心理健康主题班会PPT教学课件
- 木质纤维素的生物分解及其转化技术
- 海康威视磁盘阵列使用说明精.选
- GB/T 7387-1999船用参比电极技术条件
- GB/T 39473-2020北斗卫星导航系统公开服务性能规范
- GB 16808-2008可燃气体报警控制器
- 公司有限空间作业安全专项排查表
- 强度调制机理光纤传感器基本原理课件
评论
0/150
提交评论