已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 2 14 1 3 1程序设计概述3 2scanf 函数3 3程序的三种基本结构3 4if语句3 5switch语句 3 6程序设计举例 第3章顺序语句和选择语句 2020 2 14 2 3 1程序设计概述 程序设计的最终目的是能在计算机上计算出正确的结果来 1969年 Dijkstra首先提出了结构化程序设计的概念 强调从程序的结构和风格上来研究和设计程序 2020 2 14 3 一个高质量的程序必须是运行可靠 清晰易读 高效率和可适应性及可移植性的 程序设计方法 分析问题确定输入 输出 定义算法画出程序的基本轮廓设计处理过程用某种语言实现该程序将思路转化为程序 2020 2 14 4 表达式语句 在表达式的后面加一个分号 可以构成一个简单语句 表达式语句 例如 a a c d 3 a a c d 3 a b ca b c i i 函数调用也是表达式 在其后面加上一个分号 就变成了函数调用语句 printf hello scanf d x 2020 2 14 5 复合语句 用花括号括起来的程序段就是复合语句 a 1 0 b 2 0 i 一个复合语句在语法上等同于一个语句 2020 2 14 6 3 2scanf 函数 3 2 1数据输入的概念3 2 2scanf 函数的调用3 2 3字符输入函数3 2 4字符输出函数 2020 2 14 7 3 2 1数据输入的概念 表达式中参加运算的变量必须有确定的值 考虑下面求圆面积的程序 include definePI3 14159voidmain floatr area r 4 area PI r r printf Theareais f n area 2020 2 14 8 缺陷 只能计算半径为固定值4的圆的面积 不能输出其他不同半径的圆面积 解决方法 加入数据输入语句 运行时 从外部输入所需数据作为变量的值 缺陷与解决方法 2020 2 14 9 3 2 2scanf 函数的调用 scanf 函数的一般格式为 scanf 输入控制 输入数据表列 输入控制 的含义与printf 函数的 输出控制 相同 输入数据表列是一个或多个用逗号分隔的变量的地址或字符串的首地址 变量的地址可以通过地址运算符 得到 r的地址就是 r 2020 2 14 10 include definePI3 14159voidmain floatr area scanf f r area PI r r printf Theareais f n area 当执行到scanf 语句时 就等待用户从键盘上输入r的值 如输入数据 2 则输出结果为 Theareais12 566360 再一次运行程序 若输入数据 5 则输出结果为 Theareais78 539749 编写求圆面积的通用程序 2020 2 14 11 scanf 函数的使用要点 1 格式符的个数必须与输入项的个数相等 数据类型必须从左至右一一对应 2 用户可以指定输入数据的域宽 系统将自动按此域宽截取所读入的数据 如 scanf 3d 3d 输入123456系统自动将123赋值给a 将456赋值给b 3 输入实型数据时 可以不带小数点 即按整型数方式输入 2020 2 14 12 scanf 函数的使用要点 4 从终端输入数值数据时 遇下述情况将认为该项数据结束 遇到空格 回车符或制表符 TAB 故可用它们作为数值数据间的分隔符 遇到宽度结束 如 4d 表示只取输入数据的前4列 遇到非法输入 如 假设a为整型变量 ch为字符型变量 对于 scanf d c 输入b o yb赋值给a 赋值给b o赋值给c 2020 2 14 13 scanf 函数的使用要点 6 如果输入控制中除了格式说明之外 还包含其它字符 则输入数据时 在与之对应的位置上也必须输入相同的字符 如 scanf Enteranumber d 若输入1234567则12赋给a 67赋给b 而345没有赋给任何数据 2020 2 14 14 例 includevoidmain void inta b charx y scanf c c 2020 2 14 15 3 2 3字符输入函数 getchar 用于输入一个字符常量 无参数 函数的返回值就是从键盘输入的一个字符 例 显示从键盘输入的一个字符 includevoidmain charc c getchar printf c c 程序中使用getchar 从键盘的输入中得到一个字符常量并赋给字符变量c 然后输出该字符 2020 2 14 16 3 2 4字符输出函数 putchar 字符输出函数 作用 向标准设备 通常是显示器 输出一个字符 putchar c 结果 输出字符变量c的值 2020 2 14 17 例用putchar 显示从键盘输入的字符 includevoidmain charc c getchar putchar c 可以将c getchar putchar c 合并为 putchar getchar 2020 2 14 18 算法的描述 流程图 以图解方式说明实现一个解决方案所需完成的一系列操作 为了达到下列目的 一目了然 比文字描述易懂 程序可以很容易地查看和修改 提供有效的程序文档 解释程序和讨论解决方案变得容易 2020 2 14 19 传统流程图里常用的符号 开始或结束框 处理框 运算步骤输入或输出框判断框连接符 一个程序中两个部分之间的连接程序的流程线注释 2020 2 14 20 传统流程图里的符号 连接符 在为复杂问题准备流程图时流程图可能无法放在一页中要将所有的图块直接连接起来比较困难流程图可以被分割成若干部分 连接符可以用于指定连接的位置 在连接符中指定了一个唯一的数 在图表断开的地方 一个箭头指示了那一点 2020 2 14 21 传统流程图里的符号 连接符 2020 2 14 22 流程图的一些提示 画流程图时应该记住的一些要点 开始把注意力集中在问题的逻辑上 画出流程图的主路径 完成主路径后 加上分支和循环 一个流程图只能含有一个起始点和一个结束点使流程图保持独立 只要可能 就不要用与计算机有关的术语 没有必要在流程图中画出程序的每个步骤 使用描述性的术语来表现问题的逻辑结构 不要用模棱两可的词语 让其他编程人员或用户能够轻松看懂你的流程图 2020 2 14 23 结构化程序设计的基本思想是任何程序都可以用三种基本结构来实现 即顺序结构 选择结构和循环结构 顺序结构的程序流程是按语句书写的顺序依次执行 选择结构是根据给定条件进行判断 由判断的结果决定执行两条或多条路径中的一条 循环结构是在给定条件成立的情况下反复执行某个程序段 该程序段称为 循环体 3 3程序的三种基本结构 2020 2 14 24 3 4if条件语句 3 4 1if语句的3种形式3 4 2if语句的嵌套 2020 2 14 25 3 4 1if语句和3种形式 if结构的一般格式 单分支 为 if 表达式 语句 功能 首先计算表达式的值 若其值为非0 即 真 则执行表达式后的语句 若其值为0 即 假 则跳过这个语句去执行if语句的后继语句 其中 if 表达式 后面的语句只能是一个语句或一个复合语句 2020 2 14 26 流程 表达式 语句 true 非0 表达式 false 0 2020 2 14 27 includevoidmain floatr printf Inputtheradius scanf f 程序先从键盘读入r的值 然后判断r值是否大于0 若大于0则进行计算并输出 否则就不进行计算 例 从键盘输入圆的半径 若半径小于等于0 则不进行计算 否则 计算圆面积 2020 2 14 28 includevoidmain charc c getchar if c putchar c purchar c 输出的字符是 a 1 即 b 例 从键盘输入字符a 试判断下面程序运行的结果 2020 2 14 29 例 求x的绝对值 x从键盘输入 includevoidmain void intx scanf d 2020 2 14 30 if else结构的一般格式为 if 表达式 语句1else 语句2 功能 首先计算表达式的值 若其值为非0 则执行语句1 然后跳过语句2 往下执行if的后继语句 若其值为0 则跳过语句1 执行语句2 然后往下执行if的后继语句 其中 语句1和语句2分别都是一个语句或一个复合语句 2020 2 14 31 流程 true 非0 表达式 语句1 false 0 表达式 语句2 2020 2 14 32 例 求a b中的最大值 includevoidmain inta b max scanf d d 2020 2 14 33 程序中引进了一个变量max 用它保存a b中的最大者 若a b 则将a送max中保存 否则将b送max中保存 最后 输出max的内容 说明 2020 2 14 34 if a if a x 0 x 0 if a x 0 errorelsex 1 2020 2 14 35 if语句 使用要点 if语句的使用要点1 语句块 语句1和语句2可以是简单语句 但经常是用一对大括号包围的复合语句 即用 括起来的语句 如 if a b 当只有一条语句时 用 x 1 max a 2020 2 14 36 2 表达式 if语句的表达式可以是任意类型 例如 if a printf d a if 3 printf OK 注意 非零 与 零 的用法请区分if x 1 与if x 1 的不同 2020 2 14 37 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else语句4 实现多路分支选择的功能 3 if else if结构 2020 2 14 38 例 输入一个x值 求下列相应的y值 includevoidmain floatx y scanf f 2020 2 14 39 if语句 嵌套使用要点 1 if语句中if与else的配对关系为else总是与它上面的最近的if配对 书写格式的缩进与否与它们之间的配对无关 例如 if if 语句块1else语句块2这时的else配对的对象为内层的if 而不是外层的if 2 要实行强行的配对关系可以利用 如 if if 语句块1 else语句块2 2020 2 14 40 if语句 嵌套形式范例 If语句例1对学生成绩分A B C D E级 90分以上为A 80 89为B 70 79为C 60 69为D 60分以下为E 输入一个分数 判断是何等级并显示 If语句例2输入一个年份 判断该年是否是闰年 并显示 闰年的条件是a 能被4整除但不能被100整除 b 能被100整除又能被400整除 2020 2 14 41 includevoidmain floata b c max scanf f f f 例 从键盘输入三个实数 求其最大者 if a b if a c max a else max c else if b c max b else max c printf Max f n max 说明 1 程序引进了一个中间变量max 用以存放最大数 2 嵌套在内层的if语句可以不用花括号括起来 但为了使结构更清晰 添加花括号也决不是多余的 2020 2 14 43 3 5switch语句 switch 多分支开关结构 语句格式 switch 表达式 case常量表达式1 语句组1case常量表达式2 语句组2 case常量表达式n 语句组ndefault 语句组n 1 2020 2 14 44 2020 2 14 45 switch语句 例 写出下面程序的输出结果 includevoidmain void intx scanf d 若从键盘输入3 输出为 PassFailPoor 2020 2 14 46 switch后的表达式的值必须是整型或字符型 不能为实型 case后的表达式是可以求得整型量或字符型量的常量表达式 且每个常量表达式的值必须各不相同 否则将会出现矛盾 switch语句 使用要点 2020 2 14 47 switch语句 使用要点 3 当表达式的值与case后面的常量表达式值相等时就执行此case后面的语句 4 case常量 只起语句标号的作用 5 break语句在switch中的作用 强行跳出switch体转到其它某条语句 每个case后面应有一个break语句 否则程序的执行顺序将改变 default分支后的break可以省略 6 各个case出现的先后顺序不影响程序的执行结果 2020 2 14 48 7 多个case可以执行同一组语句 8 表示所有情况都不符合时 则执行default分支下的语句组n 1 它只能出现一次 通常放在分支结构的最后 对于没有default分支的switch语句 在所有情况都不符合时将不执行任何操作 switch语句 使用要点 2020 2 14 49 switch语句 范例 Switch语句例1 若变量已正确定义 则以下程序段的运行结果是 a 2 b 7 c 5 switch a 0 case1 switch b 10 case1 printf break case0 printf break case0 switch c 5 case0 printf break case1 printf break default printf break default printf 2020 2 14 50 switch语句 范例 switch语句例2 用switch语句改写if语句例1对学生成绩分A B C D E级 90分以上为A 80 89为B 70 79为C 60 69为D 60分以下为E 输入一个分数 判断是何等级并显示 2020 2 14 51 3 6程序设计举例 例 运输公司对用户计算运费 公司规定 路程越远 每公里运费越低 标准如下 S 250km没有折扣
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预制墙板安装合同范本
- 安全生产酸碱作业安全培训试题及答案
- 模板代理协议合同范本
- 2026-2031年中国农村养老保险行业市场调查及投资前景预测报告
- 基于某商业银行数据洞察个人房贷违约风险影响因素的实证剖析
- 教育扶贫帮扶协议书
- 2026-2031全球及中国白蛋白分析仪行业发展现状调研及投资前景分析报告
- 企业笔试会计题库及答案
- 天津市河西区2025-2026学年七年级上学期期中历史试卷(含答案)
- 2025年药物不良反应处理与监测模拟考卷及答案解析
- 2025年税收风险管理实务题练习题库(附答案)
- 2024年乌鲁木齐辅警招聘考试题库有完整答案详解
- 家具厂安全生产责任制度
- 安阳师范学院《马克思主义基本原理概论》2024-2025学年第一学期期末试卷
- 2025-2026人教版小学4四年级数学上册(全册)测试卷(附答案)
- 2025年导游资格考试(试卷一)《政策与法律法规》《导游业务》试题及答案
- 【2025年公基题库100】时政、公基常识试题及答案解析
- 全身器官捐赠协议书
- 美业服务社群运营策略与方案
- 2025年下半年小学教师资格证笔试综合素质真题(含答案解析)
- 进口食品行业知识培训课件
评论
0/150
提交评论