火龙信奥
  • 分享
  • 课程
  • 题库
  • CSES HARD
    • GESP
    • CSP
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • e课堂
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

第 7 课《关系运算、逻辑运算与条件表达式》

作者: 作者的头像   huolong , 时间:2026-09-07 14:03:06 , 所有人可见, 阅读  2

第 7 课:关系运算、逻辑运算与条件表达式

本课学习目标: 1. 熟练掌握 6 种关系运算符(>, >=, <, <=, ==, !=)。 2. 严格区分 =(赋值)与 ==(判断相等)的本质区别。 3. 掌握 3 种逻辑运算符(&& 并且、|| 或者、! 取反)的真值表。 4. 学会把生活中的中文复合条件(如“能被 2 整除且除以 7 余 2”)精准翻译成 C++ 代码。 5. 理解在 C++ 条件中,0 代表假,所有非 0 数字都代表真。


一、 关系运算与结果

关系运算用于比较两个值的大小或是否相等。在 C++ 中,关系表达式成立时结果为 1(代表真),不成立时结果为 0(代表假)。

1. 常见关系运算符速查

  • 大于 >:如 5 > 3 结果为 1。
  • 小于 <:如 5 < 3 结果为 0。
  • 大于等于 >=:如 5 >= 5 结果为 1。
  • 小于等于 <=:如 4 <= 5 结果为 1。
  • 等于 ==:⚠️ 注意是两个连续的等号!用于检查左右两边是否完全相同。
  • 不等于 !=:用于检查左右两边是否不相同(如 5 != 6 成立,结果为 1)。

2. ⚠️ 终极易错点:= 与 ==

  • = 是赋值:把右边的值塞给左边(a = 10;)。
  • == 是判断相等:检查左右两边是否一样(a == 10)。
  • 考场大坑:如果把判断写成了赋值 if (n = 0),不仅语法不会报错,而且会让 n 变成 0 并且条件永远被判为假!

二、 逻辑运算(连接多个条件)

当我们需要同时满足多个条件时,就要用到逻辑运算符。

1. 逻辑与 &&(并且 / AND)

  • 规则:两边都成立(为真),整体才成立;只要有一边是假,整体就是假(一假则假)。
  • 真值表速记:
  • 真 && 真 ➡️ 真 (1)
  • 真 && 假 ➡️ 假 (0)
  • 假 && 假 ➡️ 假 (0)

2. 逻辑或 ||(或者 / OR)

  • 规则:只要有一边成立(为真),整体就成立;两边全都是假,整体才是假(一真则真)。
  • 真值表速记:
  • 真 || 假 ➡️ 真 (1)
  • 假 || 假 ➡️ 假 (0)

3. 逻辑非 !(取反 / NOT)

  • 规则:把真的变成假,把假的变成真。
  • !(5 > 3):因为 5 > 3 本身是真,取反后结果为 0。

💡 C++ 的“真假”判定铁律: 在 C++ 的条件判断中,数字 0 代表假(false),而所有不是 0 的数字(如正数、负数)全部代表真(true)! * 表达式 !0 的结果是 1。 * 表达式 !5 的结果是 0(因为 5 是非 0 数字,代表真,取反后就是假)。


三、 实战:如何把中文条件翻译成 C++ 表达式?

在 GESP 一级考试中,经常需要把文字描述写成代码条件:

  1. 判断 n 是偶数:
  2. 中文:能被 2 整除。
  3. 代码:n % 2 == 0 (或者写成 !(n % 2))。
  4. 判断 n 在 1 到 100 之间(闭区间):
  5. 中文:n 大于等于 1 且 n 小于等于 100。
  6. 代码:n >= 1 && n <= 100(⚠️ 不能写成连等形式 1 <= n <= 100,C++ 识别不了连等)。
  7. 判断 n 能被 3 或 7 整除:
  8. 中文:n 能被 3 整除,或者 n 能被 7 整除。
  9. 代码:n % 3 == 0 || n % 7 == 0。
  10. 判断 i 是偶数且除以 7 余 2:
  11. 代码:(i % 2 == 0) && (i % 7 == 2)。

四、 GESP 一级真题与例题精讲

练一练 1:混合逻辑与算术运算

【题目】 下面表达式的值是( )。

12 - 3 * 2 && 2

A. 0
B. 1
C. 6
D. 9

正确答案:B 名师解析: 1. 先算左边的算术部分:12 - 3 * 2,根据先乘除后加减,3 * 2 = 6,12 - 6 = 6。 2. 算术部分算完后,整个表达式变成了:6 && 2。 3. 在逻辑与 && 中,6 是非 0 数字(代表真),2 也是非 0 数字(代表真)。“真 && 真” 的结果为 1。


练一练 2:逻辑非运算

【题目】 下面表达式的值是( )。

!0 + !5

A. 0
B. 1
C. 2
D. 5

正确答案:B 名师解析: 1. 先看 !0:数字 0 代表假,对它取反 !0 结果为 1。 2. 再看 !5:数字 5 是非 0 代表真,对它取反 !5 结果为 0。 3. 两者相加:1 + 0 = 1。


练一练 3:判断两个变量都为 0 的正确写法

【题目】 下列哪个表达式能正确判断 a 等于 0 且 b 等于 0?( ) A. (a == b == 0) B. !(a || b) C. (a + b == 0) D. (a == 0) + (b == 0)

正确答案:B 名师解析: * 最标准的写法是 a == 0 && b == 0。 * 选项 B 中 !(a || b) 运用了德·摩根定律:如果 a 和 b 都为 0,则 a || b 为假(0),取反 ! 后变成真(1),逻辑完全正确! * 选项 A 错误,因为 a == b == 0 会从左到右计算,无法达到预期。选项 C 在 a=1, b=-1 时也会成立,属于误判。

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

关于火龙

  • 关于我们
  • 学员获奖
  • 预约试听
  • ACM课程
  • CSP课程
  • 学习指南

帮助中心

  • 用户协议
  • 打字练习 HOT
  • 在线画图
  • DevC++下载
  • CSP报名
  • GESP官网

推荐课程

  • C++零基础入门(可试看)
  • C++进阶提升
  • GESP考级辅导
  • GESP打卡
  • CSP-J/S打卡

公众号

火龙信奥公众号二维码

© 2017-2026 义乌市睿码科技有限公司版权所有 浙ICP备2021013995号

火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码