[工学]第五章选择结构程序设计课件

PPT
  • 阅读 113 次
  • 下载 0 次
  • 页数 29 页
  • 大小 904.500 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档8.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
[工学]第五章选择结构程序设计课件
可在后台配置第一页与第二页中间广告代码
[工学]第五章选择结构程序设计课件
可在后台配置第二页与第三页中间广告代码
[工学]第五章选择结构程序设计课件
可在后台配置第三页与第四页中间广告代码
[工学]第五章选择结构程序设计课件
[工学]第五章选择结构程序设计课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 29
  • 收藏
  • 违规举报
  • © 版权认领
下载文档8.00 元 加入VIP免费下载
文本内容

【文档说明】[工学]第五章选择结构程序设计课件.ppt,共(29)页,904.500 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2106.html

以下为本文档部分文字说明:

第五章选择结构程序设计本章重点、难点:1、运算符的优先级2.逻辑运算符3.If………else的应用4、switch结构的应用5.1关系运算符和关系表达式关系运算即比较运算,将两个值进行比较。运算符运算关系实例>大于a>b>=大于

等于a>=b<小于2<1<=小于等于c<=d==等于1==c!=不等于1!=3关系运算规则:参加运算的表达式按从左到右的方向进行比较,满足关系得到整型值1,不满足关系得到整型值0。注:C语言没有逻辑形数据。优先级高优先级低inta=1,b=3,c,d;c=a>b;/*c的值为0*/d=

a+2<=b+3;/*d的值为1*/Inta=3,b=2,c=1,f;f=a>b>cf的值为?结果:f=0“>”运算符是自左至右的结合5.2逻辑运算符和逻辑表达式1.逻辑运算符运算符逻辑关系举例&&逻辑与a>2&&a<3||逻辑或s<2||s>6!逻辑非!a其中,!运算是单目运

算,其它为双目运算符.优先级(从高到低):!(非)->&&(与)->||(或)5.2逻辑运算符和逻辑表达式ab!a!ba&&ba||b非0非00011非0001010非01001001100逻辑运算真值表:5.2逻辑运算符和

逻辑表达式2.复杂逻辑关系的表示在实际应用中,经常会遇到描述复杂的关系。如:判断x是否大于等于5或小于3。此类关系的描述在程序设计中会大量使用。035x<3||x>=50-23-2<x&&x<3表示数值关系的原则:开放区间用或;闭合区间用与。思考题:ch为字符变量,判断

ch是否为字母的表达式。具体实现如下:(ch>=’a’&&ch<=‘z’)||(ch>=’A’&&ch<=‘Z’)??不是字母的表达式如何描述?5.2逻辑运算符和逻辑表达式3.运算的优先级为了便于调整优先级,设置()为最高优先级。第一原则:单目运算的优先

级高于双目运算。第二原则:算术运算关系运算&&和||赋值运算表达式优先级举例说明:++a-b>c+d&&a>=b*34①②③④⑤⑥⑦注意:在无法确定优先级时,加()区分。简化表达式。5.2逻辑运算符和逻辑表达式4.在逻辑运算中,如果逻

辑值能确定,则不需再进行运算。1)(表达式1)||(表达式2)||。。。。。。表达式1为真,则不再进行其他表达式的求值2)(表达式1)&&(表达式2)&&。。。。。。表达式1为假,则不再进行其他表达式的求值例:main(

){inta=0,b=0,k;k=++a||b++;printf("\nk=%d,b=%d",k,b);a=0;k=a&&++b;printf("\nk=%d,b=%d",k,b);}实例运行5.3if语句1.if(表达

式)语句格式:if(expression)stat1;语句或复合语句。流程图:e?yesstat1;no入口出口5.3.1If语句的三种格式例:输入两个实数a,b,使a<b并将这两个数输出。main(){floa

ta,b,t;printf("inputtwonumber:");scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%f,%f",a,b);}例:输入三个数a,b,c,按由小到大的顺序输出这三个数(即使a<b<c)。main(){f

loata,b,c,t;printf("inputthreenumber:");scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=

b;b=c;c=t;}printf("%f,%f,%f",a,b,c);}5.3if语句2.if–else结构格式:if(expression)stat1;elsestat2;流程图:e?yesstat1;stat2;no入口出口举例:输出|x|。#include<stdi

o.h>/*q3.c*/main(){intx;scanf(“%d”,&x);if(x>=0)printf(“%d”,x);elseprintf(“%d”,-x);}实例运行5.3if语句3.if–elseif结构(多分支)格式:if(e1)stat1

;elseif(e2)stat2;elseif(e3)stat3;…elseif(en-1)statn-1;elsestatn;框图:e1?ystat1;ne2?ystat2;出口nen-1?ystatn-1;nstatn;n-1个条件,满足某个条件,执

行对应的语句,然后到出口。5.3if语句征税问题:1000以下税率为3%1000~2000税率为4%2000~3000税率为5%3000以上税率6%输入收入求应缴税款。#include<stdio.h>/*q4.c*/voidmain(void){floatx,rate;scanf(“%f”,

&x);if(x<1000)rate=0.03;elseif(x<2000)rate=0.04;elseif(x<3000)rate=0.05;elserate=0.06;printf(“%f”,x*rate);}实例运行5.3if语句练习:输

入一个分数,将百分制转化为五分制。90分以下打印A80---90打印B70---80打印C60---70打印D60以下打印E#include<stdio.h>/**q5.c**/voidmain(void){inta;scanf(“%d”,&a);if(

a>=90)printf(“ThescoreisA”);elseif(a>=80)printf(“ThescoreisB”);elseif(a>=70)printf(“ThescoreisC”);elseif(a>=60)printf(“Th

escoreisD”);elseprintf(“ThescoreisE”);}实例运行5.3if语句4.if语句的嵌套对于如下的结构:if(e1)stat1;elsestat2;在stat1或stat2中又含有if结构:if(e2)stat3;elsestat4;称为if结构的嵌套。各种if结构

都可以嵌套。说明:①书写采取缩进形式,便于区分。②else与最近的if相匹配,从内到外。x=-1;if(x!=0)if(x>0)y=1;elsey=0;结果?5.3if语句如求符号函数:-1(x<0)y=0(

x=0)1(x>0)#include<stdio.h>voidmain(void){intx,y;scanf(“%d”,&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf(“x=%d,y=%d\n”,x,y);}外层内层在外层els

e语句中,含有一个if结构。自学:P1015.3if语句举例:求一元二次方程ax2+bx+c=0的根。P108#include<stdio.h>/****q6.c****/#include<math.h>voidmain

(void){floata,b,c,d,e,x1,x2;scanf(“%f,%f,%f”,&a,&b,&c);d=b*b-4.0*a*c;if(abs(d)<1.0e-6){x1=x2=-b/(2.0*

a);printf(“\nx1=x2=,%f”,x1);}else{if(d>0){printf(“\nx1=%f”,(-b+sqrt(d))/(2.0*a));printf(“\nx2=%f”,(-b-sqrt(d))/(2.0

*a));}else{printf(“\nx1=%f+i%f”,-b/(2.0*a),sqrt(-d)/(2.0*a));printf(“\nx2=%f-i%f”,-b/(2.0*a),-sqrt(-d)/(2.0*a)

);}}}外层内层求相等实根。求不等实根。求共扼复根。实例运行运行时,如何来输入变量的值吗?为何不写abs(d)=0?5.3if语句(5)条件运算符若if语句中,当表达式为“真”和“假”时,都只执行一

个赋值语句且向同一个变量赋值时,可以用简单的条件运算符来处理。例如,若有以下if语句:if(a>b)max=a;elsemax=b;可以用下面的条件运算符(?:)来处理:max=(a>b)?a:b;条件运算符要求有三个操作对象,称三目(

元)运算符。条件表达式的一般形式为:表达式1?表达式2:表达式35.3if语句(5)条件运算符几点说明:❖条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解

表达式3,表达式3的值就是整个条件表达式的值。max=(a>b)?a:b❖条件运算符优先于赋值运算符,条件运算符的优先级别比关系运算符和算术运算符都低,因此max=(a>b)?a:b括号可以不要,可写成max

=a>b?a:b如果有a>b?a:b+1相当于a>b?a:(b十1),而不相当于(a>b?a:b)+1。!→算术运算符→关系运算符→&&→||→条件运算→赋值运算符5.3if语句(5)条件运算符❖条件运算符的结合方向为“自右至左”。例:a>b?

a:c>d?c:da>b?a:(c>d?c:d)如a=1,b=2,c=3,d=4结果?❖条件表达式中,表达式1的类型可以与表达式2和表达式3的类型不同.如:x?’a’:’b’x是整型变量表达式2和表达式3的类型也可以不同,此时条

件表达式的值的类型为二者中较高的类型。如x>y?1:1.51转换成实型值1.0。5.3if语句(5)条件运算符例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。实例运行m

ain(){charch;scanf("%c",&ch);ch=(ch>='A'&&ch<='Z')?(ch+32):ch;printf("%c",ch);}5.4switch语句(重点)⒉switch语句(多分支结构)格式:switch

(expression){case常量表达式1:statement1;case常量表达式2:statement2;…case常量表达式n-1:statementn-1;default:statementn;}流程:1)、先求expression的

值。2)、依次比较expression和各常量表达式的值。3)、如果和第i个常量表达式相等,则执行第i条以后的语句。4)、如果不相等,则执行default以后的语句。5)、各个case和default

的出现次序可以任意.default也可以不要5.4switch语句语句标号的概念:#include<stdio.h>voidmain(void){chargrade;grade=getchar();switch(grade){c

ase‘A’:printf(“90—100\n”);case‘B’:printf(“80—89\n’);case‘C’:printf(“70—79\n”);case‘D’:printf(“60—69\n”);case‘E’:p

rintf(“<60\n”);default:printf(“error\n”);}}语句标号。break语句:格式:break;作用:中断switch流程。break;break;break;break;break;5.4switch语句例:输出五分

制对应的百分制范围。#include<stdio.h>/*****q8.c****/voidmain(void){charchGrad;chGrad=getchar();switch(chGrad){case‘a’:case‘A’:printf(“90—100\n”);break;case‘b

’:case‘B’:printf(“80—89\n”);break;case‘c’:case‘C’:printf(“70—79\n”);break;case‘d’:case‘D’:printf(“60—69\

n”);break;case‘e’:case‘E’:printf(“<60\n”);break;/*省略break->“实例运行2”*/default:printf(“DataError!\n”);}}多个标号可以共用相

同的语句。default语句可以省略。实例运行15.4switch语句#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){ca

se0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d",a,b);}运行结果?break语句没有,结果?运行结果为:a=2,b=1分支结构小结if构成的三种分支结

构单分支:如果a>b,则交换a、b的值。if(a>b){temp=a;a=b;b=temp;}标准二分支:求a和b的最大值。if(a>=b)iMax=a;elseiMax=b;两种多分支if-elseif结构适用于连续不同区间的分支。i

f(a>=90)printf(“A”);elseif(a>=80)printf(“B”);elseif(a>=70)printf(“C”);elseif(a>=60)printf(“D”);elseprintf(“E”);switch结构适用于离散值产生的分支

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?