选择结构程序设计 (2)精.ppt

上传人:石*** 文档编号:52421083 上传时间:2022-10-23 格式:PPT 页数:41 大小:1.96MB
返回 下载 相关 举报
选择结构程序设计 (2)精.ppt_第1页
第1页 / 共41页
选择结构程序设计 (2)精.ppt_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《选择结构程序设计 (2)精.ppt》由会员分享,可在线阅读,更多相关《选择结构程序设计 (2)精.ppt(41页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、选择结构程序设计第1页,本讲稿共41页4.1关系表达式和逻辑表达式 一、关系运算和关系表达式 关系运算即是比较运算,用于判断结果是否符合条件。1关系运算符 =!=高 低前四种优先级相同,后两种相同,前比后高。第2页,本讲稿共41页 关系运算符的优先级低于算术运算符;关系运算符的优先级高于赋值运算符。2关系表达式 用关系运算符将两个表达式(算术表达式、关系表达式、逻辑表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称为关系表达式。关系表达式的运算结果是逻辑值。第3页,本讲稿共41页 在C语言中,给出运算结果时,用1表示逻辑真,用0表示假;在判断一个量是否为真时,用0表示假,用非0表示

2、真。第4页,本讲稿共41页includevoid main()int a,b,c;a=b=c=10;a=b=c;printf(a=%d,b=%d,c=%dn,a,b,c);printf(a=():%dn,a=(b=c+*2);printf(a=%d,b=%d,c=%dn,a,b,c);a=b+=+bc+;printf(a=%d,b=%d,c=%dn,a,b,c);第5页,本讲稿共41页结果:a=1,b=10,c=10a=():0a=1,b=20,c=11a=0,b=22,c=12 第6页,本讲稿共41页 二、逻辑运算符和逻辑表达式1.逻辑运算符 C语言提供了三个逻辑运算符,按由高到低的优先级次

3、序,它们是:!:逻辑非&:逻辑与 :逻辑或 其中,!为单目运算符,&、为双目运算符。第7页,本讲稿共41页运算规则:1)&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。2)|:当且仅当两个运算量的值都为“假”时,运算结果为“假”,否则为“真”。3)!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。例:若x=5,求:(1)(x=0)&(x10)(2)(x5)第8页,本讲稿共41页2.逻辑运算符的运算优先级(1)逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非)&(与)|(或)(2)与其它种类运算符的优先关系 !算术运算 关系运算

4、&|赋值运算3.逻辑表达式 用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。第9页,本讲稿共41页 结果为0或1。运算对象可以是0或1,或者是0和非0的整数,也可以是任何类型的数据,可以是字符型、实型或指针型等。第10页,本讲稿共41页注意:在计算逻辑表达式时,只有在必须执 行下一个表达式才能求解时,才求解 该表达式(即并不是所有的表达式都 被求解)。(1)对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二操作数。(2)对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。第11页,本讲稿共41页4.2if语句 一、if语句的格式1格式1

5、 if(表达式)语句 例:if(xy)x=x+y;2格式2 if(表达式)语句1 else 语句2 例:if(xy)x=x+y;else x=x-y;第12页,本讲稿共41页第13页,本讲稿共41页二、语句说明1表达式为关系式或逻辑式,若表达式为 0,为假,若值为非0,则为真。2Else前必须有“;”,整个语句结束必须有 “;”,“;”是C中语句的一部分。else必须 和if一同用,不能单独使用。例:输入三角形的三边,求三角形的面积。第14页,本讲稿共41页第15页,本讲稿共41页includeincludevoid main()float a,b,c,area,s;printf(Input

6、3 edges:n);scanf(%f%f%f,&a,&b,&c);if(a+bc&b+ca&a+cb)第16页,本讲稿共41页 s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(The area=%.2f,area);else printf(Input errror!n);第17页,本讲稿共41页三、if语句的嵌套 在if语句中又包含if语句,称为if语句的嵌套,可以嵌套在if子句中,也可以嵌套在else子句中。1嵌套格式(1)if(表达式1)if(表达式2)语句1 else 语句2 else 语句3第18页,本讲稿共41页(2)if(表达式1

7、)if(表达式2)语句1 else 语句2(3)if(表达式1)if(表达式2)语句1 else 语句2第19页,本讲稿共41页(4)if(表达式1)语句1 else if(表达式2)语句2 else 语句3(5)if(表达式1)语句1 else if(表达式2)语句2 第20页,本讲稿共41页2.说明(1)if和else应配对出现,每一个else和离它最 近且尚未匹配的if相匹配。(2)最好在条件为真时执行一个操作,而在条 件为假时再去测试下一个条件。不要在某 条件成功后再接着去测试下一个条件。第21页,本讲稿共41页ifififelse else else 第22页,本讲稿共41页(3)在

8、嵌套的多个条件中,应尽量把求值为真 概率最大的条件放在前面优先判断,这样 可以提高if语句的效率。3.if语句中条件表达式的灵活设置(1)用一个数值表示条件 如:int m;scanf(%d,&m);if(!m)printf(Yes);第23页,本讲稿共41页(2)将赋值运算和条件判断结合起来 如:char ch;if(ch=getchar()!=n)putchar(ch);(3)用复合的逻辑表达式表示条件 如:if(score70&score80)printf(B);第24页,本讲稿共41页例:编写程序,根据输入的学生成绩,给出 相应的等级。90分以上为A,60分以下的 等级为E,其余每10

9、分为一个等级。第25页,本讲稿共41页#include void main()int g;printf(“Enter g:”);scanf(%d”,&g);printf(“g=%d:”,g);if (g=90)printf(“An”);else if(g=80)第26页,本讲稿共41页 printf(“Bn”);else if(g=70)printf(“Cn”);else if(g=60)printf(“Dn”);else printf(“En”);第27页,本讲稿共41页四、条件运算符 若if语句中,在表达式为真和假时,且都只执行一个赋值语句给同一个变量赋值时,可以用简单的条件运算符来处理。

10、1格式 表达式1?表达式2:表达式3 执行过程:先计算表达式1,若为真则求表达式2,其值即为整个条件表达式的值;若为假,则求表达式3,其值为整个表达式的值。第28页,本讲稿共41页如:if(ab)max=a;else max=b;可改为:max=(ab)?a:b;2说明(1)条件运算符是唯一的一个三目运算符;(2)条件运算符优于赋值运算符,但低于关系 运算符和算术运算符;如:y=x10?100:200(3)条件运算符的结合性为右结合性;第29页,本讲稿共41页如:int w=4,x=3,y=2,z=1;printf(“%dn”,(wx?w:zy?z:x);(4)条件表达式中的“表达式1”是关系

11、或逻辑表 达式,“表达式2”和“表达式3”可以是数值表 达式,赋值表达式或函数表达式。3.举例:猜数游戏。程序预置一个常数(称为幻数),让用户猜,猜对时给出正确信息,否则会给出是大了还是小了的提示。第30页,本讲稿共41页includevoid main()int magic=618,guess;printf(Input your guess:n);scanf(%d,&guess);if(guess!=magic)guessmagic?printf(High):printf(Low);else printf(*Right*n);printf(%d is the magic number.n,m

12、agic);第31页,本讲稿共41页4.3switch语句 一、语句格式和功能1格式 switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1第32页,本讲稿共41页2说明(1)switch表达式可以是整型、字符型和枚举 型;(2)当表达式的值与某一常量表达式的值相等 时,就从该case后的语句开始往下执行,一直到switch语句结束;若没有找到相等 的常量,则执行default后的语句;(3)常量表达式的值必须不同;(4)多个case和default出现的次序不影响程序 执行结果。第33页,本讲稿共41页

13、 例:用switch语句改写前例。includevoid main()int g;printf(“Enter a mark:”);scanf(“%d”,&g);printf(“g=%d:”,g);switch(g/10)第34页,本讲稿共41页 case 10:case 9:printf(An);case 8:printf(Bn);case 7:printf(Cn);case 6:printf(Dn);default:printf(En);第35页,本讲稿共41页二、break的作用 若要在执行一个case语句后,跳出switch,则需在相应case后面加break语句。利用break语句改写

14、上例:includevoid main()int g;printf(“Enter a mark:”);scanf(“%d”,&g);printf(“g=%d:”,g);第36页,本讲稿共41页 switch(g/10)case 10:case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(En);第37页,本讲稿共41页练习:1.为表示关系xy z,应使用的C表达式是:A.(x=y)&(y=z)B.(x=y)AND(y=x)C.(x=y=z)D.(x=y)&(y=z)2.写出输出结果:main()int a=2,b=-1,c=2;if(ab)if(bc)b=a;a=c;c=b;第40页,本讲稿共41页编程:1.编写程序,输入一位学生的生日(年,月,日),并输入当前的日期,输出该生的实足年龄。2.编写程序,输入一个整数,打印出它是奇数还是偶数。3.编写程序,输入a,b,c三个数,打印出最大者。第41页,本讲稿共41页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com