ImageVerifierCode 换一换
格式:PPT , 页数:38 ,大小:257.50KB ,
资源ID:10785901      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10785901.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第四章 选择结构.ppt)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第四章 选择结构.ppt

1、C语言程序设计,单击此处编辑母版标题样式,第四章 选择结构程序设计,本章重点,选择结构的含义,If,语句的使用方法,Switch,语句的使用方法,所谓选择结构,是指根据不同的情况做出不同的选择,执行不同的操作。此时就需要对某个条件做出判断,根据这个条件的具体取值情况,决定应该执行何种操作。在解决实际问题中,许多时候需要根据给定的条件进行选择处理:条件满足时做什么,条件不满足时做什么。解决这类问题需要采用选择结构程序来实现。在,C,语言中,用,if,语句或,switch,语句来实现选择结构的程序设计。,4.1 if,语句,3-x x0,2/x x,0,y=,求解该问题的流程如下:,(,1,)输入

2、x;,(,2,)如果,x0,则,y=3-x,,否则,y=2/x,;,(,3,)输出,y,的值。,在此例中,要先判断,x,的值满足什么条件,然后根据判定的结果执行两种操作中的一种。,单分支选择,if,语句的形式为:,if,(表达式)语句,其执行过程是:首先求解表达式的值,若表达式的值为真(即为一个非,0,值),则执行表达式后面的语句;否则不执行任何操作,4.1.1,单分支,if,语句,单分支,if,语句流程图,表达式,语句,假(,0,),真(非,0,),例:输入两个数,比较其大小,将较大的数输出。,分析:,(,1,)输入两个数据,a,b,;,(,2,)进行判断,如果,ab,则输出,a;,否则,

3、输出,b,#include,stdafx.h,#include,void main(),float,a,b,;,printf,(,请输入两个数:,);,scanf(%f,%f,&a,&b,);,if(a,b),printf(%f,a,);,图,4-2,例,4-1,流程图,N,Y,结束,开始,ab,输入,a,输入,b,输出,a,双分支选择语句为,if-else,,语句的结构形式为:,if,(表达式)语句,1,else,语句,2,其执行过程是:首先求解表达式的值,若表达式的值为真(即为一个非,0,值),则执行语句,1,;当表达式的值为假(为,0,),则执行语句,2,4.1.2,双分支,if,语句,

4、双分支,if,语句流程图,表达式,语句,1,语句,2,真(非,0,),假(,0,),例:设计一个猜数游戏,由计算机产生一个随机数,再从键盘输入一个数,若输入的数等于随机数,则输出“,you are right”,,否则输出“,you are wrong”,。,分析:,(,1,),c,语言的库函数,rand(),用以产生随机数,它的取值范围是,032767,之间的一个正整数,;,(,2,)定义一个整型变量,magic,获取调用,rand(),函数时产生的随机数,(,3,)定义一个整型变量,guess,接收键盘输入的数,(,4,)比较,magic,和,guess,的值是否相等,(,5,)输出结果。

5、多分支选择语句的结构形式为:,if,(表达式,1,)语句,1,else if,(表达式,2,)语句,2,else if,(表达式,n,)语句,n,;,else,语句,n+1,;,其执行过程是:首先判断表达式,1,的值,若表达式,1,的值不等于,0,,则执行语句,1,,后面的语句再不执行;否则执行相应的,else,后面的语句,判断表达式,2,的值,若表达式,2,的值不等于,0,,则执行语句,2,,后面的语句再不执行,否则执行后面的,else,语句依此类推。,4.1.3,多分支,if,语句,表达式,1,语 句,1,真(非,0,),假(,0,),语 句,n,表达式,2,语 句,2,表达式,n,语

6、句,n+1,假(,0,),假(,0,),真(非,0,),真(非,0,),图,4-4,(,a,)多分支选择的流程图,多分支控制流程图,【,例,4-3】,要求判别键盘输入字符的类别。可根据输入字符的,ASCII,码来判别类型。在,0,和,9,之间的为数字,在,A,和,Z,之间为大写字母,在,a,和,z,之间为小写字母,其余则为其它字符。,分析:,定义一个字符变量接收键盘输入的值;,#include,stdafx.h,#include,stdio.h,main(),char c;,printf(input,a character:);,c=,getchar,();,if(c,=0&c=,A&c,=,

7、a&c,b),printf(“max,=%,dn”,a,);,else,各有一个分号,printf(“max,=%,dn”,b,);,这是因为是,if,语句中的内嵌语句所要求的,若无此分号,就,会出现语法错误。但注意:,else,子句是,if,语句的一部分,它们,同属于一个,if,语句。,Else,不能作为语句单独使用,必须与,if,配,对使用,。,在,if,和,else,后面只含有一个内嵌的操作语句,当内嵌的操作有,多条时,必须用花括号“,”,括起来。组成一条复合语句且,使用时“”外不再加“;”。,例如:已知三角形的三条边,要求该三角形的面积。,部分程序段为:,if(,a+b,c&,b+c,

8、a&,c+b,a),s=(a+b+c)/2.0;,area=,sqrt(s,*(s-a)*(,s-b,)*(,s-c,);,这里是一条复合语句,printf(“area,=%6.2f”,area);,else,printf(“it,is not trilateral“);,4.1.5 if,语句的嵌套,在,if,语句的内嵌语句(格式中的语句,1,或语句,2,)中,又出现,了,if,语句,称为,if,语句的嵌套,主要用于多分支的选择结构。,一般形式如下:,if(,表达式,1),if,(表达式,2,)语句,1,内嵌,if,语句,1,else,语句,2,else,if,(表达式,3,)语句,3,内嵌

9、if,语句,2,else,语句,4,必须注意,if,与,else,的配对关系。,else,总是与它上面的最近的,if,配对。如:,if(,表达式,1),if,(表达式,2,)语句,1,else,if,(表达式,3,)语句,2,编程者希望的内嵌,if,(将,else,与第一个,if,配对),else,语句,3,实际上,系统执行的是,else,与第二个,else,配对,if(,表达式,1),if,(表达式,2,)语句,1,else,if,(表达式,3,)语句,2,系统执行的内嵌,if,(将,else,与第二个,if,配对),else,语句,3,因此,使用,if,嵌套时,为达到程序设计者的企图,可

10、以加花括号来确定配,对关系,如,if(,表达式,1),if,(表达式,2,)语句,1,使用复合语句达到,else,与第一个,if,配对,else,if,(表达式,3,)语句,2,else,语句,3,If,嵌套执行流程图,if,语句实现了两种分支的选择控制,但如果分支较多时,嵌套的,if,层数多,不仅程序冗长而且可读性降低。,C,语句提供的,switch,语句是用来直接处理多分支选择结构的语句,实际上是,if-else,语句的变型。其特点是根据一个表达式的多种值,选择多个分支,4.2 switch,语句,switch,语句的一般形式如下:,switch(,表达式,),case,常量,C1,:语句

11、1,case,常量,C2,:语句,2,case,常量,Cn,:语句,n,default,:语句,n+1,其执行过程是:计算表达式的值,并逐个与其,后的常量表达式值比较,当表达式的值与某个常量,表达式的值相等时,即执行其后的语句,直到遇到,break,语句为止。如表达式的值与所有,case,后的常量,表达式均不相同时,则执行,default,后的语句。,Switch,语句流程图,Switch,语句的说明,(,1,),Switch,后面括号内的表达式,允许为,c,语句中的任何类型,若表达式的值不是整数则自动取整。,(,2,),C1,C2,Cn,是常量表达式,它们必须与,Switch,后面括号内的

12、表达式同一类型并且其值要互不相同。,(,3,)若希望执行完一组操作语句后退出,Switch,结构,可以用,break,语句终止,Switch,的继续执行。,Break,的作用中断正在执行的语句。在,switch,语句中的作用是:执行某个语句组后,将退出该,switch,语句。如果省略了,break,语句,则执行完某个语句组后,将继续执行其后的所有语句组。,(,4,),Case,和,default,后可面得操作语句可以是简单语句,也可以是复合语句,且这里的复合语句不必加,(,5,),switch,可以嵌套,(,6,)多个,case,可共用一组执行语句,如:,case A:,case B:,cas

13、e ,C:printf(“score,60n”);,break;,例:编写一个程序,输出给定的某年某月的天数。,根据历法,第,1,、,3,、,5,、,7,、,8,、,10,、,12,月的每月为,31,天,第,4,、,6,、,9,、,11,月的每月为,30,天,,2,月份闰年为,29,天,平年为,28,天。判断闰年的规则是:如果此年号可以被,4,整除,但不能被,100,整除,则是闰年;或者该年份可以被,400,整除,则是闰年;否则不是闰年。,分析:,(,1,)如果,x,能被,y,整除,则余数为,0,,即如果,x%y,=0,,则表示,x,能被,y,整除;,(,2,)首先设置一个标志,leap,当,

14、year,能被,400,整除,,leap,值设为,1,,表示该年为闰年,否则,leap,值设为,0,表示该年不是闰年;,(,3,)然后根据,leap,的值确定二月份的天数,#include,stdafx.h,#include,main(),int,year,mon,days,leap,;,printf,(,年,月:,);,scanf(%4d,%2d,switch(mon,),case 1:case 3:case 5:case 7:case 8:case 10:,case 12:days=31;break;,case 4:case 6:case 9:,case 11:days=30;break;

15、case 2:if(year%4=0&year%100!=0|year%400=0),leap=1;,else,leap=0;,if(leap,),days=29;,else days=28;,printf(%d,年,%d,月的天数为,%d,天,n,year,mon,days,);,【,例,4-5】,编写一个程序,用来进行十进制和十六进制,十进制和八进制之间的相互转换。,分析:,对于十进制和十六进制,十进制和八进制之间的相互转换看,起来比较复杂,但可以通过数值输出时的格式描述来实现。,%d,格式符输出十进制数;,%o,格式符输出八进制数;,%x,格式符输出十六,进制数;所以,当输入一个数值时

16、按需要的转换数的数制输出就达到,目的了。,对于设计要求来说,各种数制间的转换要求是任意的,可以通过设置选,择开关变量,choice,,由用户输入,14,之间的某一个数字,实现进行十,-,十六、十六,-,十、十,-,八、八,-,十之间的转换,当然还可以设置更,多的选择达到如八,-,十六等转换。,开关变量,choice,与,switch,语句联合使用就达到程序设计的要求了。,结束,开始,输入,choice,Choice=,?,输入十进制的,num,;,输出十六进制的,num,;,break,;,输入十六进制的,num,;,输出十进制的,num,;,break,;,输入十进制的,num,;,输出八

17、进制的,num,;,break,;,输入八进制的,num,;,输出十进制的,num,;,break,;,选,择,出,错,图,4-7,例,4-5,算法流程图,/*decimal:,十进制,,hexadecimal,:十六进制,,octal:,八进制*,/,#include,main(),int,choice,,,num,;,printf(n,*conversion*),;,printf(n*1.decimal to hexadecimal*),;,printf(n*2.hexadecimal to decimal*),;,printf(n,*3.decimal to octal*),;,prin

18、tf(n,*4.octal to decimal*),;,printf(n,*),;,printf(nenter,your choice(14):),;,scanf(%d,,,&choice),;,switch(choice,),case 1:,printf(nenter,decimal number:),;,scanf(%d,,,&num),;,printf(%d,in hexadecimal is:%x,,,num,,,num),;,break,;,case 2:,printf(nenter,hexadecimal number:),;,scanf(%x,,,&num),;,printf(

19、x,in decimal is:%d,,,num,,,num),;,break,;,case 3:,printf(nenter,decimal number:),;,scanf(%d,,,&num),;,printf(%d,in octal is:%o,,,num,,,num),;,break,;,case 4:,printf(nenter,octal number:),;,scanf(%o,,,&num),;,printf(%o in decimal is%d,,,num,,,num),;,break,;,default:,printf(n,your choice is error!),;

20、例,4-6】,编写一个程序,计算购货款。,设某商店售货,按购买货物的款数多少分别给予不同的优惠,折扣:,购货不足,250,元的,没有折扣;,购货满,250,元,不足,500,元,折扣,5%,;,购货满,500,元,不足,1000,元,折扣,7.5%,;,购货满,1000,元,不足,2000,元,折扣,10%,;,购货满,2000,元,折扣,15%,。,分析:,首先要定义一个变量用来存放购买货物的款数;,然后根据款数满足的条件决定使用哪个优惠折扣;,最后计算出折扣后的款数并输出。,F,F,F,T,T,T,T,d=0,d=5,d=7.5,d=10,开始,输入购买货物的款数,m,m250,m5

21、00,m1000,m2000,d=15,输出折后款数,amount,结束,图,4-8,例,4-6,算法流程图,F,#include,stdafx.h,#include,main(),float,m,d,amount,;,printf(nEnter,your money for buying:);,scanf(%f,&m,);,if(m250)d=0;,else if(m500)d=5;,else if(m1000)d=7.5;,else if(m2000)d=10;,else d=15;,amount=m*(1-d/100);,printf(namount,=%6.2f,amount);,【,

22、例,4-7】,编一程序将以英寸为单位表示的长度转换为以厘米为单位表示的长度;或者反之,从厘米转换为英寸。,已知:,1,英寸,=2.54,厘米,分析:,实现英寸和厘米之间的相互转换,根据以上的单位转换规律,可以实现;,用,c,语言实现这一转换,,if,结构和,switch,结构都可以实现控制,语句的分支;,根据设计要求,设置一个开关变量,select,用来选择实现的转换,种类;,select=1,表示将英寸转换为厘米,,select=2,表示将厘米,转换成英寸。,最后根据换算公式求解,并输出结果。,开始,输入开关变量,select,select=1,select=2,输出,leng,inch=,

23、leng,*r cm,输出,leng,cm=,leng/r,inch,T,T,F,结 束,图,4-9,例,4-7if,语句实现算法流程图,#include,stdafx.h,#include,main(),int,select;,float,leng,r,=2.54;,printf(nPlease,choose(1:inch to cm,2:cm to inch):);,scanf(%d,&select,);,printf(Enter,the length:);,scanf(%f,&leng,);,if(select=1)printf(n%6.2f inch=%6.2f cm,leng,len

24、g,*r);,else if(select=2)printf(n%6.2f cm=%6.2f inch,leng,leng/r,);,输出,leng,inch=,leng,*r cm,开始,输入开关变量,select,select=,?,输出,leng,cm=,leng/r,inch,2,结 束,图,4-10,例,4-7 switch,语句实现算法流程图,1,#include,stdafx.h,#include,main(),int,select;,float,leng,r,=2.54;,printf(nPlease,choose(1:inch to cm,2:cm to inch):);,scanf(%d,&select,);,printf(Enter,the length:);,scanf(%f,&leng,);,switch(select),case 1:printf(n%6.2f inch=%6.2f cm,leng,leng,*,r);break,;,case 2:printf(n%6.2f cm=%6.2f inch,leng,leng/r);break,;,default:printf(Enter,error!)n);,

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服