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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13524750.html】到电脑端继续下载(重复下载不扣费)。

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言课件4选择结构.ppt)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c语言课件4选择结构.ppt

1、共 37 页 第 1 页,第五章,选择结构,C语言程序设计,1,共 37 页 第 2 页,4.1 C语句概述,2,共 37 页 第 3 页,4.1 C语句概述,一个c程序可以有若干个源程序文件组成一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成一个函数有函数首部和函数体组成函数体由数据声明和执行语句组成C语句分为,3,共 37 页 第 4 页,4.1 C语句概述,(一)控制语句 完成一定的控制功能1 if()else 条件语句 6 break 间断语句 2 for()循环语句 7 switch()开关语句3 while()循环语句 8 goto 转向语句 4 do while()

2、;循环语句 9 return 返回语句5 continue 继续语句,4,共 37 页 第 5 页,4.1 C语句概述,5,共 37 页 第 6 页,4.1 C语句概述,6,共 37 页 第 7 页,4.1 C语句概述,7,共 37 页 第 8 页,4.1 C语句概述,8,共 37 页 第 9 页,4.2 赋值语句,赋值语句是由赋值表达式加上一个分号构成例:a=100 赋值表达式 a=100;赋值语句条件中不能含有赋值符号,但是赋值表达式可以包含于条件表达式中例:if(a=b)t=a;错误 if(a=b)0)t=a;正确,9,共 37 页 第 10 页,本章要点:正确使用关系表达式和逻辑表达式

3、掌握用if语句和switch语句实现选择结构掌握条件运算符的使用,10,共 37 页 第 11 页,选择语句是控制程序执行选择结构的语句 是程序实现逻辑判断的唯一形式,根据学生分数判断是否及格 根据学生分数如何进行分级 一元二次方程求解,自然语言:如果 那么 否则C语言:分支语句,如何解决?,为什么要用选择结构?,问题,11,共 37 页 第 12 页,5.关系运算符和关系表达式,5.1.1 关系运算符 1.关系运算符 关系运算是进行比较大小的运算,并产生运算结果1(真)或 0(假)。语言中的关系运算符有种:、!优先次序:前种同级,高于后种(后种同级)关系运算符的结合性为从左到右;,算术运算符

4、(高)关系运算符赋值运算符(低),如:32 ab,注意!,12,共 37 页 第 13 页,5.1.2 关系表达式 定义:用关系运算符将两个表达式连接起来的式子。形式:表达式1 关系运算符 表达式2 如:(ab)(by、s+fd 关系表达式的值为逻辑值“真”或“假”.注意:语言没有逻辑型数据,关系表达式的真、假 是以数值“”代表“真”,以“”代表“假”。例:设 a=3,b=2,c=1,求下列表达式的值?,cb,值为0(假),(a-b)=1,值为1(真),(b+c)a,值为0(假),a=534,a的值为0,13,共 37 页 第 14 页,练 习,判断奇、偶数 设有变量定义 int z;分析z%

5、2=0 的值?如果z为偶数,则 z%2=0的值为1;否则z为奇数,则 z%2=0的值为0;因此,z%2=0是断言“z是偶数”的c语言判断式。2.判断x与y的某位数字是否相同 x%10=y%10 判断个位数上数字相同如:15%10=25%10 为真,16%10=18%10 为假,14,共 37 页 第 15 页,5.2.1 逻辑运算符 C语言提供三种逻辑运算符:&(逻辑与)、|(逻辑或)、!(逻辑非)说明:(1)“&”和“|”是“双目(元)运算符”,它要求有两个操作数。(2)“!”是“单目(元)运算符”,只要求有一个运算量。(3)优先级次序:!&|,5.2 逻辑运算符和逻辑表达式,a&b a、b

6、均为真,则a&b为1(真)。a|b a、b之一为真,则a|b为1(真)。!a 若a为真,则!a为假。,15,共 37 页 第 16 页,运算符的优先级,!(非)(高)算术运算符 关系运算符&和|赋值运算符(低),16,共 37 页 第 17 页,5.2.2 逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子.规定:判断一个逻辑量为“真、假”的方法:“非”代表“真”,“”代表“假”例:写出11&x10 1x10 例:a+bc&c=d 例:(m=ab)&(n=c-d)例:a|b|c 如果a为真,就不再判断b和c了,强调:在逻辑表达式的求解过程中,只要能确定表达式的值,就不继续向下求解其他的值

7、了.,(a+b)c)&(c=d),17,共 37 页 第 18 页,逻辑运算真值表,18,共 37 页 第 19 页,练习:控制条件的正确表示方法判断变量ch是否为数字字符 ch=0&ch=a&ch=A&ch=a&ch=A&ch=Z)判断变量ch是否为空格、回车 ch=ch=n判断变量year是否为闰年(year能被4整除但不能被100整除,或year能被400整除)(year%4=0&year%100!0)|(year%400=0)(year%4!=0)|(year%100=0&year%400!=0),19,共 37 页 第 20 页,根据给定表达式决定要执行的操作。,执行过程:计算表达式

8、的值,判断表达式值为真时执行语句组,否则跳过语句继续执行后续语句。,单选择,语句格式:if(表达式)语句组;例:if(ab)x=a;,1.单选择if语句,表达式可以是关系式或逻辑式,5.3 选择语句,5.3.1 if 语句,20,共 37 页 第 21 页,2.双选择if语句,语句格式:if(表达式)语句组1;else 语句组2;,双选择,功能:计算表达式的值,当表达式值为非零时执行语句组1,否则执行语句组2。,21,共 37 页 第 22 页,有关if语句的说明,表达式后面不加分号 语句之后有分号 else不是语句,不能单独使用 当if后有多个执行语句时,必须用 将多个语句括起来,构成一个复

9、合语句,之外不必有分号。,22,共 37 页 第 23 页,#include stdio.h main()int a,b,s;scanf(%d%d,例1,运行时输入:3 4,输出:16,23,共 37 页 第 24 页,指出下列程序的输出结果:#include stdio.hmain()int a;scanf(%d,程序运行:输入58 输出:585858 输入30 输出?,例2,24,共 37 页 第 25 页,#include stdio.hmain()int a,b,max;printf(Input a and b:);scanf(%d%d,求a和b两数中较大的一个。,例3,25,共 37

10、 页 第 26 页,#include stdio.h main()int a,b,c=25;a=10c;b=a=a;printf(a=%d,b=%d,a,b);if(c)printf(c=%d,c);,运行结果:a=0,b=1,c=25,例4,26,共 37 页 第 27 页,#include stdio.h main()int a,b,t;printf(Input a and b:);scanf(%d%d,按由小到大的顺序输出两个数。,例5,27,共 37 页 第 28 页,5.3.2 if语句的嵌套,格式:if(表达式)if(表达式1)语句11;else 语句12;else if(表达式2

11、)语句21;else 语句22;,在if语句的“语句1”或“语句2”中又包含着if语句,判断表达式的值,若为非0,再判断表达式1的值,非0执行语句11,否则执行语句12若表达式的值为0,再判断表达式2的值,非0执行语句21,否则执行语句22,功能:,28,共 37 页 第 29 页,if 语句的常用格式:if(表达式1)语句 1 else if(表达式2)语句 2 else if(表达式3)语句 3 else if(表达式m)语句 m else 语句 n,仅执行表达式为真的else if后的内嵌语句,若所有的表达式值都为0,则执行最后一个else后的内嵌语句.,29,共 37 页 第 30 页

12、,下列程序段表示的数学式子?y=-1;if(x!=0)if(x0)y=2*sin(x);else y=0;,程序段表示的数学式1:0(x0),讨论:给第二个if行加 后表示的数学式?,程序段表示的数学式2:-1(x0),数学式1程序可表示为:if(x0)y=0;else if(x=0)y=-1;else y=2*sin(x);,思考,强调:if和else可成对出现,也可不成对出现,每个else都与距其最近的if配对。,30,共 37 页 第 31 页,从键盘输入一个字符,当该字符是+、*或/时,显示其对应的英文单词:plus、minus、multiplication或division。若输入其

13、他字符,则显示“Error!”。,#include main()char c;c=getchar();if(c=+)printf(plusn);else if(c=-)printf(minusn);else if(c=*)printf(multiplicationn);else if(c=/)printf(divisionn);else printf(Error!n);,例6,31,共 37 页 第 32 页,switch语句 该语句为开关语句,适合解决多分支的情况。格式:switch(表达式)case 常量表达式:语句序列;case 常量表达式:语句序列;case 常量表达式n:语句序列n;

14、default:语句序列n+1;说明:执行顺序如下:,5.3.3 switch 语句问题:为什么引出switch语句?,可以是一条语句,也可以是多条语句。多条语句不必用括号括起来。在执行完某个 case后的语句序列后,将自动转移到下一个case继续执行。,起语句标号的作用,不进行条件判断,同一个switch语句中的各个常量表达式的值必须互不相等。,可以是整型、字符型。,32,共 37 页 第 33 页,a.计算表达式的值;b.找到与表达式的值相同的case常量表达式,执行该case后边的语句序列,之后依次往下执行语句块。,表达式,语句序列1,语句序列2,语句序列n,语句序列n+1,33,共 3

15、7 页 第 34 页,每个语句序列的最后一条语句后增加break语句,执行流程为:,34,共 37 页 第 35 页,根据考试成绩的等级打印出百分制分数段。采用多分支情况程序段:switch(grade)case A:printf(85100n);case B:printf(7084n);case C:printf(6069n);case D:printf(60n);default:printf(error);若 grade=A时,输出结果为?当 grade=B时,输出结果为?,例7,35,共 37 页 第 36 页,流程图为:,36,共 37 页 第 37 页,说明:case和default

16、 的次序可以交换。例:#include“stdio.h”main()int c=3;switch(c)case 1:c+;default:c+;break;case 2:c+;printf(c=%dn,c);,case 3:c+;,37,共 37 页 第 38 页,多个case可以执行同一个语句序列。switch(c=getchar()case y:case Y:printf(“You are right.n”);,int a=10;switch(a)case 10:case 9:a+;case 8:case 7:a+=2;break;,38,共 37 页 第 39 页,条件运算符:唯一的三目

17、操作符,要求有三个操作对象。格式:表达式?表达式:表达式功能:判断表达式的值,该值为“非0”,则取表达式2的值,为“0”时,取表达式3的值。如:max=ab?a:b 若 a=3,b=2,则 max=?说明:(1)条件运算符优于赋值运算符。(2)条件运算符的结合方向为“自右向左”。如:当a=1,b=2,c=3,d=4 时,表达式 ab?a:cd?c:d,值为:?如:若 x=1,y=0,a=3,b=-3 表达式(yx?a:b)&a+b 值为:?,4,0,5.4 条件运算符,39,共 37 页 第 40 页,(3)条件表达式中的表达式的类型可以与表达式和表达式的类型不同。条件表达式值的类型为二者中较

18、高的类型。如:xy?1.2:6,当xy成立时条件表达式的值为1.2,否则为实型数据6.0。c=xy?1:s,当xy成立时c=1,否则c=s。,40,共 37 页 第 41 页,if(y0)x=-y;elsex=y;,(y0)?x=-y:x=y;,等价,等价,x=(y0)?-y:y;,说明:if else可以完成与条件 运算符(?:)完全相同 的任务,并且可以进行 相应的转换。,41,共 37 页 第 42 页,将输入的大写字母转换为小写字母.#include stdio.h main()char ch;scanf(%c,printf(%c,ch)输入 输出 a,例8,42,共 37 页 第 43 页,main()/*输入今天的日期,显示明天的日期。*/int year,month,day;scanf(%d%d%d,43,共 37 页 第 44 页,小 结,if语句实现单分支if-else语句实现两个分支switch-break语句实现多分支嵌套if语句可以实现复杂的分支结构(注意else与最近的if结合)注意分支条件的正确设置。,44,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2