选择结构程序结构设计

上传人:痛*** 文档编号:245803350 上传时间:2024-10-10 格式:PPT 页数:36 大小:537.50KB
返回 下载 相关 举报
选择结构程序结构设计_第1页
第1页 / 共36页
选择结构程序结构设计_第2页
第2页 / 共36页
选择结构程序结构设计_第3页
第3页 / 共36页
点击查看更多>>
资源描述
,*,BISTU,1,第,4,章,选择结构程序设计,2,第四章,选择结构程序设计,一、关系运算符和关系表达式,二、逻辑运算符和逻辑表达式,三、使用,if,语句实现的选择结构,四、条件运算符和条件表达式,五、,switch,语句,六、选择结构程序举例,主要内容,3,关系运算符,=!=(6,种,),第四章,选择结构程序设计,优先级,赋值,关系,(,后,2,前,4,)3,一、关系运算符和关系表达式,4,21,9,举例,已知,a=5,,,b=4,,,c=3,,,d=7,求下列表达式的值,a+b=c*d,abc,a!=bbc,1,0,a!=b c,0,1,算术运算符的优先级高于关系运算符,不能用于判断,b,的值是否在,a,与,c,之间,“”,运算符的优先级高于“,!=”,5,逻辑运算符,!,(逻辑非),&,(逻辑与),|,(逻辑或),运算规则,优先次序,赋值,|&,关系,算术,3)|b,0,双目,单目,二、逻辑运算符和逻辑表达式,6,第四章,选择结构程序设计,二、逻辑运算符和逻辑表达式,第五章,选择结构程序设计,举例,53&8 3)&(8 3|(a=6),1,逻辑运算符两侧的运算对象不但可以是和,也可以是或非的整数,也可是任何类型的数据。系统判定标准:为假;非为真。,当“与运算”的左侧为,0,,或者“或运算”的左侧为,1,时,右侧的表达式不再进行计算。,短路现象,#include ,void main(),int a=1,b=1;,if(a1,printf(“%d,%d”,a,b);,1,1,7,选择结构,单分支,双分支,if (,表达式,),语句,多分支,if (,表达式,),语句,else,语句,if (,表达式,1),语句,else if (,表达式,),语句,else,语句,n,if,语句的嵌套,switch,语句,第四章,选择结构程序设计,选择结构的分类,8,格式,流程图,第四章,选择结构程序设计,if (,表达式,),语句,三、,if,语句实现选择结构,单分支,不成立,(,假、,0,),表达式,语句块,成立,(,真、,1,),if(xy)printf(“%d”,x);,举例,9,例,4.5,第四章,选择结构程序设计,#include stdio.h,int main(),int num1,num2,max;,printf(input two numbers:n);,scanf(%d%d,max=num1;,if(maxb),t=a;a=b;b=t;,printf(“%5.2f,%5.2fn”,a,b);,return 0;,3,4,3.00,4.00,if(ab),t=a;a=b;b=t;,if(ab),t=a;,a=b;,b=t;,3,4,4.00,0.00,当某些语句作为一个整体出现的时候,必须是复合语句的形式。,三、,if,语句实现选择结构,单分支,输入两个实数,按由小到大的数序输出它们。,11,格式,if(xy)printf(“%d”,x);,else printf(“%d”,y);,第四章,选择结构程序设计,if (,表达式,),语句,else,语句,三、,if,语句实现选择结构,双分支,举例,流程图,12,第四章,选择结构程序设计,#include ,int main(),float a,b,c,p,s;,scanf(“%f,%f,%f”,if(a+bc&a+cb&b+ca),p=(a+b+c)/2;,s=sqrt(p*(p-a)*(p-b)*(p-c);,printf(“s=%7.2fn”,s);,else,printf(“Not a triangle!n”);,return 0;,输入三角形的三边,求三角形的面积。,3,4,5,s=6.00,3,4,8,Not a triangle!,三、,if,语句实现选择结构,双分支,例,4.9,输入,a,b,c,是三角形吗?,p,(a+b+c)/2,s,sqrt(p*(p-a)*(p-b)*(p-c),输出,s,输出“,Not a,triangle!”,13,编程实现如下分段函数,输出结果保留,2,位小数。,y=,0 x0,练习,1,#include,#include,int main(),float x,y;,scanf(“%f”,if,(x=0),y=0;,else,y=sqrt(x);,printf(“x=%.2f,y=%.2fn”,x,y);,return 0;,这,4,行包含,几条语句?,if(x0),y=sqrt(x);,14,编程实现分段函数。,y=,0 x0,1.0/x 020,2x+1 10 x20,例,4.11,输入,x,x=0,是,否,y=0,否,0 x10,是,y=1.0/x,x20,是,否,y=5*x-1,0 x&x=10,x=10,y=5*x-1,if,(x=0),y=0;,else,if,(x=10),y=1.0/x;,else,if,(x=20),y=y=2*x+1;,else,y=5*x-1;,输出,y,15,第四章,选择结构程序设计,if,(,表达式,1),语句组,else if,(,表达式,),语句组,else if,(,表达式,n),语句组,n,else,语句组,n+1,三、,if,语句实现选择结构,多分支,(,1,),ifelse if,形式,16,#include stdio.h,int main(),float x,y;,scanf(%f,if,(x=0)y=0.0;,else if,(x=10)y=1.0/x;,else if,(x=20)y=y=2*x+1;,else,y=5*x-1;,printf(x=%.2f,y=%.2fn,x,y);,return 0;,第一次运行:,5,x=5.00,y=0.20,15,x=15.00,y=31.00,第二次运行:,21.67,x=21.67,y=107.35,第三次运行:,y=,0 x0,1.0/x 020,2x+1 10 x20,程序如下:,17,编程实现分段函数,换一种判断顺序,y=,0 x0,1.0/x 020,2x+1 10 x20,例,4.11,输入,x,x=10,是,否,y=1.0/x,否,x=0,是,y=0,x=20,是,否,y=2*x+1,y=5*x-1,if,(x=10),if,(x=0),y=0;,else,y=1.0/x;,else,if,(x=20),y=2*x+1;,else,y=5*x-1;,输出,y,if(x=10),if(x=0)y=0;,else y=1.0/x;,else if(xb),d=a;,else,if(cb)d=c;,else d=b;,if(ab),if(cb)d=c;,else d=b;,if(ab),if(cb)d=c;,else d=b;,if(ab),if(cb)d=c;,else d=b;,else d=a;,d=5,d=3,d=0,d=4,20,使用,if,语句中应注意的问题,在,if,关键字之后的括弧内为表达式,该表达式通常是逻辑表达式或关系表达式,但也可以是其它,任何合法的,C,表达式,条件判断表达式必须用,括弧,括起来,后面,没有分号,。但在语句之后必须加分号。,如果希望在满足,/,不满足条件时执行一组,(,多个,),语句,则必须把这一组语句用,括起来组成一个,复合语句,#include ,int main(),float a,b,c,p,s;,scanf(“%f,%f,%f”,if,(,a+bc&a+cb&b+ca,),p=(a+b+c)/2;,s=sqrt(p*(p-a)*(p-b)*(p-c);,printf(“s=%7.2fn”,s);,else,printf(“Not a triangle!n”);,return 0;,21,条件运算符,条件表达式,举例,if(ab)max=a;,else max=b;,第四章,选择结构程序设计,表达式?表达式:表达式,max=,(ab)?a:b,;,条件运算符的使用条件,若,if,语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值,则可以用简单的条件运算符来处理。,取值,表达式,1,为真,则取值为表达式,2,的值;,表达式,1,为假,则取值为表达式,3,的值。,四、条件运算符和条件表达式,右结合方向,22,使用条件表达式求两个数的较大值。(自己看),#include stdio.h,int main(),float num1,num2,max=0;,scanf(%f,%f,max=(num1num2)?num1:num2;,printf(%5.2fn,max);,return 0;,例,4.14,第一次运行:,3.2,4,4.00,第二次运行:,4,3.2,4.00,23,思考,一个简单的菜单选择程序。,示例,1,示例,2,if-else,switch,24,开关语句,第四章,选择结构程序设计,switch(,表达式,),case,常量表达式,1,:语句组,1,case,常量表达式,2,:语句组,2,case,常量表达式,3,:语句组,3,case,常量表达式,n,:语句组,n,default:,语句组,n+1,五、,switch,语句实现多分支,break;,执行过程,定位入口、依次执行、遇,break,跳出,整型,或,字符型,25,例,4.17,#include ,void main(),char grade;,printf(“,请输入考试等级,AD:”);,scanf(“%c”,&grade),;,switch(grade),case A:printf(“80100n”);,case B:printf(“7079n”);,case C:printf(“6069n”);,case D:printf(“60n”);,default:printf(“errorn”);,B,根据输入的考试成绩等级打印出百分制分数段。,A:80100 B:7079 C:6069 D:60,说明:应在每一个,printf,后加,break,语句,第四章,选择结构程序设计,7079,6069,60,Error,26,#include ,void main(),char grade;,printf(“,请输入考试等级,AD:”);,scanf(“%c”,&grade),switch(grade),case A:printf(“80100n”);,break,;,case B:printf(“7079n”);,break,;,case C:printf(“6069n”);,break,;,case D:printf(“60n”);,break,;,default:printf(“errorn”);,B,7079,最后一行的,break,可以省略。,第四章,选择结构程序设计,例,4.17,根据输入的考试成绩等级打印出百分制分数段。,A:80100 B:7079 C:6069 D:100),printf(“,请输入,0,100,之间的整数,n”);,else if(score=80),printf(“An”);,else if(score=70),printf(“Bn”);,else if(score=60),printf(“Cn”);,else,printf(“Dn”);,根据输入的考试成绩(百分制整数)打印出等级水平。(使用,ifelse,语句实现),A:80100 B:7079 C:6069 D:60,思考:使用,switch,语句如何实现?,程序,第四章,选择结构程序设计,29,#include ,void main(),int score;,printf(“,请输入考试成绩,0,100:”);,scanf(“%d”,switch(score),case,80,100,:printf(“An”);,break,;,case,7079,:printf(“Bn”);,break,;,case,6069,:printf(“Cn”);,break,;,case
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!