### **C++ 逻辑运算符构建实例 ** 姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ #### **一、 填空题** 1. 当一个判断条件里既有 `&&` 又有 `||` 时,计算机会先算 \_\_\_\_\_\_\_\_\_\_\_\_\_部分。如果我们想改变运算顺序,可以使用 \_\_\_\_\_\_\_\_\_\_\_\_\_改变运算优先级。 2. 一个数字 `x` 要满足“是3的倍数,但不是2的倍数,也不是5的倍数”,这个条件写成逻辑表达式为:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 3. 小明想买一个玩具,条件是:玩具是蓝色的(结果储存在布尔变量`is_blue`中),并且价格(`price`)低于50元。这个购买条件可以写成表达式:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 4. 判断一个数 `x` 是否在区间 `[10, 20]` 或者 `[30, 40]` (包括边界)内,表达式可以写成:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 5. 如果布尔变量 `is_ready` 代表“准备就绪”,那么判断“**未**准备就绪”的最简洁表达式是 \_\_\_\_\_\_\_\_\_\_,而不是 `is_ready == false`。 6. 闰年的判断条件是:年份(`year`)能被4整除但不能被100整除,**或者**能被400整除。这个完整的表达式为: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 7. 如果 `A`, `B`, `C` 三个条件中**至少有两个**成立,那么表达式就可以写成:\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。(提示:AB成立,或者AC成立,或者BC成立) 8. 已知 `bool a = true, b = false;`,那么表达式 `a && b` 的结果是 \_\_\_\_\_\_\_\_ (填`true`或`false`)。 9. 要判断“x不等于10”,我们可以写成 `x != 10`,也可以用逻辑非运算符写成 \_\_\_\_\_\_\_\_\_\_\_\_\_。 #### **二、 单项选择题** ( ) 1. 某游戏进入隐藏关卡的条件是:玩家等级(`level`)大于50 **并且** 拥有“红宝石”(`has_red_gem`),**或者** 玩家是VIP(`is_vip`)**并且** 拥有“蓝宝石”(`has_blue_gem`)。下面哪个表达式是正确的? A. `level > 50 && (has_red_gem || is_vip) && has_blue_gem` B. `(level > 50 && has_red_gem) || (is_vip && has_blue_gem)` C. `level > 50 || (has_red_gem && is_vip) || has_blue_gem` D. `level > 50 && has_red_gem && is_vip && has_blue_gem` ( ) 2. 学校评选“优秀少先队员”的条件是:数学成绩(`math`)和语文成绩(`chinese`)都在90分以上,并且品德成绩(`conduct`)不能低于85分。小明的成绩是 `math=95, chinese=88, conduct=90`。判断小明是否符合条件的表达式 `(math > 90 && chinese > 90) && conduct >= 85` 的结果是? A. true (1) B. false (0) ( ) 3. 一个机器人活动需要满足以下所有条件:天气晴朗(`is_sunny`),温度(`temp`)在15到25度之间,并且风力(`wind`)小于3级。下面哪个表达式是**错误**的? A. `is_sunny && (temp >= 15 && temp <= 25) && wind < 3` B. `is_sunny && temp >= 15 && temp <= 25 && wind < 3` C. `!is_sunny || temp < 15 || temp > 25 || wind >= 3` D. `is_sunny && temp >= 15 && !(temp > 25) && wind < 3` ( ) 4. 给定 `bool a = true; bool b = false; bool c = true;`,表达式 `!(a && b) || (b || !c)` 的结果是? A. true (1) B. false (0) ( ) 5. 小红的妈妈说:“如果你数学**或者**英语考了100分,**并且**作业都写完了,我们周末就去游乐园。” 假设 `math_ok` 代表数学100分,`eng_ok` 代表英语100分,`hw_done` 代表作业写完。下面哪个表达式正确地表达了去游乐园的条件? A. `math_ok || eng_ok && hw_done` B. `math_ok && eng_ok || hw_done` C. `(math_ok || eng_ok) && hw_done` D. `math_ok && (eng_ok || hw_done)` ( ) 6. 已知 `int x = 5, y = 10;`,下面哪个表达式的值是 `false`? A. `x < 10 && y > 5` B. `x == 5 || y == 5` C. `!(x > y)` D. `x > 5 && y == 10` ( ) 7. 表达式 `!(x > 10)` 和下面哪个表达式是等价的? A. `x < 10` B. `x <= 10` C. `x != 10` D. `x > 10` #### **三、 构建逻辑表达式** 根据以下描述,使用给定的变量名写出对应的 C++ 逻辑表达式。 1. 一个账号可以登录,需要满足以下条件之一: * (1) 用户名和密码正确(结果储存在 `login_ok` 的布尔变量中)。 * (2) 用户通过了手机验证(结果储存在 `token_ok` 的布尔变量中)。 **写出表达式:** \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。 2. 一个商品可以享受折扣,条件是: * 商品**不是**“特价商品” (`is_special` 为 `false`) * **并且** (顾客是VIP会员(`is_vip`) **或者** 消费金额(`amount`)大于200元)。 * 提示:`is_special` 与 `is_vip` 都是布尔变量 **写出表达式:** \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_。