c语言程序设计 第02章.ppt

上传人:牧羊曲112 文档编号:6503978 上传时间:2023-11-07 格式:PPT 页数:27 大小:320.49KB
返回 下载 相关 举报
c语言程序设计 第02章.ppt_第1页
第1页 / 共27页
c语言程序设计 第02章.ppt_第2页
第2页 / 共27页
c语言程序设计 第02章.ppt_第3页
第3页 / 共27页
c语言程序设计 第02章.ppt_第4页
第4页 / 共27页
c语言程序设计 第02章.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《c语言程序设计 第02章.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计 第02章.ppt(27页珍藏版)》请在三一办公上搜索。

1、第二章 选择结构程序设计,2.1*关系运算符和关系表达式2.2*逻辑运算符和逻辑表达式2.3*if 语句2.4 switch 语句2.5 程序举例,关系运算符(共6种)用于比较两个数据的大小,被比较的数据可以是数值型,也可以 是字符型等。,2.1 关系运算符和关系表达式,(大于)=(大于等于)=(等于)优先级相同(低)!=(不等于)*优先级别:低于算术运算符,但高于赋值运算符。结合方向:自左而右。,关系表达式用关系运算符连接的两个表达式称为关系表达式。如:3=3+53+24关系表达式的值:1 或 0(在C中,没有逻辑常量)*逻辑真 整型数据 1*逻辑假 整型数据 0,例1:设a=3,b=2,c

2、=1 则:ab 其值为?c=a b 其值为?,1,1,例2:3=3+53+24-,3=854,3=14,3=1,0,说明*(1)区别:=条件运算符=赋值运算符(2)字符数据的比较按其ASCII码进行。d E,2.2 逻辑运算符和逻辑表达式,逻辑运算符!逻辑非 高(单目运算符,自右而左)&逻辑与(双目运算符,自左而右,|逻辑或 低 优先级低于关系运算符),运算的规则(见书p12-13页)非 运算:非真为假,非假为真。与 运算:两运算量均为真,结果为真,其它均为假。或 运算:两运算量均为假,结果为假,其它均为真。,逻辑表达式例:设a=2,c=a,f=3.0!(c=a)ac|f=c!(1&!a),!

3、1 0 1|0 1!(1&0)!0 1,说明(1)在进行判别时*所有非零数真(包括字符型数据,只要其ASCII值非零)0 假(2)逻辑运算结果逻辑真:1 逻辑假:0 如:-2&3!3,1,0,思考 设:a=1 c=3 问:执行 a|(c=5)后,表达式的值:?变量c的值:?执行 a&(c=5)后,表达式的值:?变量c的值:?,逻辑表达中,并非所有的运算符都被执行:(1)a&b&c 当a为0,则不再判别b和c,结果为0(假)。当a为真(非零),才需判别b的值;当a,b都为真时才判别c的值;(2)a|b|c 当a为真(非零),则不再判别b和c,结果为1。当a为假,才判别b;当a和b 都为假,才判别

4、c。,1,1,3,5,思考题:数学关系式:3x10 用C语言的表达式如何描述?,1.3=3&x10,x 10,2.3 if 语句,功能:通过判断所给条件,决定执行给出的两种操作之一。,1、if语句的三种形式,形式一:if(表达式)语句,例 编程计算a+b的值 main()int a,b;scanf(%d%d,&a,&b);if(b0)b=b;printf(%dn,a+b);,其中:表达式可以是关系、逻辑、算术表达式等。语句可以是复合语句。,在键盘上输入:3-1,形式二:if(表达式)语句1 else 语句2,例 从键盘输入一个整数,判断该数是奇数还是偶数,若是奇数打印该数是奇数,否则打印该数是

5、偶数。,main()int a;printf(请输入一个整数:);scanf(%d,&a);if(a%2=0)printf(%d是偶数n,a);else printf(%d是奇数n,a);,形式三:if(表达式1)语句1else if(表达式 2)语句2 else if(表达式3)语句3 else 语句4,例 根据考试成绩的百分制分数段打印出相应的等级。,#includemain()float score;printf(input score:);scanf(%f,if(e1)if(e2)语句1 else 语句2 else if(e3)语句3 else 语句4,2、if语句的嵌套,if(e1)

6、if(e2)语句1 else 语句2 else if(e3)语句3,说明 if与else配对问题,如:if(e1)if(e1)if(e2)if(e2)语句1 语句1else else 语句2 语句2,*C语言规定,else总是与上面最近的if配对。若要改变这种默认的配对关系,在相应的if语句上加花括号。,例 有一函数,编一程序,输入一个x值,输出y值。,程序1:main()int x,y;scanf(%d,&x);if(x0)y=-1;else if(x=0)y=0;else y=1;printf(x=%d,y=%dn,x,y);,程序2:main()int x,y;scanf(%d,&x);

7、if(x=0)if(x0)y=1;else y=0;else y=-1;printf(x=%d,y=%dn,x,y);,switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1/*可选*/,*执行过程1.计算switch后表达式的值,若该值等于某个case后常量表达式的值,则转向该case后的执行语句,并顺序执行其它case 后的语句;2.若表达式的值不等于任何case后面的常量表达式的值,则转向default 后面的语句去执行。如没有default部分,则转向switch的后续语句。,2.4 switch

8、语句(“多路选择”),说明*1.一个switch语句中的case的常量表达式的值必须互不相同。switch(c)case 2*4:s+;case 4+4:t-;(错误),2.case和default的出现顺序是任意的,且case的次序并不要求按常量表达式值的大小顺序排列。,说明3.case后“常量表达式”只起语句标号的作用,并不是在此处进行条件判断。在执行完一个case后面的语句后,流程控制转移到下一个case继续执行。int n,x,y;scanf(“%d”,因此,在执行完一个case分支后,要想跳出switch语句,转到switch语句的后续语句去执行,应在下一个case开始前,插入一个b

9、reak语句。,break;,若输入 1,说明4.多个case的后面可以共用一组执行语句。switch(n)case 1:case 2:case 3:x=10;break;,5.switch语句允许嵌套。switch()switch(),例 根据考试成绩的百分制分数段打印出相应的等级。,main()float score;int n;printf(input score:);scanf(%f,#include main()float score;printf(input score:);scanf(%f,思考一下这条语句的作用?,例 根据考试成绩的等级打印出百分制分数段。,main()char

10、 grade;printf(input AE:);scanf(%c,程序举例例 通过条件语句嵌套实现在直角坐标系中有一个以原点为中心的单位圆,今任给一点(x,y),试判断该点是在单位圆内、单位圆上,还是单位圆外?若在单位圆外,那么是在x轴的上方,还是在x轴的下方,还是在x轴上?,#include“math.h”main()float x,y,z;scanf(%f,%f,printf(%.2f,%.2f,x,y);if(z=0)if(y0)printf(在单位圆外,x轴上方n);else printf(在单位圆外,x轴上n);else printf(在单位圆外,x轴下方n);,main()int c;scanf(%d,如果通过键盘输入分别输入:0,1,2时,最后的输出结果分别为?,222,1111,00,作 业 课后习题18,要求:1.15写书上2.上机前,将68题的程序写在作业本上3.上机时,调试程序直到调试出结果,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号