全国计算机等级考试二级C第四章 选择结构.ppt
《全国计算机等级考试二级C第四章 选择结构.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C第四章 选择结构.ppt(57页珍藏版)》请在三一办公上搜索。
1、全国计算机等级考试二级C,第四章 选择结构,2010年10月-2011年3月,第四章 选择结构,4.1 关系运算和逻辑运算4.2 if语句和if语句构成的选择结构4.3 条件表达式构成的选择结构4.4switch语句以及switch语句和break语句构成的选择结构4.5 语句标号和goto语句,C语言提供了可以进行逻辑判断的若干选择语句,由这此选择语句可构成程序中的选择结构,通常又称为分支结构。,选择结构,4.1.1 C语言的逻辑值 关系表达式和逻辑表达式的运算结果都会得到一个逻辑值。逻辑值只有两个,分别用“真”和“假”来表示。在C语言中,没有专门的“逻辑值”,而是用非0表示“真”,用0表示
2、“假”。,4.1 关系运算和逻辑运算,4.1.2关系运算符和表达式 在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。关系运算符是双目运算符,具有自左至右的结合性。,关系运算符及其优先次序(大于)=(大于或等于)=(等于)!=(不等于),4.1.2.1 C语言的关系运算符,说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符,4.1.2.2.关系表达式及关系表达式的值,关系表达式用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式 关系表达式的一般形式为:表达式
3、关系运算符 表达式例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为“真”,表达式的值为1。,C语言中没有专用的逻辑值,1代表真,0代表假,关系表达式举例:a+bc-dx3/2a+1(bc)a!=(c=d)关系表达式的值是真”和“假”,用“1”和“0”表示。如:50的值为“真”,即为1。(a=3)(b=5)由于35不成立,故其值为假,即为0。,【例】main()char c=k;int i=1,j=2,k=3;float x=3e+5,y=0.85;printf(%d,%dn,a+5=k+1);printf(%d,%dn,1j5,x-5.25=x+y);printf(%d,%d
4、n,i+j+k=-2*j,k=j=i+5);在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k=j=i+5,根据运算符的左结合性,先计算k=j,该式不成立,其值为0,再计算0=i+5,也不成立,故表达式值为0。,4.1.3 逻辑运算符和逻辑表达式,一、逻辑运算符及其优先次序&(逻辑与)相当于其他语言中的AND|(逻辑或)相当于其他语言中的OR!(逻辑非)相当于其他语言中的NOT例:a&b 若a,b为真,则a&b为真。a|b 若a,b之一为真,则a|b为真。!a 若a为真,则!a为假。,优先次序:与运算符&和或运算符|均为双目运算符。
5、具有左结合性。非运算符!为单目运算符,具有右结合性。运算符优先级的关系可表示如下:!(非)&(与)|(或)逻辑运算符中的“&”和“|”低于关系运算符,“!”高于算术运算符。,按照运算符的优先顺序可以得出:ab&cd 等价于(ab)&(cd)!b=c|dc&x+yc)&(x+y)b),逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式逻辑表达式的值应该是一个逻辑量“真”或“假”。,任何非零的数值被认作“真”,例:设a=4,b=5:!a的值为0 a&b的值为1a|b的值为1!a|b的值为14&0|2的值为1,逻辑表达式的一般形式为:表达式 逻辑运算符 表达式其中的表达式可以又是
6、逻辑表达式,从而组成了嵌套的情形。例如:(a&b)&c根据逻辑运算符的左结合性,上式也可写为:a&b&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。,表达式值为0,在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。(1)a&b&c 只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值。(2)a|b|c 只要a为真,就不必判断b和c的值,只有a为假,才 判断b。a和b都为假才判断c,例:(m=ab)&(n=cd)当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“ab”的值为0,因此m=0,而“n=cd”不被执行,因此n的值不是
7、0而仍保持原值1。,答(year%4=0&year%100!=0)|year%400=0案 值为真(1)是闰年,否则为非闰年。,逻辑运算的值也为“真”和“假”两种,用“1”和“0”来表示。其求值规则如下:1.与运算&:参与运算的两个量都为真时,结果才为真,否则为假。例如:50&42 由于50为真,42也为真,相与的结果也为真。2.或运算|:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:50|58由于50为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(50)的结果为假。虽然编译在给出逻辑运算值时,以“1”代表
8、“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&3的值为“真”,即为1。又如:5|0的值为“真”,即为1。,逻辑运算的值,【例】main()char c=k;int i=1,j=2,k=3;float x=3e+5,y=0.85;printf(%d,%dn,!x*!y,!x);printf(%d,%dn,x|i 本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!x的逻辑值为0。对x|i&j-3式,先计算j-3的值为非0,再求i&j-3的逻辑值为1,故x|i&j
9、-3的逻辑值为 1。对ij&xy式,由于ij的值为1,而xy为0故表达式的值为0相与1,最后为0,对i=5&c&(j=8)式,由于i=5为假,即值为0,该表达式由两个与运算组成,所以整个表达式的值为0。对于式x+y|i+j+k由于x+y的值为非0,故整个或表达式的值为1。,4.2 if语句和if语句构成的选择结构,用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。语言的if语句有三种基本形式。,第一种形式为基本形式:(1)if(表达式)语句 其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。例:if(xy)printf(“%d”
10、,x);,If语句的三种基本形式,4.2.1 If语句,【例】main()int a,b,max;printf(n input two numbers:);scanf(%d%d,本例程序中,输入两个数a,b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。,(2)if(表达式)语句1 else 语句2 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。其执行过程可表示为下图。例:if(xy)printf(“%d”,x);else printf(“%d”,y);,第二种形式为基本形式,【例】main()
11、int a,b;printf(input two numbers:);scanf(%d%d,输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。,前二种形式的if语句一般都用于两个分支的情况。当有多个分支选择时,可采用if-else-if语句,其一般形式为:(3)if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m)语句m else 语句n 其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n
12、。然后继续执行后续程序。if-else-if语句的执行过程如上图所示。,第三种形式为基本形式,【例】#includestdio.hmain()char c;printf(input a character:);c=getchar();if(c=0,本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出
13、。例如输入为“g”,输出显示它为小写字符。,例:if(number500)cost=0.15;else if(number300)cost=0.10;else if(number100)cost=0.075;else if(number50)cost=0.05;else cost=0;,在使用if语句中还应注意以下问题:1)在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;都是允许的。只要表达式的值为非0,即为“真”。如在:if(a=5);中表达式的值永
14、远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。又如,有程序段:if(a=b)printf(%d,a);else printf(a=0);本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。,2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。例如:if(ab)a+;b+;else a=0;b=10;,if语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机等级考试二级C第四章 选择结构 全国 计算机等级考试 二级 第四 选择 结构
链接地址:https://www.31ppt.com/p-2875346.html