




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第3章 分支结构程序设计,本章教学内容,关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句 switch语句 条件运算符 *通讯录实例的部分实现,教学目标、重点和难点,教学目标 掌握关系表达式和逻辑表达式 掌握用if语句和switch实现分支结构的应用问题 熟悉用流程图描述分支结构 了解条件运算符 初步形成良好的程序编写风格 教学重点 用if语句和switch语句处理分支结构的方法(常用算法的实现) 教学难点 逻辑值的概念;嵌套的if语句;switch语句,所谓“关系运算”实际上是“比较运算”。将两个值进行比较,判断比较的结果是否符合给定条件,C语言提供6种关系运算符: (大于) = (大于或等于) = = (等于) ! = (不等于),优先级相同(高),关系运算符及其优先次序,优先级相同(低),算术运算符,关系运算符,赋值运算符,高,低,例如:,ca+b 等于 c(a+b),ab!=c 等于 (ab)!=c,a= =bc 等于a= =(bc),a=bc 等于a=(bc),关系表达式,1、关系运算符和关系表达式,用关系运算符将两个表达式连接起来的式子,称关系表达式;如35,9=6+3等 关系表达式的计算结果为1或0(真或假) 关系成立为“真”,不成立为“假” 在C语言中,“0”表示“假”,“非0”表示“真”,x=3; a=x 0; b=x5; printf(“%d”, a=b );,真,a的值1,真,b的值1,输出1,假设a、b、x为整型变量,y为单精度型变量,请分析输出结果。,2、逻辑运算符和逻辑表达式,逻辑运算符及其优先次序,C语言提供三种逻辑运算符: & 逻辑与(相当于其它语言中的AND) | 逻辑或(相当于其它语言中的OR) ! 逻辑非(相当于其它语言中的NOT),“&”和“|”是“双目(元)运算符”, 它要求有两个运算量(操作数), 如:(ab)&(xy),(ab)|(xy),“!”是“一目(元)运算符”,只要求有一个运算量。 如:!(ab),算术运算符,关系运算符,赋值运算符,高,低,! (非),& 和 |,(ab)&(xy) 可写成:,ab & xy,a= =b | x= =y,!a | ab,(a= =b)|(x= =y) 可写成,(!a)|(ab) 可写成,逻辑表达式,C语言编译系统在给出逻辑运算结果是,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非0的数值认为是“真”。,53&2|84 -!0,=1,=1,=1,=3,=0,=1,3、 if语句,分支结构就是需要根据不同条件进行判断,然后执行不同的操作 简单if语句的一般形式为:,if () ,如果条件为真,执行if子句(一个语句或一组语句,如果是一组语句,要用一对花括号括起来); 如果条件为假,则执行 if 语句后面的语句(如果有)。,单分支if举例:,# include void main() int num1, num2, sum; printf(“n请输入两个数:“); scanf(“%d %d“, ,内存,56,78,134,请输入两个数:56 78,两数的和大于 100,【例3】输入3个整数,输出其中最大数。,#include main( ) int a=0,b=0,c=0,max=0; printf(“Input a,b,c:“); scanf(“%d%d%d“, ,输入 3 5 7,输出 3,5,7,max=7,在4个数中找最大数如何解决? 在100个或更多的数中用同样的 方法找最大数方便吗?,例:,输入3个不同的整数存放在 a、b、c中。从小到大排序。,#include main( ) int a=0,b=0,c=0,temp=0; scanf(“%d%d%d“, ,printf(“Before: %d,%d,%dn“,a,b,c);,建议加,复合语句,temp=a; a=b; b=temp;,if-else 语句的一般形式为:,if () else ,如果条件为真,执行 if 后面的if子句; 如果条件为假,则执行 else 后面的else子句。,if-else语句示例,#include void main() int num; printf(“n请输入一个整数:“); scanf (“%d“, ,内存,57,请输入一个整数:57,57 是一个奇数。,If-else if-else,要处理多重条件判断的情况,需要使用多重分支结构,多重分支结构,嵌套 if,switch结构,if else if结构,假,表达式1,表达式2,语句1,语句2,语句n-1,语句n,真,表达式n-1,假,真,假,假,真,if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; . . else 语句n;,多重 if 结构是if-else 的另一种形式 ,这种形式也称为阶梯式 if-else-if,if else if结构,真,假,真,假,真,假,多重 if 结构示例,问题描述: 编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”;成绩小于60分输出“差”。,#include void main() float grade; printf(“n 请输入期末考试成绩: “); scanf(“%f“, ,59,请输入期末考试成绩:59,差,嵌套 if 结构就是将整个 if 块插入另一个 if 块中,嵌套 if 结构 (了解),if (表达式1) if (表达式2) if (表达式3) 语句; else 语句;,真,真,真,假,if (x 0) if (y 1) z = 1; else /*这个 else 部分属于哪个 if?*/ z = 2;,嵌套 if 结构,C语言规定,每个 else 部分总属于前面最近的那个缺少对应的 else 部分的 if 语句。 提倡使用大括号括起来以避免看起来有二义性。,?,#include void main() int a,b; printf(“n 请输入 A 和 B 的值: “); scanf(“%d%d“, ,嵌套 if 结构的示例,68,93,输出: AB,4、 switch 语句,printf(“这是迈克尔,身高 180cm,加利福尼亚第 12 大街”);,printf(“这是丹尼尔,身高 193cm,现居住地不明,1998 年 12 月 12 日在佛罗里达被捕”);,printf(“这是吉姆,身高 175cm, 墨西哥州海鸥路弗罗拉公寓,于 2003 年 11 月 1 日在新泽西因抢银行被捕”);,default:,printf(“未发现匹配项。对不起!”);,停止搜索,停止搜索,停止搜索,停止搜索,警察记录,不是,这是吉姆,身高 175cm, 墨西哥州海鸥路弗罗拉公寓, 于 2003 年 11 月 1 日在新泽西因抢银行被捕,不是,是,switch语句一般形式,switch (表达式) case 常量表达式1: 语句1;break; case 常量表达式2: 语句2 ;break; . . . case 常量表达式n: 语句n ;break; default: 语句n+1 ,每个常量表达式的值必须各不相同,switch-case 语句是多路判断语句 switch 语句计算条件表达式并对照多个常数值进行检查,switch语句的执行过程,switch (表达式) case 常量 1: 语句; break; case 常量 2: 语句; break; . . . default: 语句; ,计算表达式的值,如果等于常量1,如果等于常量2,如果没有找到匹配的值,在使用switch结构时应注意以下几点:,在case后的各常量表达式的值不能相同,否则会出现错误; 在case后,允许有多个语句,可以不用括起来; 每个case语句后都必须有一个break语句,否则会出现错误; 各case和default子句的先后顺序可以变动,而不会影响程序执行结果; default子句可以省略; 多个case可以共用一个可执行语句,如: switch (grade) case A : case B : case C : printf(“60n”); break; case D : printf(“60n”);break; ,例如,根据输入的考试成绩的等级打印出百分制分数段,switch (grade) case A: printf(“85-100n“); case B: printf(“70-84n“); case C: printf(“60-69n“); case D: printf(“60n“); default : printf(“errorn“); ,break;,break;,break;,break;,switch 结构示例,问题描述: 要求用户输入一个字符值并检查它是否为元音字母。,char in_char; printf(“n 请输入一个小写字母: “); scanf(“%c“, ,e,请输入一个小写字母:e,您输入的是元音字母 e,switch 结构示例,问题描述: 要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII码值小于32的为控制字符。 在09之间的为数字,在AZ之间为大写字母, 在az之间为小写字母,其余则为其它字符。,void main() char c; printf(“n 请输入一个字符: “); c=getchar(); if(c=0 ,E,请输入一个字符:E,该字符是一个大写字母,switch 结构示例,问题描述: 编写一个简单的计算器,实现两个整型数的四则运算。,int a,b; char op; printf(“n 输入操作数1,运算符,操作数2: “); scanf(“%d,%c,%d“, ,输入操作数1,运算符,操作数2:45,*,2,452 = 90,45,2,*,5、条件运算符,?,?,条件表达式,考试是 否及格?,是,不是,真,表达式 1,假,表达式 2,三目运算符:?表达式1:表达式2 例如:max=(ab)?a:b; if(ab) max=a; else max=b;,【例3.13】输入一个百分制成绩,输出成绩等级A、B、C、D、E。,90100 A 8089 B 7079 C 6069 D 059 E 否则显示出错信息,scanf( “%d“, ,89, B,89,85, B,85,100, A,100,可以空,分数段转换成整数,思考: 如果改为:输入的数据在85100分为A,7084分为B,5569分为C,4054分为D,039分为E,否则显示出错信息,如何改写程序?,通讯录实例(操作演示),实例2:选择通讯录主菜单选项的功能 shili_2.c,小结,分支结构解决了程序中需要根据不同情况进行判断的情况 关系运算符运用测试两个操作数之间的关系;关系表达式的值始只能够是非0(逻辑真)或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 莆田市高三数学试卷
- 送配电施工方案(3篇)
- 俱乐部社团活动策划方案(3篇)
- 襄樊阳台加固施工方案(3篇)
- 抗震轻钢别墅施工方案(3篇)
- 北京市门头沟区2023-2024学年八年级下学期期末考试物理考点及答案
- 安徽省宿州市埇桥区2024-2025学年高二上学期第一次月考英语试题含参考答案
- 忻州科目一扣分题目及答案
- 英语动词时态的运用与辨析教学教案:小学英语教学中重点难点解析
- 交通卡支付系统技术开发合作合同
- 医院6S管理标准
- 市政项目EPC总承包项目方案投标文件(技术方案)
- JG/T 162-2009住宅远传抄表系统
- 人工智能与无人机课件
- 城市道路智慧路灯项目投标方案(技术标)
- 5步打造孩子内驱力
- 物业管理项目可行性分析报告(模板参考范文)
- 人工智能辅助的舆论危机传播分析-洞察阐释
- 2025-2030年中国透皮贴剂行业市场现状供需分析及投资评估规划分析研究报告
- 广西安全员考试试题试题及答案
- 认知铁路中间站和区段站铁道概论37课件
评论
0/150
提交评论