书签 分享 收藏 举报 版权申诉 / 36
上传文档赚钱

类型c语言程序设计课件:选择结构.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2088390
  • 上传时间:2022-02-14
  • 格式:PPT
  • 页数:36
  • 大小:91KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《c语言程序设计课件:选择结构.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 课件 选择 结构
    资源描述:

    1、第五章第五章 选择结构程序设计选择结构程序设计 对于如下的函数计算,算法上属于一个选对于如下的函数计算,算法上属于一个选择结构。择结构。 y=y= 用于实现选择结构的主要是用于实现选择结构的主要是ifif语句。语句。1/x 1/x 当当x0 x0时时 10000 10000 当当x=0 x=0时时ifif语句的最常见形式为:语句的最常见形式为: if(if(关系表达式关系表达式) )语句语句1 1; else else 语句语句2 2;如:如: if(if(x!=0 x!=0) y=1/x;) y=1/x; else y=10000; else y=10000;其中其中 x!=0 x!=0 就

    2、是一个关系表达式就是一个关系表达式 !=!= 就是一个关系运算符就是一个关系运算符5 51 1 关系运算符和关系表达式关系运算符和关系表达式1 1、关系运算符、关系运算符用于进行比较运算的运算符。共有六种:用于进行比较运算的运算符。共有六种: = = = != = = = !=优先级与结合性:优先级与结合性: 前前4 4种大于后两种。种大于后两种。 低于算术运算符而高于赋值运算符。低于算术运算符而高于赋值运算符。 左结合性。左结合性。2 2、关系表达式、关系表达式一般形式:一般形式:表达式关系运算符表达式表达式关系运算符表达式 如:如:ab a+bb+cab a+bb+c 经过关系运算后最终有

    3、一个值经过关系运算后最终有一个值-关系表达关系表达式的值式的值。 关系表达式的值只有关系表达式的值只有 0 0( (假假)或)或1 1(真真)例:例:设设 a=2, b=4, c=1 a=2, b=4, c=1 计算以下关系表达计算以下关系表达式的值:式的值:ab ab a+bb+ca+bb+cab ab 可以是字符表达可以是字符表达式式(x=2x=2)(y=5) (y=5) 可以是赋值表达式可以是赋值表达式(a(bc) (a(bc) 甚至可以是关系表达式甚至可以是关系表达式ab= =bcab= =byx+zyxy=yzxy=yz=xzyz=xzyxz yxz (x=y-2)z+1=x+y(x

    4、=y-2)z+1=x+ya=x+y=x+zx+1a=x+y=x+zx+15 52 2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式有时,只用一个简单的关系表达式完整地表有时,只用一个简单的关系表达式完整地表达一个条件,如:达一个条件,如: y= y= 其中的条件需要用逻辑表达式来表达:其中的条件需要用逻辑表达式来表达: x!=0 &a!=0 x!=0 &a!=0 &就是一种逻辑运算符。就是一种逻辑运算符。1/x+1/a 1/x+1/a 当当x0,a0 x0,a0时时 10000 10000 其它其它1 1、逻辑运算符、逻辑运算符& & 逻辑与逻辑与 两个操作数都为真时两个操作数都为真时&运算结

    5、果为真。运算结果为真。| 逻辑或逻辑或 两个操作数之一为真时即为真。两个操作数之一为真时即为真。! ! 逻辑非逻辑非 (单目运算单目运算) 操作数为真(操作数为真(假假)时为假()时为假(真真)。)。 如:如:若若 a=2, b=3, c=0 a=2, b=3, c=0 则:则: ab&bc ab&bc 0 0 ab|bc ab|bc 1 1 !(ab) !(ab) 0 0优先级优先级(由高到低):(由高到低):! ! 逻辑非逻辑非算术运算符算术运算符关系运算符关系运算符&逻辑与逻辑与|逻辑或逻辑或赋值运算符赋值运算符结合性:结合性:左结合性左结合性2 2、逻辑表达式、逻辑表达式 实际上,前面

    6、所举例子即为逻辑表达式实际上,前面所举例子即为逻辑表达式: ab&bc ab|bc !(ab)ab&bc ab|bc !(ab) 逻辑表达式的值同样只有逻辑表达式的值同样只有1 1和和0 0,但参加逻辑,但参加逻辑 运算的操作数可以是任意类型的数据,可以是运算的操作数可以是任意类型的数据,可以是 任意大小。任意大小。例:例: a+b&b+ca+b&b+c 是合法的逻辑表达式。是合法的逻辑表达式。此时以此时以0 0代表代表假假,非非0 0代表代表真真。例:例:设设 a=2, b=3, c=0 , a=2, b=3, c=0 , 计算以下表达式计算以下表达式的值:的值: a&b b&c a|ca&

    7、b b&c a|c !a+c&b+c !a+c&b+c !c+a=b|ba !c+a=b|bc+10 a+c|a+bc+10对于逻辑表达式的两种基本技能:对于逻辑表达式的两种基本技能: 逻辑表达式的计算。逻辑表达式的计算。 逻辑表达式的构造。逻辑表达式的构造。逻辑表达式的构造举例:逻辑表达式的构造举例: abcabc a a和和b b之一为之一为0 0,但不同时为,但不同时为0 0a=b=c a=b=c 5=4=35=4=3a=b&b=ca=b&b=ca=0&b!=0 | a!=0&b=0a*b=0a*b=0&a+b!=0对于对于 a=0 & b!=0 | a!=0 & b=0a=0 & b!

    8、=0 | a!=0 & b=0 a=0 a=0可以用可以用!a!a代替代替 a!=0a!=0可以直接用可以直接用a a !a & b | a & !b!a & b | a & !b但必须是运算结果作为逻辑量的情况下。但必须是运算结果作为逻辑量的情况下。 y=(y=(a!=0a!=0) ) 与与 y=y=a a 不等效不等效5 53 if3 if语句语句1 1、ifif语句的三种形式语句的三种形式 ifif(表达式表达式)语句;)语句; 有一分支为空。有一分支为空。 scanfscanf(“%d”,&score);(“%d”,&score); if( if(score=60score=60) p

    9、rintf) printf(“pass”)(“pass”); ; ifif(表达式表达式)语句)语句1 1; else else 语句语句2 2; if(if(x!=0 x!=0) y=1/x;) y=1/x; else y=10000; else y=10000; ifif(表达式表达式1 1)语句)语句1 1; else if(else if(表达式表达式2 2) )语句语句2 2; else if(else if(表达式表达式3 3) )语句语句3 3; else else 语句语句n n; if(score=100) printfif(score=100) printf(“A”);(“

    10、A”); else else if(score=90) printfif(score=90) printf(“B”);(“B”); else else if(score=80) printfif(score=80) printf(“C”);(“C”); else else if(score=70) printfif(score=70) printf(“D”);(“D”); else else if(score=60) printfif(score=60) printf(“E”);(“E”); else printf else printf(“F”);(“F”); 对于:对于: 1/x 1/x

    11、当当x0 x0时时10000 10000 当当x=0 x=0时时一般用:一般用:if(x!=0) y=1/x;if(x!=0) y=1/x;else y=10000;else y=10000;也可用:也可用:y=10000;y=10000;if(x!=0) y=1/x;if(x!=0) y=1/x;y=y=? ?y=1/x;y=1/x;if(x=0)y=10000if(x=0)y=10000 例:(习题例:(习题5.55.5): :x (x1)2x-1 (1x10)10) 3x-11 (x10)y=y= main()main() float x,y; float x,y; scanf scan

    12、f(“%f”,&x);(“%f”,&x); if(x1) y=x;if(x1) y=x; else if(x10) y=2 else if(x10) y=2* *x-1;x-1; else y=3 else y=3* *x-11;x-11; printf printf(“n y=%f”,y);(“n y=%f”,y); 说明:说明: 语句中的表达式可以是任意表达式:语句中的表达式可以是任意表达式: if(if(x x) y=1/x;) y=1/x; else y=10000; else y=10000; 一个一个ifif结构不可分割:结构不可分割: if(x) y=1/x;if(x) y=1/

    13、x; z=10;z=10; else y=10000; else y=10000;一个分支中包含多个语句时,要用一个分支中包含多个语句时,要用 : if(a0) if(amax) max=b; if(bmax) max=b; if(cmax) max=c; if(cmax) max=c; printf printf(“n max=%d”,max);(“n max=%d”,max); 例:例:从键盘输入三个整数到变量从键盘输入三个整数到变量a,b,c,a,b,c,要求要求按从大到小的顺序输出。按从大到小的顺序输出。 两种典型算法:两种典型算法: 枚举法枚举法(将各种可能的排列枚举出来)(将各种可

    14、能的排列枚举出来)。 换位法换位法(将(将a,b,ca,b,c中的数据换位)。中的数据换位)。换位法换位法main()main() int a,b,c,t; int a,b,c,t; scanf scanf(“%d,%d,%d”,&a,&b,&c);(“%d,%d,%d”,&a,&b,&c); if(ab) t=a; a=b; b=t;if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; if(b=80)if(score=80) if(score=90) printfif(

    15、score=90) printf(“A”);(“A”); else else printf printf(“B”);(“B”);else else if(score=60) printfif(score=60) printf(“C”);(“C”); else printf else printf(“D”);(“D”);注意注意elseelse与与ifif的匹配的匹配3 3、条件运算符、条件运算符如果两个分支的内容都是给同一个变量赋值如果两个分支的内容都是给同一个变量赋值,则可用简单的条件运算符处理:,则可用简单的条件运算符处理: if(ab) max=a;if(ab) max=a; else

    16、max=b; else max=b;可用:可用: max=max=ab ab ? ? a a : : b b; ;赋值运算符右边为一条件表达式。赋值运算符右边为一条件表达式。条件表达式的一般形式:条件表达式的一般形式: 表达式表达式1 1 ? 表达式表达式2 2 : 表达式表达式3 3条件表达式的执行过程:条件表达式的执行过程: ab ab ? ? a a : : b b 优先级:优先级:低于关系运算符,高于赋值运算符。低于关系运算符,高于赋值运算符。结合性结合性:右结合性。:右结合性。 表达式表达式1 1条件表达式条件表达式, ,取表达式取表达式3 3的值的值条件表达式条件表达式 取表达式取

    17、表达式2 2的值的值 非00 例:求例:求a,b,ca,b,c中的最大值:中的最大值:max= ab max= ab ? ? (ac (ac? ?a a: :c) c) : : (bc (bc? ?b b: :c) ;c) ;5 54 switch4 switch语句(语句(多分支多分支) 适用于根据一个表达式的值就可确定适用于根据一个表达式的值就可确定走哪个分支的情况。走哪个分支的情况。 switchswitch(表达式表达式) 常量表达式常量表达式1 1: 语句语句1 1 常量表达式常量表达式2 2: 语句语句2 2 常量表达式常量表达式n n: 语句语句n n default defau

    18、lt: 语句语句n+1n+1 例:成绩分档:例:成绩分档:switch(switch(score/10score/10) ) case 10: printf case 10: printf(“A”);(“A”); case 9: printf case 9: printf(“B”);(“B”); case case 8: printf 8: printf(“C”);(“C”); case 7: printf case 7: printf(“E”);(“E”); case 6: printf case 6: printf(“F”);(“F”); default : printf default

    19、: printf(“G”);(“G”); 注:应使用注:应使用break.break.switch(switch(score/10score/10) ) case 10: printf case 10: printf(“A”); (“A”); break;break; case 9: printf case 9: printf(“B”); (“B”); break;break; case 8: printf case 8: printf(“C”); (“C”); break;break; case 7: printf case 7: printf(“E”); (“E”); break;brea

    20、k; case 6: printf case 6: printf(“F”); (“F”); break;break; default : printf default : printf(“G”);(“G”); 5 55 5 程序举例程序举例 ( (习题习题5.10) 5.10) 有有4 4个圆塔,圆心分别为:(个圆塔,圆心分别为:(2 2,2)2),(-2-2,2 2),(),(-2-2,-2-2),(),(2 2,-2-2),圆),圆半径为半径为1 1。这。这4 4个塔的高度为个塔的高度为10m,10m,塔以外无塔以外无建筑物。今输入任一点的坐标,求该点的建筑物。今输入任一点的坐标,求该点的

    21、建筑高度(塔外的高度为建筑高度(塔外的高度为0 0)。)。算法设计:算法设计: 条件条件“在某一圆内在某一圆内” ” : “ “在圆在圆1 1内或在圆内或在圆2 2内或在圆内或在圆3 3内或在圆内或在圆4 4内内” 若设变量若设变量c1c1、c2c2、c3c3、c4c4分别代表是否在相分别代表是否在相应的圆内,则以上条件为:应的圆内,则以上条件为: c1|c2|c3|c4c1|c2|c3|c4 10 在某一圆内在某一圆内0 在圆外在圆外 (x,yx,y) h=h=c1=(x-2)c1=(x-2)2 2+(y-2)+(y-2)2 211c2=(x+2)c2=(x+2)2 2+(y-2)+(y-2

    22、)2 211c3=(x+2)c3=(x+2)2 2+(y+2)+(y+2)2 211c4=(x-2)c4=(x-2)2 2+(y+2)+(y+2)2 211main()main() int int h,c1,c2,c3,c4;h,c1,c2,c3,c4; float x,y; float x,y; scanf scanf(“%f%f”,&x,&y);(“%f%f”,&x,&y); c1=(x-2) c1=(x-2)* *(x-2)+(y-2)(x-2)+(y-2)* *(y-2)=1;(y-2)=1; c2=(x+2) c2=(x+2)* *(x+2)+(y-2)(x+2)+(y-2)* *(y-2)=1;(y-2)=1; c3=(x+2) c3=(x+2)* *(x+2)+(y+2)(x+2)+(y+2)* *(y+2)=1;(y+2)=1; c4=(x-2) c4=(x-2)* *(x-2)+(y+2)(x-2)+(y+2)* *(y+2)=1;(y+2)=1; if(c1|c2|c3|c4) h=10;if(c1|c2|c3|c4) h=10; else h=0; else h=0; printf printf(“n h=%d”,h);(“n h=%d”,h);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:c语言程序设计课件:选择结构.ppt
    链接地址:https://www.163wenku.com/p-2088390.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库