




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C语言程序设计 第二章分支结构 2 统计输入的一批字符中各类字符的数量 输入10个字符 统计其中英文字母 数字字符和其他字符的个数 3 includeintmain void intdigit i letter other charch digit letter other 0 printf Enter10characters for i 1 i a 4 Enter10characters 7834tus Letter 3 digit 4 other 3 注意 必须连续输入10个字符 字符之间不能有间隔 For循环中 每次读入一个字符 根据字符的种类 选择不同的分支执行相应的累加运算 循环执行了10次 共读入10个字符 做了10次累加运算 程序中使用字符输入函数getchar 读入字符 用逻辑表达式判断字符的种类 多分支结构则用else if语句实现 5 字符类型 上例中 用到了字符类型的数据 包括字符型变量ch和字符型常量 a Z 0 等 字符型常量指单个字符 用一对单引号及其所括起的字符来表示 例如 A a 9 是字符型常量 他们分别表示字母A a 数字字符9和符号 6 字符型常量ASCII码表 ASCII字符集 附录C P307 中列出了所有可以使用的字符 共256个每个字符都有一个唯一的次序值 即ASCII码 数字字符 0 1 2 9 的ASCII码按升序连续排列大写字母 A B C Z 的ASCII码按升序连续排列小写字母 a b c z 的ASCII码按升序连续排列注意区分数字和数字字符 例如 1是整型数字 而 1 是字符 7 字符型变量 字符型变量在定义时用类型名char 例如 charch 定义了一个字符型变量ch 它的值是字符型数据 ch A 将字符型常量 A 赋给了字符型变量ch 8 字符型数据的输入和输出 可以调用函数getchar putchar scanf printf 字符输入函数getchar 设ch是字符型变量 函数getchar 的一般调用格式是 ch getchar 从键盘输入一个字符 并赋值给变量ch 函数getchar 只能读入一个字符 如果要读入多个字符就需要多次调用函数 一般采用循环调用的方式 例如上例中 ch getchar 被循环调用了10次 共读入10个字符 9 字符型数据的输入和输出 字符输出函数putchar 函数putchar 的一般调用格式是 putchar 输出参数 输出一个字符 输出参数是字符型变量或字符型常量 charch printf Enteracharacter ch getchar putchar ch putchar 运行结果 Enteracharacter aa 10 字符型数据的输入和输出 字符输出函数putchar 与字符型常量在程序中的表示不同 输入 输出字符时 字符两侧没有单引号 函数getchar 和putchar 只能处理单个字符的输入和输出 即调用一次函数 只能输入或输出一个字符 11 字符型数据的输入和输出 调用函数scanf 和printf 输入 输出字符函数scanf 和printf 除了处理整型数据和浮点型数据的输入 输出外 也可以处理字符型数据的输入 输出 此时 在函数调用的格式控制字符串中相应的格式控制说明为 c 12 字符型数据的输入和输出 调用函数scanf 和printf 输入 输出字符例如 执行下列程序段 doublevalue1 value2 charope printf Typeinanexpression scanf lf c lf 运行结果 Typeinanexpression 2 0 3 672 0 3 67 13 字符型数据的输入和输出 调用函数scanf 和printf 输入 输出字符本例中 表达式包括两个操作数和一个运算符 由于运算符是一个字符 用字符型变量operator来保存该运算符 并在函数scanf 中用 c读入 输入表达式时 在操作数和运算符之间不能出现空格 如果输入空格 由于 c表示要读入一个字符 而空格本身也时一个字符 因此空格被作为输入字符 14 逻辑运算 上例中 用ch 0 ch a ch A ch 1 x 1和x 1的值同时为真时 该表达式的值为真 15 逻辑运算 设a和b表示逻辑运算对象 逻辑运算符的功能描述如下 a表示a为真 结果为假 a为假则结果为真 a b当a和b都为真时 结果是真 否则结果是假 a b当a和b都为假时 结果为假 否则结果是真 ch a ch A ch Z 用于判断ch是否为英文字母 16 练习 写出满足下列条件的C语言表达式ch是空格或者回车 number是偶数year是闰年 即year能被4整除但不能被100整除 或year能被400整除 解答 ch ch n number 2 0 year 4 0 year 100 0 year 400 0 17 else if语句 else if语句是最常用的实现多路选择的方法 其一般形式为 If 表达式1 语句1 Elseif 表达式2 语句2 Elseif 表达式n 1 语句n 1 Else语句n 18 续 分段计算水费 虽然实际生活中不会出现用水量x小于0的情况 但程序运行时 如果不慎输入一个负数 水费计算将会出错 为了完善分断计算水费的程序 将水费y元与用水量x吨的函数关系式修正如下 0 x15 19 includeintmain void doublex y printf Enterx scanf lf 20 练习和作业 输入x 计算并输出下列函数 1x0输入15个字符 统计其中英文字母 空格或回车 数字字符和其他字符的个数 作业 21 查询自动售货机中商品的价格 查询自动售货机中商品的价格 假设自动售货机出售4种商品 薯片crisps 爆米花popcorn 巧克力chocolate和可乐cola 售价分别是每份3 0元 2 5元 4 0元和3 5元 在屏幕上显示以下菜单 编号和选项 用户可以连续查询商品的价格 当查询次数超过5次时 自动退出查询 不到5次时 用户可以选择退出 当用户输入编号1 4 显示相应商品的价格 保留一位小数 输入0 退出查询 输入其他编号 显示价格为0 1 Selectcrisps 2 Selectpopcorn 3 Selectchocolate 0 Exit 4 Selectcola 22 switch语句 switch语句可以处理多分支选择问题 根据其中break语句的使用方法 一般可分为3种情况 在switch语句的每个语句段中都使用break语句这是switch语句的主要使用方法 一般形式为 switch 表达式 case常量表达式1 语句段1 break case常量表达式2 语句段2 break case常量表达式n 语句段n break default 语句段n 1 break 23 switch语句 在switch语句的每个语句段中都使用break语句 switch语句中 表达式和常量表达式的值一般是整型或字符型 所有的常量表达式的值都不能相等 每个语句段可以包括一条或多条语句 也可以为空语句 default可以省略 若省略 当表达式的值与任何一个值都不等就什么都不执行 24 switch语句 在switch语句的每个语句段中都使用break语句例求解简单表达式 输入一个形式如 操作数运算符操作数 的四则运算表达式 输出运算结果 见p49ex3 5 25 switch语句 在switch语句中不使用break语句break语句在switch语句中是可选的 不使用break的switch语句是 switch 表达式 case常量表达式1 语句段1case常量表达式2 语句段2case常量表达式n 语句段ndefault 语句段n 1 26 switch语句 在switch语句中不使用break语句 如果表达式的值与某个常量表达式的值相等 则执行该常量表达式后的所有语句段 若与任何一个常量表达式的值都不相等 则执行default后的所有语句段 27 switch语句 在switch语句的每个语句段中都使用break语句在switch语句中不使用break语句比较这两种switch语句的形式和用法 执行相应的语句段后 要终止switch语句的继续执行 可以使用break语句 它一般放在语句段的最后 用于跳出正在执行的switch语句 否则 就继续执行其后的所有语句段 由此可见 在switch语句所有语句段的末尾使用break 可以简单 清晰的实现多分支选择 这也是switch语句的主要使用方法 28 switch语句 在switch语句的某些语句段中使用break语句有时 在switch语句中某些语句段的末尾使用break 可以实现更多的功能 例输入10个字符 分别统计出其中空格或回车 数字字符和其他字符的个数 p50ex3 6 cpp 29 switch语句 练习 查询自动售货机中商品的价格 中 如果把switch语句中所有的break都去掉 运行结果会改变么 如果有变化 输出什么 为什么 修改 求解简单表达式 的程序 使其能处理除数为0的情况 输入五级制成绩 A E 输出相应的百分制成绩 0 100 区间 要求使用switch语句 例如 输入A 输出90 100 五级制成绩对应的百分制成绩区间为A 90 100 B 80 89 C 70 79 D 60 69 E 0 59 30 switch语句 练习 查询水果的单价 有4种水果 苹果apple 梨pear 桔子orange和葡萄grape 每千克单价分别是3 00元 2 50元 4 10元和10 20元 在屏幕上显示以下的菜单 编号和选项 用户可以连续查询水果的单价 当查询次数超过5次时 自动退出查询 不到5次时 用户可以选择退出 当用户输入编号1 4时 显示相应水果的单价 保留2位小数 输入0 则退出查询 输入其他编号 则显示价格为0 作业 1 apple 2 pear 3 orange 4 grape 0 Exit 31 分支结构程序设计 二分支结构的形式主要有两种 二分支结构和基本的if语句 if 表达式 语句1 else语句2 if 表达式 语句1 32 分支结构程序设计 练习 输入一个整数 判断该数是奇数还是偶数 输入一个整数 输出它的绝对值 输入一个正整数n 再输入n个学生的成绩 计算平均分 并统计不及格成绩的个数 作业 二分支结构和基本的if语句 33 分支结构程序设计 如果if else语句的内嵌语句是另一条基本的if语句 一般形式如下 if 表达式1 if 表达式2 语句1 else语句2 elseif 表达式3 语句3 else语句4 多分支结构和嵌套的if语句和switch语句 34 分支结构程序设计 在嵌套的if else语句中 如果内嵌的if省略了else部分 可能在语义上产生歧义 试分析以下语句 第一个else与哪个if匹配 if 表达式1 if 表达式2 语句1 elseif 表达式3 语句2 else语句3 多分支结构和嵌套的if语句和switch语句 else和if的匹配原则 else与最靠近它的 没有与别的else匹配过的if相匹配 虽然第一个else与第一个if书写格式对齐 但它与第二个if对应 因为它们的距离最近 一般情况下 内嵌的if最好不要省略else部分 使if和else数量相同 35 分支结构程序设计 改写下列语句 使else和第一个if配对 if x 2 if x 1 y x 1 elsey x 2 一般采用下列两种方法 多分支结构和嵌套的if语句和switch语句 1 使用大括号 构造一个复合语句 2 增加空的else if x 2 if x 1 y x 1 elsey x 2 if x 2 if x 1 y x 1 else elsey x 2 改写if语句前 y x 1 和y x 2 两条语句的执行条件是什么 改写后呢 36 第二章小结 字符类型 字符型常量 字符型变量字符型数据的输入和输出getchar putchar scanf printf 逻辑运算逻辑与 逻辑或 逻辑非else if语句switch 语句分支结构二分支结构多分支结构 37 练习和作业 输入三角形的3条边a b c 如果能构成一个三角形 输出面积area和周长perimeter 保留2位小数 否则 输出 Thesesidesdonotcorrespondtoavalidtriangle 在一个三角形中 任意两边之和大于第三边 三角形面积计算公式 其中s a b c 2输入一个职工的月薪salary 输出应交的个人所得税tax 保留2位小数 计算公式tax ra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准合同-室外景观工程施工合同
- 高三年级上册9月月考语文试卷汇编:文学类文本阅读
- 餐饮部工作计划表
- 消化内科诊疗规范与临床实践
- 心内科诊疗知识体系
- 老年人日常生活护理
- 医院保洁培训课件
- 护士主班工作流程
- 学校炊事员食品安全培训
- 整流模块培训课件
- 皮肤病的临床取材及送检指南-修订版
- 机型理论-4c172实用类重量平衡
- 校企合作项目立项申请表(模板)
- 管道工厂化预制推广应用课件
- 海水的淡化精品课件
- 河流改道施工方案
- 项目工程移交生产验收报告
- 清华大学美术学院陶瓷艺术设计系研究生导师及研究课题
- 计算机控制实验报告初稿(共31页)
- 抗磷脂抗体与抗磷脂综合征.ppt
- 光伏发电项目工程质量管理方案计划策划书
评论
0/150
提交评论