




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 C语言语句类型与基本控制结构 5 1C语言语句类型5 2程序的三种基本结构5 3if语句5 4switch语句5 5while语句5 6do while语句5 7for语句5 8循环嵌套5 9break语句和continue语句 5 1C语言语句类型 C语句分为 空语句只有一个分号 的语句 什么也不做 表达式语句语句形式 表达式 例如 a 10 a b 5 20 注意 一个表达式可以成为另一个更复杂的表达式的一部分 而表达式语句则不能 例如 a b 表达式 可以写 a b 0a b 表达式语句 不可以写 a b 0 复合语句用一对 括起来的语句 z x y t z 100 printf f t 注意 复合语句中最后一个语句中最后的分号不能忽略不写 函数调用语句语句形式 函数名 实参列表 例如 scanf d 控制语句用于完成一定的控制功能C语言有9中控制语句 if else 条件语句 实现选择结构switch 多分支选择语句while 当型循环语句 实现循环结构dowhile 直到型循环语句for 循环语句continue 结束本次循环语句break 中止执行switch或循环语句goto 转向语句return 从函数返回语句 5 2程序的三种基本结构 程序的基本结构有三种 1 顺序结构 各操作步骤顺序执行 是一种最简单的基本结构 2 选择结构 3 循环结构 例交换两个变量的值 includevoidmain inta 3 b 5 c printf 交换前 a d b d a b c a a b b c printf 交换后 a d b d a b 顺序结构程序设计举例 例输入三角形的三边长 求三角形面积 假设 三个边长a b c能构成三角形 已知面积公式 area s a b c 2 include includevoidmain floata b c s area scanf f f f 数学函数库因为要用到其中的sqrt函数 运行情况 3 44 55 6 a 3 40 b 4 50 c 5 60area 7 65 5 3if语句5 3 1if语句的3种形式 If语句形式if 表达式 语句表达式为条件判断表达式 结果为逻辑值例 if x y printf d x if的内嵌语句通常多于一条语句 这时必须使用 把这些语句括起来 形成复合语句 使其在语法上成为一条单语句例如 if x 0 y 1 z 10 printf y d z d n y z 如果不加 程序会有什么变化 例 输入一个学生的两门课程考试成绩 如果两门课程成绩均在90分以上 则显示 优秀 分析 输入两门课程的考试成绩 scanf 判断两门课程成绩是否均在90分以上如果 是 则显示 优秀 if 需要定义两个变量x1 x2存放输入的成绩用scanf接受输入的数据存放到x1 x2中判断是否是x1 90并且x2 90如果是 则printf 优秀 if includemain floatx1 x2 printf 请输入两门课程的考试成绩 scanf f f if else语句形式if 表达式 语句1else语句2例 if x y printf d x elseprintf d y 开始 输入a b 输出z a b z a z b 结束 includevoidmain inta b z scanf d d a b if a b z a elsez b printf 最大数是 d z Yes No 例 输入一个英文字母 判断是否为大写字母 若是 则转换成小写字母输出 否则不转换直接输出 分析 输入一个英文字母存放在变量ch中判断ch是否为大写字母如果是则需要将其转换为小写字母输出字母 charch printf 请输入一个英文字母 scanf c 例 输入三个整数 将其中最大的整数显示输出 分析 输入的三个整数分别放在三个变量a b c中 需要进行两次比较 首先比较a b谁大 然后用a b中较大的数再和c比较 因此这里需要有个变量 max 暂时存放a b中较大的数 并用它来保存最后的最大值 输入三个数据 放入变量a b c中判断 如果a b 则max a 否则max b 再判断 如果max c 则max c inta b c max printf 输入三个整数 scanf d d d if elseif语句形式 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 elseif 表达式m 语句melse语句n 例 scanf d 例 scanf d 例 求解下面的分段函数并显示结果 分析 分段函数中需要用到两个变量x y判断x的范围 根据判断结果选择使用哪个公式计算y的值 声明变量x y输入x的值判断 如果x 10 则y 2 x 否则再判断是否x 0并且x 10 如果是 则y x 1 否则y x 10 输出y的值 intx y printf 请输入x的值 scanf d 例输入某人的身高和体重 根据下面的计算公式判断此人的体重是标准 过胖还是过瘦 1 标准体重 身高 110 公斤 2 超过标准体重5公斤为过胖 3 低于标准体重5公斤为过瘦 步骤 将输入的身高存放到变量h中 体重存放到变量w中计算标准体重 放到变量bw中 bw h 110 如果w bw 5 则体重过胖 否则进一步进行判断 如果bw w 5 则体重过瘦 否则体重为标准 includemain floath w bw printf 请输入某人的身高和体重 公斤 scanf f f if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套 形式 If 表达式1 if 表达式2 语句1else语句2Elseif 表达式3 语句3else语句4 内嵌if 例输入三个数x y z 然后按从大到小输出 如果x y x z 说明x最大 应该首先输出 然后判断 如果y z 则接下来应该先输出y然后输出z 否则接下来应该先输出z后输出y 如果y x y z 说明y最大 应该首先输出 然后判断 如果x z 则接下来应该先输出x然后输出z 否则接下来应该先输出z后输出x 如果以上两种情况都不是 则说明z最大 应该首先输出z的值 然后判断 如果x y 则接下俩应该按照先x后y的顺序输出 否则应该按照先y后x的顺序输出 x y x z 输出x 真 y z 输出y 输出z 输出z 输出y y x y z 输出y 真 x z 输出x 输出z 输出z 输出x 输出z x y 输出x 输出y 输出y 输出x 假 假 假 假 假 真 真 真 includemain floatx y z printf 请输入三个数字 scanf f f f if x y else printf f t z if x y printf f t f n x y elseprintf f t f n y x 例输入三个数a b c 要求按由大到小的顺序输出 Ifa b将a和b对换Ifa c将a和c对换Ifb c将b和c对换 n includevoidmain floata b c t scanf f f f 匹配规则 Else总是与它上面的 最近的 同一复合语句中的 未配对的if语句配对 例 If if 语句1elseif 语句2else语句3 例 If if 语句1 elseif 语句2else语句3 当if和else数目不同时 可以加花括号来确定配对关系 1 x0 includevoidmain intx y scanf d 上例中的程序段有四个 请判断哪个是正确的 程序1 程序2 if x 0 y 1 if x 0 y 1 elseelsey 0 if x 0 y 0 elsey 1 elsey 1 程序3 程序4 y 1 y 0 if x 0 if x 0 if x 0 y 1 if x 0 y 1 elsey 0 elsey 1 正确 正确 条件运算符和条件表达式 格式 表达式 表达式 表达式 功能 判断表达式1的值 如果成立就执行表达式2 否则就执行表达式3 例 if max elsemax 当a b时将a的值赋给max 当a b时将b的值赋给max 可以看到无论a b是否满足 都是向同一个变量赋值 可以用下面的条件运算符来处理 输入一个整数c 判断c是否大于10 如果大于10 则输出 c 10 否则 输出 c10 printf c 10 elseprintf c10 c 10 c 10 说明 1 条件运算符优先级高于赋值运算符 低于关系运算符 逻辑运算符和算术运算符 max a b a b 1相当于 max a b a b 1 不等于 max a b a b 1 说明 2 条件运算符的结合方向为 自右至左 3 表达式2 和 表达式3 不仅可以是数值表达式 还可以是赋值表达式或函数表达式 4 条件表达式中 表达式 的类型可以与表达式 和表达式 的类型不同 例输入一个字符 判别它是否大写字母 如果是 将它转换成小写字母 如果不是 不转换 然后输出最后得到的字符 includevoidmain charch scanf c 5 4switch语句 switch 表达式 case常量表达式 语句序列 case常量表达式 语句序列 case常量表达式i 语句序列i case常量表达式 语句序列 default 语句序列 功能 当switch后的表达式的值与某case分支中的常量表达式i相等时 执行该case分支后语句序列直到退出switch结构 否则执行default后的语句序列 例 要求按照考试成绩的等级输出百分制分数段 用switch语句实现 switch grade case printf break 表示退出switch结构case printf break case printf break case printf break default printf 说明 1 switch和case语句中的表达式需要是整型 字符类型或者枚举类型 2 每一个case的常量表达式的值必须互不相同 否则就会出现互相矛盾的现象 对表达式的同一个值 有两种或多种执行方案 3 执行完一个case后面的语句后 流程控制转移到下一个case继续执行 不再判断表达式与 case常量表达式 是否相等 为避免执行后面case分支中的语句 应该在一个case分支后 用一个break语句来终止switch语句的执行 switch grade case printf case printf case printf case printf default printf 4 良好的程序逻辑结构应该有default分支 但也可以没有这个分支 如果没有default 那么在找不到与表达式相等的常量表达式时 不执行任何分支 default语句的位置没有要求 5 多个case可以共用一组执行语句 inti 10 switch i default printf default n case1 printf 1 n break case2 printf 2 n break 最终显示 default1 switch day case1 case2 case3 case4 case5 printf 工作日 n break case6 case7 printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五项试验考试试题及答案
- pon网络考试题及答案
- 高原驾驶测试题及答案
- 顺丰员工考试试题及答案
- 2025年《企业人力资源管理师》专业综合知识考试题库与答案
- 2025职业卫生技术人员评价方向考试题库(含答案)
- 医疗质量安全(不良)事件管理办法试题测试题库含答案
- 医疗机构《医疗卫生机构医疗废物管理办法》培训考核试题及答案
- 2025年医疗废物分类处置试题及答案
- 数字化物流商业运营 课件 模块七 数字化设施选址与流程优化
- 集团公司新闻宣传工作管理办法
- 物业消防安全管理制度
- 金属非金属矿山安全规程的完整性与实施
- 无线电监测技术设施运行维护项目需求
- 精密设备微振动隔离:主被动混合隔振平台的研究与应用
- NSA2000变频器使用说明书
- 2025-2030年中国企业孵化器行业发展现状及前景规划研究报告
- 动物生理学电子教案
- 学校开荒保洁服务方案
- DB32-T 3144-2016普通高校单位综合能耗、电耗限额及计算方法
- 2025年中考初中历史核心素养新课标解读课件(含真题分析)
评论
0/150
提交评论