欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《C语言程序设计》第4章选择结构程序设计ppt课件.ppt

    • 资源ID:2052643       资源大小:465KB        全文页数:33页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《C语言程序设计》第4章选择结构程序设计ppt课件.ppt

    第4章 选择结构程序设计,目前我们已经讲了顺序结构程序设计,实际生活中,若需要处理事情,往往会根据不同的情况,采取相应不同的处理措施。在程序设计中,这种算法表现为根据不同的判定条件,控制执行不同的程序流程。选择结构是程序结构中很重要的一种控制结构。在程序设计时,当需要进行选择、判断和处理的时候,就要用到选择结构。,要设计选择结构程序,要考虑两个方面的问题:,一、在C语言中如何来表示选择的条件?,二、在C语言中实现选择结构用什么语句?,在C语言中表示条件,一般用关系表达式或逻辑表达式,实现选择结构用if语句或switch语句。,我们今天要讲的主要内容如下:,4.if语句,4.switch语句,4.程序举例,4.1.1 if语句的形式,1.单if语句2.if-else语句3.if-else if-else语句,4.1 if语句,4.1.2 if语句的嵌套,1.单if语句,(1)语句格式:if(表达式)语句,(2)注意:表达式即条件,一定要有括号,可以是任意类型的表达式,值为真或假;语句可以是单语句也可以是语句块。,【例4.1】求两个整数a,b中较大者。,(1)算法分析:设三个变量a,b,max。首先假设max=a,然后判断a,b,若a=b则max=b,最后输出max。,1.单if语句,(2)流程图描述:,1.单if语句,#include stdio.hvoid main()int a,b,max;printf(a,b=);scanf(%d,%d,2.if-else语句,(1)语句格式:if(表达式)语句1 else 语句2,(2)注意:if和else同属于一个if语句;语句1和语句2可以是单语句也可以是语句块。,(1)算法分析:设3个变量a,b,max。首先输入a,b,然后判断a,b,较大者放在max中,最后输出max。,【例4.2】用if-else语句改写例4.1。,2.if-else语句,(2)流程图描述:,2.if-else语句,#include stdio.hvoid main()int a,b,max;printf(a,b=);scanf(%d,%d,3.if-else if-else语句,(1)语句格式:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else 语句n,【例4.】根据成绩打印出等级。(0-59:60-69:70-79:C 80-89:B 90-100:A),算法分析:设成绩为score,假设取值在0-100之间,没有错误的输入。60score0 E 70score60 D 80score70 C 90score80 B 100score90 A,3.if-else if-else语句,1#include stdio.h2 void main()3/*E:0-59 D:60-69 C:70-79 B:80-89 A:90-100*/4 int score;5 printf(score=);6 scanf(%d,17,问题:条件表达式可否采用更简洁的形式?,3.if-else if-else语句,问题:条件表达式的先后可否任意?,3.if-else if-else语句,1#include stdio.h2 void main()3/*E:0-59 D:60-69 C:70-79 B:80-89 A:90-100*/4 int score;5 printf(score=);6 scanf(%d,17,注意条件的表示形式和顺序,3.if-else if-else语句,1#include stdio.h2 void main()3/*E:0-59 D:60-69 C:70-79 B:80-89 A:90-100*/4 int score;5 printf(score=);6 scanf(%d,17,4.1.2 if语句的嵌套,1.嵌套的概念:在if语句中又包含一个或多个if语句。,2.嵌套的形式:if语句可以内嵌在if子句中,又可以内嵌在else子句中。,例如:if()if()语句1 else 语句2 else if()语句3 else 语句4,【例4.4】猜数程序,和预定的数比较,并给出相应的提示。,4.1.2 if语句的嵌套,1#include stdio.h2 void main()3 int number=200;4 int i;5 scanf(%d,13,1#include stdio.h2 void main()3 int a,b,c,max;4 printf(a,b,c=);5 scanf(%d,%d,%d,14,说明:内嵌的if语句既可以嵌套在if部分,也可以嵌套在else部分。,4.1.2 if语句的嵌套,【例4.5】求三个整数a,b,c中的最大数。,3.if 与else的配对规则:else总是与它上面最近的if配对。,特别注意:(1)要采用正确的缩进格式;(2)不易弄清的地方要加上。,例4.5:7 if(ab)8 if(bc)9 max=a;10 else11 if(ac)12 max=b;,4.1.2 if语句的嵌套,例4.4:6 if(inumber)7 printf(Its large!);8 else 9 if(inumber)10 printf(Its small!);11 else12 printf(Its right!);,问题,实现多分支结构的方法有哪些?,方法一:if-else if-else语句方法二:if语句的嵌套,1#include stdio.h2 void main()3 int a,b,c,max;4 printf(a,b,c=);5 scanf(%d,%d,%d,14,用if-else if-else语句改写例4.5。,比较,方法一:ifelse if语句不仅要对多个条件进行并列测试,而且程序描述不够简洁。方法二:if语句的嵌套当分支较多时,嵌套的if语句层数多,程序冗长而且可读性降低。初学者要尽量避免使用if语句的嵌套来解决多分支问题。,4.2 switch语句,1.语句格式:switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1,switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1,注意:1.可以是整型或字符型表达式;2.case后面必须是常量表达式,不能包含变量;3.每个常量表达式的值应互不相同;4.case语句先后顺序随意;5.若从上至下没有找到与表达式的值相匹配的case,含有default子句时,执行语句n+1。,4.2 switch语句,【例4.6】输入一个星期数字,输出其对应的英文单词。,4.2 switch语句,1#include stdio.h2 void main()3 int a;4 printf(please input a week number:);5 scanf(%d,15 16,注意使用break语句。程序修改如下:,4.2 switch语句,1#include stdio.h2 void main()3 int a;4 printf(please input a week number:);5 scanf(%d,15 16,【例4.7】输入任一平年的月份,输出该月份对应的天数。,算法分析:设月份为month,天数为day month=1,3,5,7,8,10,12 day=31 month=4,6,9,11 day=30 month=2 day=28,注意:当多个常量表达式都执行同一组语句时,可将它们集中写在一起。,问题:怎样使得 case语句数目较少?,4.2 switch语句,#include stdio.h void main()int month,day;printf(please input month:);scanf(%d,if-else if-else语句与switch语句的区别,if-else if-else 语句:用于多条件并列测试,从中取一的情形;switch语句:用于单条件测试,从其多种结果中取一的情形。,1#include/*例4.7*/2 main()3 int month,day;4 printf(please input month:);5 scanf(%d,15,1#include stdio.h/*例4.3*/2 void main()3 int score;5 printf(score=);6 scanf(%d,17,【例4.8】输入三个整数,输出最大数和最小数。,4.3 程序举例,1#include stdio.h2 void main()3 4 int a,b,c,max,min;5 printf(a,b,c=);6 scanf(%d,%d,%d,17,【例4.9】计算器程序。用户输入运算数和四则运算符,输出计算结果。,4.3 程序举例,1#include stdio.h2 void main()3 4 float a,b;5 char c;6 printf(请输入运算数和四则运算符如a+(-,*,/)b:);7 scanf(%f%c%f,15 16,【例4.10】求一元二次方程ax2+bx+c=0的根。,4.3 程序举例,分析:一元二次方程的根有下列情况:当a=0,b=0时,方程无解;当a=0,b0时,方程只有一个实根-c/b;当a0时,方程的根为 x=其中,当b24ac0时有两个实根;当b24ac0时有两个虚根。,4.3 程序举例,我们把上述描述用流程图表示,逻辑关系更为清晰。,4.3 程序举例,#include stdio.h#include math.h void main()float a,b,c,disc,x1,x2,realpart,imagpart;printf(a,b,c=);scanf(%f,%f,%f,else realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(方程有两个虚根!n);printf(x1=%8.4f+%8.4fin,realpart,imagpart);printf(x2=%8.4f-%8.4fin,realpart,imagpart);,4.3 程序举例,注意:(1)disc代表b24ac,realpart代表实部,imagpart代表虚部,以增加可读性。(2)由于a,b,disc(即b24ac)为实数,而实数在计算和存储时会有一些微小的误差,因此不能直接进行如下判断:if(a=0.0)。所以采取的办法是判别a的绝对值fabs(a)是否小于一个很小的数(如10-6),如果小于此数,就认为a=0。,

    注意事项

    本文(《C语言程序设计》第4章选择结构程序设计ppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开