




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言程序设计 选择程序设计 2 复习 1判断条件的形式 通常是用关系表达式2判断条件的结果 逻辑真1 逻辑假03实际上除了关系表达式之外 任何有计算结果的表达式都可以作为判断条件 计算结果不为零的数均转化为逻辑真 计算结果为0即为逻辑假算术表达式函数调用表达式4甚至是简单的变量或常量都可以 选择结构的两种形式 if condition if condition else 注意大括号的使用 复合语句块用 括起来if 多条语句复合到一起 一条语句的时候省略 问题3 按成绩把学生分成多组 问题描述 教师要把参加某次测验的学生按成绩的分数段 90以上 80到89 70到79 60到69 小于60 分成多组 并统计出各组的人数 分析 输入 学生成绩grade输出 根据成绩的范围 输出不同的结果A B C D 或者F 和统计结果如何判断grade所在的范围 90以上 80到89 70到79 60到69 小于60if grade 90 但是if 89 grade 90 复合判断条件 再分析一下选择结构if 逻辑判断表达式 表达式为真时执行的语句 整个称为单分支选择结构 也可以看成是一个语句问 if 逻辑判断表达式 单分支的嵌套 例如 if grade 60 if grade 60 if grade 70 printf youarepassed n if grade 60 if grade 60 if grade 70 printf youarepassed n 双分支嵌套 if grade 90 printf good ingroupA n elseif grade 80 printf better ingroup n elseprintf ok inCorDorF n 更好的写法 if grade 90 printf good ingroupA n elseif grade 80 printf better ingroup n elseprintf ok inCorDorF n 注意 多个if else嵌套 ifelse的匹配原则是 else与前面最近的没有被使用的if匹配 算法设计 1 1求和变量aNum bNum cNum dNum fNum初始化为0 2输入学生成绩 3如果输入没有结束则执行 4 否则执行 9 4如果成绩大于或等于90 输出分到A组信息 aNum加1 返回到 2 5否则如果成绩还大于或等于80 输出分到B组信息 bNum加1 返回到 2 6否则如果成绩还大于或等于70 输出分到C组信息 cNum加1 返回到 2 7否则如果成绩还大于或等于60 输出分到D组信息 dNum加1 返回到 2 8否则输出分到F组信息 fNum加1 返回到 2 9输出统计结果 算法实现见ifelsenest c includeintmain void intaNum 0 bNum 0 cNum 0 dNum 0 fNum 0 intgrade while scanf d 分析一下该算法的执行情况 你可以运行算法1的代码 看看每个学生成绩要判断几次才能找到它适合的位置 如果成绩都是90以上会怎样 如果成绩都是60 70分甚至更低会怎么样 正常情况下学生的成绩处于中游的比较多 即大多数都在70和80之间 符合客观实际的 更好的结构应该是什么 算法实现见ifelsebetter c 重新分析一下问题 如果把成绩除以10取整 可以发现 100分对应10 90到99分对应9 80到89分对应8 依此类推 0到9分的对应0依据整型常量10 9 8 7 6 5 4 3 2 1 0可断定该同学应该分到哪一组 算法设计 2 1求和变量aNum bNum cNum dNum fNum初始化为0 2输入学生成绩grade 3如果grade大于100或小于0 输出错误信息 返回到 2 4如果输入没有结束则执行 5 否则执行 12 5把成绩除以10并取整 得到对应的整型值number6如果number是10或9 输出A组信息 aNum加1 返回 2 7如果number是8 输出B组信息 bNum加1 返回到 2 8如果number是7 输出C组信息 cNum加1 返回到 2 9如果number是6 输出D组信息 dNum加1 返回到 2 10如果number是5或4或3或2或1或0 输出F组信息 fNum加1 返回到 2 11如果number是其它数字 输出错误信息 返回到 2 12输出统计结果 switchcase多分支选择结构 switch 整型表达式 case常量表达式 要执行的语句 break case常量表达式 要执行的语句 break default 默认的执行语句 几个组成部分 switch 表达式 必须是整型值的表达式switch的主体用一对花括号括起 多个平行的case常量表达式 每个case里的要执行的语句可以是多条语句 它们不必使用 括起来 也可以没有语句在整个swith主体的最后是一个可选的default 动作 Case1 break Case2 Casen default 算法实现 switchcase 见switchint c 5分制成绩统计问题 输入的学生成绩是A a B b 成绩是一个字符怎么输入字符呢 字符是什么 字符可以看成整数 ascii码 如何判断输入的是什么字符 字符型 charcharc1 c2 c3 c1 A c2 b c3 1 也可以用整型变量存放字符常量 如intgrade1 grade2 grade1 A grade2 B 计算机内部接受的是 A B 的ASCII码 字符比较 两个字符常量或者存放字符常量的变量可以比较大小ascii码进行比较 字符型数据的输入 可以使用scanf和printf函数对字符型数据进行输入和输出 占位符是 c ASCII码是10的字符是回车符 这说明我们输入了一个字符 a 后输入的回车符被变量a第二次读到了 这个回车符是没有用的 因此用一个临时变量t把从输入缓冲区中读出 下例的scanf d t 就起这个作用 键盘读一个字符的函数 getchar a getchar 代替scanf c 输出一个字符到屏幕的函数 putchar a 代替printf c a 算法设计 3 1求和变量aNum bNum cNum dNum fNum初始化为0 2输入学生成绩grade 3如果输入没有结束则执行 4 否则执行 10 4如果grade是 A 输出A组信息 aNum加1 返回到 2 5如果grade是 B 输出B组信息 bNum加1 返回到 2 6如果grade是 C 输出C组信息 cNum加1 返回到 2 7如果grade是 D 输出D组信息 dNum加1 返回到 2 8如果grade是 F 输出F组信息 fNum加1 返回到 2 9如果grade是其它字符 输出错误信息 返回到 2 10输出统计结果 算法实现见switch5grade c 从键盘获得一个字符的另外两个函数 includegetche 它能接收键盘输入的任意一个字符 无需回车即可以接受 自动的显示到屏幕上 称之为回显 getch 它同getche 不同的就是无回显 这两个与getchar 比较 getchar 需要按回车键 变量才能在输入缓冲区中读到一个字符 无回显 演示三种字符输入函数观察它们的区别 问题4 判断某年是否为闰年 问题分析 判断某年是不是闰年的条件 某年能被4整除但不能被100整除或者能被4整除又能被400整除 某年是闰年的条件为 1 year能被4整除 并且 year不能被100整除 或者 2 year能被4整除 并且 year也能被400整除 并且关系的两个判断如何表示 intpass 0 intgrade1 grade2 scanf d d 如果grade1 60且grade2 60pass 1用嵌套 或关系的两个判断如何表示 intnopass 0 intgrade1 grade2 scanf d d 如果grade1 60或者grade2 60则nopass 1顺序判断 更好的表示方法 逻辑运算 逻辑运算的操作数是逻辑真或逻辑假逻辑与运算逻辑非运算 0 1 1 0 逻辑表达式 grade1 60 上式等价于grade1 90 逻辑非是单目运算 它的优先级高于关系运算 因此不可以省略 优先级与结合性 算术运算 关系运算 逻辑与运算 逻辑或运算 它们依次降低 但逻辑非运算的优先级高于算术运算逻辑运算是左结合的 逻辑运算的短路性 逻辑运算的操作数是0和1 0和1的运算是有规律的由 逻辑与 运算组成的表达式 从左至右计算 遇到0就不用再向右计算了 因这时逻辑表达式的值必为假 只有都是真的时候向右计算才有意义 i 0 j i 0 由 逻辑或 构成的逻辑表达式也是从左向右计算 如果遇到有一个操作数的表达式的值是1就不用再向右计算了 因这时整个逻辑表达式的值必为真 grade1 60 grade2 60 利用短路性 某年是闰年的条件为 1 year能被4整除 并且 year不能被100整除 或者 2 yea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030化妆品成分创新与消费者偏好调查
- 2025-2030化妆品原料价格波动对供应链成本影响的深度分析报告
- 2025-2030功能性饮料市场规模评估与消费者偏好调查分析
- 2025-2030制造装备等领域行业工艺改进调研及资源配置规划
- 2025-2030制造业智能化行业市场竞争深度解析及未来方向与增长潜力预测
- 2025-2030减盐型辣椒酱健康化趋势与配方改良技术攻关报告
- 2025-2030冷链装备不锈钢焊接机器人特殊工艺攻关报告
- 2025-2030冷链物流温控技术突破与生鲜电商协同发展策略研究
- 2025-2030冷链物流温控技术升级与农产品流通损耗率改善关联性报告
- 2025-2030冷链物流技术升级与生鲜电商协同发展分析报告
- 2025广西北海市检察机关聘用人员控制数招聘26人考试模拟试题及答案解析
- 小学生心理团辅方案与记录模板
- 2025年淮南市大通区和寿县经开区公开招聘社区“两委”后备干部30名备考考试题库附答案解析
- 国防科大优势课件
- 高速磁浮大跨度桥梁设计关键技术介绍
- 红蓝简明万人计划青年拔尖人才答辩PPT模板
- DB23T 2550-2020 政务服务大厅建设和管理规范
- 生态系统服务功能与生态保护
- 基于PLC的物料分拣系统设计论文
- 《教育统计与测量》笔记(一).
- 统编版六年级语文上册第10课《竹节人》优质课件
评论
0/150
提交评论