




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲教师 谢翠萍信息工程教研室 C 程序设计 第3章程序设计初步 第一个重点 顺序控制语句选择控制语句循环控制语句跳转语句 本章学习内容 学点什么哪 了解算法的描述方法 熟练掌握用C语言的基本控制语句进行顺序 选择和循环结构程序设计的方法 掌握一些常用的算法 如累加 累乘 统计 递推 迭代 穷举等 了解结构化程序设计的基本思想 重点与难点 设计累加和累乘算法 并寻找累加项或累乘项的构成规律 三种循环语句在控制流程时区别和相互联系 条件语句的嵌套和循环语句的嵌套 break语句在switch语句和循环语句中的作用 continue语句在循环语句中的作用 面向过程的程序 数据结构 算法计算机中的算法 Algorithm 为解决一个具体问题而采取的 确定的 有限的操作步骤 仅指计算机能执行的算法 算法及描述方法 生活中的问题求解 问题 烤蛋糕 BakingaCake 解决步骤 Start将烤箱预热准备一个盘子在盘子上抹上一些黄油将面粉 鸡蛋 糖和香精混合在一起搅拌均匀将搅拌好的面粉团放在盘子上将盘子放到烤箱内End 算法及描述方法 分治策略 逐步细化 Problem 准备早餐 1 Start2 准备早餐3 End 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 2准备一些薯条2 3冲一杯咖啡3 End 分治策略 逐步细化 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 1 1拿来两片面包2 1 2准备一些金枪鱼酱2 2准备一些薯片2 3冲一杯咖啡3 End 分治策略 逐步细化 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 1 1拿来两片面包2 1 2准备一些金枪鱼酱2 2准备一些薯片2 2 1将土豆切成片2 2 2油炸这些土豆片2 3冲一杯咖啡3 End 分治策略 逐步细化 1 Start2 准备早餐2 1准备一个金枪鱼三明治2 1 1拿来两片面包2 1 2准备一些金枪鱼酱2 2准备一些薯片2 2 1将土豆切成片2 2 2油炸这些土豆片2 3冲一杯咖啡2 3 1烧些开水放入杯中2 3 2在水杯中加入一些咖啡和糖3 End 分治策略 逐步细化 算法的描述方法自然语言描述传统流程图 Flowchart 在1966年 Bohra与Jacopini提出N S结构化流程图1973年 美国学者I Nassi和B Shneiderman提出伪码 Pseudocode 表示 算法及描述方法 流程图 Flowchart 三种基本结构 顺序结构 选择结构 循环结构已经证明 任何程序均可只用这三种结构实现图灵只用这三种结构的程序 叫结构化程序程序 必须 符合结构化规则 流程图 顺序结构 选择结构 循环结构 顺序结构 顾名思义 就是指按照语句在程序中的先后次序一条一条的顺次执行 复合语句 也称语句块 C语言允许把若干条语句用一对花括号括起来 构成一个复合语句 例如 inta a 1 2 复合语句是若干条语句的一个集合 它在语法上是一个整体 相当于一条语句 复合语句内可以定义变量变量必须在语句块的开头定义变量仅在定义它的语句块内 包括下层语句块 有效 同一个语句块内的变量不可同名 不同语句块可以同名各司其职 下层优先尽量不要在下层语句块内定义变量 也尽量不要定义同名变量 复合语句 也称语句块 在什么情况下使用复合语句 语句块可以用在任何可以使用语句的地方 但没有道理要乱加语句块一般是在分支和循环中需要进行多项操作时使用 if a b t a a b b t 整体被看成是一条语句 复合语句 也称语句块 选择控制语句 C 程序中提供的选择语句有两种 if语句和switch语句 if语句 1 if语句if 条件表达式 语句块 例 C1是否为小写字母的条件是 c1 a c1 z 例 x在 1 10 和 200 210 之间为真 否则为假 x 1 x 200 x 210 例 表示x 1 1 区间 应写为 x 1 x 1 不能写为 1 x 1 条件 是关系表达式或由关系表达式组合而成的逻辑表达式 最终结果是true或false 决定程序下一步的执行顺序 例 判断用户的输入 如果输入的数值大于0 则在屏幕上显示 正数 intmain void inta cin a if a 0 cout 正数 endl C语言对真假的处理 非零是真 零就是假 真用1表示 假用0表示 改成if a 3 会输出吗 改成if 0 会输出吗 改成if 3 2 会输出吗 改成if 0 0 会输出吗 if语句的范围问题 if 表达式 语句A 语句B 说明 if默认只能控制语句A 无法控制语句B 语句B一定会执行 若想控制A和B 可以加上大括号 作为复合语句 if 表达式 语句A 语句B 整体来说是一条语句 if else 选择结构的一种最常用形式if 表达式 语句块1 else语句块2 语句块3 表达式值非0时 执行语句块1 然后语句块3表达式值为0时 执行语句块2 然后语句块3else部分可以没有 当表达式值为0时 直接执行语句3if else嵌套使用时 注意else和谁配套的问题 if else 判断用户的输入 如果输入的数值大于0 则在屏幕上显示 正数 否则在屏幕上显示 不是正数 includeusingnamespacestd intmain void inta cin a if a 0 cout 正数 endl elsecout 不是正数 endl return0 条件表达式 表达式1 表达式2 表达式3z a b a b 此种表达式切忌用得过于繁杂 intmain void intx 2 y 1 z 2 if x y if y 0 z 0 elsez 1 cout z return0 结果是2 哦 原来是因为else总是与靠近它的if配套 最后一个输出语句属于if语句吗 该main 函数里面 到底包含几条语句 4条语句 以下程序的执行结果是什么 if语句常见错误 if x 0 y 3 x 2 Else没有if与之匹配 if x 2 printf y 0 if 1 x 10 y x 1 复合语句问题 x 1 x 10 x 2或2 x 如果满足某条件需执行多条语句 要用花括号括起来 编译器必须在if条件表达式的后面找到分号 以标志if语句的结束 if 条件表达式 空语句做if中的语句语句1 此时语句1不属于if的控制范围 不管条件表达式为真为假 语句1总是被执行 空语句 找别扭 inta 1 if a 0 printf OK inta 0 if a 0 printf OK inta 1 if a 0 printf OK inta 0 if a 0 printf OK 和 inta a 0 a 1 inta a 0 a 1 一定要分清 和 下面用法能起点小作用 inta 0 if 0 a printf OK inta 0 if 0 a printf OK 编译出错 逻辑运算符 赋值运算符 if else if if的一种扩展if 表达式1 语句块1 elseif 表达式2 语句块2 elseif 表达式3 语句块3 else语句块4 语句块5 else部分可以没有 CProgrammingLanguage35 执行过程 intmain void doubledelta 2 if delta 0 cout 有两个解 n elseif delta 0 cout 有一个唯一解 n elsecout 无解 n return0 若在这后面加一条语句cout haha 会产生什么结果 从键盘输入一个百分制成绩 输出成绩的等级 includeusingnamespacestd intmain void floatscore score分数cou score reutn0 成绩等级判断 if score 100 0 cout 90 0 1 使用if语句格式 2 使用if elseif 格式 if score 100 0 cout 90 0 2 使用if elseif 格式 更好的版本 if score 100 0 cout 90 0 cout 80 0 cout 70 0 cout 60 0 cout 0 cout 不及格 继续努力 n elsecout 输入分数过低 别如此自卑 n 每一个else的条件意味着上一个if条件的补集 t a a b b t 很常用的例子 将两个数从小到大输出 includeusingnamespacestd intmain void inta b c t cin a b c if a b if a c if b c cout a b c t a a b b t t a a c c t t b b c c t 输入三个整数 按从小到大的顺序输出它们 if语句嵌套 if 表达式1 if 表达式2 语句1else语句2elseif 表达式3 语句3else语句4 if 表达式1 if 表达式2 语句1elseif 表达式3 语句3else语句4 else与最靠近它的 未与别的else匹配过的if匹配 if 表达式1 if 表达式2 语句1elseif 表达式3 语句3else语句4 尽可能使用花括号来标识逻辑关系的正确性 if a b if a c max a elsemax c else if b c max b elsemax c switch语句 switch e casec1 语句序列1 casec2 语句序列2 casecn 语句序列n default 语句序列n 1 可缺省 但最好不省略 c1 cn常量 整数 字符 常量表达式 不含变量或函数 与e的类型保持一致 default 不是c1 cn的情况 位置不一定在最后 e表达式 整型 字符型或枚举型 不要忘记break intmain void floatscore cin score switch case9 cout A n case8 cout B n case7 cout C n case6 cout D n case0 cout E n default cout error n 输入 75 求输出结果 int score 10 case5 case4 case3 case2 case1 我的成绩应该是C 什么 E Error 怎么会这样 不好意思 我70多分 intmain void floatscore cin score switch int score 10 case9 cout A n case8 cout B n case7 cout C n case6 cout D n case5 case4 case3 case2 case1 case0 cout E n default cout error n 运行结果CDEError intmain void floatscore cin score switch int score 10 case9 cout A n break case8 cout B n break case7 cout C n break case6 cout D n break case5 case4 case3 case2 case1 case0 cout E n break default cout error n 这才差不多 break 解决方法 break 运行结果 C intmain void intx 1 y 0 a 0 b 0 switch x case1 switch y case0 a break case1 b break case2 a b break case3 a b cout a a b b Switch的嵌套 说明1 内外层的switch中的case语句中的常量允许相同2 不同的break也只是中断本层的switch 不会发生混乱 求程序运行结果 结果 a 2 b 1 如果x 2 结果 a 1 b 1 如果x 3 结果 a 1 b 1 switch小结 switch后面括号中的表达式一般是整型 字符型或枚举型表达式 不能是数学表达式 比如cases 250 字符串等 在各个分支中的break语句起着退出switch语句的作用case语句起标号的作用 标号不能重名 各case 包括defaul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 空调工程考试题及答案
- 铸管退火工专项考核试卷及答案
- 快递设备运维师职业技能考核试卷及答案
- 烧结球团原料工应急处置考核试卷及答案
- 光纤套塑工突发故障应对考核试卷及答案
- 粉矿烧结工测试考核试卷及答案
- 碳五正异构分离装置操作工基础知识考核试卷及答案
- 今日律师考试题及答案
- 磨毛(绒)机挡车工标准化作业考核试卷及答案
- 钒氮合金工职业技能考核试卷及答案
- 项目部商务管理办法
- 2025时政考试题及答案
- 精麻药品培训知识课件
- 2025-2026学年人教版(2024)小学美术一年级上册教学计划及进度表
- 超市安全知识培训课件模板
- 医院不良事件培训课件
- 仪表工安全基础知识培训课件
- 光电检测技术及应用 周秀云
- 环境反应工程导论课件
- VW 50134-EN-2024 PA6用于车辆内部外部的成品零件 材料要求
- 山东省国企资产管理办法
评论
0/150
提交评论