关系运算与逻辑运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
16
注意事项:
1、在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通 常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达 式等,甚至也可以是一个变量。
在关本系例表中达求式出了的各值种是 关真系”运和算“符假的值”。,字用 符A“S变1C量I”和I码是“参以0与它”运表对算应示的的。。
‘如a:’+5<c,a的
main() {
char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",’a’+5<c,-i-2*j>=k+1);
8
选择结构
选择结构又称分支结构或者选取结构,其执 行是依据一下的条件选择执行路径,而不是 严格扫照语句出现的物理顺序执行的。分支 结构的程序设计方法的关键在于构造合适的 分支条件和分析程序流程,根据不同的程序 流程选择知当的分支语句。C语言提供了 “if”语句和“switch”语句两种分支结构控 制语句。
int k; if (k>=60) printf(“及格\n”); else printf(“不及格\n”); getch(); }
13
练习:
输入任意大小的三个整数,判断其中是否有 两个奇数一个偶数。若是,则输出“YES”, 不是则输出“NOT”
编写一个判断一个数是否是素数的函数,若 是返回1,否则返回0。
14
例:
格式3
根据用户购物的总价,选择不同的折扣率: >=1000为七折,>=800为八折,>=500为九折。
if(表达式1)
main()
语句1
{
else if(表达式2) 语句2
else if (表达式3)
int cost; float rate,s; scanf(“%d”,&cost); if (cost>1000)
4
关系表达式
关系表达式的一般形式为: 表达式 关系运算符 表达式 例如: a+b>c-d x>3/2 ‘a’+1<c -i-5*j==k+1 都是合法的关系表达式。由于表达式也可以又是关系表达式。
因此也允许出现嵌套的情况。例如: a>(b>c) a!=(c==d) 等。
5
例:
1
复合的赋值运算符
在赋值符“=”之前加上其它二目运算符可构 成复合赋值符。如+=,-=,*=,/ =,%=,<<=,>>=,&=,^=,|=。
构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等效于 变量=变量 运算符 表达式
2
例如:
a+=5 等价于a=a+5 x*=y+7 等价于x=x*(y+7) r%=p 等价于r=r%p
而于j3=>2,5不因此成条立件,成故
立其,值所为以假值,为0即. 为0。
6
逻辑运算符极其优先次序
C语言中提供了三种逻辑运算符: && 与运算 || 或运算 ! 非运算 与运算符&&和或运算符||均为双目运算符。
具有左结合性。非运算符!为单目运算符, 具有右结合性。
7
逻辑运算符和其它运算符优先级
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处 理,能提高编译效率并产生质量较高的目标代码。
3
关系运算符
在C语言中有以下关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 != 不等于
关系运算符的优先级低于算术运算符,高于赋值运算符。 在 六个关系运算符中,<,<=,>,>=的优先级相同,高于== 和!=,==和!=的优先级相同。
s=a;
printf(“a=%d,s=%d\n”,a,s);
getch();
}
ຫໍສະໝຸດ Baidu
11
格式2
if(表达式) 语句1 else 语句2 功能:如果“表达式”为真,则执行“语句1”; 否则执行|语句2“。
12
例:
输入某同学某科考试成绩,大于等于60分输 出“及格”,小于60分输出“不及格”。
main() {
语句3
rate=0.7;
…… else if (表达式n)
else if (cost>800) rate=0.8;
else if (cost>500)
语句n
rate=0.9;
else 语句n+1
s=cost*rate; printf(“%f\n”,s); getch();
}
15
例:
main(){ char c; printf("input a character: "); c=getchar(); if(c<32) printf("This is a control character\n"); else if(c>='0'&&c<='9') printf("This is a digit\n"); else if(c>='A'&&c<='Z') printf("This is a capital letter\n"); else if(c>='a'&&c<='z') printf("This is a small letter\n"); else printf("This is an other character\n"); getch();
AS5C>II0值的为值为 9a“s7c+真ii5值”=为1,0120即,0为,而顾1c不的。成
立(a,=值3为)>0(.而b=1<5j)<由5,
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(); }
9
if语句
if语句用于判下所给的条件是否满足,程序 根据判定的结果决下所执行的操作。
C语言的if语句有3种基本格式
10
格式1
if(表达式)
表达式
功能:如果“表达式”为真,则执行其后“语句”,
否则不执行语句。 例:
main()
{
int a,s;
scanf(“%d”,&a);
if (a>0)
a++;
!(非)→&&(与)→||(或)
!(非) 算术运算符 关系运算符
&&和 || 赋值运算符
易混淆
按照运算符的优先顺序可以得出:
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)
16
注意事项:
1、在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通 常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达 式等,甚至也可以是一个变量。
在关本系例表中达求式出了的各值种是 关真系”运和算“符假的值”。,字用 符A“S变1C量I”和I码是“参以0与它”运表对算应示的的。。
‘如a:’+5<c,a的
main() {
char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",’a’+5<c,-i-2*j>=k+1);
8
选择结构
选择结构又称分支结构或者选取结构,其执 行是依据一下的条件选择执行路径,而不是 严格扫照语句出现的物理顺序执行的。分支 结构的程序设计方法的关键在于构造合适的 分支条件和分析程序流程,根据不同的程序 流程选择知当的分支语句。C语言提供了 “if”语句和“switch”语句两种分支结构控 制语句。
int k; if (k>=60) printf(“及格\n”); else printf(“不及格\n”); getch(); }
13
练习:
输入任意大小的三个整数,判断其中是否有 两个奇数一个偶数。若是,则输出“YES”, 不是则输出“NOT”
编写一个判断一个数是否是素数的函数,若 是返回1,否则返回0。
14
例:
格式3
根据用户购物的总价,选择不同的折扣率: >=1000为七折,>=800为八折,>=500为九折。
if(表达式1)
main()
语句1
{
else if(表达式2) 语句2
else if (表达式3)
int cost; float rate,s; scanf(“%d”,&cost); if (cost>1000)
4
关系表达式
关系表达式的一般形式为: 表达式 关系运算符 表达式 例如: a+b>c-d x>3/2 ‘a’+1<c -i-5*j==k+1 都是合法的关系表达式。由于表达式也可以又是关系表达式。
因此也允许出现嵌套的情况。例如: a>(b>c) a!=(c==d) 等。
5
例:
1
复合的赋值运算符
在赋值符“=”之前加上其它二目运算符可构 成复合赋值符。如+=,-=,*=,/ =,%=,<<=,>>=,&=,^=,|=。
构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式 它等效于 变量=变量 运算符 表达式
2
例如:
a+=5 等价于a=a+5 x*=y+7 等价于x=x*(y+7) r%=p 等价于r=r%p
而于j3=>2,5不因此成条立件,成故
立其,值所为以假值,为0即. 为0。
6
逻辑运算符极其优先次序
C语言中提供了三种逻辑运算符: && 与运算 || 或运算 ! 非运算 与运算符&&和或运算符||均为双目运算符。
具有左结合性。非运算符!为单目运算符, 具有右结合性。
7
逻辑运算符和其它运算符优先级
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处 理,能提高编译效率并产生质量较高的目标代码。
3
关系运算符
在C语言中有以下关系运算符: < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 != 不等于
关系运算符的优先级低于算术运算符,高于赋值运算符。 在 六个关系运算符中,<,<=,>,>=的优先级相同,高于== 和!=,==和!=的优先级相同。
s=a;
printf(“a=%d,s=%d\n”,a,s);
getch();
}
ຫໍສະໝຸດ Baidu
11
格式2
if(表达式) 语句1 else 语句2 功能:如果“表达式”为真,则执行“语句1”; 否则执行|语句2“。
12
例:
输入某同学某科考试成绩,大于等于60分输 出“及格”,小于60分输出“不及格”。
main() {
语句3
rate=0.7;
…… else if (表达式n)
else if (cost>800) rate=0.8;
else if (cost>500)
语句n
rate=0.9;
else 语句n+1
s=cost*rate; printf(“%f\n”,s); getch();
}
15
例:
main(){ char c; printf("input a character: "); c=getchar(); if(c<32) printf("This is a control character\n"); else if(c>='0'&&c<='9') printf("This is a digit\n"); else if(c>='A'&&c<='Z') printf("This is a capital letter\n"); else if(c>='a'&&c<='z') printf("This is a small letter\n"); else printf("This is an other character\n"); getch();
AS5C>II0值的为值为 9a“s7c+真ii5值”=为1,0120即,0为,而顾1c不的。成
立(a,=值3为)>0(.而b=1<5j)<由5,
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(); }
9
if语句
if语句用于判下所给的条件是否满足,程序 根据判定的结果决下所执行的操作。
C语言的if语句有3种基本格式
10
格式1
if(表达式)
表达式
功能:如果“表达式”为真,则执行其后“语句”,
否则不执行语句。 例:
main()
{
int a,s;
scanf(“%d”,&a);
if (a>0)
a++;
!(非)→&&(与)→||(或)
!(非) 算术运算符 关系运算符
&&和 || 赋值运算符
易混淆
按照运算符的优先顺序可以得出:
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)