第3章_选择结构程序设计_第1页
第3章_选择结构程序设计_第2页
第3章_选择结构程序设计_第3页
第3章_选择结构程序设计_第4页
第3章_选择结构程序设计_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计13.1 3.1 关系运算符和关系表达式关系运算符和关系表达式3.2 3.2 逻辑运算符和逻辑表达逻辑运算符和逻辑表达3.3 if3.3 if语句语句3.4 switch3.4 switch语句语句3.5 3.5 条件运算符和条件表达式条件运算符和条件表达式3.6 3.6 程序举例程序举例吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计2u现实生活现实生活中中,有有很多需要进行很多需要进行判断判断和和选择选择的情况的

2、情况 如果你在家,我去拜访你如果你在家,我去拜访你 如果考试不及格,要补考如果考试不及格,要补考p由于程序处理问题的需要,在大多数程序中都会由于程序处理问题的需要,在大多数程序中都会包含包含选择结构选择结构,需要在进行下一个操作之前先进,需要在进行下一个操作之前先进行条件判断行条件判断p处理处理这些这些问题,关键在于进行问题,关键在于进行条件判断条件判断吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计3程序设计中,有程序设计中,有3 3种种基本结构:基本结构:(1 1) 顺序结构顺序结构(2 2) 选择结构选择结构(或称(或称分

3、支分支结构)结构)(3 3) 循环结构(或称重复结构)循环结构(或称重复结构) 1 1) 当型当型 (whilewhile) 2 2) 直到型(直到型(untiluntil)吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计4判断判断A AB BY YN N选择结构选择结构只能选择只能选择A A或或B B 中的一个来执行中的一个来执行顺序结构顺序结构BA吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计5判断判断A AY Y当当型结构型结构直到直到型结构型结构A A判

4、断判断N NY Y吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计63 3种基本结构有以下种基本结构有以下共同特点共同特点:(1 1)只有只有1 1个入口个入口,(2 2)只有只有1 1个出口个出口,(3 3)结构内的每个部分都有结构内的每个部分都有机会机会被执行到,被执行到,(4 4)结构内不存在结构内不存在死循环死循环。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计7u选择结构选择结构是是循环结构循环结构中的一个关键中的一个关键子结构子结构。u选择结构的选择

5、结构的作用作用是:是:u根据所给定的根据所给定的条件条件是否满足,决定从给出的是否满足,决定从给出的两组操作两组操作( (循环、不循环循环、不循环;左分支、右分支)左分支、右分支)中中选择其一选择其一来执行。来执行。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计8 C C语言有语言有两种两种选择语句选择语句:(1)(1)ifif语句,实现语句,实现两个两个分支的选择结构分支的选择结构(2)(2)switchswitch语句,实现语句,实现多多分支的选择结构分支的选择结构吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研

6、究中心 第第3 3章章 选择结构程序设计选择结构程序设计9 例例 求求 方程的根。方程的根。 由键盘输入由键盘输入a,b,ca,b,c。假设。假设a,b,ca,b,c的值任意,的值任意,并并不不保证保证 。 需需由由程序进行判别程序进行判别:如果如果计算并输出方程的计算并输出方程的两个实根两个实根否则否则输出输出“方程无实根方程无实根”02cbxax042 acb042 acb吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计10u解题思路解题思路:输入输入a,b,ca,b,c计算计算discdiscdiscdisc 0 0计算计

7、算x x1 1,x,x2 2输出无实根输出无实根输出输出x x1 1,x,x2 2真真假假吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计11#include #include #include #include int main ( ) int main ( ) double a,b,c,disc,x1,x2,p,q; double a,b,c,disc,x1,x2,p,q; scanf(“%lf%lf%lf”,&a,&b,&cscanf(“%lf%lf%lf”,&a,&b,&c

8、);); discdisc=b=b* *b-4b-4* *a a* *c;c; ifif(disc(disc 0)(x0) y=1y=1; elseelse y = -1y = -1;其中:其中:x0 x0是一个是一个关系关系表达式表达式 是一个是一个关系关系运算符运算符3.3.3 3 ifif语句语句_吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计13例例3.23.2 输入两个实数,按代数值输入两个实数,按代数值由小到大由小到大 的顺序输出这两个数。的顺序输出这两个数。u解题思路解题思路:只需要做只需要做一次比较一次比较,然

9、后进行,然后进行一次交换一次交换即可即可用用ifif语句实现条件判断语句实现条件判断关键关键是怎样实现两个变量值的是怎样实现两个变量值的互换互换A AB B互换互换前前A AB B互换互换后后吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计14A AB BC C吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计15#include #include intint main() main() float float a a, ,b b, ,t t; ; scanf(“

10、%f,%f”,&a,&bscanf(“%f,%f”,&a,&b);); if(aif(ab)b) t=a; t=a; a=b; a=b; b=t; b=t; printf(“%5.2f,%5.2fn”, printf(“%5.2f,%5.2fn”,a a, ,b b);); return 0; return 0; 将将a a和和b b的值的值互换互换如果如果abab吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计16#include #include intint main() main() fl

11、oat float a,b,ta,b,t; ; scanf(“%f,%f”,&a,&bscanf(“%f,%f”,&a,&b);); ifif(a(ab)b) t=a; t=a; a=b; a=b; b=t; b=t; printf(“%5.2f,%5.2fn”,a,b); printf(“%5.2f,%5.2fn”,a,b); return 0; return 0; 选择结构选择结构,用,用ifif语句实现的语句实现的吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计17u解题思路解题思路:可以先

12、用:可以先用伪代码伪代码写出算法:写出算法:if abif ab,a a和和b b对换对换 (a a是是a a、b b中的小者)中的小者)if acif ac,a a和和c c对换对换 (a a是是三者中三者中最小者)最小者)if bcif bc,b b和和c c对换对换 (b b是三者中次小者是三者中次小者)顺序顺序输出输出a a,b b,c c例例: :输入输入3 3个数个数a a,b b,c c,要求按由小到大的顺序输出,要求按由小到大的顺序输出吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计18#include #inc

13、lude intint main() main() float float a,b,c,a,b,c,t t; ; scanf(“%f,%f,%f”,&a,&b,&cscanf(“%f,%f,%f”,&a,&b,&c);); if(aif(ab)b) t=a; a=b; b=t; t=a; a=b; b=t; if(aif(ac)c) t=a; a=c; c=t; t=a; a=c; c=t; if(bif(bc)c) t=b; t=b; b=cb=c; c=t; ; c=t; printf(“%5.2f,%5.2f,%5.2fn”,a,b,c);

14、 printf(“%5.2f,%5.2f,%5.2fn”,a,b,c); return 0; return 0; a a是是两者两者中的中的小者小者a a是是三者三者中中最最小者小者吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计19if if 语句的语句的作用作用:根据根据判断的结果判断的结果(真假)来决定执行给出的(真假)来决定执行给出的两种操作之一两种操作之一。由于由于关系表达式关系表达式可以得到可以得到真真值或值或假假值。值。因此因此 if if 语句是根据语句是根据关系关系表达式表达式的的值值来来判断判断所所给定给定的

15、条件的条件是否满足是否满足。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计20ifif语句的一般形式语句的一般形式 if if( ( 表达式表达式 ) ) 语句语句1 1 else else 语句语句2 2 l关系关系表达式表达式l逻辑逻辑表达式表达式l数值数值表达式表达式方括号方括号内的部分为内的部分为可选可选的的吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计21 if ( if (表达式表达式) ) 语句语句1 1 else else 语句语句2 2 l简

16、单简单的语句的语句l复合复合语句语句l另一个另一个ifif语句语句等等吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计22最常用的最常用的3 3种种ifif语句语句形式形式:1.1. ifif ( (表达式表达式) ) 语句语句1 (1 (没有没有elseelse子子句句) )例如:例如:ifif(xyxy) printfprintf(“%d”%d”,x x);执行过程如图执行过程如图: :单单分支分支语句语句表达式表达式真真假假吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选

17、择结构程序设计23表达式表达式语句语句1 1语句语句2 2真真假假双双分支分支例如:例如:ifif(xyxy)printfprintf(“%d”%d”,x x); elseelse printfprintf(“%d”%d”,y y);执行过程如图执行过程如图: :2.2. ifif(表达式)语句(表达式)语句1 1 elseelse 语句语句2 2吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计243.3. ifif(表达式)(表达式) 语句语句1 1 elseelse ifif(表达式)表达式) 语句语句2 2 elseels

18、e ifif(表达式)表达式) 语句语句3 3 elseelse ifif(表达式)语句表达式)语句m m else else 语句语句n n执行过程如图执行过程如图: :吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计25表达式表达式1 1语语句句1 1表达式表达式2 2表达式表达式4 4表达式表达式3 3语语句句2 2语语句句3 3语语句句4 4语语句句5 5假假假假假假假假真真真真真真真真内嵌内嵌多分支多分支吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计2

19、6例如例如:计算某零件库存成本:计算某零件库存成本 ifif (number500) cost=0.15 (number500) cost=0.15; ; else else ifif(number300) cost=0.10(number300) cost=0.10; ; elseelse ifif(number100) cost=0.075(number100) cost=0.075; ; else else ifif(number50) cost=0.05(number50) cost=0.05; ; else else cost=0 cost=0; ;吉林大学公共计算机教学与研究中心吉

20、林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计27说明:说明:1 1)三种形式的三种形式的ifif中,在中,在ifif后面的均为后面的均为“表达式表达式”,一,一般情况下为般情况下为逻辑表达式逻辑表达式或或关系表达式关系表达式。在执行。在执行 if if 语句时,语句时,先先对表达式求解,然对表达式求解,然后后按表达式的值执行按表达式的值执行相应的语句。相应的语句。u即使写成即使写成 if(aif(a=3)=3),赋值表达式也作为,赋值表达式也作为a0a0来看待来看待u若写成若写成 if(a=3)if(a=3),是关系表达式,此时若,是关系表达式,此时若a a

21、的原值的原值为为3 3,表达式才为真。,表达式才为真。u可见,可见,表达式的类型表达式的类型是任意的是任意的,可为逻辑型、也可,可为逻辑型、也可是数值型(包括整型、实型、字符型或指针型)是数值型(包括整型、实型、字符型或指针型)吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计282 2)在第在第2 2和第和第3 3种种 if if 语句中:语句中:u在每个在每个elseelse前面有一个前面有一个分号分号u整个语句结束处有一个整个语句结束处有一个分号分号例如:例如:ifif(x0 x0) printf(“%f”,xprintf(

22、“%f”,x) ); elseelse printf(“%f”,-xprintf(“%f”,-x) );吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计293 3)if if 后面后面 只能只能有有一个一个语句,语句, elseelse后面也后面也只能只能有有一个一个语句。(或语句。(或复合语句复合语句)。)。例如:例如:ifif(a+bc(a+bc&b+cab+ca&c+ab)c+ab) elseelseprintf(“is not a trilateral”)printf(“is not a trilater

23、al”); 表示一个完整的复合表示一个完整的复合语句,其中语句,其中 表示复合语表示复合语句的结束,但它并不代表句的结束,但它并不代表其内嵌的其内嵌的最后最后一个语句一个语句的的结束。结束。 s=0.5 s=0.5* *(a+b+c);(a+b+c); area=sqrt(s area=sqrt(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c); printf(“area=%6.2f”,area) printf(“area=%6.2f”,area) ; 吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程

24、序设计30u在在ifif语句中又语句中又包含包含一个或多个一个或多个ifif语句称为语句称为ifif语句的语句的嵌套嵌套u一般形式:一般形式:ifif( )( ) if if( ) ( ) 语句语句1 1 elseelse 语句语句2 2 elseelse if( ) if( ) 语句语句3 3 else else 语句语句4 4 内嵌内嵌ififelseelse总是与它上面最近总是与它上面最近的的未配对未配对的的ifif配对配对吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计31if ()if () if () if () 语

25、句语句1 1 elseelse语句语句2 2内嵌内嵌ifif 限定了限定了内嵌内嵌ifif范围范围 吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计32例例 有一函数有一函数: : 编一程序编一程序,输入输入一个一个x x值值,要求要求输出输出相应的相应的y y值。值。)0(1)0(0)0(1xxxy吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计33u解题思路解题思路:用用ifif语句语句检查检查x x的值,的值,根据根据x x的值决定赋予的值决定赋予y y的值

26、的值由于由于y y的的可能值可能值不是两个而不是两个而是三个是三个,因此不可能,因此不可能只用一个简单的只用一个简单的( (无内嵌无内嵌if)if)的的ifif语句来实现语句来实现吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计34u解题思路:解题思路:方法方法1 1(1)(1) 先后用先后用3 3个独立的个独立的ifif语句处理:语句处理:输入输入x x若若 x 0, x 0, x 0, 则则y = 1y = 1输出输出x x和和y yscanf(scanf(“ “%d%d” ”,&x,&x););if(xif

27、(x0) y = -1;0) y = 1;0) y = 1;printf(printf(“ “x x=%=%d,yd,y=%=%dndn” ”,x,y,x,y););吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计35u解题思路:解题思路:方法方法2 2(2)(2) 用用一个嵌套的一个嵌套的ifif语句语句处理:处理:输入输入x x若若x 0, x 0, 则则y = -1 y = -1 否则否则 若若 x = 0, x = 0, 则则y = 0y = 0 否则否则 y = 1 y = 1输出输出x x和和y yscanf(sca

28、nf(“ “%d%d” ”,&x,&x););if(xif(x0) y=-1;=0 x=0) ) if (x0) y=1; if (x0) y=1; else y=0; else y=0;else y=-1;else y=-1;printf(xprintf(x=%=%d,yd,y=%=%dn,x,ydn,x,y););提倡提倡内嵌内嵌ifif放在放在elseelse中中scanf(%d,&xscanf(%d,&x););if(if(x x03a3是一个是一个关系表达式关系表达式, 是一个是一个关系运算符关系运算符。如果给定如果给定a a的值为的值为5 5则满足给

29、定的条件则满足给定的条件a3a3“真真”和和“假假”是是逻辑逻辑运算运算结果结果的表达方式,的表达方式,因此:关系运算实际是因此:关系运算实际是逻辑运算中较逻辑运算中较简单简单的一的一种种因此因此表达式表达式的的值值为为“真真”(即条件满足)(即条件满足)否则表达式的否则表达式的值值为为”假假“吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计39C C语言有语言有6 6种种关系运算符:关系运算符: 小于小于= 大于大于= = 大于等于大于等于= 等于等于(恒恒等于等于)!= != 不等于不等于优先级为优先级为6 6级级优先级为优

30、先级为7 7级级结合方向为自结合方向为自左左向向右右3.1.1 3.1.1 关系运算符关系运算符吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计40例如:例如:ca+b ca+b 相当于相当于 c(a+b) c(a+b) 算术运算符算术运算符优先级优先级(4(4级级) )高于高于关系运算符关系运算符(6(6级级) ); ;a=bc a=bc 相当于相当于 a=(bc) a=(bc) 赋值运算符赋值运算符优先级优先级(14(14级级) )低于低于关系运算符关系运算符(6(6级级) )吉林大学公共计算机教学与研究中心吉林大学公共计算

31、机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计41定义定义:用关系运算符把用关系运算符把两个表达式两个表达式连接连接起来的式子称为起来的式子称为关系表达式。关系表达式。表达式的表达式的值值是一个是一个“逻辑值逻辑值”即即“真真”或或“假假”。例如:关系表达式例如:关系表达式 5=3 5=3 的的值值为为“假假”5=0 5=0 的的值值为为“真真”可以是算术表达式可以是算术表达式或关系表达式。或关系表达式。用用1 1代表代表“真真” 0 0代表代表“假假”吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计42逻辑

32、量逻辑量可以与其他可以与其他数值量数值量进行进行混合运算混合运算例:例:设设 a=3 , b=2 , c=1a=3 , b=2 , c=1则表达式则表达式: ab : ab 的的值值为为1 1,即为,即为”真真“ b b+ +c c b=ab=c c 的的值值为为1 1, 因为因为abab的的值值为为1 1(真),等于(真),等于c c的值。的值。注意:注意:c c的值是为变量的值是为变量赋值时得到的赋值时得到的整数整数值,值,而而abab的值为的值为逻辑逻辑值,值,但二者可运算但二者可运算。注意:注意:各运算符的各运算符的优先级、优先级、结合方向结合方向吉林大学公共计算机教学与研究中心吉林大

33、学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计43逻辑表达式:逻辑表达式:用用逻辑运算符逻辑运算符把把关系表达式关系表达式或或逻辑量逻辑量连接连接起来的式子。起来的式子。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计44C C语言有语言有3 3种种逻辑运算符逻辑运算符:& 逻辑逻辑与与(相当于(相当于ANDAND) 优先级为优先级为1111级级| 逻辑逻辑或或(相当于(相当于OROR) 优先级为优先级为1212级级! ! 逻辑逻辑非非(相当于(相当于NOTNOT) 优先级为优先级为 2 2

34、级级其中:其中:& & 和和 | | 是是双目双目运算符运算符 要求有两个操作数要求有两个操作数 ! ! 是是单目单目运算符运算符 只要求一个操作数只要求一个操作数例如例如 ! !(ab)(ab)吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计45逻辑运算举例:逻辑运算举例:判断判断年龄年龄在在1313至至1717岁岁之内?之内?ageage=13 13 & age age=1717判断判断年龄小于年龄小于1212或或大于大于6565?age12 age65 age65吉林大学公共计算机教学与研究中心吉林

35、大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计46 表达式表达式 ( (abab) )&( (xyxy) ) 可以写成可以写成 abab&xyxya a&b b 若若a,ba,b均均为真,则为真,则a&ba&b为真为真a|b a|b 若若a,ba,b有有1 1个个为真,则为真,则a|ba|b为真为真!a !a 若若a a为真,则为真,则!a!a为假。为假。以上各例以上各例表达式的结果表达式的结果均为均为逻辑值逻辑值“真真”或或“假假”吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构

36、程序设计选择结构程序设计47a ab b! a! a! b! ba a & b ba | b a | b 真真真真假假假假真真真真真真假假假假真真假假真真假假真真真真假假假假真真假假假假真真真真假假假假逻辑运算的逻辑运算的真值表真值表吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计48u逻辑表达式的逻辑表达式的值值应该是应该是逻辑量逻辑量“真真”或或“假假”u编译系统在编译系统在表示表示逻辑运算逻辑运算结果结果时时以以数值数值“1 1”代表代表“真真”,以,以0 0代表代表“假假”u但在但在判断判断一个一个量量是否为是否

37、为“真真”时时以以0 0代表代表“假假”,以,以非非0 0代表代表“真真”u注意:注意:将一个将一个非零非零的数值的数值认作为认作为“真真”吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计49(1)(1) 若若a=4a=4,则,则!a!a的值为的值为0 0(2)(2) 若若a=4a=4,b=5b=5,则,则a&ba&b的值为的值为1 1(3)(3) 则则a|ba|b的值为的值为1 1(4)(4) 则则! !a a|b b的值为的值为1 1(5)(5) 4 4 & 0 0 | | 2 2的值为的值为1 1吉

38、林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计50在一个表达式中的不同位置上出现在一个表达式中的不同位置上出现数值数值,应,应区分区分那那些是作为些是作为数值数值运算运算或或关系关系运算运算的对象,那些是作为的对象,那些是作为逻辑逻辑运算运算的对象。的对象。例如:例如: 53&83&8353, 在关系运算符两侧的在关系运算符两侧的5 5和和3 3是是作为作为数值数值参加运算。参加运算。2.2.再进行再进行 1&81&8 4-!04-!0的运算。的运算。吉林大学公共计算机教学与研究中心吉林大学公共计

39、算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计513.3.应先进行应先进行!0!0的运算,结果为的运算,结果为1 1。 (1 1是是逻辑量逻辑量,而,而!0!0中的中的0 0是是数值数值)4.4.然后进行然后进行4-14-1的运算。其中的运算。其中4 4为为数值数值,1 1为为逻辑量逻辑量,但可进行运算。但可进行运算。 结果为结果为3 3,是,是数值。数值。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计525.5.838 3&84-!03&84-!01&84-1&84-!

40、!0 01&841&84- -1 11&81&8 bab)&()&(n n= =cdcd) )因因abab的值为的值为0 0,所以,所以m m为为0 0,&右面的运算对象不必再运算右面的运算对象不必再运算,整个表达式的值为,整个表达式的值为0 0提示:提示:1 1)赋值运算符的优先级低于关系运算符赋值运算符的优先级低于关系运算符2 2)因(因(n=cdn=cd)未未被执行,因此被执行,因此n n的值的值未改变未改变,仍为,仍为1 1吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程

41、序设计58u利用关系运算符和逻辑运算符组成的逻辑表达式,利用关系运算符和逻辑运算符组成的逻辑表达式,可以表述复杂的条件。可以表述复杂的条件。 例如:例如:判别某一年是否闰年判别某一年是否闰年吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计59u分析:分析: 一年实际是一年实际是365365天天5 5小时小时4848分分45.545.5秒。秒。 即一年要多出近即一年要多出近6 6个小时,这样个小时,这样4 4年则多出年则多出2424小时,即一天小时,即一天 把多出的一天加在把多出的一天加在2 2月末,就有了闰年时月末,就有了闰年时

42、2 2月为月为2929天,其他天,其他年份的年份的2 2月为月为2828天。天。 但实际上一年多出的不到但实际上一年多出的不到6 6个小时,个小时, 据计算,多出的部分正好是据计算,多出的部分正好是400400年多年多3 3天,天, 因此规定把能被因此规定把能被100100整除的天去掉,能被整除的天去掉,能被400400整除的天留下整除的天留下 即:即:判断某年是否为闰年只需判断是否判断某年是否为闰年只需判断是否能能被被4 4整除且整除且不能不能被被100100整除,还要整除,还要加上加上能被能被400400整除的年整除的年吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第

43、3 3章章 选择结构程序设计选择结构程序设计60因此因此描述成:描述成:闰年的条件是符合下面闰年的条件是符合下面二者之一二者之一:能能被被4 4整除,整除,但不能但不能被被100100整除整除,如,如20082008能能被被400400整除,如整除,如20002000(year(year% %4=04=0&yearyear% %100100!=!=0)0)|yearyear% %400=0400=0% %为为3 3级、级、=为为7 7级、级、!=!=为为7 7级、级、&为为1111级、级、|为为1212级、级、! !为为2 2级、级、()为()为1 1级。级。吉林大学公共计算机

44、教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计61u数据类型说明符为:数据类型说明符为: _ _boolbool或或 _ _B Booloolu是是C99C99所所增加增加的一种数据类型的一种数据类型u可以将关系运算和逻辑运算的结果可以将关系运算和逻辑运算的结果存到存到一个一个逻辑型变量逻辑型变量中,以便于分析和运算中,以便于分析和运算吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计62u有一种有一种ifif语句,当被判别的表达式的语句,当被判别的表达式的值值为为“真真”或或“假

45、假” ” 时,都执行一个时,都执行一个赋值赋值语句且向语句且向同同一个变量赋值一个变量赋值u如:如:if (ab)if (ab) maxmax= =a;a; else else max max= =b;b;maxmax = (a b) = (a b) ? ? a a : :b ;b ;条件运算符条件运算符条件条件表达式表达式吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计63u条件表达式的一般形式为条件表达式的一般形式为:表达式表达式?表达式表达式: : 表达式表达式吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中

46、心 第第3 3章章 选择结构程序设计选择结构程序设计64u条件运算符的执行条件运算符的执行顺序顺序: 求解表达式求解表达式1 1 若为若为非非0 0(真)(真)则则求解表达式求解表达式2 2,此时表达式,此时表达式2 2的值就作为的值就作为整个条件表达式的值整个条件表达式的值 若表达式若表达式1 1的的值值为为0 0(假),则求解表达式(假),则求解表达式3 3,表达式表达式3 3的值就是的值就是整个条件表达式的值整个条件表达式的值吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计65u条件运算符条件运算符优先优先于赋值运算符于赋

47、值运算符 1 13 3级级 3 3目目u条件运算符的条件运算符的结合方向结合方向为为“自右至左自右至左”u以下为以下为合法合法的使用方法:的使用方法:ab ab ? ? (max= (max=a)a): :(max(max=b);=b);ab ab ? ? printf(“%d”,aprintf(“%d”,a) ): : printf(“%d”,bprintf(“%d”,b););吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计66例例 输入一个字符,判别它是否输入一个字符,判别它是否大写大写字母,如字母,如果果是是,将它,将它

48、转换转换成小写字母;成小写字母;若若不是不是,不转换不转换。然后输出最后得到的字符。然后输出最后得到的字符。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计67u解题思路解题思路:用:用条件表达式条件表达式来处理来处理。 当字母当字母是是大写时,大写时,转换转换成小写字母,成小写字母, 否则否则不转换不转换吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计68#include #include intint main() main() char char chch;

49、 ; scanf(“%c”,&chscanf(“%c”,&ch);); chch= =( (chch=A & =A & chch=Z=Z) )?(ch+32):ch;?(ch+32):ch; printf(“%cn”,chprintf(“%cn”,ch);); return 0; return 0; 吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计69uswitchswitch语句用来实现语句用来实现多分支多分支选择结构选择结构学生成绩分类学生成绩分类8585分以上为分以上为AA等等7070848

50、4分为分为BB等等60606969分为分为CC等等人口统计分类人口统计分类 按年龄分为老、中、青、少、儿童按年龄分为老、中、青、少、儿童吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计70例例3.63.6 要求按照考试成绩的等级输出要求按照考试成绩的等级输出百分制百分制分数段分数段,A A等为等为8585分以上,分以上,B B等为等为70708484分,分,C C等为等为60606969分分 ,D D等为等为 6060分分以下以下 。成绩的等级由键盘输入。成绩的等级由键盘输入。吉林大学公共计算机教学与研究中心吉林大学公共计算机教

51、学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计71u解题思路解题思路:判断出判断出这是一个这是一个多分支多分支选择问题选择问题根据百分制分数将学生成绩分为根据百分制分数将学生成绩分为4 4个个等级等级若若用用ifif语句语句,至少要用至少要用3 3层层嵌套的嵌套的ifif,进行,进行3 3次次检查判断检查判断用用switchswitch语句进行语句进行一次一次检查即可得到结果检查即可得到结果吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计72#include #include intint main() main

52、() char grade; char grade; scanf(“%c”,&scanf(“%c”,&gradegrade);); printf(“Yourprintf(“Your score:”); score:”); switch(switch(gradegrade) ) case case AA: printf(“85: printf(“85100n”);100n”);breakbreak; ; case B: printf(“70 case B: printf(“7084n”); break;84n”); break; case case CC: printf(“60:

53、 printf(“6069n”); 69n”); breakbreak; ; case D: case D: printfprintf(“60n”); break; (“60n”); break; defaultdefault: : printf(“enterprintf(“enter data error!n”); data error!n”); return 0; return 0; 值为值为A A吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计73uswitchswitch语句的作用是语句的作用是根据表达式根据表达式的的值

54、值,使,使流程流程跳转到不同跳转到不同的语句的语句uswitchswitch语句的一般形式语句的一般形式:switchswitch(表达式表达式) casecase 常量常量1 1 :语句:语句1 1 case case 常量常量2 2 :语句:语句2 2 case case 常量常量n n :语句:语句n n defaultdefault : : 语句语句n+1n+1 整数整数类型类型( (包括包括字符型字符型) )不能相同不能相同case均不满足均不满足时时吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计74例例 编写用编写

55、用switchswitch语句处理菜单命令语句处理菜单命令的的程序程序u解题思路解题思路: 在许多应用程序中,用菜单在许多应用程序中,用菜单对流程进行控制对流程进行控制,例如从键盘输入一个例如从键盘输入一个AA或或aa字符,字符,就会执行就会执行A A操作,输入一个操作,输入一个BB或或bb字字符,就会执行符,就会执行B B操作,等等。操作,等等。吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计75#include #include intint main() main() void void actionaction1 1(i

56、nt,int),action(int,int),action2 2(int,int);(int,int); char char chch; ; intint a=15,b=23; a=15,b=23; chch= =getchargetchar();(); switch(chswitch(ch) ) case case a a: : casecase A A: : action1(a,b) action1(a,b); ;breakbreak; ; case case b b: : case case B B: : action2(a,b);break;action2(a,b);break; d

57、efault: default: putcharputchar(a); (a); return 0; return 0; voidvoid action1(int action1(int x,intx,int y) y) printf(“printf(“x+yx+y=%=%dn”,x+ydn”,x+y);); 输入输入a a或或A A调用调用action1action1函数,执行函数,执行A A操作操作吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计76#include #include intint main() main()

58、 void action1(int,int),action2(int,int); void action1(int,int),action2(int,int); char char chch; ; intint a=15,b=23; a=15,b=23; chch= =getchargetchar();(); switchswitch(ch(ch) ) casecase a: a: case A: action1(a,b);break; case A: action1(a,b);break; case case bb: : case case BB: : action2(a,b)action2

59、(a,b);break;break; defaultdefault: : putcharputchar(a); (a); return 0; return 0; 输入输入b b或或B B调用调用action2action2函数,执行函数,执行B B操作操作void action2(int void action2(int x,intx,int y) y) printf(“printf(“x x* *y y=%=%dn”,xdn”,x* *y);y); 吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计77u这是一个非常简单的示意程

60、序这是一个非常简单的示意程序u实际应用中,所指定的操作可能比较复杂:实际应用中,所指定的操作可能比较复杂: A A:输入全班学生各门课的成绩:输入全班学生各门课的成绩B B:计算并输出每个学生各门课的平均成绩:计算并输出每个学生各门课的平均成绩C C:计算并输出各门课的全班平均成绩:计算并输出各门课的全班平均成绩D D:对全班学生的平均成绩由高到低排序并输出:对全班学生的平均成绩由高到低排序并输出u可以按以上思路编写程序,把各可以按以上思路编写程序,把各actionaction函数设函数设计成不同的功能以实现各要求计成不同的功能以实现各要求吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计78例例 写一程序,判断某一年是否闰年。写一程序,判断某一年是否闰年。u解题思路解题思路:前面已介绍过判别闰年的方法:前面已介绍过判别闰年的方法u本例本例用用不同不同的方法编写程序的方法编写程序吉林大学公共计算机教学与研究中心吉林大学公共计算机教学与研究中心 第第3 3章章 选择结构程序设计选择结构程序设计79u用变量用变量leapleap代表是否闰年的信息。代表是否闰年的信息。是是闰年,闰年,leap=1leap=1;非非闰

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论