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

类型C语言第4章-选择结构课件.ppt

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

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

    特殊限制:

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

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

    1、 第三部分第三部分 C语言的结构语句语言的结构语句 第第4章章 选择结构选择结构问题的提出:百分制成绩的等级划分问题编程实现:给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A等,8980分为B等,7970分为C等,6960分为D等,60分以下为E等。假定成绩为整型数据。这显然是一个必须用选择语句才能解决的问题。本章将围绕此问题不断地尝试不同的解法。4.1 if语句(条件选择语句)vif语句的三种形式l形式一:单分支u格式:if(expression)statementu执行过程:exprstatement非0=0例:if(xy)printf(“%d”,x);exprstat

    2、ement1statement2非0=0l形式二:双分支u格式:if(expression)statement1 else statement2u执行过程:例:if(xy)max=x;else max=y;l形式三:多分支u格式:if(expr1)statement1else if(expr2)statement2else if(expr3)statement3.else statementn expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u执行过程:例:if(salary1000)index=0.4;else i

    3、f(salary800)index=0.3;else if(salary600)index=0.2;else if(salary400)index=0.1;else index=0;如:if(a=b&x=y)printf(“a=b,x=y”);if(3)printf(“OK”);if(a)printf(“%d”,a);l说明:uif后面的表达式类型任意(关键:非0为真)u语句可以是复合语句u if(x)if(x!=0)if(!x)if(x=0)例 考虑下面程序的输出结果:#include main()int x,y;scanf(“%d,%d”,&x,&y);if(xy)x=y;y=x;else

    4、 x+;y+;printf(“%d,%dn”,x,y);Compile Error!if后只能管后只能管一条语句一条语句/*ch4_1.c*/#include main()int x,y;printf(Enter an integer:);scanf(%d,&x);y=x;if(yabsolute value:%dn,x,y);例 求一个数的绝对值运行:Enter an integer:-12 integer:-12-absolute value:12/*ch4_2.c*/#include main()int a,b;printf(Enter integer a:);scanf(%d,&a);

    5、printf(Enter integer b:);scanf(%d,&b);if(a=b)printf(a=bn);else printf(a!=bn);例 输入两个数并判断两数相等否运行:Enter integer a:12 Enter integer b:12 a=b 运行:Enter integer a:12 Enter integer b:9 a!=b main()int score;scanf(%d,&score);if(score=60&score=70&score=80&score=90)printf(“grade=A”);【例】百分制成绩的等级划分问题之解法1:仅用if单分支语

    6、句实现vif语句嵌套:l一般形式:if(expr1)if(expr2)statement1 else statement2else if(expr3)statement3 else statement4内嵌if内嵌ifif(expr1)if(expr2)statement1 else statement2内嵌ifif(expr1)if(expr2)statement1else statement3 内嵌ifif(expr1)statement1else if(expr3)statement3 else statement4内嵌if例 输入两数并判断其大小关系/*ch4_4.c*/#includ

    7、e main()int x,y;printf(Enter integer x,y:);scanf(%d,%d,&x,&y);if(x!=y)if(xy)printf(XYn);else printf(XYn);else printf(X=Yn);运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Ylif else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对if()if()if()else.else.else.例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”)

    8、;修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);实现if else 正确配对方法:加 例 考虑下面程序输出结果:main()int x=100,a=10,b=20;int v1=5,v2=0;if(a=90)printf(An);else if(grade=80)printf(Bn);else if(grade=70)printf(Cn);else if(grade=60)printf(Dn);else printf(En);4.2 switch语句(开关分支语句)v一般形式:switch(表达式)case E1:语句组 1;brea

    9、k;case E2:语句组 2;break;.case En:语句组 n;break;default:语句组;break;v执行过程:switch表达式语句组1语句组2语句组n语句组.E 1E 2Endefaultcase v说明:lE1,E2,En是常量(整型/字符型)表达式,且值必须互不相同,不能表示范围,如x0 l语句标号作用,必须用break跳出lcase后可包含多个可执行语句,且不必加 lswitch可嵌套l多个case可共用一组执行语句如:case A:case B:case C:printf(“score60n”);break;.例 switch(score)case 5:pri

    10、ntf(“Very good!”);case 4:printf(“Good!”);case 3:printf(“Pass!”);case 2:printf(“Fail!”);default :printf(“data error!”);运行结果:score为5时,输出:Very good!Good!Pass!Fail!data error!如果score分别为3,2,1呢?void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case

    11、3:a+;b+;printf(“na=%d,b=%d”,a,b);运行结果:a=2,b=1【例】根据程序写出运行结果/*ch4_5.c*/#include main()int c;printf(Enter m or n or h or other:);c=getchar();switch(c)case m:printf(nGood morning!n);break;case n:printf(nGood night!n);break;case h:printf(nHello!n);break;default:printf(n?n);break;例 根据输入字母输出字符串main()int gr

    12、ade;printf(input the grade:);scanf(%d,&grade);switch(grade/10)case 10:case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(En);break;【例】百分制成绩的等级划分问题之解法3:【例】从键盘输入三个整数a、b、c,输出最大的一个。main()int a,b,c,max;printf(input a,b,c:);scanf(%d,%d,%d,&a,&b,&

    13、c);if(ab)if(ac)max=a;else max=c;else if(bc)max=b;else max=c;printf(the max is:%d n,max);【例】根据程序写出运行结果答案:答案:2答案:答案:13main()int x=2,y=-1,z=2;if(xy)if(y0)z=0;else z+=1;printf(“%dn“,z);main()int i=10;switch(i)case 9:i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;printf(%dn,i);【例】根据输入的年份和月份,计算该月有多少天?(考虑闰年和平

    14、年的情况)main()int year,month,day;printf(“input the year and month:”);scanf(“%d,%d”,&year,&month);switch(month)case 4:case 6:case 9:case 11:day=30;break;case 2:if(year%4=0&year%100!=0|year%400=0)day=29;else day=28;break;default:day=31;break;printf(“The month is%d dayn”,day);【例】判断一个输入的3位数是否为水仙花数main()int

    15、 a,a1,a2,a3;printf(请输入一个请输入一个3位数的整数:位数的整数:);scanf(%d,&a);a1=a%10;a2=a/10%10;a3=a/100%10;if(a1*a1*a1+a2*a2*a2+a3*a3*a3=a)printf(%d是水仙花数!是水仙花数!,a);elseprintf(%d不是水仙花数!不是水仙花数!,a);4.4 本章小结本章小结本章主要介绍了if语句和switch语句这两中分支语句。if语句包括了三种类型:单分支if语句、双分支if语句和多分支if语句(即if语句的嵌套),if后可以是范围条件,特别注意在if语句的嵌套中if和else的匹配关系;switch语句(按整型、配标号、添按整型、配标号、添break、可跳、可跳出出)主要用于对单条件进行测试,从其多种结果中取一种的情形,要注意在其case分支语句中使用间断语句break语句。在实际运用中,应根据具体的情况灵活使用这两种语句来解决问题。

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

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


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


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

    163文库