C程序设计第六讲.ppt_第1页
C程序设计第六讲.ppt_第2页
C程序设计第六讲.ppt_第3页
C程序设计第六讲.ppt_第4页
C程序设计第六讲.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序设计 C PROGRAM,第六讲,第四章 选择结构程序设计,主要内容: 1、关系运算符、逻辑运算符、条件运算符及其表达式 2、if语句的结构及其嵌套 3、switch语句,引课:计算函数值,需要考虑:输入x 判断x的值 根据x的值,计算y值 输出y值 显然是顺序程序不能够实现的,必须引入选择结构。,# include # include void main() float x,y; printf(输入 x:); scanf(%f, printf(x=%5.2ft,y=%7.4fn,x,y); ,一、关系运算符及其表达式,1、关系运算:是对两个量进行“比较运算” 2、关系运算符: = a+

2、b c(a+b) a=bc a=(bc) a=bc a=(bc) 4、关系表达式:用关系运算符将两个表达式(算术、字符表达式) 连接起来的有意义的式子 如:x!=0 a=A a*a+b*bY*Y 说明:数量值比较:数字的大小 字符量比较:ASCII的大小,5、关系表达式的值: 真(1) 假(0) 如:ca+b c(a+b) a=bc a=(bc) a=bc a=(bc) 问题:a=1,b=5,c=a上表达式的值 6、结合性:左结合,1 1 1,二、逻辑运算符及其表达式,1、逻辑运算符: else printf(A is not positive.n);,A或B都可以是单一语句,也可以是复合语句

3、 else部分不能独立存在。即else前一定有一个;,它必定是if语句的一部分,注意:在C语言中,表达式c的值为非0时,系统均按”真值“处理 如: if(a) printf (OK); x=-5; if(x) printf (OK); y=0; if(y=0) printf (OK); if(y) printf (OK);,t,f,e,A,B 域空,条件,if语句的三种形式 1、 if(e) A 2、 if(e) A else B,例5-2读程序,# include void main() float x,y; printf(输入 x:); scanf(%f,提问:若将y=1与if语句调换位置

4、,程序结果是否相同?,输入一个整数a,判断它是偶数还是奇数?,偶数的条件: a%2=0,# include void main() int a; printf(输入一个整数 :); scanf(%d, if(a%2=0) printf(nt%d is evenn,a); else printf(nt%d is oddn,a); ,输入a,b,c三个数,按从大到小的顺序输出。 分析: (1)对于任意两个数a,b: 若ab,则输出a,b 否则输出b,a (2)对于三个数,有6中可能: abc acb bac bca cab cba (3)使用判断交换法: 若abc,交换方法: 设 a=5,b=8

5、a=b;b=a; 结果 a=8,b=8,t=a;a=b;b=t;,a,b,t,5,8,5,5,8,8,8,5,8,5,5,t=a; a=b; b=t;,# include void main() int a,b,c,t; printf(inputa,b,c :); scanf(%d,%d,%d, printf(%d%d %d n,a,b,c); ,3、else if 形式(阶梯式的ifelse语句) if(P1) S1 else if(P2) S2 . . . else if(Pn) Sn else Sn+1,系统从上到下的逐个判断条件P,一旦发现条件Pi满足时, 则执行与它有关的语句Si,并

6、跳过其它剩余的阶梯。 若所有条件都不满足,执行最后一个else语句或后续语句。,注意:一般else与最后的if匹配,例:评定学生成绩 score90 优秀 score80 良好 score70 中 score60 及格 score60 不及格,# include void main() int score; printf(iinput a score:); scanf(%d, if(score=90) printf(优秀n); else if(score=80) printf(良好n); else if(score=70) printf(中n); else if(score=60) print

7、f(及格n); else printf(不及格n); ,例:已知平面上一点M,其坐标为(x,y),若M落在圆心在坐标原点的单位圆上, 则置key=1,落在圆外置key=2,落在圆内置key=0。,# include # include void main( ) float x,y,r; printf(输入 x,y:); scanf(%f,%f, printf(%lf,%lf):%dn,x,y,key); ,(二)if语句的嵌套 if(P1) if(P2)A else B else if(P3)C else D,例:计算函数:,# include # include main( ) float

8、x,y; printf(t 输入 x:); scanf(%f, printf(tx=%lfty=%lfn,x,y); ,由此可以看出:通过加“ ”,可以改变else的层位, 从而改变程序的执行流程。,# include void main( ) int year,leap; printf(which year?); scanf(%d, if (leap=1) printf(%d年是闰年n,year); else printf(%d年不是闰年n,year); ,例:判断某年是否闰年。 闰年:年份year能被4整除, 但不能被100整除;或能被400整除,例:判断某年是否闰年。,# include

9、 void main( ) int year,leap; printf(which year?); scanf(%d, if (leap=1) printf(%d年是闰年n,year); else printf(%d年不是闰年n,year); ,if(year%4!=0) leap=0; else if(year%100=0) leap=0; else if(year%400!=0) leap=0; else leap=1;,if(year%4=0,# include # include main( ) float x,y; printf(t 输入 x:); scanf(%f, printf(

10、tx=%lfty=%lfn,x,y); ,例:计算函数:,if(x=-3.0,四、条件运算符与条件表达式 1、条件运算符: ?和: /*唯一的三目运算符*/ 2、条件表达式:e1?e2:e3 如:ab?a:b x=0. ?1:sin(x)/x 3、执行过程: 计算e1 e1值为非0(真),计算并返回e2的值否则计算并返回e3的值(见上例) 4、运算顺序:高于赋值运算,低于算术、关系、逻辑运算 如:y=x=0. ?1:sin(x)/x; 等价于:if(x=0. ) y=1; else y=sin(x)/x; 5、条件运算符的结合方向是“右结合” 如:ab?a:cd?c:d 等价于:ab?a:(c

11、d?c:d),例:读程序写出程序完成的功能,# include main( ) int a, b,imax; printf(input data to a and b:); scanf(%d%d,找出a,b两个数中的大数,思考: n个数中找出最大数或者最小数?,# include void main() char ch; printf(Enter a character:); ch=getchar(); ch=(ch=A,例:任意输入一个字符,若是大写字母 将其转换成小写字母,分析:判断一个字符ch 是否为大写字母的方法: ch=Abreak; case 2:printf(statment 2

12、);break; default:printf(deafault); ,# include void main() int score; printf(input a score:); scanf(%d, if(score=90) printf(优秀n); else if(score=80) printf(良好n); else if(score=70) printf(中n); else if(score=60) printf(及格n); else printf(不及格n); ,# include void main() int score; printf(iinput a score:); s

13、canf(%d, ,关键:如何表示表达式和常量 常量的取值和表达式有关,例:运输公司对用户计算运费。,收费标准随距离s变化如下: s250km 无折扣 250s500km 2% 500s1000km 5% 1000s2000km 8% 2000s3000km 10% 3000s 15% 分析:计算是按照运费的距离s和货物重量w进行的。设每公里每吨货物的本费用为p, 考虑折扣d时,总费用的计算公式为: f=p*w*s*(1-d),随距离改变的折扣率有规律可循,int(s250) 0: d=0 1: d=0.02 2、3: d=0.05 411:d=0.1 其它:d=1.5,# include void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论