文章目录
算术表达式
定义
算数表达式是使用算术运算符和括号将运算量连接起来的式子
分类
| 运算符 | 含义 | 举例 | 结果 |
|---|---|---|---|
| * | 乘法运算符 | a*b | a和b的乘积 |
| / | 除法运算符 | a/b | a除以b的商 |
| % | 求余运算符 | a%b | a除以b的余数 |
| + | 加法运算符 | a+b | a和b的和 |
| - | 减法运算符 | a-b | a和b的差 |
注意
1.
除法运算符中两个实数相除的结果是双精度实数,两个整数相除的结果为整数。
2.
求余运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。
3.
类型不同的数进行运算,其结果按照类型优先级高的类型定
特例
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<5 | 1 |
| 大于 | > | 3>5 | 0 |
| 小于等于 | <= | 3<=5 | 1 |
| 大于等于 | >= | 3>=5 | 0 |
| 等于 | == | 3==5 | 0 |
| 不等于 | != | 3!=5 | 1 |
优先级和结合性
优先级
<,<=,>=,>高于==,!=
结合性
从左至右
注意
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<34的值为:1
(3+4)<(3*4)的值为:1
逻辑表达式
定义
逻辑表达式:用逻辑运算符连接两个表达式构成。
参与逻辑运算的操作数叫逻辑量 ,逻辑量可以是整型、实型、字符型、和指针型等多种类型
分类
| 含义 | 运算符 | 举例 | 结果 |
|---|---|---|---|
| 逻辑“非” | ! | !3 | 0 |
| 逻辑“与” | && | 3&&0 | 0 |
| 逻辑“或” | ll | 3ll0 | 1 |
优先级和结合性
优先级
!>&&>||
结合性
自左向右
注意
1.
非为单目运算符,,与和或是双目运算符
2.
C语言中,逻辑运算结果用数值1表示真,数值0表示假
3.
逻辑运算中,非零当作真,0作为假,因此任何类型的数据都可以参与到逻辑运算
真值表
| A | B | A&&B |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
| A | B | AllB |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
| A | !A |
|---|---|
| 1 | 0 |
| 0 | 1 |
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后内容都不再判断
总结
简单分类并总结表达式相关知识点
本文详细介绍了算术表达式、关系表达式和逻辑表达式的定义、分类、运算符及其优先级和结合性。通过实例解析和真值表展示,帮助理解运算规则,并提供了程序验证。同时,总结了表达式处理的关键知识点和注意事项。
836

被折叠的 条评论
为什么被折叠?



