收藏 分享(赏)

第5章_选择结构.doc

上传人:j35w19 文档编号:7924834 上传时间:2019-05-30 格式:DOC 页数:18 大小:54.79KB
下载 相关 举报
第5章_选择结构.doc_第1页
第1页 / 共18页
第5章_选择结构.doc_第2页
第2页 / 共18页
第5章_选择结构.doc_第3页
第3页 / 共18页
第5章_选择结构.doc_第4页
第4页 / 共18页
第5章_选择结构.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、第五章 选择结构程序设计教学重点:表达式,选择型程序设计语句教学难点:逻辑表达式教学时数:学时教学内容:关系运算符和关系表达式,逻辑运算符和逻辑表达式,if语句,switch 语句,程序举例教学方式:课堂讲授教学要求:(1) 熟练掌握关系、逻辑表达式的用法;(2) 熟练掌握选择型程序设计语句的用法。5.1 关系运算符和关系表达式1.关系运算符及其优先次序(大于)= (大于或等于)= (等于)!= (不等于)说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符2.关系表达式用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,

2、称关系表达式例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为“真” ,表达式的值为 1。C 语言中没有专用的逻辑值,1 代表真,0 代表假5.2 逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序(1)(2)if(表达式) 语句 1else 语句 2例:if (xy) printf(“%d”,x);else printf(“%d”,y);(3)if(表达式 1)语句 1else if(表达式 2)语句 2else if(表达式 3)语句 3else if(表达式 m)语句 melse 语句 n例:if (number500)cost=0.15;else if(number300

3、)cost=0.10;else if(number100)cost=0.075;else if(number50)cost=0.05;else cost=0;说明:(1)3 种形式的 if 语句中在 if 后面都有表达式,一般为逻辑表达式或关系表达式。(2)第二,第三种形式的 if 语句中,在每个else 前面有一个分号,整个语句结束处有一个分号。(3)在 if 和 else 后面可以只含有一个内嵌的操作语句,也可以由多个操作语句,此时用花括号将几个语句括起来成为一个复合语句。例 5.1 输入两个实数,按代数值由小到大的顺序输出这两个数。#includevoid main()float a,b

4、,t;scanf(%f,%f,if(ab)t=a;a=b;b=t;printf(%5.2f,%5.2fn,a,b);例 5.2 输入三个数 a,b,c,要求按由小到大的顺序输出。If ab 将 a 和 b 对换If ac 将 a 和 c 对换If bc 将 b 和 c 对换#include void main ( ) float a,b,c,t;scanf(%f,%f,%f,if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t;if(bc) t=b;b=c;c=t; printf(“%5.2f,%5.2f,%5.2fn“,a,b,c);2.if 语句的嵌套在 if 语句中又

5、包含一个或多个 if 语句称为 if 语句的嵌套。形式:if()if() 语句 1else 语句 2elseif() 语句 3else 语句 4内嵌 if匹配规则:else 总是与它上面的,最近的,统一复合语句中的,未配对的 if语句配对。例:if()if() 语句 1elseif() 语句 2else 语句 3例:if()if() 语句 1elseif() 语句 2else 语句 3当 if 和 else 数目不同时,可以加花括号来确定配对关系。例 5.3 有一个函数 y= 0 (x=0),编一程序,输入一个 x 值,输出y 值。 输入 x 输入 x若 x0,则 y=1 若 x=0,则 y=

6、0输出 y 若 x0,则 y=1输出 y#includevoid main()int x,y;scanf(“%d”,程序段printf(“x=%d,y=%dn”,x,y); 上例中的程序段有四个,请判断哪个是正确的?程序 1: 程序 2:if(x=0)Y=-1; if(x0) y=1;else else y=0;if(x=0) y=0; else y=-1;else y=1;程序 3: 程序 4:Y=-1; y=0;if(x!=0) if(x=0)if(x0) y=1; if(x0) y=1;else y=0; Else y=-1;3.条件运算符格式: 表达式?表达式表达式 功能: 判断表达式

7、 1 的值,如果成立就执行表达式 2,否则就执行表达式 3使用场合:若在语句中,当被判别的表达式的值为“真”或“假” 时,都执行一个赋值语句且向同一个变量赋值时,可以用一个条件运算符来处理。 例: () =; ;当 ab 时将 a 的值赋给 max,当 ab 时将 b 的值赋给 max,可以看到无论 ab 是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理:()?;说明:(1)条件运算符的执行顺序:先求解表达式,若为非(真)则求解表达式,此时表达式的值就作为整个条件表达式的值。若表达式的值为(假) ,则求解表达式,表达式的值就是整个条件表达式的值。 (2)条件运算符优先级高于赋值运

8、算符 ,低于关系运算符和算术运算符。 (3)条件运算符的结合方向为“自右至左” 。 (4)“表达式 2”和“表达式 3”不仅可以是数值表达式,还可以是赋值表达式或函数表达式。(5)条件表达式中,表达式的类型可以与表达式和表达式的类型不同。 例 5.4 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 #include void main ( ) char ch;scanf(“%c“,ch=(ch=Ascanf(“%d“,if (year%4=0)if (year%100=0)if (year%400=0) leap=1;else leap

9、=0;else leap=1;else leap=0;if (leap) printf(“%d is “,year);else printf(“%d is not “,year);printf(“a leap year.n“);(!) ; (!); (!); ;运行情况: . . 例 56 求方程的解。基本的算法: ,不是二次方程。 ,有两个相等实根。 ,有两个不等实根。 ,有两个共轭复根。#include #include void main ( ) float a,b,c,disc,x1,x2,realpart,imagpart;scanf(“%f,%f,%f“,printf(“the e

10、quation “);if(fabs(a)1e-6)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(has distinct real roots:%8.4f and %8.4fn,x1,x2);elserealpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf(has complex rootsn);printf(%8.4f+%8.4fin,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);例 5.7 运输公司对用户计算

11、运费。路程()越远,每公里运费越低。标准如下: 没有折扣 折扣 折扣 折扣 折扣 折扣设每公里每吨货物的基本运费为,货物重为,距离为,折扣为,则总运费的计算公式为:*()分析折扣变化的规律性:折扣的“变化点”都是的倍数 在横轴上加一种坐标,c 的值为 s/250。c 代表 250 的倍数。 void main ( )int c,s;float p,w,d,f;scanf(“%f,%f,%d“,if(s=3000) c=12;else c=s/250;switch(c)case 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break; f=p*w*s*(1-d/100.0);printf(“freight=%15.4fn“,f);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报