收藏 分销(赏)

第4章中职类的C语言课件.ppt

上传人:s4****5z 文档编号:14014208 上传时间:2026-05-27 格式:PPT 页数:29 大小:311KB 下载积分:10 金币
下载 相关 举报
第4章中职类的C语言课件.ppt_第1页
第1页 / 共29页
第4章中职类的C语言课件.ppt_第2页
第2页 / 共29页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,Page,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章,选择程序设计,概述,4.1,条件选择语句,if,语句,4.2,多分支选择语句,switch,结构,4.3,选择结构是,C,语言程序中的一种重要结构形式,这种程序结构通过条件判断的方法有选择性地执行部分程序语句,大大提高了程序的灵活性,并强化了程序的功能。我们在编写,C,程序时通常都要使用到选择结构,以设计出结果多样化的程序。正确掌握选择结构的使用方法是学习,C,程序设计的一项基本要求。,【,学习目标,】,理解,C,语言中各类控制语句的执行过程、功能和使用方法,掌握,if,语句的,3,种形式、,if,和,else,配对规则及,if,语句的嵌套,能正确地使用,switch,语句设计多分支选择结构,4.1,概述,在日常生活中,经常遇到这样的情况:只有满足一定条件时才能做某一件特定的事情,否则就不能做这件事情转而去完成其他任务。例如,只有担任学生干部的学生才能被评为优秀学生干部,否则只能被评为优秀学生;只有高考成绩达到某一较高录取分数线的学生才能升入重点大学,否则只能升入一般大学,甚至还可能失去继续学习的机会。,C,语言程序是结构化的程序。在运行,C,程序时,并不是组成程序的所有代码都会按照书写顺序依次执行而获得单一的运行结果。,C,语言中通过选择结构来实现对代码的选择执行,在,C,程序的选择结构中包含了条件判断语句,运行程序时,首先进行必要的条件判断,然后根据条件成立与否有选择性地执行不同的程序代码,使得同一程序在不同的运行条件下可以获得不同的结果,这样就增强了程序的灵活性。,在,C,语言中,选择程序结构主要通过以下两类语句来实现。,if,语句。,switch,语句。,本章将分别讲述使用这两类语句构成选择结构的一般方法。,4.2,条件选择语句,if,语句,4.2.1 if,语句的第,1,种形式,if,结构,4.2.2 if,语句的第,2,种形式,if-else,结构,4.2.3 if,语句的第,3,种形式,if-else,if-else,结构,使用,if,语句构成的选择结构在,C,语言中应用最为广泛,是,C,程序中的重要结构单元。根据实现功能和实现形式的差异,,if,语句包括以下,3,种形式。,if,结构:根据一定条件选择执行一条(或一组)语句。,if-else,结构:根据一定条件从两条(或两组)语句中选择执行一条(或一组)语句。,if-else,if-else,结构:根据一定条件从多条(或多组)语句中选择执行一条(或一组)语句。,下面将分别介绍这,3,种,if,语句的设计方法。,4.2.1 if,语句的第,1,种形式,if,结构,if,结构是最简单的选择结构,首先判断一个条件,当条件满足时,执行对应的语句(组),否则跳过该语句(组)。,图,4-1 if,语句执行流程图,(,1,),if,结构的格式为,if(,表达式,),语句,(,2,),if,语句的执行流程如图,4-1,所示。,(,3,),if,语句结构的执行过程如下。,首先判断表达式的值,如果其值为“真(非,0,)”则执行语句(或语句组),然后执行后续语句;如果其值为“假(,0,值)”则跳过语句(或语句组),然后执行后续语句。,4.2.2 if,语句的第,2,种形式,if-else,结构,if-else,语句可以实现双分支结构,可以根据条件成立与否从两个语句(组)中选取一个来执行。,(,1,),if-else,结构的格式为,if(,表达式,),语句,1;,else,语句,2;,其中,语句,1,称为,if,子句,语句,2,称为,else,子句,这种,if,子句与,else,子句配套的语句叫做,if-else,语句。在程序运行过程中,根据表达式的值真假与否,从两个子句中选取一个子句执行。,(,2,),if-else,结构的流程图如图,4-2,所示。,(,3,),if-else,结构的执行过程如下。,首先判断表达式的值,如果其值为“真(非,0,)”则执行语句,1,(或语句组,1,),然后执行后续语句;如果其值为“假(,0,值)”则执行语句,2,(或语句组,2,),然后执行后续语句。,图,4-2 if-else,结构的流程图,if-else,结构用于根据条件满足与否从两条(或两组)语句中选择执行一条(或一组)语句。先看以下的案例程序。,4.2.3 if,语句的第,3,种形式,if-else,if-else,结构,前面已讲述了,if,语句的两种基本使用形式,使用,if,结构可以根据条件满足与否跳过部分语句;使用,if-else,结构可以根据条件满足与否从两组语句中选择执行其中的一组。但是,在这两种用法中,最多也只能处理有两种可供选择的情况。如果在程序设计时需要从多组语句中选择一组来执行又应该怎么办呢?这时就可以使用,if,语句的第,3,种形式,if-else,if-else,结构。,(,1,),if-else,if-else,结构的格式如下:,if(,表达式,1),语句,1,;,else if(,表达式,2),语句,2;,else if(,表达式,3),语句,3;,else if(,表达式,n,-1),语句,n,-1;,else,语句,n,;,(,2,)使用说明。,if-else,if-else,语句用在多分支路径中,在程序执行时,按照程序书写顺序依次判断每条分支圆括号内表达式的真假。,当圆括号内表达式的值为“真(非,0,)”时,则执行该分支下面的语句,完成后退出条件结构而执行后续语句。,程序仅仅选择执行表达式值为“真(非,0,)”的那条路径下的语句,“,多选一”。,如果所有表达式的值都为“假”,则执行最后一个,else,路径下的语句。,在程序运行过程中,有且仅有一条路径上的语句被执行。,4.3,多分支选择语句,switch,结构,4.3.1 switch,结构的基本形式,4.3.2,带,break,语句的,switch,语句,在前面的内容中,学习了使用,if,语句构建选择结构的一般方法。使用,if-else,结构可以实现双分支选择功能,使用,if-else,if-else,结构可以实现多分支选择功能,但是这种多分支结构使用起来比较繁琐。,在,C,程序中,使用,switch,结构可以非常方便地构成多分支选择结构。一个程序涉及的分支越多,越适合使用,switch,结构。,4.3.1 switch,结构的基本形式,图,4-4 switch,结构的流程图,switch,结构用于实现多分支选择结构,也就是说可以从多组语句中选择执行其中的部分语句。,(,1,),switch,结构的语法格式为,switch(,表达式,),case,常量表达式,1:,语句,1;,case,常量表达式,2:,语句,2;,case,常量表达式,n,:,语句,n,;,default:,语句,n,+1;,(,2,)该语句的执行过程如下,首先将“表达式”的值依次与各个“常量表达式”进行比较,哪个“常量表达式”的值与“表达式”的值相等,就执行该“常量表达式”后面的语句,此时该语句称为执行,switch,语句的入口。,一旦一个语句被执行后,顺次执行其后的所有语句,而不必再判断相应的“常量表达式”的值是否和“表达式”的值相等。,当所有,case,后的“常量表达式”都不与“表达式”的值相等时,就只执行,default,后的语句。,当“表达式”的值与“常量表达式,1”,相一致时,不仅执行语句,1,,而且其后的语句,2,到语句,n+1,也都被执行。同理,当“表达式”与“常量表达式,3”,相一致时,不仅执行语句,3,,而且其后的语句,4,到语句,n+1,也都被执行;当所有的“常量表达式”与“表达式”都不一致时,就只执行语句,n+1,。,(,3,)使用说明,switch,后面圆括号内的“表达式”可为任何类型,并且“表达式”的类型和“常量表达式”的类型一定要一致,否则会出现语法错误。当“常量表达式”的值与“表达式”的值相等时,执行其后的所有的语句,否则就执行,default,后面的语句。圆括号不能省略,且其外没有“;”,否则会出现语法错误。,switch,语句中大括号内的部分称为,switch,语句的语句体。,default,出现的顺序并不影响程序的功能,,default,后的语句总是最后执行。,case,后必须是常量表达式并且每个,case,后面的常量表达式必须互不相同,,case,和常量表达式之间一定要有空格,否则为语法错误。,每个,case,所管辖的语句可以是一条语句,也可以是多条语句,若是多条,可不加大括号。,case,后的语句还可以为空,当为空时,什么都不做,程序继续执行下一条,case,后的语句,不影响其他语句的执行。,4.3.2,带,break,语句的,switch,语句,break,语句用来实现程序的跳转和退出。,由前一节可知,,switch,语句的基本结构只能实现“满足一个条件执行多个或一个,case,之后语句的情况”,但是如果要实现“满足多个或一个条件只执行一个,case,之后语句的情况”又怎么办呢?此时就要使用带,break,语句的,switch,语句。,(,1,)带,break,语句的,switch,语句语法格式为,switch(,表达式,),case,常量表达式,1,:语句,1;break,;,case,常量表达式,2,:语句,2;break,;,case,常量表达式,n,:语句,n,;break,;,default,:语句,n,+1;,与,switch,语句的基本形式相比,带,break,语句的,switch,语句最本质的差异是:一旦程序执行到,break,语句,将跳出,switch,语句,从而结束分支选择。,(,2,)带,break,语句的,switch,语句的流程,首先计算,switch,后面圆括号内的表达式的值,比较该值和,case,后的“常量表达式”的值是否相等,找到执行,switch,语句体的入口。,入口之前的,case,的语句不被执行,只执行入口以后,case,后的语句。,如果入口以后的,case,之后均没有,break,语句,则入口后所有,case,后的语句均被依次顺序执行,最后执行,default,以后的语句(此时即为,switch,语句的基本用法)。,如果在执行入口及其以后,case,后的语句的过程中一旦遇到,break,语句,则立即结束,switch,语句的执行。,(,3,)用法说明,switch,语句的基本用法中的所有规范均适用于带,break,语句的,switch,语句。对带,break,语句的,switch,语句当“常量表达式”的值与“表达式”的值相等时,就执行相应“常量表达式”后的语句(包括,case,和,default,后的语句),如果遇到,break,语句则跳出,switch,语句的语句体,结束,switch,语句的执行;当“常量表达式”的值与“表达式”的值不相等时,就只执行,defaut,后面的语句。,习题,一、选择题,下面不正确的,if,语句形式是,。,A,if(x,y);B,if(x,=y)x+=y;,C,if(x,!=y),scanf(%d,a,)D,if(x,0),prinntf(%f,x,)B,if(x,0)x=,x+y,;y=,y-x,;,else,prinntf(%f,-x,);else,printf(%d,x,);,C,if(x,0)x=,x+y,;y=,y-x,:,D,if(x,0)x=,x+y,;y=,y-x,;,else,printf(%d,x,);else,printf(%d,x,);,二、填空题,1,某服装店经营套服,不单件出售。若买的不少于,100,套,每套,70,元;若买的不少于,50,套,每套,80,元;若买的不足,50,套,每套,90,元。以下程序的功能是读入买上衣和裤子的套数,n,并计算应付的款项,m,。,#include,main(),int,m,n,;,printf(Input,n,:,n);,scanf(%d,n,);,if()m=n*70;,if()m=n*80;,if(n,50)m=(),2,以下程序段:,switch(grade,),case A:printf(85100n);,case B:printf(7084n);,case C:printf(6069n);break,:,case D:,printf,(60n);,defaut,:,printf(error,);,若输入的,grade,值为,A,,则输出的结果是,。,若输入的,grade,值为,B,,则输出的结果是,。,若输入的,grade,值为,C,,则输出的结果是,。,若输入的,grade,值为,D,,则输出的结果是,。,若输入的,grade,值为,b,,则输出的结果是,。,三、编程题,1,输入整数,a,,,b,,若,a2+b2,大于,100,,则输出百位以上的数字,否则输出两数之和。,2,判断输入的正整数是否既是,5,又是,7,的整倍数。若是则输出,yes,,否则输出,no,。,3,输入,3,个整数,判断能否构成三角形。能则按从小到大的顺序输出,3,条边的值;否则输出字符串“,cant comprise!”,。,4,编程实现以下功能:输入一个小写字母,将字母循环后移,5,个位置后输出。例如,a,变成,f,,,w,变成,b,。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服