1
基本运算
GESP 一级 · 知识点 6

➗ 基本运算

程序里的大部分工作都在「算」。认识几类最常用的运算符:算术、逻辑、关系,还有自增自减和三目运算。

考纲知识点:算术运算、逻辑运算、关系运算、变量自增与自减运算、三目运算。
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 一级
  1. (5)掌握常量与变量的命名、定义、作用、初始化与赋值以及变量的自加与自减运算。
  2. (6)掌握基础算术表达式:加、减、乘、除、整除、求余。
  3. (7)掌握逻辑运算与(&&)、或(||)、非(!)。
  4. (8)掌握关系运算:大于、大于等于、小于、小于等于、等于、不等于。
📚
先学一学
花 5 分钟读完下面 5 课,再去闯关就不慌啦
1
🧮 算术运算:加减乘除和求余

算术运算就是「做数学」。五个符号:+ 加、- 减、* 乘、/ 除、% 求余。注意:乘号是星号 *,不是 ×。

😱 一号大坑:整数除法会「砍掉」小数
在 C++ 里,两个整数相除,结果还是整数,小数部分被直接扔掉(不是四舍五入!)
7 / 2 → 3 (不是 3.5!)
7 % 2 → 1 (余数)
2 / 6 → 0 (不够除,商 0 余 2)
想保住小数,至少一边要写成小数:7.0 / 2 → 3.5。但 0.0 + 7 / 2 还是 3 —— 因为 7 / 2 已经先算成 3 了,再加 0.0 只是把它变成 3.0。
🎯 求余 % 的三件事
1️⃣ % 只能用于整数,不能对小数用。
2️⃣ n % 10 可以取出 n 的个位数(27 % 10 = 7)。
3️⃣ 除数为 0 会让程序崩溃,除法和求余都一样。
🤝 同级运算,从左到右
* / % 三个是同一等级,谁在左边先算谁:3 * 4 % 5 / 6 = ((3×4)%5)/6 = (12%5)/6 = 2/6 = 0
💡 口诀:整数除整数,小数全扔掉;% 是求余数,只给整数用。
2
⚖️ 关系运算:比一比大小

关系运算用来比较两个值,答案只有两种:真(true)假(false)。一共六个符号:

> 大于 >= 大于等于 < 小于 <= 小于等于
== 等于 != 不等于
🔤 小提示:!= 里的 ! 读作「非」,合起来就是「不等于」。
⚠️ 二号大坑:== 和 = 千万别搞混
· a == 3提问:a 是不是等于 3?
· a = 3动作:把 3 放进 a。
这是新手第一大 bug:在 if 里把 == 写成了 =,程序往往不报错,但结果完全不对。
✨ 真和假其实能当数字用
比较的结果「真」在运算时当作 1,「假」当作 0。所以 cout << (6 > 2) * 2; 会先算出 6 > 2 是真的(1),再 1 × 2 = 2
💡 口诀:比大小用关系运算,结果只有真 / 假;问相等请写 ==
3
🔗 逻辑运算:与、或、非

想把好几个判断连起来,就用逻辑运算。它把「真真假假」组合起来,结果还是真或假

🤝 与 &&(并且)
两个都真,结果才真。「今天晴天 && 写完作业」→ 两样都满足才出门玩。
👥 或 ||(或者)
只要有一个真,结果就真。「带伞 || 带帽子」→ 带一样就行。
🙅 非 !(取反)
把真假翻个面:真变假,假变真。!下雨 就是「没下雨」。
⚡ 行业小秘密:短路求值
· && 短路:左边一算出来是,右边就根本不看了(反正结果已经是假)。
· || 短路:左边一算出来是,右边也根本不看了
程序员还常用它来「保护」危险操作,比如 b != 0 && a / b > 2:b 是 0 时右边不执行,就不会除以 0 崩溃
🧙 德摩根定律:把「非」推进去
!(a && b) 等于 !a || !b
!(a || b) 等于 !a && !b
口诀:把「非」推进去,与变或、或变与。真题里判断「a、b 是否都等于 0」,正确写法正是 !(a || b)
💡 口诀:&& 全真才真,|| 一真就真,! 把真假翻个身
4
🪜 自增自减:自己给自己加 1

让一个数自己加 1 太常用了,C++ 专门给了个简写:++自增--自减

🆚 前缀 和 后缀
· ++i先加后用):先把 i 加 1,再用加好的新值。
· i++先用后加):先用 i 现在的值,用完了 i 再加 1。
🎉 好消息:当它们单独成一句时(只写 i++; 或 ++i;),效果完全一样,都是让 i 加 1。只有在别的表达式里同时用到它的值时,前后缀才有区别。
📝 跟着算一算
int x = 101;
x++; // x 变成 102
++x; // x 变成 103
cout << x; // 输出 103
➕ 想一次加更多?用复合赋值
i += 2 就是 i = i + 2(一次跨两格);同理还有 -=*=/=%=。写 for 循环时,i += 2 特别常见。
💡 口诀:单独成句都一样,混在算式里才分「先用 / 先加」。
5
🥇 运算优先级:谁先算?

一个算式里又加、又乘、又有比较,先算谁?记住这条队伍,排在前面的先算

  1. 1️⃣括号 ( ) —— 想让谁先算就给谁套上括号,最保险!
  2. 2️⃣算术运算:先 * / %,后 + -
  3. 3️⃣关系运算:> >= < <= 先,然后 == !=
  4. 4️⃣逻辑运算:! → && → ||
  5. 5️⃣赋值:= += -= 等(几乎总是最后)
📝 跟着算一算
cout << 10 - 3 * (2 + 1) % 10;
先括号 (2+1)=3 → 再 3*3=9 → 9%10=9 → 最后 10-9=1
💣 三号大坑:^ 不是乘方!
数学里写 a²,可 C++ 里的 a^2 并不是 a 的平方。这里的 ^按位异或运算(把两个数的二进制位一位一位地比)。
想算平方请写 a * a,更高次方就多乘几次。这是 C++ 最经典的「看着对、其实错」!
🎩 三目运算的位置
三目运算 条件 ? a : b 的优先级很低,只比赋值高一点,所以写复杂时记得加括号cout << (a > b ? a : b); 就是「挑出较大的那个」。
💡 口诀:括号 → 算术 → 关系 → 逻辑 → 赋值^ 是异或,不是乘方
🎯
闯关小锦囊 · 考点提醒
🎮
学完了?来闯关!
下面 14 个小挑战,点一点就能玩

Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。