




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲人:杨 丹常州信息职业技术学院常州信息职业技术学院C C语言程序设计语言程序设计知识目标知识目标1掌握关系、逻辑运算符的运算规则,能用C语言表达式表达实际问题。2掌握if语句的三种基本形式、了解if语句的嵌套;3掌握switchcase语句的使用方法。4掌握选择结构程序设计方法。 能力目标能力目标1能够用C语言正确表达实际问题。2能够使用if语句编写二分支选择结构的程序。3能够使用switch语句编写多分支选择结构的程序。4能够使用C语言进行选择结构程序设计。 单元三单元三 选择结构程序设计选择结构程序设计常州信息职业技术学院C C语言程序设计语言程序设计引例描述引例描述求三个整数的最大值
2、求三个整数的最大值演示演示常州信息职业技术学院C C语言程序设计语言程序设计一、关系运算符及其优先次序一、关系运算符及其优先次序1、关系运算符:,=,=,a+b 等价于c(a+b);关系运算符的优先级低于算术运算符ab=c 等价于(ab)=c; “”优先级高于“=”a=bc 等价于a=(bc);“c 等价于a=(bc);关系运算符的优先级高于赋值运算符 常州信息职业技术学院C C语言程序设计语言程序设计二、关系表达式二、关系表达式 用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式等)连接起来所构成的表达式,称为关系表达式。 关系表达式的值有两个,分别是1 1和0 0。【示例示例】a=3,
3、b=2,c=1,则:ab的值为1。b+cch2的值为0。常州信息职业技术学院C C语言程序设计语言程序设计三、逻辑运算符及其优先次序三、逻辑运算符及其优先次序1、逻辑运算符:&(逻辑与),|(逻辑或),!(逻辑非)2、优先级别:!高于算术运算;&高于|, &和 |都低于关系运算,高于赋值运算。3、结合方向:!为右结合;&,|为左结合。四、逻辑表达式四、逻辑表达式 用逻辑运算符把表达式连接起来的式子,称为逻辑表达式。逻辑表达式的值也只有两个1 1和0 0。1 1、与表达式、与表达式 设A,B是两个表达式,如果一个表达式通过运算符的优先级别和结合方向最终可归结为A&
4、amp;B的形式,则称这个表达式为逻辑与表达式,简称与表达式。计算过程:计算过程:对于与表达式A&B ,先计算A的值,当A的值为0时,不再计算B(此时说明与表达式的值一定为0);当A为非0时,再计算B。常州信息职业技术学院C C语言程序设计语言程序设计2 2、或表达式、或表达式 设A,B是两个表达式,如果一个表达式通过运算符的优先级别和结合方向最终可归结为A|B的形式,则称这个表达式为逻辑或表达式,简称或表达式。 计算过程:计算过程:对于或表达式A|B ,先计算A,当A值为非0时,不再计算B(此时说明或表达式的值一定为1);当A的值为0时,再计算B。 3 3、非表达式、非表达式 设A是
5、一个表达式,如果某个表达式通过运算符的优先级别和结合方向最终可归结为!A的形式,则称这个表达式为逻辑非表达式,简称非表达式。 ABA&BA|B!A000010非0011非00010非0非0110常州信息职业技术学院C C语言程序设计语言程序设计【例例3-23-2】 写出下面各逻辑表达式的值,设a=3,b=4,c=5。a+bc&b=ca|b+c&b-c!(x=a)&(y=b)&0分析: 此题共出现三种运算符, 算术运算符、逻辑运算符和关系逻辑运算符。由于优先级:逻辑非运算符算术运算符关系运算符逻辑与、或运算符。由于每一小题都出现了&或|运算符,因此
6、可以看做是逻辑表达式。 答案答案:0 1 0常州信息职业技术学院C C语言程序设计语言程序设计【例例3-33-3】用C语言的表达式表达实际问题。1x大于等于3小于52三条线段x,y,z构成一个三角形3M非04n为偶数5永真命题6k的值为1,3,87判断某一年是否闰年解答:x=3&xz&x+zy&y+zx解答:M!=0或M解答:n%2= =0或n/2*2-n= =0或!(n%2)解答:任何恒成立的式子,【示例】1!=0或1分析:分析:闰年的条件是符合下面两个条件之一:能被4整除,但不能被100整除;能被4整除,又能被400整除。因为能够被400整除一定能被4整除所以第二个
7、条件可以简化为能够被400整除。判断闰年的条件可以用一个逻辑表达式表示:(year%4=0&year%100!=0)|year%400=0表达式为“真”,闰年条件成立,是闰年,否则非闰年。可以加一个!用来判断非闰年:!(year%4=0&year%100!=0)|year%400=0) 解答:k= =1|k= =3|k= =8 常州信息职业技术学院C C语言程序设计语言程序设计做一做做一做【课堂实践课堂实践3.13.1】 设a=2,b=3,c=4,求下列表达式的值:1.a=3 2.a=33.a&b4.a|b+c&b-c5.!(ab,就把a与b的值交换;否则,a与
8、b的值不变。这样,大数始终放在变量b中。操作演示操作演示常州信息职业技术学院C C语言程序设计语言程序设计二、二、ifelse ifelse 语句语句格式:格式:if(if(表达式表达式) ) 语句语句1 1 else else 语句语句2 2执行过程:执行过程:先判断表达式的值是否非0,如果非0执行语句1,否则执行语句2。见流程图。表达式语句1真(非0)假(0)语句2说明:(1)表达式通常是关系表达式和逻辑表达式,但也可以是其它表达式;(2)语句1和语句2都可以是复合语句;(3)整个ifelse结构是一个语句,而不是两个语句,else必须与if配对使用,不能单独使用。常州信息职业技术学院C
9、C语言程序设计语言程序设计【例例3-53-5】 设计一个判断输入年份是否闰年的C程序。 分析:分析:判断输入年份year是闰年的表达式为:year%4=0&year%100!=0|year%400=0year%4=0&year%100!=0|year%400=0 如果year是闰年让标志变量leap的值为1,否则让leap的值为0,根据leap的值输出year是闰年或year不是闰年。 操作演示操作演示说明:说明:假设,若有如下语句:if(ab) max=a;else max=b; 则可以写成如下简单的条件表达式来处理:max=(amax=(ab)?a:bb)?a:b; ; 常
10、州信息职业技术学院C C语言程序设计语言程序设计条件运算符条件运算符? ? :是唯一的三目运算优先级别:条件运算的优先级别是第13级的,高于赋值运算,低于逻辑运算。结合方向:右结合条件表达式:条件表达式: 表达式表达式1 ? 1 ? 表达式表达式2 2 :表达式:表达式3 3 其中表达式1,表达式2,表达式3都可以是任意表达式。条件表达式运算过程及表达式的值:条件表达式运算过程及表达式的值:先计算表达式1,若表达式1的值非0,则计算表达式2,不计算表达式3,此时表达式2的值为整个条件表达式的值;若表达式1的值为0,不计算表达式2,而计算表达式3,此时表达式3的值为整个条件表达式的值。 【示例示
11、例】int a=2,b=5,c;c=ab? -a :-b;printf(a=%d,b=%d,c=%dn,a,b,c);输出结果为:a=2,b=4,c=4。 常州信息职业技术学院C C语言程序设计语言程序设计【例例3-63-6】 从键盘输入三个整数a、b和c的值,输出最大值。 分析:分析:设a,b,c分别保存三个整数,再定义一个中间变量max用于存放最大数。我们采用两两比较法,先将a,b比较得出两者的最大值并存入max,然后c再与max比较得出最大者并存入max。 输出maxmaxmaxYaba=maxb=maxN输入a,b,c操作演示操作演示常州信息职业技术学院C C语言程序设计语言程序设计三
12、、三、ifelse if ifelse if 语句语句格式格式:if(表达式表达式1) 语句语句1 else if(表达式表达式2) 语句语句2 else if(表达式表达式n) 语句语句n else 语句语句n+1执行过程执行过程:若表达式1非0,执行语句1;若表达式1为0,而表达式2非0,执行语句2;依此类推,若表达式1,表达式n-1均为0,而表达式n非0,执行语句n;若表达式1,表达式n均为0,执行语句n+1。见流程图。常州信息职业技术学院C C语言程序设计语言程序设计表达式1表达式2表达式3表达式n语句n+1语句n语句3语句2语句1NNNNYYYYifelse if 语句流程图常州信息
13、职业技术学院C C语言程序设计语言程序设计【例例3-73-7】 从键盘输入字符判别是数字、字母还是空格或是其他。 分析:分析:ASCII码表中的每个字符都有一个值,ASCII码表的编排也是有一定规律的,通常同一类别的字符相邻而放,其值也是连续的。比如09的ASCII 值是4857;AZ的ASCII 值是6590; az的ASCII 值是97122。 判别字符的类别就是判别字符对应的ASCII值的大小、范围。 x数字?x字母?x空格?NNNYYY输入xx数字x字母x空格x其他字符操作演示操作演示常州信息职业技术学院C C语言程序设计语言程序设计【例例3-83-8】 有一函数: ,编一个程序,对输
14、入的x值,输出对于的y值。请判断以下三种方法是否都正确?010001xxxy当当当方法一:方法一:void compu(int x) int y; if(x0)y=1; printf(%d,y); 方法二:方法二:void compu1(int x) int y; if(x=0) if(x0) y=1;else y=0; elsey=-1; printf(%d,y); 正确正确正确正确正确正确ifif语句的嵌套语句的嵌套 在if语句中又包含一个或多个if语句称为if语句的嵌套。 形式1:if (表达式1) if (表达式2) 语句1 else 语句2 形式2: if (表达式1) if (表达
15、式2) 语句1 else 语句2形式3: if (表达式1) if (表达式2) 语句1 else 语句2 else 语句3常州信息职业技术学院C C语言程序设计语言程序设计做一做做一做【课堂实践课堂实践3.23.2】 求一元二次方程ax2+bx+c=0的根。提示:提示:要判别b2-4ac大于0,小于0和等于0的情况。常州信息职业技术学院C C语言程序设计语言程序设计3.3 3.3 switch语句语句 一般形式一般形式switch(switch( ) ) case case : 1 case case : 2 case case : default: n+1 其中用一对尖括号括起来的部分是可
16、选的。 执行过程:执行过程:先计算表达式的值,然后依次与每一个case中的常量表达式的值进行比较,若有相等的,则从该case开始依次往下执行,若没有相等的,则从default开始往下执行。表达式表达式常量表达式常量表达式1 1常量表达式常量表达式2 2常量表达式常量表达式n n n 使程序流程跳出多使程序流程跳出多路选择结构或跳出路选择结构或跳出循环体结束循环。循环体结束循环。常州信息职业技术学院C C语言程序设计语言程序设计说明:1.表达式必须是整型或字符型表达式,每个常量表达式必须是相应的整数或字符,且两个常量值不能相同;2该结构从某一个case进入后,将执行该入口中的语句组及后面所有语句
17、组,如果只需执行一个语句组的操作,应在该语句组中加break语句跳出switch结构。double a=1.2;switch(a)case 1.1:printf();break;case 1.2:printf(#);break;default:printf(*);想一想想一想int x=1,a=0,b=0;switch(x) case 0:b+;case 1:a+; case 2:a+;b+;printf(a=%d,b=%dn,a,b);输出结果为:a=2,b=1 常州信息职业技术学院C C语言程序设计语言程序设计【例例3-93-9】输入一个百分制成绩,要求输出成绩等级A, B, C, D。其中90分以上为A,70-89为B,60-69为C,60分以下为D。 分析:分析:在用switch结构实现时,如果输入的分数小于100,则提取分数的十位数字作为表达式的值,如果分数等于100,则提取9作为表达式的值。在程序中,用score来表示输入的成绩,用select作为switch语句中的表达式,用grade来表示成绩等级。 操作演示操作演示常州信息职业技术学院C C语言程序设计语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2009造价咨询合同标准文本
- 公务员签人事合同样本
- gf建筑劳务合同样本
- 企业收购项目合同样本
- 不锈钢圆桶购销合同标准文本
- 产品外包加工合同标准文本
- 与医院起草合同样本
- 国家电网考试各科目试题及答案
- 资产评估居间合同范本
- 2024年调酒师个人技能提升与试题及答案
- 2025年全国质量月活动总结参考(2篇)
- 口腔四手操作培训
- 2025年月度工作日历含农历节假日电子表格版
- 第37章 真菌学概论课件
- 总裁助理岗位职责
- 2024年封顶仪式发言稿模版(3篇)
- 癌症治疗协议书范例
- 《中华人民共和国机动车驾驶人科目一考试题库》
- 小学体育课件《立定跳远课件》课件
- 新生儿经外周置入中心静脉导管实践指南(第三版)解读
- 肝硬化肝性脑病指南
评论
0/150
提交评论