Files

5.0 KiB
Raw Permalink Blame History

**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 都是布尔变量

    写出表达式: _______________________________________。