C语言课件第5章选择结构.ppt
《C语言课件第5章选择结构.ppt》由会员分享,可在线阅读,更多相关《C语言课件第5章选择结构.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 选择结构程序设计选择结构程序设计主要内容:主要内容:关系运算符和关系表达式关系运算符和关系表达式关系运算符和关系表达式关系运算符和关系表达式逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 if-elseif-else(重点、难点)(重点、难点)(重点、难点)(重点、难点)switchswitch条件运算符和条件表达式条件运算符和条件表达式条件运算符和条件表达式条件运算符和条件表达式(了解了解了解了解)根据选择结构的组成特点,我们在分析问题时着重根据选择结构的组成特点,我们在分析问题时着重明确以下两点:明确以下两点:1 1)条件是什)条件
2、是什 么。么。2 2)条件成立和不成立时分别执行什么操作。)条件成立和不成立时分别执行什么操作。n n简单条件用关系表达式来表示简单条件用关系表达式来表示简单条件用关系表达式来表示简单条件用关系表达式来表示n n例例例例5.15.1判断一个整数判断一个整数判断一个整数判断一个整数n n是奇数还是偶数(设是奇数还是偶数(设是奇数还是偶数(设是奇数还是偶数(设n n由用户输入)由用户输入)由用户输入)由用户输入)分析:第一步,输入整数分析:第一步,输入整数分析:第一步,输入整数分析:第一步,输入整数n n。第二步,判断:第二步,判断:第二步,判断:第二步,判断:若条件若条件若条件若条件“n%2n%
3、2等于等于等于等于0“0“成立,则输出成立,则输出成立,则输出成立,则输出“n n为偶数为偶数为偶数为偶数“;否则输出;否则输出;否则输出;否则输出“n n为奇数为奇数为奇数为奇数“。5.1关系运算符和关系表达式关系运算符和关系表达式main()main()intn;intn;printf(“nenterintn:”);printf(“nenterintn:”);scanf(“%d”,&n);scanf(“%d”,&n);if(if(n%2=0n%2=0)printf(“n%disevennumber“,n);printf(“n%disevennumber“,n);elseelseprintf
4、(“n%disoddnumber”,n);printf(“n%disoddnumber”,n);开始输入nn%2为0是偶数是奇数结束输入nn n例例例例5.25.2输入任一考生的考号及成绩,判断其是否能上大学。输入任一考生的考号及成绩,判断其是否能上大学。输入任一考生的考号及成绩,判断其是否能上大学。输入任一考生的考号及成绩,判断其是否能上大学。(设分数线为(设分数线为(设分数线为(设分数线为600600,若能上,则输出,若能上,则输出,若能上,则输出,若能上,则输出“success“success“,否则输,否则输,否则输,否则输出出出出”failure”failure”)。)。)。)。分析
5、:第二步是选择结构,条件是分析:第二步是选择结构,条件是分析:第二步是选择结构,条件是分析:第二步是选择结构,条件是“score“score大于等于大于等于大于等于大于等于600”600”,main()main()intno;intno;floatscore;floatscore;printf(“nenterno,score:”);printf(“nenterno,score:”);scanf(“%d%f”,&no,&score);scanf(“%d%f”,&no,&score);if(if(score=600score=600)printf(“n%d:success”,no);printf(
6、“n%d:success”,no);elseelseprintf(“n%d:failure.”,no);printf(“n%d:failure.”,no);n n关系表达式的值关系表达式的值关系表达式的值关系表达式的值:若条件满足,则关系表达式的值为若条件满足,则关系表达式的值为若条件满足,则关系表达式的值为若条件满足,则关系表达式的值为ture(1)ture(1);否则,关系表达式的值为;否则,关系表达式的值为;否则,关系表达式的值为;否则,关系表达式的值为false(0)false(0)。1.1.关系运算符关系运算符关系运算符关系运算符:=!=!=例如下列关系表达式例如下列关系表达式例如下
7、列关系表达式例如下列关系表达式:abab表示条件表示条件表示条件表示条件“a“a大于大于大于大于b“b“,xx!=0=0表示条件表示条件表示条件表示条件“x“x等于等于等于等于0“0“,a+bx*ya+b关系运算符关系运算符关系运算符关系运算符赋值运算符赋值运算符赋值运算符赋值运算符且且且且=高于高于高于高于=!=!=3.3.结合性结合性结合性结合性:自左向右(一般很少连用)。自左向右(一般很少连用)。自左向右(一般很少连用)。自左向右(一般很少连用)。4.4.如:如:如:如:abbb)b)c5.5.f=ag+1f=ag+1表示表示表示表示 f=(a(g+1)f=(adca+bdc也是合法的关
8、系表达也是合法的关系表达也是合法的关系表达也是合法的关系表达式,但在实际应用中很少使用;因为它不能表示:式,但在实际应用中很少使用;因为它不能表示:式,但在实际应用中很少使用;因为它不能表示:式,但在实际应用中很少使用;因为它不能表示:a+ba+b大于大于大于大于c c且大于且大于且大于且大于d d。n n问题问题问题问题:如何表示:如何表示:如何表示:如何表示:axbaxb0y100y=15&temperature=15&temperature1!x-1、!y-0!y-0 x&y-0 x|y-1x&y-0 x|y-1特别提示特别提示特别提示特别提示:if(!x)if(!x)等价于等价于等价于
9、等价于if(x=0)if(x=0)2.2.逻辑表达式逻辑表达式逻辑表达式逻辑表达式:由逻辑运算符将一个或多个表达式连由逻辑运算符将一个或多个表达式连由逻辑运算符将一个或多个表达式连由逻辑运算符将一个或多个表达式连接起来的式子。比如:接起来的式子。比如:接起来的式子。比如:接起来的式子。比如:1)a1)a和和和和b b中只有一个为中只有一个为中只有一个为中只有一个为00的逻辑表达式为:的逻辑表达式为:的逻辑表达式为:的逻辑表达式为:a+b!=0&a*b=0a+b!=0&a*b=02)2)某英语专业的招生条件某英语专业的招生条件某英语专业的招生条件某英语专业的招生条件“总分总分总分总分(total
10、)(total)超过分数线超过分数线超过分数线超过分数线(600)(600)并且英语成绩(并且英语成绩(并且英语成绩(并且英语成绩(scorescore)不低于)不低于)不低于)不低于8585分分分分“,该条,该条,该条,该条件的逻辑表达式为:件的逻辑表达式为:件的逻辑表达式为:件的逻辑表达式为:total600&score=85total600&score=85 3)3)判断某年是润年应满足以下两个条件之一:该年能判断某年是润年应满足以下两个条件之一:该年能判断某年是润年应满足以下两个条件之一:该年能判断某年是润年应满足以下两个条件之一:该年能被被被被4 4整除但不能被整除但不能被整除但不能
11、被整除但不能被100100整除,或该年能被整除,或该年能被整除,或该年能被整除,或该年能被400400整除。整除。整除。整除。该条件对应的逻辑表达式为:该条件对应的逻辑表达式为:该条件对应的逻辑表达式为:该条件对应的逻辑表达式为:year%4=0&year%100!=0|year%400=0year%4=0&year%100!=0|year%400=0 3 3 逻辑运算符的优先级和结合性逻辑运算符的优先级和结合性逻辑运算符的优先级和结合性逻辑运算符的优先级和结合性当条件表达式中同时出现多个运算符时,首先按优当条件表达式中同时出现多个运算符时,首先按优先级计算,当同时出现多个优先级相同的运算符先
12、级计算,当同时出现多个优先级相同的运算符时,再按结合性计算。时,再按结合性计算。优先级:优先级:!算术运算符算术运算符算术运算符算术运算符 关系运算符关系运算符关系运算符关系运算符&|&|赋值运算符赋值运算符赋值运算符赋值运算符结合性:结合性:逻辑与逻辑与&、逻辑或、逻辑或|的结合性的结合性:自左向右自左向右,逻辑非逻辑非!的结合性的结合性:自右向左自右向左 例如:例如:(下页)(下页)优先级与结合性举例n n例如:例如:设设设设inth=3,j=3,k=3;inth=3,j=3,k=3;n ndoublex=0,y=2.3;doublex=0,y=2.3;n n计算下列表达式的值:计算下列表
13、达式的值:计算下列表达式的值:计算下列表达式的值:n nh&j&kh&j&k等价于等价于等价于等价于(h&j)&k(h&j)&kn nhj&xyhj&xy等价于等价于等价于等价于(hjhj)&(xy)&(xy)n nhk|xyhk|xy等价于等价于等价于等价于(hk)|(xy)(hk)|(xb)&(n=cd)(m=ab)&(n=cd)后,后,后,后,n n的值为()。的值为()。的值为()。的值为()。A.1B.0A.1B.0C C.2D.3.2D.3n n2 2)当)当)当)当c c的值不为的值不为的值不为的值不为0 0时,在下列选项中能正确将时,在下列选项中能正确将时,在下列选项中能正确将
14、时,在下列选项中能正确将c c的值赋的值赋的值赋的值赋给变量给变量给变量给变量a a、b b的是()的是()的是()的是()AAc=b=a;B.(a=c)|(b=c);c=b=a;B.(a=c)|(b=c);C C.(a=c)&(b=c);D.(a=c)&(b=c);D.a=c=b;a=c=b;5.3if语句语句n nif if语句能实现所有的选择结构语句能实现所有的选择结构语句能实现所有的选择结构语句能实现所有的选择结构n n例例5.55.5将任意两个整数将任意两个整数mm、n n中的较大数送给中的较大数送给x x,较小,较小数送给数送给y y,然后按大小顺序输出,然后按大小顺序输出(设设m
15、m、n n的值由键盘的值由键盘输入)输入)n n分析:共分三步,分析:共分三步,S1:S1:输入两个整数给输入两个整数给mm和和n n。S2:S2:判断判断mm、n n的大小并分别给的大小并分别给x x和和y y赋值。赋值。S3:S3:输出输出x x和和y y。其中第二步用选择结构其中第二步用选择结构.main()main()intm,n,x,y;intm,n,x,y;printf(“npleaseentertwointegersprintf(“npleaseentertwointegers:”);”);scanf(“%d%d”,&m,&n);scanf(“%d%d”,&m,&n);if(mn
16、)x=m;y=n;/*if(mn)x=m;y=n;/*复合语句复合语句复合语句复合语句*/*/elseelsex=n;y=m;x=n;y=m;printf(“nx=%d,y=%d”,x,y);printf(“nx=%d,y=%d”,x,y);思考:若条件改为:思考:若条件改为:思考:若条件改为:思考:若条件改为:mnmn,如何实现,如何实现,如何实现,如何实现?n n1.If1.If语句的一般形式:语句的一般形式:n ni if(f(表达式表达式表达式表达式)语句语句语句语句1 1elseelse语句语句语句语句2 2执行过程执行过程:(如右图(如右图)格式说明格式说明:语句语句语句语句1 1
17、和和和和语句语句语句语句2 2在语法上是一个语句,可以在语法上是一个语句,可以在语法上是一个语句,可以在语法上是一个语句,可以是简单语句,也可以是复合语句。在此要特别注意复是简单语句,也可以是复合语句。在此要特别注意复是简单语句,也可以是复合语句。在此要特别注意复是简单语句,也可以是复合语句。在此要特别注意复合语句中一对合语句中一对合语句中一对合语句中一对的正确使用的正确使用的正确使用的正确使用。条件表达式语句1语句2YN2.if语句的简化形式语句的简化形式n n例例5.65.6从键盘接收一个字符,若为大写字母,则将其转换成小从键盘接收一个字符,若为大写字母,则将其转换成小写字母并输出;否则输
18、出原字符。写字母并输出;否则输出原字符。n n 分析:共三步,其中第二步判断分析:共三步,其中第二步判断chch是大写字母的条件是:是大写字母的条件是:chch在在AZAZ之间之间#include#includemain()main()charch;charch;printf(“nenteracharacter:”);/*printf(“nenteracharacter:”);/*第一步,输入第一步,输入第一步,输入第一步,输入ch*/ch*/ch=getchar();getchar();ch=getchar();getchar();if(if(ch=A&ch=A&ch=Z)/*)/*第二步,
19、判断并处理第二步,判断并处理第二步,判断并处理第二步,判断并处理*/*/ch=ch+32;/*32:ch=ch+32;/*32:大小写字母的大小写字母的大小写字母的大小写字母的ASCIIASCII码之差为码之差为码之差为码之差为32*/32*/putchar(ch);/*putchar(ch);/*第三步,输出第三步,输出第三步,输出第三步,输出*/*/2.if语句的简化形式语句的简化形式n nif(expression)if(expression)statement1statement1 n n执行过程如图:执行过程如图:例:输入任意数例:输入任意数n n,输出其绝对值。输出其绝对值。mai
20、n()main()floata;floata;scanf(“%f”,&a);scanf(“%f”,&a);if(a0)a=-a;if(am”“nm”;条件成立时输出;条件成立时输出;条件成立时输出;条件成立时输出“big”“big”;否则输出;否则输出;否则输出;否则输出“small”“small”。很明显,很明显,很明显,很明显,又是一个选择结构又是一个选择结构又是一个选择结构又是一个选择结构。main()main()intm=15,n;intm=15,n;printf(nguessanum:);printf(nguessanum:);scanf(%d,&n);/scanf(%d,&n);/
21、if(m=n)if(m=n)printf(RIGHT);/*printf(RIGHT);/*语句语句语句语句1*/1*/elseelseprintf(nWRONG);printf(nWRONG);if(nm)if(nm)printf(BIG);/*printf(BIG);/*语句语句语句语句2*/2*/elseelseprintf(SMALL);printf(SMALL);n n例例5.85.8某幼儿园只接收某幼儿园只接收2626岁的小孩,其中岁的小孩,其中2323岁编岁编入小班,入小班,4545岁编入中班,岁编入中班,6 6岁编入大班。编程实岁编入大班。编程实现,对输入的任意一个年龄,输出该
22、编入什麽班,现,对输入的任意一个年龄,输出该编入什麽班,或者告知或者告知“不收不收“。n n分析:首先根据条件分析:首先根据条件“年龄在年龄在2626岁之间岁之间”判断判断是是“收收”还是还是“不收不收“,若条件满足,则执行的,若条件满足,则执行的操作为:(操作为:(1 1)判断该编入何班;否则,输出)判断该编入何班;否则,输出“不收不收”。其次,分析(其次,分析(1 1)如何实现。)如何实现。提示:本例可用不同的程序实现。提示:本例可用不同的程序实现。如将条件改为如将条件改为“年龄超出年龄超出2626岁岁”;或者从条件;或者从条件“年龄小于年龄小于2”2”开始判断。试编程实现。开始判断。试编
23、程实现。n nmain()main()intage;intage;printf(“nenterage:”);printf(“nenterage:”);scanf(“%d”,&age);scanf(“%d”,&age);if(age=2&age=2&age=6)if(age=3)/*if(age=3)/*语句语句语句语句1 1开始开始开始开始*/*/printf(“nsmallclass”);/*printf(“nsmallclass”);/*语句语句语句语句1_1*/1_1*/elseelseif(age=5)/*if(age0)if(n0)if(n%2=0)if(n%2=0)printf(“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 选择 结构
限制150内