计讲稿4——关系运算符、逻辑运算符

上传人:xian****hua 文档编号:135829643 上传时间:2022-08-15 格式:DOC 页数:8 大小:59.01KB
收藏 版权申诉 举报 下载
计讲稿4——关系运算符、逻辑运算符_第1页
第1页 / 共8页
计讲稿4——关系运算符、逻辑运算符_第2页
第2页 / 共8页
计讲稿4——关系运算符、逻辑运算符_第3页
第3页 / 共8页
资源描述:

《计讲稿4——关系运算符、逻辑运算符》由会员分享,可在线阅读,更多相关《计讲稿4——关系运算符、逻辑运算符(8页珍藏版)》请在装配图网上搜索。

1、程序设计讲稿4本讲涉及的单词:1、if 如果 2、else 否则 3、switch 开关 4、case 案例、事例 5、default 缺省、默认 6、break 打断一、关系运算符及其优先级1、关系运算符:程序中经常需要比较两个量的大小关系,以决定程序的下一步工作,比较两个量的大小关系的运算符称为关系运算符,C/C+中有以下关系运算符: 大于 = 大于等于 、=、c+d、 x=3/2、ac)、a!=(c=d)关系表达式运算的结果只有两种:真或假(正确或错误,成立或不成立),用数字1和0表示。例如:53 的运算结果是1(正确),而35的结果是0(错误)int main() char c=k;

2、int i=1,j=2,k=3; float x=3e+5,y=0.85; printf(%d,%dn,a+5=k+1); printf(%d,%dn,1j5,x-5.25=x+y); printf(%d,%dn,i+j+k=-2*j,k=j=i+5); return 0;程序的输出结果是:解释: (1) char c=k,实质是c=107;因为字符k的ASCII码是107。 (2)a+5 相当于 97+5,因为字符a的ASCII码是97。(3) 1j5 因为关系运算符的左结合性,所以先计算1j,1j成立,值为1。再计算14 & x=2 & x4 | x10) 的结果就是“正确”; 而(x10

3、) 的结果就是“错误”; !a,表示将a的值取反,如果a为正确,则 !a 为错误,如果a为错误,则!a为正确 例如:!(45)的结果为正确,而!(45)的结果为错误。2、逻辑表达式用逻辑运算符、关系运算符构成的式子,成为逻辑表达式: 举例: 数学表达式 -2 = x 10 的C语言条件表达式: x是奇数的条件表达式: x是偶数的条件表达式: x能被11整除的条件表达式: x能被4整除但不能被100整除,或者能被400整除的C语言表达式: 条件表达式: m % 2=1 & m10 在m=5的时候,表达式的值为: 在m=8的时候,表达式的值为: 在m=13的时候,表达式的值为: 在m=16的时候,

4、表达式的值为: 在m=23的时候,表达式的值为: 在m=30的时候,表达式的值为: 三、分支语句格式:if(条件) 语句1; else 语句2; 功能:如果 条件成立 则执行语句1,否则执行语句2; 其中,上面的格式中 ”else 语句2;” 可以省略,上面的格式写成了两行,其实可以写成一行的,这样做只是为了程序更加美观。例7、编程输入两个整数,输出其中的大数。解答程序1解答程序2int main() int a,b,MAX;scanf(%d%d,&a,&b); MAX=a; if(MAXb) MAX=a; else MAX=b; printf(MAX=%dn,MAX); return 0;解

5、答程序1中,先把a的值赋给变量MAX,再用if语句判别MAX和b的大小,如果MAXb,则把a的值赋给MAX,否则把b赋给b。这里的否则相当于ab) MAX=a; if(a=0 & c=A & c=a & cb) MAX=a; else MAX=b; 可以改写为:MAX = ab? a: b;条件运算符的优先级高于赋值运算符,低于算术运算符、关系运算符和逻辑运算符。请用关系运算符改写例7的程序。五、开关语句 C/C+语言还提供了另一种用于多分支选择的语句switch语句,其一般形式如下:形式: switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表

6、达式n:语句n default:语句n1其含义是:计算表达式的值,然后依次与case后面的常量表达式的值比较。当与某个常量表达式的值相等时,即执行其后面的语句,然后不再判断,转而执行后面的所有case后的语句(包括default语句)。当表达式的值与所有case后面常量表达式的值都不相等时,则执行default后的语句。例9、编程输入一个数字,输出与这个数字对应星期几的英语单词,比如输入1,则应是星期一,输出“Monday”,7则应是星期日,输出“Sunday”。解答程序1int main() int a; scanf(%d,&a); switch(a) case 1 : printf(Mon

7、dayn); case 2 : printf(Tuesdayn); case 3 : printf(Wednesdayn); case 4 : printf(Tursdayn); case 5 : printf(Fridayn); case 6 : printf(Saturdayn); case 7 : printf(Sundayn); default : printf(errorn); return 0;int main() int a; scanf(%d,&a); switch(a) case 1 : printf(Mondayn); break; case 2 : printf(Tues

8、dayn);break; case 3 : printf(Wednesdayn);break; case 4 : printf(Tursdayn);break; case 5 : printf(Fridayn);break; case 6 : printf(Saturdayn);break; case 7 : printf(Sundayn);break; default : printf(errorn);break; return 0;解答程序1:当输入4后,则程序输出: Tursday Friday Saturday Sunday error 由此看来,整数上面对switch语句含义的解释,

9、当表达式与某个常量值相等时,则从这里开始所有的case后面的语句都会执行。解答程序2:当输入4后,程序输出: Tursday 因为在每条case后面的语句后加上了一个break;这里的break表示中断switch语句的执行。所以当输出Tursday后,再执行break;这时,跳出的switch语句,所以后面case语句再不会被执行。使用switch语句的要注意以下几点:1) case语句后的常量表达式的值不能有相同的;2) case后可以有多条语句,他们不必用括起来3) default可以省略。 思考:请用if语句改写上面的程序。六、编程实例例10、打折(P1013) 一件衣服950元,若消

10、费满3000元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。 【输入】 一个整数N,表示顾客购买衣服数量。 【输出】 一个实数,表示需要支付的金额。保留两位小数。 【样例】 43230.0021900.00【数据范围】 0 = N =3000 则输出p*0.85;否则输出p (保留两位小数)例11、三整数排序(P1015) 输入三个整数a,b,c,从小到大排序后输出。 【输入】 一行三个整数a,b,c。【输出】 由小到大输出这三个数。整数之间用一个空格分开。【样例】 20 7 337 20 33解法程序:int main() int a,b,c; scanf(%

11、d%d%d,&a,&b,&c); / 输入a,b,c的值 if(ab) t=a; a=b; b=t; /如果ab,则交换a,b的值;if(ac) t=a; a=c; c=t; /如果ac,则交换a,c的值; if(ac) t=a; a=c; c=t; /如果bc,则交换b,c的值; printf(%d %d %dn,a,b,c); /输出答案:输出a,b,c的只值 return 0;关于程序的一点解释:语句:if(ab) t=a; a=b; b=t; 因为如果满足条件ab要执行三句话,t=a; a=b; b=t;如果条件不满足,这三句话就不会执行。所以用把这三句括起来,这样的语句称为复合语句。

12、如果写成这样:if(ab) t=a; a=b; b=t; 则满足条件ab,就只会执行t=a;而不满足,则a=b和b=t;还会照样执行。例12、三角形 (P1017) 输入三角形三边长度值a,b,c(均为正整数),完成下列任务:(1)、如果这三边根本无法构成三角形,则输出“not a triangle”。(2)、如果能构成三角形,则计算这个三角形的面积并输出。(3)、然后再判断这个三角形是否是直角三角形,如果是则输出“yes”,否则输出“no”。 【输入】 一行三个正整数a,b,c。 【输出】 如果a,b,c不能构成三角形,则输出一行“not a triangle”。 如果能构成一个三角形,则:

13、 第 1 行:一个保留2位小数的实数,表示三角形面积; 第 2 行:如果这个三角形是一个直角三角形,则输出“yes”,否则输出“no”。 【样例输入】 3 4 56.00yes2 2 21.73no4 2 7not a triangle【数据范围】 1=a,b,c0,且y0”,则该题目解是x和y,否则输出No answer。 x和y必须为正整数 程序的语言描述用c语言补充完整定义n,m,x,y四个整数变量;输入变量n,m的值;x=(4n-m)/2;y=(m-2n)/2;如果m是偶数且x0且y0 输出x和y的值,中间隔一个空格否则 输出No answerint main() if(m % 2=0 & x0 & y0) else return 0; 课后作业:题库:P1013P1035

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!