




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计教程 HuanghuaiUniversityDepartmentofComputerScience 主讲 傅丰黄淮学院计算机科学系 高等教育出版社 谭浩强张基温等编著 第三章C程序的流程设计 1算法 2C语句概述 3选择结构程序设计 3 1双分支结构 if else 3 1 3 2多分支结构 elseif switch 4循环结构程序设计 2学时 2学时 本节 4学时 1算法 每件事都需要事先设计出方法步骤 如 春节回家 收拾行李 买车票 按时乘车 到站下车 乘公交车回家 数据的类型和组织形式 解决问题的方法和步骤 一 算法的性质与组成要素 有穷性 算法是一个有穷动作序列 不能是无限的 确定性 每一步的含义应唯一 明确 不能有歧义性 有序性 算法只能有一个起始动作 每个动作仅有一个后继动作 有0个或多个输入 有1个或多个输出 没有输出的算法没有意义 操作 算术运算 关系运算 逻辑运算 函数运算 位运算 I O操作等 控制结构 控制算法各操作的执行顺序 不同顺序会得到不同结果 结构化程序设计方法要求 一个程序只能由三种基本控制结构组成 顺序结构 算按书写顺序执行 选择结构 根据判断选择执行路径 循环结构 将一条或多条语句重复执行多次 性质 组成要素 二 算法的描述 不够直观 1 自然语言 例如 求n 1 输入n的值 2 若n 0 则f 1 结束 否则 f 1 i 1 f i f 即f f i i 1 i即i i 1 若i n则返回 否则结束 3 f为所求 三种基本程序结构 顺序结构 分支结构 选择结构 循环结构 当 while 型循环结构 直到 untile 型循环结构 P57图3 1常用的流程图符号 2 传统流程图 流程线的无限制使用 会导致程序无序跳转 造成难以理解 因此 规定使用三种基本程序结构组成算法 其共同特点是 只有一个入口和一个出口 结构内每部分都有机会被执行 不存在死循环 1 输入n的值 2 若n 0 则f 1 结束 否则 f 1 i 1 f i f 即f f i i 1 i即i i 1 若i n则返回 否则结束 3 f为所求 自然语言 P59图3 4 求n 3 结构化流程图 N S图 顺序结构 分支结构 选择结构 当 while 型循环结构 直到 untile 型循环结构 P59图3 6N S图的三种基本结构 P60图3 7 求n 4 问题分析图 PAD图 顺序结构 分支结构 循环结构 P60图3 8PAD图的三种基本结构 从上向下表示执行顺序从左到右表示层次关系 P60图3 9 求n 5 伪代码表示 用介于自然语言和计算机语言之间的文字和符号描述算法 beginifn 0f 1else f 1i 1 f f ii i 1 while i n printfend 例 求n 的伪代码表示 main intn f i scanf d 求n 的程序代码 三 结构化程序设计方法 基本思路 结构化编码 模块化设计 自顶向下逐步细化 从大问题分解到小问题 模块是根据功能划分的部分 用结构化语言表示算法 课后阅读P61例3 1 例3 2 2C语句概述 P68 如 a 3 i x y i i 1是表达式a 3 i x y i i 1 是语句if a b 0 t a a b是赋值表达式 不能写为 if a b 0 t a a b 是赋值语句 一 表达式语句 表达式加上分号可以构成一条语句是C语言的特色 二 流程控制语句 while break break while continue continue gotoer er goto标号 三 复合语句 1 复合语句是用 括起来的一组语句 相当于一个语句 2 复合语句中可包含复合语句 3 复合语句又称为分程序 在复合语句中可以定义变量 这些变量只在分程序中有效 四 停止函数exit 1 功能 立即停止当前程序运行 退回到操作系统状态 2 参数 为int型 参数为0 属正常停止 为其它值 参数即为造成停止的错误类型 3 使用exit 函数 应在程序前使用 include stdio h main inta intb b 3 printf d n a b 3选择结构程序 一 if语句的三种结构 if 条件 语句1 1 不平衡结构 if 条件 语句1 else语句2 2 平衡结构 if 条件1 语句1 elseif 条件2 语句2 elseif 条件3 语句3 else语句n 3 elseif结构 1 条件可以是关系表达式 逻辑表达式 算术表达式 非0即真 2 else前面的语句带分号 但整个if语句并未结束 勿认为else是一条语句 else子句不能单独使用 它必须与if配对使用 3 if和else后的语句如果是多条语句时 应用 括起来构成一个复合语句 说明 P69例3 求一个数的绝对值 main doublea abstr doublex printf Enterrealnumbera scanf lf doubleabstr doublex if x 0 0 x x elsex x return x doubleabstr doublex if x 0 0 x x return x 平衡If语句 不平衡If语句 main inta b x scanf d d P15习题8 求a b 的值 if b 0 x a b elsex a b printf x d n x P70例4 求三数中的最大数 main floata b c m floatf floatx floaty floatz printf Enter3realnumbera b c scanf f f f floatf floatx floaty floatz floatmax x if z y if z x max z elseif y z max y return max 在if语句中又包含一个或多个if语句 称为if语句的嵌套 else总是与它前面距它最近的if匹配 可用 号改变匹配关系 思考 上面程序是否有误 if z y if z x ma z elseif y z ma y P72例5 求一元二次方程ax2 bx c 0的根 include math h voidf floata floatb floatc if a 0 0 if b 0 0 printf noanswer n elseprintf f n c b else floatd t1 d b b 4 a c t1 b 2 a t2 sqrt fabs d 2 a if d 0 printf f f n t1 t2 t1 t2 elseprintf f fi f fi n t1 t2 elseif结构 if else多重嵌套的变形 if 条件1 语句1 elseif 条件2 语句2 elseif 条件3 语句3 else语句n main floatn x scanf f P74例6 用elseif结构求二元一次方程的根 include math h voidf floata floatb floatc if a 0 0 能否改为下面三种形式 补充举例 存在else与if的匹配问题 应用 改变匹配关系 if x 0 if x 0 y 1 elsey 0 elsey 1 y 1 if x 0 if x 0 y 1 elsey 0 y 0 if x 0 if x 0 y 1 elsey 1 正确 y 1 if x 0 if x 0 y 1 elsey 0 y 0 if x 0 if x 0 y 1 elsey 1 有函数 编程给出x值 可输出y值 main intx y scanf d P97习题2 1 两盘磁带 A录英语 B录音乐 交换它们 main inta b c a 10 b 20 printf a d b d n a b c a a b b c printf a d b d n a b P97习题2 3 6 任意三数按降序输出 main inta b c t printf a b c scanf d d d 课后作业及上机任务 教材P97习题1 2 1 4 3 8 上机调试P97习题4编写并调试P97习题3 9编程 输入4个整数 按从小到大顺序输出 switch 表达式 case常量表达式1 语句1case常量表达式2 语句2 case常量表达式n 语句ndefault 语句n 1 如 按考试等级输出百分制分数段 switch x case A printf 85 100 n case B printf 70 85 n case C printf 60 69 n case D printf 60 n default printf error n 格式 1 执行过程 从上到下寻找表达式是否与某个case后的常量表达式的值相等 若找到就执行该case子句后所有的语句 包括其它case和default子句后的语句 对其后的case子句不再进行判断 若找不到 则执行default后的语句 2 常在case子句中用break语句终止switch语句的执行 3 case子句和default子句不能单独使用 说明 二 switch语句 如 按考试等级输出百分制分数段 switch x case A printf 85 100 n case B printf 70 85 n case C printf 60 69 n case D printf 60 n default printf error n 补充举例 当x A 时 程序执行结果为 85 10070 8560 69 60error 修改为 switch x case A printf 85 100 n break case B printf 70 85 n break case C printf 60 69 n break case D printf 60 n break default printf error n 当x A 时 程序执行结果为 85 100 补充举例 分别作如下修改后呢 从键盘输入一个整数n 要求 当n 1时 输出 当n 2时 输出 当n 2时 输出 scanf d switch n default printf n case2 printf n case1 printf n switch n case1 printf n break case2 printf n break default printf n 4 case子句后有多个语句时 可以不必用 括起来 5 case和default子句的位置可根据需要调整 default子句不一定要放到case子句的最后 6 switch后的表达式一般是整型或字符型表达式 与之相应的case后也应是一个整数或字符常量或不含变量和函数的常量表达式 7 不能出现两个case子句具有相同的常量表达式值的情况 8 switch语句允许嵌套 说明 续 switch x case A case B case C case D printf 60 n break default printf error n 补充举例 当x为 A B C 时执行结果均为 60 正确 case3 4 错误 intx 3 y 4 casex y 错误 case3 2 case8 3 举例 P75例7 测试是数字 空白还是其它字符的函数 voidtest charc switch c case 1 case 2 case 3 case 4 case 5 case 6 case 7 case 8 case 9 printf digit n break case case n case t printf white n break default printf char n break P77例8 猜字游戏 略 上机实习时 自己写出主函数 补充举例 路程s越远 每公里运费越低 折扣的标准如下 s 250km没有折扣250 s 5002 折扣500 s 10005 折扣1000 s 20008 折扣2000 s 300010 折扣3000 s15 折扣设每公里每吨货物的基本运费为p 货物重为w 距离为s 折扣为d 则总运费f的计算公式为 f p w s 1 d 折扣的 变化点 都是250倍数 分析折扣变化的规律 若s为整型 则c与折扣d的关系为 c 0d 0c 1d 2 c 2 3d 5 c 4 5 6 7d 8 c 8 9 10 11d 10 c 12 13 14 d 15 若c s 250 则折扣d如下 c 1d 01 c 2d 2 2 c 4d 5 4 c 8d 8 8 c 12d 10 12 cd 15 运输公司对用户计算运费 main intc s floatp w d f scanf f f d 若s为整型 则c与折扣d的关系为 c 0d 0c 1d 2 c 2 3d 5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业碳汇政策支持力度与市场潜力深度解读报告
- 吊装工程专业方案(3篇)
- 猫咪与毛球课件
- 工程玻璃质检方案(3篇)
- 安全教育平台培训课件
- 安全教育培训风险点课件
- 辽宁高速面试题库及答案
- 丽水幼教面试题库及答案
- 跨境电商产品面试题库及答案
- 安全教育培训讲解稿子课件
- 送气工配送管理制度
- 2025-2030全球及中国工程CAD软件行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 安检机租赁合同协议范本
- 塔吊前臂临近高压线处理方案
- 某卫生院员工手册
- T∕CACM 008-2018 中医药单用联合抗生素治疗常见感染性疾病临床实践指南 急性咽炎
- 消防设施操作员自测试题及答案
- 职业暴露的预防及处理课件
- 餐饮服务明厨亮灶建设工作方案
- 私人二手摩托车转让合同范本
- 企业形象策划服务合同范本
评论
0/150
提交评论