第三版C语言PPT课件讲解第05章+选择结构程序设计.ppt
《第三版C语言PPT课件讲解第05章+选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第三版C语言PPT课件讲解第05章+选择结构程序设计.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三版第三版C语言语言PPT课件课件讲解第讲解第05章章+选择结构选择结构程序设计程序设计5.1 5.1 关系运算符和关系表达式关系运算符和关系表达式关系运算符和关系表达式关系运算符和关系表达式 关系运算关系运算关系运算关系运算实质是实质是实质是实质是比较运算比较运算比较运算比较运算,它是将两个值进行比较,它是将两个值进行比较,它是将两个值进行比较,它是将两个值进行比较,判断其比较的结果是否符合给定的条件,其结果为判断其比较的结果是否符合给定的条件,其结果为判断其比较的结果是否符合给定的条件,其结果为判断其比较的结果是否符合给定的条件,其结果为真真真真(1 1)或者为)或者为)或者为)或者为假
2、假假假(0 0)。)。)。)。5.1.15.1.1关系运算符及其优先次序关系运算符及其优先次序关系运算符及其优先次序关系运算符及其优先次序C C语言提供了语言提供了语言提供了语言提供了6 6种关系运算符:种关系运算符:种关系运算符:种关系运算符:小于小于小于小于 =大于大于大于大于 =大于或等于大于或等于大于或等于大于或等于 =等于等于等于等于 !=!=不等于不等于不等于不等于 优先级相同(高)优先级相同(高)优先级相同(高)优先级相同(高)优先级相同(低)优先级相同(低)优先级相同(低)优先级相同(低)说明:说明:1)关系运算符的优先级低于算术运算符;)关系运算符的优先级低于算术运算符;2)
3、关系运算符的优先级高于赋值运算符)关系运算符的优先级高于赋值运算符5.1.2 5.1.2 关系表达式关系表达式关系表达式关系表达式 用关系运算符将两个表达式(可以是算术表达式或用关系运算符将两个表达式(可以是算术表达式或用关系运算符将两个表达式(可以是算术表达式或用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式、赋值表达式、字符表达式)关系表达式,逻辑表达式、赋值表达式、字符表达式)关系表达式,逻辑表达式、赋值表达式、字符表达式)关系表达式,逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称为连接起来的式子,称为连接起来的式子,称为连接起来的式子,称为关系表达式关系表达式
4、关系表达式关系表达式。下面为一些合法的。下面为一些合法的。下面为一些合法的。下面为一些合法的关系表达式:关系表达式:关系表达式:关系表达式:a+bb+ca+bb+c(a=3)(b=5)(a=3)(b=5)ab ab 关系表达式的结果只有两种:关系表达式的结果只有两种:关系表达式的结果只有两种:关系表达式的结果只有两种:真或假真或假真或假真或假;在;在;在;在C C语言中,语言中,语言中,语言中,以数值以数值以数值以数值1 1代表代表代表代表“真真真真”,数值,数值,数值,数值0 0代表代表代表代表“假假假假”。例:假设例:假设例:假设例:假设a=3,b=2,c=1a=3,b=2,c=1,则:,
5、则:,则:,则:(ab)=c(ab)=cd=abd=abf=abcf=abc结果为:表达式的值为结果为:表达式的值为结果为:表达式的值为结果为:表达式的值为1(1(真真真真);结果为:结果为:结果为:结果为:d d 的值为的值为的值为的值为1,1,表达式的值为表达式的值为表达式的值为表达式的值为1 1;结果为:结果为:结果为:结果为:f f 的值为的值为的值为的值为0,0,表达式的值为表达式的值为表达式的值为表达式的值为0 0;5.2 5.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式5.2.1 5.2.1 逻辑运算符及其优先次序逻辑运算符及其优先
6、次序逻辑运算符及其优先次序逻辑运算符及其优先次序C C语言提供三种逻辑运算符:语言提供三种逻辑运算符:语言提供三种逻辑运算符:语言提供三种逻辑运算符:(1)&逻辑与(与运算符)逻辑与(与运算符)(2)|逻辑或(或运算符)逻辑或(或运算符)(3)!逻辑非(非运算符)逻辑非(非运算符)说明:说明:1)“&”和和“|”为双目运算符,为双目运算符,“!”为单目运算符;为单目运算符;2)逻辑运算的结果只有两种:)逻辑运算的结果只有两种:真真或或假假。逻辑运。逻辑运 算的真值表详细情况见书算的真值表详细情况见书P93表表5.1。几种运算符的优先次序为:几种运算符的优先次序为:!(非非)(高)(高)算术运算
7、符算术运算符关系运算符关系运算符&和和|赋值运算符赋值运算符 (低(低)例:例:!a&b|xy&c5.2.2 5.2.2 逻辑表达式逻辑表达式逻辑表达式逻辑表达式 给出逻辑运算结果给出逻辑运算结果给出逻辑运算结果给出逻辑运算结果:数值数值数值数值1 1代表代表代表代表“真真真真”,数值数值数值数值0 0代表代表代表代表“假假假假”判断一个量是否为判断一个量是否为判断一个量是否为判断一个量是否为“真真真真”:0 0代表代表代表代表“假假假假”,非非非非0 0代表代表代表代表“真真真真”例:例:例:例:1 1)若)若)若)若a=4a=4,则,则,则,则!a=0!a=0;2 2)若)若)若)若a=4
8、a=4,b=5 b=5 则则则则 a&b=1 a&b=1;a|b=1a|b=1;!a|b=1!a|b=1;3 3)53&2|83&2|8b)&(n=cd)(m=ab)&(n=cd),如果,如果,如果,如果“ab”“ab”的值的值的值的值为为为为0 0,则,则,则,则n n将不进行赋值运算而保留原值将不进行赋值运算而保留原值将不进行赋值运算而保留原值将不进行赋值运算而保留原值(Why?Why?);一个重要的例子:一个重要的例子:一个重要的例子:一个重要的例子:判断某一年是否为闰年的方法。而为闰年的条件是判断某一年是否为闰年的方法。而为闰年的条件是判断某一年是否为闰年的方法。而为闰年的条件是判断某
9、一年是否为闰年的方法。而为闰年的条件是符合下面两者之一:符合下面两者之一:符合下面两者之一:符合下面两者之一:(1 1)能被)能被)能被)能被4 4整除,但不能被整除,但不能被整除,但不能被整除,但不能被100100整除;整除;整除;整除;(2 2)能被)能被)能被)能被4 4整除,又能被整除,又能被整除,又能被整除,又能被400400整除;整除;整除;整除;写出逻辑表达式:写出逻辑表达式:写出逻辑表达式:写出逻辑表达式:首先分析逻辑结构:首先分析逻辑结构:首先分析逻辑结构:首先分析逻辑结构:1 1、条件(、条件(、条件(、条件(1 1)和条件()和条件()和条件()和条件(2 2)的关系应该
10、是)的关系应该是)的关系应该是)的关系应该是“或或或或”;2 2、而每个条件内部应该为、而每个条件内部应该为、而每个条件内部应该为、而每个条件内部应该为“与与与与”关系;关系;关系;关系;3 3、条件(、条件(、条件(、条件(2 2)内,满足被)内,满足被)内,满足被)内,满足被400400整除的一定满足被整除的一定满足被整除的一定满足被整除的一定满足被4 4整整整整除,因此只需一个逻辑表达式即可;除,因此只需一个逻辑表达式即可;除,因此只需一个逻辑表达式即可;除,因此只需一个逻辑表达式即可;所以最后的逻辑表达式为:所以最后的逻辑表达式为:所以最后的逻辑表达式为:所以最后的逻辑表达式为:(ye
11、ar%4=0)&(year%100!=0)|(year%400=0)(year%4=0)&(year%100!=0)|(year%400=0)根据运算符的优先级关系,上式可简化为:根据运算符的优先级关系,上式可简化为:根据运算符的优先级关系,上式可简化为:根据运算符的优先级关系,上式可简化为:year%4=0&year%100!=0|year%400=0year%4=0&year%100!=0|year%400=05.3 if 语句语句5.3.1 if 5.3.1 if 语句的三种形式:语句的三种形式:语句的三种形式:语句的三种形式:1.1.if(if(表达式表达式表达式表达式)语句;语句;语
12、句;语句;执行过程,如左图:执行过程,如左图:执行过程,如左图:执行过程,如左图:if(xy)printf(“%d”,x);if(xy)printf(“%d”,x);表达式语句假(0)真(非0)XYprintf(“%d”,x);printf(“%d”,x);假(0)真(非0)2.2.if(if(表达式表达式表达式表达式)语句语句语句语句1 1;else else 语句语句语句语句2 2;例如:例如:例如:例如:if(xy)printf(“%d”,x);if(xy)printf(“%d”,x);else printf(“%d”,y);else printf(“%d”,y);表达式语句1假(0)真
13、(非0)语句2xyxyprintf(“%d”,x)printf(“%d”,x)假(0)真(非0)printf(“%d”,y)printf(“%d”,y)3.3.if(if(表达式表达式表达式表达式1)1)语句语句语句语句1 1;else if(else if(表达式表达式表达式表达式2)2)语句语句语句语句2 2;else if(else if(表达式表达式表达式表达式3)3)语句语句语句语句3 3;else if(else if(表达式表达式表达式表达式m)m)语句语句语句语句mm;else else 语句语句语句语句n n;表达式1语句1假真表达式2语句2真假表达式3语句3语句4真假表达式
14、4语句5假真例:例:例:例:if (number500)cost=0.15;if (number500)cost=0.15;else if(number300)cost=0.10;else if(number300)cost=0.10;else if(number100)cost=0.075;else if(number100)cost=0.075;else if(number50)cost=0.05;else if(number50)cost=0.05;else cost=0;else cost=0;number500number500cost=0.15cost=0.15假真cost=0.1
15、0cost=0.10真假cost=0.075cost=0.075cost=0.05cost=0.05真假cost=0cost=0假真number300number300number100number100number50number50说明:说明:说明:说明:1 1)if if 语句中在语句中在语句中在语句中在if if后面都有表达式,一般为后面都有表达式,一般为后面都有表达式,一般为后面都有表达式,一般为逻辑表达式逻辑表达式逻辑表达式逻辑表达式或或或或关系表达式关系表达式关系表达式关系表达式,也可以为,也可以为,也可以为,也可以为其它表达式其它表达式其它表达式其它表达式;如果表达式的值为;如
16、果表达式的值为;如果表达式的值为;如果表达式的值为0,0,则按则按则按则按“假假假假”处理,如果为非处理,如果为非处理,如果为非处理,如果为非0 0,则按,则按,则按,则按“真真真真”处理;处理;处理;处理;例如:例如:例如:例如:if(3)printf(“O.K.”);if(3)printf(“O.K.”);直接执行打印直接执行打印直接执行打印直接执行打印“O.K.”“O.K.”if(a)printf(“%d”,a);if(a)printf(“%d”,a);打印打印打印打印aa的的的的ASCIIASCII码码码码97972 2)注意在注意在注意在注意在if if 语句每个语句后都有分号;语句
17、每个语句后都有分号;语句每个语句后都有分号;语句每个语句后都有分号;if (number500)cost=0.15if (number500)cost=0.15;else if(number300)cost=0.10else if(number300)cost=0.10;else if(number100)cost=0.075else if(number100)cost=0.075;else if(number50)cost=0.05else if(number50)cost=0.05;else cost=0;else cost=0;3)3)在在在在if if和和和和elseelse后面可以只
18、含一个内嵌的操作语句,后面可以只含一个内嵌的操作语句,后面可以只含一个内嵌的操作语句,后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时须用花括号也可以有多个操作语句,此时须用花括号也可以有多个操作语句,此时须用花括号也可以有多个操作语句,此时须用花括号“”将将将将几个语句括起来成为一个几个语句括起来成为一个几个语句括起来成为一个几个语句括起来成为一个复合语句复合语句复合语句复合语句。例:例:例:例:if (a b)if (a b)m=a;m=a;printf(“The MAX number is%d”,m);printf(“The MAX number is%d”,m);else e
19、lse m=b;m=b;printf(“The MAX number is%d”,printf(“The MAX number is%d”,m);m);例例例例5.15.1:输入两个实数,按代数值由小到大的次序输出这输入两个实数,按代数值由小到大的次序输出这输入两个实数,按代数值由小到大的次序输出这输入两个实数,按代数值由小到大的次序输出这 两个数;两个数;两个数;两个数;分析:分析:分析:分析:这是一个简单而重要的程序,算法的关键在与设这是一个简单而重要的程序,算法的关键在与设这是一个简单而重要的程序,算法的关键在与设这是一个简单而重要的程序,算法的关键在与设 置一个中间交换变量,用于比较两
20、个实数的大小置一个中间交换变量,用于比较两个实数的大小置一个中间交换变量,用于比较两个实数的大小置一个中间交换变量,用于比较两个实数的大小 后进行次序的变换;后进行次序的变换;后进行次序的变换;后进行次序的变换;程序:程序:程序:程序:main()main()float a,b,t;float a,b,t;scanf(“%f,%f”,&a,&b);scanf(“%f,%f”,&a,&b);if(a b)if(a b)t=a;a=b;b=t;t=a;a=b;b=t;printf(“%5.2f,%5.2f”,a,b);printf(“%5.2f,%5.2f”,a,b);例例例例5.25.2 输入输
21、入输入输入3 3个数个数个数个数a a、b b、c c,要求按由小到大的顺序输出;,要求按由小到大的顺序输出;,要求按由小到大的顺序输出;,要求按由小到大的顺序输出;分析分析分析分析:此题算法比上题稍微复杂一些。上题为两个变量此题算法比上题稍微复杂一些。上题为两个变量此题算法比上题稍微复杂一些。上题为两个变量此题算法比上题稍微复杂一些。上题为两个变量 比较大小,只需进行一次比较,而本题为三个变比较大小,只需进行一次比较,而本题为三个变比较大小,只需进行一次比较,而本题为三个变比较大小,只需进行一次比较,而本题为三个变 量,则需进行三次比较。量,则需进行三次比较。量,则需进行三次比较。量,则需进
22、行三次比较。其伪代码算法为:其伪代码算法为:其伪代码算法为:其伪代码算法为:if ab if ab 将将将将a a和和和和b b对换对换对换对换 (对换之后,(对换之后,(对换之后,(对换之后,a a比比比比b b小)小)小)小)if ac if ac 将将将将a a和和和和c c对换对换对换对换 (对换之后,(对换之后,(对换之后,(对换之后,a a比比比比c c小,小,小,小,a a为最小)为最小)为最小)为最小)if bc if bc 将将将将b b和和和和c c对换对换对换对换 (对换之后,(对换之后,(对换之后,(对换之后,b b比比比比c c小,小,小,小,b b为次小)为次小)为
23、次小)为次小)经过三次比较和变换后:经过三次比较和变换后:经过三次比较和变换后:经过三次比较和变换后:a a为最小值,为最小值,为最小值,为最小值,b b为次小值,为次小值,为次小值,为次小值,c c为最大值。为最大值。为最大值。为最大值。程序可写为程序可写为程序可写为程序可写为:#include#include Void main()Void main()float a,b,c,t;float a,b,c,t;scanf(“%f,%f,%f”,&a,&b,&c);scanf(“%f,%f,%f”,&a,&b,&c);if(a b)if(a b)t=a;a=b;b=t;t=a;a=b;b=t;
24、if(a c)if(a c)t=a;a=c;c=t;t=a;a=c;c=t;if(b c)if(b c)t=b;b=c;c=t;t=b;b=c;c=t;printf(“%5.2f,%5.2f,%5.2f”,a,b,c);printf(“%5.2f,%5.2f,%5.2f”,a,b,c);5.3.2 if语句的嵌套语句的嵌套一般形式一般形式一般形式一般形式:if()if()if()if()语句语句语句语句1 1 else else 语句语句语句语句2 2 else else if()if()语句语句语句语句3 3 else else 语句语句语句语句4 4注意:注意:注意:注意:if if与与与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 语言 PPT 课件 讲解 05 选择 结构 程序设计
限制150内