C++语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使C++语言功能十分完善。这也是C++语言的主要特点之一。
2.1 算术运算符下表显示了 C++ 支持的算术运算符。
假设变量 A 的值为 10,变量 B 的值为 20,则:
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 把两个操作数相加 | A + B 将得到 30 |
| - | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
| * | 把两个操作数相乘 | A * B 将得到 200 |
| / | 分子除以分母 | B / A 将得到 2 |
| % | 取模运算符,整除后的余数 | B % A 将得到 0 |
| ++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
| -- | 自减运算符,整数值减少 1 | A-- 将得到 9 |
int a=10,b=5; cout<<"a+b:"<2.1.1 模运算符
cout<<5%2; //运行结果:1 //操作对象只能是int2.1.2 除法运算符
C++语言的除法运算符有一些特殊之处,即如果a、b是两个整数类型的变量或常量,那么a/b的值是a除以b的商。例如, 5/2的值是2,而不是2.5,而5.0/2或5/2.0的值是2.5。
2.1.3 自增自减运算符1.自增运算符。例如,x++表示在使用x之后,使x的值加1,即x=x+1;++x表示使用x之前,先使x的值加1,即x=x+1。
2.自减运算符。例如,x--表示在使用x之后,使x的值减1,即x=x-1;--x表示使用x之前,先使x的值减1,即x=x-1。
#includeusing namespace std; int main() { int x,y,z1,z2; x=7;y=8; z1=y-(x++); //计算z1=1,计算后x=8 z2=y-(++x); //计算前x的值自加1,x的值为9,再与y求差 cout<<"z1="< 2.1.4 复合算术赋值 //程序1 int a=0; a+=1; //输出1 cout<2.2 关系运算符下表显示了 C++ 支持的关系运算符。
假设变量 A 的值为 10,变量 B 的值为 20,则:
运算符 描述 实例 == 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。 != 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。 > 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。 < 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。 >= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。 <= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。 int main() { int n1=4,n2=5,n3; n3=n1>n2; //n3的值为0 n3=n12.3 逻辑运算符 下表显示了 C++ 支持的关系逻辑运算符。
假设变量 A 的值为 1,变量 B 的值为 0,则:
运算符 描述 实例 && 称为逻辑与运算符。如果两个操作数都 true,则条件为 true。 (A && B) 为 false。 || 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。 (A || B) 为 true。 ! 称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。 !(A && B) 为 true。 int main() { int a=1,b=0; cout<<(a&&b)<输出结果为0,1,1
2.4 位运算符(初学者暂不教)
运算符
含 义
说明
例子
&
按位与
把参与运算的两个数对应的二进制位相与,只有对应的二进制均为1时,结果的对应位才为1,否则为0。
9&5中9可以写成(00001001),5可以写成(00000101),那么9&5的运算结果为0000 0001,输出结果是1。
|
按位或
把参与运算的两个数对应的二进制位相或,也就是只要对应的两个二进制位有一个为1时,其结果就为1。
9|5相当于00001001|00000101,运算结果是00001101,输出结果是13。
^
按位异或
把参与运算的两个数对应的二进制位相异或,当对应的二进制位上的数据字不相同时,结果对应为1时,否则为0。
1^1=0,1^0=1,0^0=0,0^1=1
9^5相当于00001001^00000101,运算结果是00001100,输出结果是12。
~
取反
把运算数的各个二进制位按位求反。
~9相当于~(0000 1001),运算结果为1111 0110。
<<
左移
把“<<”左边的运算数的各二进制位向左移若干位,“<<”右边的数是指定移动的位数,高位丢弃,低位补0。
a<<4指把a的各二进位向左移动4位,如a=00000011(十进制为3),左移4位后为00110000(十进制48)。
>>
右移
把“>>”左边的运算数的各二进制位全部右移若干位,“>>”右边的数是指定移动的位数。
设a=15,a>>2表示把00001111右移为0000 0011(十进制为3)。
需要说明的是,对于有符号数,在右移时,符号位将随同移动。当操作数为正数时,最高位为0,而为负数时,最高位为1。最高位是补0或补1取决于编译系统的规定。
2.5 运算的简写在C++语言中,有一些运算可以简写,如下表所示。
2.6 常用库函数 加上头文件#include
简 写
含 义
简 写
含 义
a+=b
a=a+b
a&=b
a=a&b
a-=b
a=a-b
a|=b
a=a|b
a*=b
a=a*b
a^=b
a=a^b
a/=b
a=a/b
a<<=b
a=a<
a%=b
a=a%b
a>>=b
a=a>>b
函数名
格式
功能说明
例子
绝对值函数
abs(x)
求一个数x的绝对值
abs(-5)=5
自然数指数函数
exp(x)
求实数x的自然指数ex
exp(1)=2.718282
向下取整
floor(x)
求不大于实数x的最大整数
floor(3.14)=3
向上取整
ceil(x)
求不小于实数x的最小整数
ceil(3.14)=4
自然对数函数
log(x)
求实数x的自然数对数
log(1)=0
指数函数
pow(x,y)
计算xy,结果为双精度实数
pow(2,3)=8
随机函数
rand()
产生0到RAND-MAX之间的随机整数
平方根值函数
sqrt(x)
求实数x的平方根
sqrt(25)=5
下面为大家准备了一个表:
在下面各世界顶级的奖项中,为计算机科学与技术领 域作出杰出贡献的科学家设立的奖项是( )。
A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖
D. 图灵奖 E. 南丁格尔奖



