运算符和表达式(二)

本文详细介绍了算术表达式、关系表达式和逻辑表达式的定义、分类、运算符及其优先级和结合性。通过实例解析和真值表展示,帮助理解运算规则,并提供了程序验证。同时,总结了表达式处理的关键知识点和注意事项。

算术表达式

定义

算数表达式是使用算术运算符和括号将运算量连接起来的式子

分类

运算符含义举例结果
*乘法运算符a*ba和b的乘积
/除法运算符a/ba除以b的商
%求余运算符a%ba除以b的余数
+加法运算符a+ba和b的和
-减法运算符a-ba和b的差

注意

1.

除法运算符中两个实数相除的结果是双精度实数,两个整数相除的结果为整数。

2.

求余运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。

3.

类型不同的数进行运算,其结果按照类型优先级的类型定

char
int
short
unsigned
long
double
float

特例

1.

关于除法运算,1/2=0,但1.0/2=0.5

2.

关于求余数运算,当求余运算时,输出结果的正负与求余符号左边的数据保持一致。
例:

#include<stdio.h>
int main()
{
  printf("%d\n",5%3);
  printf("%d\n",5%-3);
  printf("%d\n",-5%3);
  printf("%d\n",-5%-3);
  }

输出结果为:
2
2
-2
-2

优先级与结合性

优先级:

() 高于 *,/,% 高于 +,-

结合性:

从左至右

例:

已知:float a=2.0;
int b=6,c=3;
求解:a*b/c-1.5+‘a’+fabs(-5)=?

解法分析:

①a*b=12.000000(float型)
fabs(-5)函数返回值为5.000000(double型)
②12.000000/c=4.000000(float型)
③4.000000(float型)减1.5000000(double型)得2.5(double型)
④2.5(double型)加97(char型)得99.5(double型)
⑤99.5(double型)加5.000000(double型)得104.500000(double型)

程序验证:
#include<stdio.h>
#include<math.h>
int main()
{
  float a=2.0;
  int b=6,c=3;
  printf("%f\n",a*b/c-1.5+'a'+fabs(-5));

输出结果为:104.500000

关系表达式

定义

用关系运算符连接的两个表达式构成。关系运算符实际上就是比较运算符。

分类

含义运算符举例结果
小于<3<51
大于>3>50
小于等于<=3<=51
大于等于>=3>=50
等于==3==50
不等于!=3!=51

优先级和结合性

优先级

<,<=,>=,>高于==,!=

结合性

从左至右

注意

1.

关系运算符结果只有0和1 比较结果成立时结果为1,不成立时结果为0

3>5的值为:0
3<4>2的值为:0
设x=-2;-3<x<-1的值为:0
设x=1;2<x<4的值为:1

2.

参与关系运算的两个运算量可以是任意类型的数据

3.

算术运算符优先级高于关系运算符

3+(4<3)4的值为:3
3+4<3
4的值为:1
(3+4)<(3*4)的值为:1

逻辑表达式

定义

逻辑表达式:用逻辑运算符连接两个表达式构成。
参与逻辑运算的操作数叫逻辑量 ,逻辑量可以是整型、实型、字符型、和指针型等多种类型

分类

含义运算符举例结果
逻辑“非”!!30
逻辑“与”&&3&&00
逻辑“或”ll3ll01

优先级和结合性

优先级

!>&&>||

结合性

自左向右

注意

1.

非为单目运算符,,与和或是双目运算符

2.

C语言中,逻辑运算结果用数值1表示真,数值0表示假

3.

逻辑运算中,非零当作真,0作为假,因此任何类型的数据都可以参与到逻辑运算

真值表
ABA&&B
111
100
010
000
ABAllB
111
101
011
000
A!A
10
01

4.

C语言中,数学上的区间必须分隔开写 例:2《X《8 即2<=x && x<=8

5.

如果&&表达式中,左侧为假,则C语言不会再判断右侧

||表达式中,如果左侧为真,则C语言不会再判断右侧

①a=0 ;b=1;

​ c=a && (b=3)

执行后a=0,b=1,c=0 由于已判断&&表达式的真假,所以b=3不再判断

② a=1;b=1;c=0

d=a||b–||(c=b+3);

执行后:a=1 b=1 c=0 d=1 由于已判断||表达式的真假,所以d=a后内容都不再判断

总结

简单分类并总结表达式相关知识点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值