




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5章章 选择结构程序设计选择结构程序设计 5.15.1 关系运算关系运算关系运算:也称为比较运算,即将两个值进行比较,如:a=3.一,关系运算符一,关系运算符: = =3的值为的值为“真真” 若若a=2,a=3的值为的值为“假假” C语言中没有逻辑型数据,因此语言中没有逻辑型数据,因此以以“1”代表真,代表真,以以“0”代表假代表假。 * *系统系统给出运算结果给出运算结果时:以时:以“1 1”代表代表“真真”,“0 0”代表假代表假,即若,即若“真真”赋赋“1 1”,“假假”赋赋“0 0”。 * *判断一个量是否为判断一个量是否为“真真”时,以非时,以非0 0代表代表“真真”,以,以0
2、0代表代表“假假” 。三,优先级三,优先级各种运算各种运算:低低 高高赋值运算赋值运算 关系运算关系运算 算术运算算术运算a+1b 0 0, =, , b !=c,相当于相当于(ab)!=c其结果其结果:ab 0 , 0 != c0 0(假)(假)( (真真:1:1)如如a=1,b=2,c=3;ca+b 相当于相当于 结果:结果:思考:思考:a=2*bc+2 ? d=a+1b(a+b) 5.2 逻辑运算逻辑运算一、逻辑运算符一、逻辑运算符:三种:三种:1.逻辑与逻辑与 & (AND) 并且并且2.逻辑或逻辑或 | (OR) 或者或者3.逻辑非逻辑非 ! (NOT) 不是不是其值为逻辑值其值为逻
3、辑值:真(真(1),假(),假(0)1. &:两个同时满足两个同时满足( (为真为真) )才满足才满足( (为真为真) )如如:(a = 0)& (bc);a=1, b=2,c=30 & 1 0 逻辑表达式:逻辑表达式: 将关系表达式或逻辑量用逻辑运算符连将关系表达式或逻辑量用逻辑运算符连接的表达式接的表达式。 2. | : 只有一个为真即为真只有一个为真即为真, (a=1, b=2, c=3) (a = 0)| (bc), 结果为结果为? ? 3. !: 非真即假,非假即真非真即假,非假即真, !(ab)结果为)结果为 “与与”和和“或或”为双目运算,有两个操作数,为双目运算,有两个操作数,
4、非为单目运算非为单目运算。 10110 逻辑运算符的两边也可以是数值或字符,该值逻辑运算符的两边也可以是数值或字符,该值非非0 0为真,为真,0 0为假为假。如。如:a=1,b=2,c=3; a & b 值为值为? (5 & 0) | 2 值为值为? 其值不是其值不是0 0,就是,就是1 1再如:再如:m & ! (ac) 结果为结果为? 非非0为为1, 非非1为为0优先级:优先级: 1逻辑运算符的优先级:逻辑运算符的优先级: 高高 低低 ! & |2各种运算:低各种运算:低 高高 赋值赋值 | 和和 & 关系运算符关系运算符 算术运算符算术运算符 ! 所以(所以(a = = 0)&(bc+1
5、) 可以写为可以写为 a = = 0 & ba & b1 & 1(a b-1)&(c=a+2b) 表达式的值?表达式的值?c=?0,3真值表真值表 为弄清各逻辑运算符的值,列出真值表:为弄清各逻辑运算符的值,列出真值表:a,b两值,列出两值,列出a&b,a|b,!a,!b的值:的值: a b !a !b a&b a|bT(1) T(1) T(1) F(0) F(0) T(1) F(0) F(0) T(1) F(0) F(0) F(0) 看出看出: & 逻辑乘逻辑乘, | 逻辑加逻辑加 “与与”逻辑乘:逻辑乘:0*0=0 1*0=0 0*1=0 1*1=1 “或或”逻辑加:逻辑加:0+0=0 1
6、+0=1 0+1= 1 1+1=1F(0) F(0) T(1) T(1) F(0) T(1)F(0)T(1) T(1) T(1) T(1) F(0)*5.3 if 语句语句一、一、ifif语句的三种形式语句的三种形式: ifif语句是选择语句中最基本语句是选择语句中最基本、最重要的语最重要的语句,它根据给定的条件,来决定如何操作句,它根据给定的条件,来决定如何操作。1。形式。形式1:if (表达式)语句(表达式)语句功能功能:判断表达式是否为真(非判断表达式是否为真(非0 0),是则执),是则执行行“语句语句”,再往下执行。不是,则不执行,再往下执行。不是,则不执行“语句语句”,往下执行,往下
7、执行。如:如:if (cj=60) printf(“及格及格”);); 说明说明:表达式一般为关系表达式或逻辑表达式表达式一般为关系表达式或逻辑表达式(后面讲),(后面讲),表达式值非表达式值非0 0,则为真,则为真,0 0为假为假。例例2 2(例(例5.1)5.1):输入两个实数,按代数值,由输入两个实数,按代数值,由小到大输出这两数小到大输出这两数。分析:分析:1 1。定义:。定义:2 2。输入两个实数输入两个实数3 3。条件:。条件:abab 则:交换则:交换a,ba,b4. 4. 输出:输出:a,bvoid main( ) ;printf(”输入两个数输入两个数a,b:”);scanf
8、 ;if /*满足条件为满足条件为1*/ ; /*复合语句复合语句*/printf(“%6.2f, %6.2f”, );t=a;a=b;b=t运行:运行:输入两数输入两数a,b: 34.8,15.3例例2:输入两个实数,按代数值,由小到大输入两个实数,按代数值,由小到大输出这两数输出这两数。void main( )float a, b , t ;printf(”输入两个数输入两个数a,b:”);scanf(”%f,%f”,&a,&b);if (ab) t=a;a=b;b=t; printf(“%6.2f, %6.2f”, a,b);if (ac) t=a; a=c; c=t;if (bc) t
9、=b; b=c;c=t;问:若输入三个数,按由小到大输出?问:若输入三个数,按由小到大输出? a b aabc小数放小数放a小数放小数放a次小数放次小数放b复合语句复合语句大数放大数放c2形式形式2: if(表达式)语句(表达式)语句1 1 else 语句语句2 2功能功能:先判断表达式的值先判断表达式的值, ,若为真若为真( (非非0)0),执行语句执行语句1;1;否则为假否则为假(0)(0),执行语句,执行语句2 2。 框图:框图:表达式表达式语语 句句 1 1语语 句句2 2假假(0)(0)真真( (非非0)0)if (cj=60) printf(“及格及格”);); else prin
10、tf(“不及格不及格”);例例3 3:输入两数,输出两数中大者:输入两数,输出两数中大者。 void main( )float a, b, max ;printf(“输入两数输入两数a,b:”);scanf(“%f , %f ”, &a ,&b );if _ _ ;printf ( “max = %5.2f” , max);if (ab) max= a ;else max= b;也可以直接判断后输出大数也可以直接判断后输出大数:if (ab) printf ( “max = %f”,a);else printf (“max = %f”, b);注注:1.if1.if和和elseelse是配对使
11、用的。是配对使用的。2.2.将来可以将来可以把该程序求两数中最大值函数直接调用把该程序求两数中最大值函数直接调用。大数赋给大数赋给max练习:练习:编程求编程求y y的值的值 x2+1 (x=0)y= x2-1 (x=0) y=x*x+1;else y=x*x-1;printf( “y=%d”,y); getch(); 运行:运行: 输入两个数输入两个数a,b:23.4, 87.5 max= 87.50例例5(例例5.5):写一程序,判断某一年是否为闰年写一程序,判断某一年是否为闰年分析:闰年条件:分析:闰年条件: 满足其一满足其一:能被能被4 4整除,但不能被整除,但不能被100100整除;
12、整除;或者能被或者能被4 4整除且能被整除且能被400400整除(实际上能被整除(实际上能被400400整除的即能被整除的即能被4 4整除)。整除)。其逻辑表达式其逻辑表达式:year?(year%4=0 & year%100 != 0 ) | (year%400 = = 0)不要括号可否?不要括号可否?定义:定义:year;year;输入:输入:year;year;判断条件后判断条件后, ,输出是否为闰年输出是否为闰年. .Year对对4取余取余可以,因可以,因&比比 | | 高而被先算高而被先算请思考:请思考:条件应如何写?条件应如何写? l=1; else l=0; if ( l ) p
13、rintf(“%d年是闰年年是闰年”,year); else printf (“%d年不是闰年年不是闰年”,year);( l=1)注:注:1. ifif中的表达式可以是关系式,逻辑表中的表达式可以是关系式,逻辑表达式,也可以是任意类型的数据。达式,也可以是任意类型的数据。非非0 0为真为真,l=0,l=0为假为假,8,8句能不能用句能不能用l=1,l=1,为什么为什么? ? 可用可用:printf(“%d年是闰年年是闰年”,year);printf(“%d年不是闰年年不是闰年”,year);l代表是否闰年的信息(1是/0不是) printf (“输入年份输入年份year:” ); scanf
14、 (“%d”, &year); if (year%4 =0 & year%100 !=0 | year%400=0) void main( ) int year, l;3形式形式3 if (表达式表达式1) 语句语句1 else if (表达式表达式2) 语句语句2 else if (表达式表达式3) 语句语句3 else if (表达式表达式n) 语句语句n else 语句语句 n +1注意:注意:形式形式3多用于有多个条件需要判多用于有多个条件需要判断得出不同值的情况断得出不同值的情况。功能:从执行框中可以看出功能:从执行框中可以看出:语句n+1表 达 式表 达 式1表 达 式表 达 式2
15、表 达 式表 达 式3表 达 式表 达 式n语语 句句 1语语 句句 2语语 句句 3语语 句句 n假假假假假假假真真真真真真真真 一次执行一个语句,满足一个就执行下面的语一次执行一个语句,满足一个就执行下面的语句,再往整个语句的下面执行。都不满足时,执行句,再往整个语句的下面执行。都不满足时,执行最后一个最后一个elseelse后的语句。每执行完一个都往下执行。后的语句。每执行完一个都往下执行。例例6 编一个程序输入某人工资,若工资编一个程序输入某人工资,若工资 2000元以上增加元以上增加5%, 15001999元增加元增加8%, 10001499元之间的增加元之间的增加10%, 5009
16、99元之间的增加元之间的增加12%, 499元以下的增加元以下的增加15% 给出增加后的工资数。给出增加后的工资数。分析分析:定义工资定义工资gz, ,额度额度i;输入;输入gz;判断工资判断工资, ,求增加额度求增加额度 i :0.05,0.08,0.10, 0.12, 0.15, ,并计算工资并计算工资gz=gz*(1+i)输出输出gz值值void main( )float gz , i ; printf( “Input gz:”); scanf( “%f” , &gz); if ( gz =2000) i=0.05;(gz=1500)(gz=1000)(gz=500)i= 0.15200
17、0以上加以上加5%15001999加加8%10001499加加10%500999加加12%499以下加以下加15% else if i=0.08; else if i=0.10; else if i=0.12; else ; gz = gz*(1+i); printf ( “xgz =%7.2f”, gz); d=b2-4ac p=-b/(2*a) 如果如果:(d=0) q=sqrt(d)/(2*a) x1=p+q ; x2=p-q; 输出输出x1,x2 否则否则:printf(“is no a quadratic”) if (d=0) q=sqrt(d)/(2*a) ; x1=p+q ; x2=p-q; printf(”x1=%f,x2=%f”,x1,x2); else printf(“is no a quadratic”);求求: ax2+bx+c=0 的实根,若为的实根,若为虚根,给出无实根的信息。虚根,给出无实根的信息。复合语句复合语句#include “math.h” void main() float a,b,c,d,x1,x2,p,q; printf(“Input a,b,c:”); scanf(“%f,%f,%f”,&a,&b,&c); d=b*b-4*a*c; p=-b/(2*a);if (d=0) q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沙漠开花地理题目及答案
- 入队前考核题目及答案
- 2023-2024学年四川省泸州市龙马潭区高二下学期6月期末考试数学试题(解析版)
- 2024-2025学年浙江省湖州、丽水、衢州三地市高三一模语文试题(解析版)
- 2025年甘肃省天水市中考生物真题含答案
- 高中物理《分子的热运动》课教案、教学设计
- 党员先锋岗活动方案
- 防拥挤防踩踏心得体会
- 佛教寺庙保安管理制度
- 作业风险提级管理制度
- 2025年重庆市中考数学试卷真题(含标准答案)
- 农机耕地合同协议书范本
- 房地产估价报告:商业房地产租赁价格估价
- 牡丹的药用价值课件
- kW壳管式干式蒸发器设计
- 最新药店员工手册
- 系列螺杆冷水机组操作培训
- 催化剂对异氰酸酯反应活性的影响
- 国家开放大学《C语言程序设计》综合测试题参考答案
- 老年人生活自理能力评估表
- 火电机组能耗指标分析指导性意见
评论
0/150
提交评论