




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1THE SCHOOL OF SOFTWARE ENGINEERING OF HUST2 C C语言的三大结构:顺序结构、选择结构和循环语言的三大结构:顺序结构、选择结构和循环结构结构S1S2S3(a a)顺序结构)顺序结构 PS1S2真假(b b)选择结构)选择结构 PS2假真(c c)循环结构)循环结构 3本章内容提要本章内容提要判断判断选择型程序设计选择型程序设计 3.13.2循环型程序设计循环型程序设计 3.3综合应用综合应用 3.4本章小结本章小结 3.5思考题思考题 3.64本节知识点本节知识点C语言中的逻辑值语言中的逻辑值1关系运算符与关系表达式关系运算符与关系表达式2逻辑运算符
2、与逻辑表达式逻辑运算符与逻辑表达式3ifelseifelse结构的应用结构的应用4if-else ifif-else if结构的应用结构的应用5ifif语句的嵌套应用语句的嵌套应用6重点重点关系和逻辑运算关系和逻辑运算1if语句的应用语句的应用2难点难点5 前面学过的运算符和表达式前面学过的运算符和表达式? 比较?比较? 并且?并且?6 判断是针对命题的判断是针对命题的“真真”、“假假”进行的。进行的。例如,下面一些命题:例如,下面一些命题:1 1、小强是个大学生、小强是个大学生2 2、今天下雨了、今天下雨了3 3、a3a34 4、abcabc5 5、a5a5或或c4c4 关系表达式和逻辑表达
3、式是关系表达式和逻辑表达式是C C语言中描述命题的两种语言中描述命题的两种基本形式基本形式7关系运算是逻辑运算中比较简单的一种,关系运算是逻辑运算中比较简单的一种,“关系关系运算运算”就是就是“比较运算比较运算”,指对两个表达式值的大小比较。,指对两个表达式值的大小比较。C C语言中提供有如下语言中提供有如下6 6个关系运算符:个关系运算符: ,= =, ,= =,= = =,!=!=例例3.13.1 a3a3intint a=5; a=5;intint a=2; a=2;结果为真(结果为真(T Truerue)结果为假(结果为假(F Falsealse)8 用关系运算符将两个表达式(算术、关
4、系、逻辑、用关系运算符将两个表达式(算术、关系、逻辑、赋值表达赋值表达式等)连接起来所构成的表达式,称为关系表达式。式等)连接起来所构成的表达式,称为关系表达式。例例3.23.2: c ca ab b a ab=c b=c a=b a=bc c a=b a=bc c 等效于等效于 c c(a(ab)b)等效于等效于(a(ab)=cb)=c等效于等效于a=(ba=(bc)c)等效于等效于a=(ba=(bc)c)91 1、表达式、表达式5 52 27 78 8在数学上允许否在数学上允许否? ?在在C C中是否允中是否允许许? ? 按自左而右的结合求按自左而右的结合求解:解: 5 52 2值为值为1
5、 1; 1 17 7值为值为0 0; 0 08 8的值为的值为0 0。 即整个关系表达式的值即整个关系表达式的值为为0 0。102 2、由于关系表达式的值是整型数、由于关系表达式的值是整型数0 0或或1 1,故也可,故也可以将其以将其看成是一种整型表达式。例如,若有:看成是一种整型表达式。例如,若有: int i=1, j=7,a;int i=1, j=7,a; a=i+(j%4!=0); a=i+(j%4!=0);这种表达式的含义不易被理解,初学时不这种表达式的含义不易被理解,初学时不宜多用宜多用113 3、在判定两个浮点数是否相等时,由于存储上的误、在判定两个浮点数是否相等时,由于存储上的
6、误差,会差,会得出错误的结果。例如:得出错误的结果。例如: 1.0/3.01.0/3.0* *3.0=1.03.0=1.0 该关系表达式的值为该关系表达式的值为0(0(假假) ),并不为,并不为1(1(真真) )。所。所以应避免以应避免对两个实数表达式作对两个实数表达式作“相等相等”或或“不相等不相等”的判的判别。别。上式可改写为:上式可改写为: fabsfabs (1.0/3.0 (1.0/3.0* * 3.0-1.0) 3.0-1.0)1e-51e-5 fabsfabs是求绝对值函数。只要是求绝对值函数。只要1.0/3.01.0/3.0* *3.03.0与与1.01.0之间的差小于之间的差
7、小于1010-5-5( (或一个其它的很小的数或一个其它的很小的数) ),就认,就认为为1.0/3.01.0/3.0* *3.03.0与与1.01.0相等。相等。124 4、要表示、要表示x x在区间在区间a,ba,b中,在数学中使用表达式中,在数学中使用表达式axbaxb可否可否? ?在在C C语言中使用表达式语言中使用表达式“a a=x=x=b”=b”可否?可否?假设假设a=0;b=0.5a=0;b=0.5。若。若x=0.3x=0.3上式可改写为:上式可改写为: a a=x =x 并且并且 x x=b=b13ABBAA(a) “与与” (b) “或或” (c) “非非” 三个基本逻辑运算三
8、个基本逻辑运算 14C C语言提供三种逻辑运算符:语言提供三种逻辑运算符:1 1、& 逻辑与(相当日常生活中:而且,并且,只在逻辑与(相当日常生活中:而且,并且,只在两条两条件同时成立时为件同时成立时为“真真”)2 2、| 逻辑或(相当日常生活中:或,两个条件只要逻辑或(相当日常生活中:或,两个条件只要有一个有一个成立时即为成立时即为“真真”)3 3、!逻辑非(条件为真,运算后为假,条件为假,运逻辑非(条件为真,运算后为假,条件为假,运算后算后为真)为真)15 用逻辑运算符(逻辑与、逻辑或、逻辑非)将关用逻辑运算符(逻辑与、逻辑或、逻辑非)将关系表达式系表达式或逻辑量连接起来构成逻辑表
9、达式。或逻辑量连接起来构成逻辑表达式。例例3.33.3: aab&xb&xy y a= = a= =b|xb|x= =y = =y !a|aa|ab b 等效于等效于 (abab)&(xyxy)等效于等效于(a= =(a= =b)|(xb)|(x= =y)= =y)等效于等效于( (!a)|(aa)|(ab)b)161 1、在逻辑表达式的求解中,并不是所有的逻辑运算符、在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行都被执行,只是在必须执行下一个逻辑运算符才能求出表达式,只是在必须执行下一个逻辑运算符才能求出表达式的解时,的解时,才执行该运算符。才执行该运算符。 a
10、&b&ca&b&c a|b|ca|b|c 例例3.43.4:如果如果a a,b b,c c,d d,m m,n n分别为:分别为:1,2,3,4,1,11,2,3,4,1,1分析整个表达式分析整个表达式(m=a(m=ab)&(nb)&(n=cd)=cd)结果和结果和m,nm,n的结果。的结果。172 2、如果在一个表达式中不同位置上出现数值,应区分、如果在一个表达式中不同位置上出现数值,应区分哪些是作哪些是作为数值运算或关系运算的对象(原值),哪些是作为为数值运算或关系运算的对象(原值),哪些是作为逻辑运算逻辑运算的对象(逻辑值)。的对象(逻辑值
11、)。 例例3 3.5.5:计算:计算:53&2|83&2|8=90) =90) printfprintf(“(“优秀优秀”) )if(scoreif(score=80&score=80&score=70&score=70&score=60&score=60&score70) printfprintf(“(“合格合格”) )if(scoreif(score60) c&b+cc&b+c a&c+aa&c+ab)b) s=0.5 s=0.5* *( (a+b+ca+b+c); ); area= area=
12、sqrt(ssqrt(s* *(s-a)(s-a)* *( (s-bs-b) )* *( (s-cs-c);); printf(areaprintf(area);); else else printf(“itprintf(“it is not a triangle”); is not a triangle”);334 4、ifif嵌套语句中,应当注意嵌套语句中,应当注意ifif与与elseelse的配对关系,的配对关系,elseelse总是与它总是与它上面的最近的未配对的上面的最近的未配对的ifif配对。配对。特别是特别是if/elseif/else子句数目子句数目不一样时不一样时本意本意实际
13、实际345 5、ifif嵌套语句解决匹配问题方法嵌套语句解决匹配问题方法(1 1)利用空语句使)利用空语句使ifif子句子句数量数量与与elseelse子句数量相同。子句数量相同。(2 2)利用)利用 。将没有。将没有elseelse子子句的句的ifif语句用语句用 括起来括起来35函数:函数: -1 -1(x0 x0) 1(x0)编一个程序,输入编一个程序,输入x,x,输出输出y y。有以下几个程序,请判断哪个是正确的?有以下几个程序,请判断哪个是正确的?36程序程序1 1:main()main() intint x x,y y; scanfscanf(dd,&x)&x);
14、if(xif(x0) y=-10) y=-1; else else if(xif(x=0) y=0=0) y=0; else y=1else y=1; printf(xprintf(x= =d d,y=y=d dnn,x x,y)y); 37程序程序2 2:main()main() intint x x,y y; scanfscanf(dd,&x)&x); if (xif (x=0)=0) if (x if (x0)y= 10)y= 1; elseelsey= 0y= 0; elseelse y=-1y=-1; printf(xprintf(x= =d d,y=y=d dnn,
15、x x,y)y); 38程序程序3 3:main()main() intint x x,y y; scanfscanf(dd,&x)&x); y=-1y=-1; if(xif(x!=0)!=0) if(xif(x0)0)y=1y=1; else y=0else y=0; printf(xprintf(x= =d d,y=y=d dnn,x x,y)y); 39程序程序4 4:main()main() intint x x,y y; scanfscanf(dd,&x)&x); y=0y=0; if(xif(x=0)=0) if(xif(x0)0)y=1y=1; else y=-1else y=-1; printf(xprintf(x= =d d,y=y=d dnn,x x,y)y); 40输入两个实数,按数值由小到大的次序输出这输入两个实数,按数值由小到大的次序输出这两个数。两个数。输入三个实数,按数值由小到大的次序输出这输入三个实数,按数值由小到大的次序输出这三个数。三个数。41关系运算和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字教学课堂游戏课件
- 企业技术协同管理办法
- 企业治安罚款管理办法
- 企业公司聚集管理办法
- 企业公开招聘管理办法
- 企业车辆进口管理办法
- 交警涉案财物管理办法
- 2025至2030中国基因治疗行业项目调研及市场前景预测评估报告
- 企业借款资金管理办法
- 买卖合同存档管理办法
- 《旅游学概论》第四章
- 中国古典小说巅峰:四大名著鉴赏学习通课后章节答案期末考试题库2023年
- 教师职业素养精选ppt
- 勘界定标技术报告
- 轨枕工序安全操作规程
- 2021年消防继续教育试题汇总及答案
- GA 255-2022警服长袖制式衬衣
- JJF 1915-2021倾角仪校准规范
- GB/T 3299-1996日用陶瓷器吸水率测定方法
- GB/T 15382-2021气瓶阀通用技术要求
- 标准的起源、发展与标准化课件
评论
0/150
提交评论