关系运算与逻辑运算_第1页
关系运算与逻辑运算_第2页
关系运算与逻辑运算_第3页
关系运算与逻辑运算_第4页
关系运算与逻辑运算_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

关系运算与逻辑运算1第1页,共30页,2023年,2月20日,星期日复合的赋值运算符

在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。构成复合赋值表达式的一般形式为:变量双目运算符=表达式它等效于变量=变量运算符表达式2第2页,共30页,2023年,2月20日,星期日例如:a+=5等价于a=a+5x*=y+7等价于x=x*(y+7)r%=p等价于r=r%p复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。3第3页,共30页,2023年,2月20日,星期日关系运算符在C语言中有以下关系运算符:<小于<=小于或等于>大于>=大于或等于==等于!=不等于关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。4第4页,共30页,2023年,2月20日,星期日关系表达式关系表达式的一般形式为:表达式关系运算符表达式例如:a+b>c-dx>3/2‘a’+1<c-i-5*j==k+1都是合法的关系表达式。由于表达式也可以又是关系表达式。因此也允许出现嵌套的情况。例如:a>(b>c)a!=(c==d)等。5第5页,共30页,2023年,2月20日,星期日关系表达式的值是真”和“假”,用“1”和“0”表示。如:5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d\n",’a’+5<c,-i-2*j>=k+1);printf("%d,%d\n",1<j<5,x-5.25<=x+y);printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);getch();}在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。‘a’+5<c,a的ASCII值为97+5=102,而c的ascii值为100,顾不成立,值为0.而1<j<5,而j=2,因此条件成立,所以值为0.例:6第6页,共30页,2023年,2月20日,星期日逻辑运算符极其优先次序C语言中提供了三种逻辑运算符:&&与运算||或运算!非运算与运算符&&和或运算符||均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。7第7页,共30页,2023年,2月20日,星期日逻辑运算符和其它运算符优先级!(非)→&&(与)→||(或)!(非)算术运算符关系运算符&&和||赋值运算符按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c||d<a等价于((!b)==c)||(d<a)a+b>c&&x+y<b等价于((a+b)>c)&&((x+y)<b)易混淆8第8页,共30页,2023年,2月20日,星期日选择结构选择结构又称分支结构或者选取结构,其执行是依据一下的条件选择执行路径,而不是严格扫照语句出现的物理顺序执行的。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择知当的分支语句。C语言提供了“if”语句和“switch”语句两种分支结构控制语句。9第9页,共30页,2023年,2月20日,星期日if语句if语句用于判下所给的条件是否满足,程序根据判定的结果决下所执行的操作。C语言的if语句有3种基本格式10第10页,共30页,2023年,2月20日,星期日格式1if(表达式)表达式功能:如果“表达式”为真,则执行其后“语句”,否则不执行语句。例:main(){inta,s;scanf(“%d”,&a);if(a>0)a++;s=a;printf(“a=%d,s=%d\n”,a,s);getch();}11第11页,共30页,2023年,2月20日,星期日格式2if(表达式)语句1else语句2功能:如果“表达式”为真,则执行“语句1”;否则执行|语句2“。12第12页,共30页,2023年,2月20日,星期日例:输入某同学某科考试成绩,大于等于60分输出“及格”,小于60分输出“不及格”。main(){intk;if(k>=60)printf(“及格\n”);elseprintf(“不及格\n”);getch();}13第13页,共30页,2023年,2月20日,星期日练习:输入任意大小的三个整数,判断其中是否有两个奇数一个偶数。若是,则输出“YES”,不是则输出“NOT”

编写一个判断一个数是否是素数的函数,若是返回1,否则返回0。14第14页,共30页,2023年,2月20日,星期日格式3if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3

……elseif(表达式n)语句nelse语句n+1例:根据用户购物的总价,选择不同的折扣率:>=1000为七折,>=800为八折,>=500为九折。main(){intcost;floatrate,s;scanf(“%d”,&cost);if(cost>1000)rate=0.7;elseif(cost>800)rate=0.8;elseif(cost>500)rate=0.9;s=cost*rate;printf(“%f\n”,s);getch();}15第15页,共30页,2023年,2月20日,星期日例:main(){charc;printf("inputacharacter:");c=getchar();if(c<32)printf("Thisisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thisisadigit\n");elseif(c>='A'&&c<='Z')printf("Thisisacapitalletter\n");elseif(c>='a'&&c<='z')printf("Thisisasmallletter\n");elseprintf("Thisisanothercharacter\n");getch();}16第16页,共30页,2023年,2月20日,星期日注意事项:1、在三种形式的if语句中,在if关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如:if(a=5)语句;if(b)语句;2、在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。3、在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。例如:if(a>b){a++;b++;}else{a=0;b=10;}17第17页,共30页,2023年,2月20日,星期日在键盘中输入已知数a、b、c求一元二次方程ax2+bx+c=0的解。其中分析Δ=b2-4*a*c是否大于或等于零#include<math.h>#include<stdio.h>main(){inta,b,c;floatx1,x2;scanf("%d%d%d",&a,&b,&c);if(pow(b,2)-4*a*c<0)printf("inputnumbererror!\n");elseif(pow(b,2)-4*a*c>0){x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);printf("x1=%f,x2=%f",x1,x2);}else{x1=-b/(2*a);printf("x1=x2=%f",x1);}getch();}18第18页,共30页,2023年,2月20日,星期日练习:1、输入某同学某科考试成绩(0-100之间),并进行及格与否的判断,如果输入的数值大于100或小于零输出“输入错误”。2、从键盘输入两个整数,请按从小到大的顺序排列。3、从键盘输入三个整数,输出最大和最小的数。19第19页,共30页,2023年,2月20日,星期日分析:从键盘输入三个整数,输出最大和最小的数。main(){inta,b,c,max,min;printf("inputthreenumbers:");scanf("%d%d%d",&a,&b,&c);if(a>b){max=a;min=b;}else{max=b;min=a;}if(max<c)max=c;elseif(min>c) min=c;printf("max=%d\nmin=%d",max,min);getch();}20第20页,共30页,2023年,2月20日,星期日练习:4、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出.如’a’变成’f’,’w’变成’b’.请在()填入正确内容#include<stdio.h>main(){charc;c=getchar();if(c>=’a’&&c<=’u’)(1)elseif(c>=’v’&&c<=’z’)(2)putchar(c);getch();}21第21页,共30页,2023年,2月20日,星期日练习:5、输入一个字符,如果它是一个大写字母,则把它变成小写,如果是小写,则变成大写,其他字符不变main(){charch;scanf(“%c”,&ch);if(1)ch=ch+32;elseif(ch>=’a’&&ch<=’z’)(2)(3)printf(“%c”,ch);getch();}22第22页,共30页,2023年,2月20日,星期日练习6、输入三角形的边长,求三角形面积。(面积=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)注意:考虑三角形三边及三角形自身特点7、在键盘中输入已知数a、b、c求一元二次方程ax2+bx+c=0的解。其中分析Δ=b2-4*a*c是否大于或等于零23第23页,共30页,2023年,2月20日,星期日switch语句C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:

switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;

case常量表达式n:语句n;default:语句n+1;}24第24页,共30页,2023年,2月20日,星期日例1:main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){ case1:printf("Monday\n"); case2:printf("Tuesday\n"); case3:printf("Wednesday\n"); case4:printf("Thursday\n"); case5:printf("Friday\n"); case6:printf("Saturday\n"); case7:printf("Sunday\n"); default:printf("error\n");}main(){inta;printf("inputintegernumber:");scanf("%d",&a);switch(a){case1:printf("Monday\n");break;case2:printf("Tuesday\n");break;case3:printf("Wednesday\n");break;case4:printf("Thursday\n");break;case5:printf("Friday\n");break;case6:printf("Saturday\n");break;case7:printf("Sunday\n");break;default:printf("error\n");}break语句,专用于跳出switch语句25第25页,共30页,2023年,2月20日,星期日例2:计算器程序。用户输入运算数和四则运算符,输出计算结果。main(){floata,b;charc;printf("inputexpression:a+(-,*,/)b\n");scanf("%f%c%f",&a,&c,&b);swit

温馨提示

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

评论

0/150

提交评论