运算符与表达式

概念讲解

算术运算符

运算符 说明 示例
+ 加法 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b
% 取模 a % b

关系运算符

运算符 说明 示例
== 等于 a == b
!= 不等于 a != b
> 大于 a > b
< 小于 a < b
>= 大于等于 a >= b
<= 小于等于 a <= b

逻辑运算符

运算符 说明 示例
&& 逻辑与 a && b
|| 逻辑或 a || b
! 逻辑非 !a

赋值运算符

运算符 说明 示例
= 赋值 a = b
+= 加赋值 a += b
-= 减赋值 a -= b
*= 乘赋值 a *= b
/= 除赋值 a /= b
%= 取模赋值 a %= b

运算符优先级

优先级 运算符 说明
1 () 括号
2 !, ++, -- 单目运算符
3 *, /, % 乘除模
4 +, - 加减
5 <, <=, >, >= 关系
6 ==, != 相等
7 && 逻辑与
8 || 逻辑或
9 =, +=, -=, ... 赋值

考点分析

初赛考查方式

  1. 选择题: 运算符优先级
  2. 程序阅读: 表达式求值
  3. 填空题: 运算结果

常见题型

  • 运算符优先级
  • 表达式求值
  • 短路求值

例题精讲

例题 1:运算符优先级

题目: 2 + 3 * 4 的值是多少?

解答:

先乘后加
3 * 4 = 12
2 + 12 = 14

例题 2:短路求值

题目: 以下代码的输出是什么?

123456int a = 0;
int b = 1;
if (a && (b = 2)) {
    // 不会执行
}
cout << b;

解答:

a 为 false,短路求值
(b = 2) 不会执行
b 仍然为 1

练习题

  1. 10 / 3 的值是多少?
查看答案

3

整数除法会截断小数部分,只保留整数部分。

  1. 10 % 3 的值是多少?
查看答案

1

取模运算返回除法的余数:10=3×3+110 = 3 \times 3 + 1

  1. 以下代码的输出是什么?
123int a = 5;
int b = a++ + ++a;
cout << b;
查看答案

未定义行为(不同编译器结果可能不同)

a++ 和 ++a 在同一个表达式中修改同一个变量,这是未定义行为。

常见结果可能是 11 或 12,但不能依赖这个结果。

易错点

⚠️ 注意:

  1. == 是比较,= 是赋值
  2. 整数除法会截断
  3. 注意运算符优先级
  4. 注意短路求值