5.0 KiB
**C++ 逻辑运算符构建实例 **
姓名: ________________
一、 填空题
-
当一个判断条件里既有
&&又有||时,计算机会先算 _____________部分。如果我们想改变运算顺序,可以使用 _____________改变运算优先级。 -
一个数字
x要满足“是3的倍数,但不是2的倍数,也不是5的倍数”,这个条件写成逻辑表达式为:_______________________________________。 -
小明想买一个玩具,条件是:玩具是蓝色的(结果储存在布尔变量
is_blue中),并且价格(price)低于50元。这个购买条件可以写成表达式:___________________________。 -
判断一个数
x是否在区间[10, 20]或者[30, 40](包括边界)内,表达式可以写成:_______________________________________。 -
如果布尔变量
is_ready代表“准备就绪”,那么判断“未准备就绪”的最简洁表达式是 __________,而不是is_ready == false。 -
闰年的判断条件是:年份(
year)能被4整除但不能被100整除,或者能被400整除。这个完整的表达式为: _______________________________________。 -
如果
A,B,C三个条件中至少有两个成立,那么表达式就可以写成:_______________________________________。(提示:AB成立,或者AC成立,或者BC成立) -
已知
bool a = true, b = false;,那么表达式a && b的结果是 ________ (填true或false)。 -
要判断“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) 用户名和密码正确(结果储存在
login_ok的布尔变量中)。 -
(2) 用户通过了手机验证(结果储存在
token_ok的布尔变量中)。
写出表达式: _______________________________________。
-
-
一个商品可以享受折扣,条件是:
- 商品不是“特价商品” (
is_special为false) - 并且 (顾客是VIP会员(
is_vip) 或者 消费金额(amount)大于200元)。 - 提示:
is_special与is_vip都是布尔变量
写出表达式: _______________________________________。
- 商品不是“特价商品” (