### **C++ 逻辑运算符 课后习题** 姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ #### **一、 填空题** 1. C++ 中用来表示逻辑“与”的运算符是 \_\_\_\_\_\_\_\_\_\_,表示逻辑“或”的运算符是 \_\_\_\_\_\_\_\_\_\_,表示逻辑“非”的运算符是 \_\_\_\_\_\_\_\_\_\_。 2. 逻辑与 `&&` 的运算规则是:两个条件必须都为 `true`,结果才为 `true`,这叫做“\_\_\_\_\_\_\_\_\_\_,一假即为假”。 3. 逻辑或 `||` 的运算规则是:只要有一个条件为 `true`,结果就为 `true`,这叫做“\_\_\_\_\_\_\_\_\_\_,全假才为假”。 4. 在C++的逻辑判断中,整数 `0` 会被当作 \_\_\_\_\_\_\_\_\_\_ 来看待,而任何非零的整数(如 `5`、`-10`)都会被当作 \_\_\_\_\_\_\_\_\_\_ 来看待。 5. 在 `A && B` 这个表达式中,如果 `A` 的值为 `false`,程序就不会再去计算 `B` 的值,这种现象叫做 \_\_\_\_\_\_\_\_\_\_。 6. 运算符的优先级决定了计算顺序,逻辑运算符的优先级从高到低是:\_\_\_\_\_\_\_\_\_\_ > \_\_\_\_\_\_\_\_\_\_ > \_\_\_\_\_\_\_\_\_\_。 7. 运算符优先级顺序的口诀是:非 > \_\_\_\_\_\_ > \_\_\_\_\_\_ > \_\_\_\_\_\_ > 或。 #### **二、 单项选择题** (   ) 1. 执行 `cout << ((5 > 3) && (2 < 1));` 这行代码,屏幕上会输出什么? A. true   B. false   C. 1   D. 0 (   ) 2. 执行 `cout << ((10 == 9) || (3 != 4));` 这行代码,屏幕上会输出什么? A. 1   B. 0   C. true   D. false (   ) 3. 表达式 `!(-1)` 的计算结果是什么? A. 1   B. 0   C. -1   D. 语法错误 (   ) 4. “年份 `year` 是闰年”的条件是“能被4整除但不能被100整除,或者能被400整除”。下列哪个表达式是正确的? A. `year % 4 == 0 && year % 100 != 0 && year % 400 == 0` B. `year % 4 == 0 || year % 100 != 0 && year % 400 == 0` C. `(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)` D. `year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)` (   ) 5. 阅读以下代码,其输出结果是什么? ```cpp int a = 1, b = 0; cout << (a || b); ``` ​ A. 0   B. 1   C. 2   D. a (   ) 6. 阅读以下代码,执行后变量 `y` 的值是多少? ```cpp int x = 5, y = 10; bool result = (x > 1) || (y++ > 10); ``` ​ A. 10   B. 11   C. 5   D. 1 (   ) 7. 阅读以下代码,执行后变量 `y` 的值是多少? ```cpp int x = 0, y = 10; bool result = (x > 1) && (y++ > 10); ``` ​ A. 10   B. 11   C. 0   D. 1 (   ) 8. 下列表达式中,结果一定是 `true` (或 `1`) 的是?(假设 `x` 为 `int` 类型变量) A. `x > 0 && x < 0`   B. `x > 100`   C. `!(x > 10)`   D. `x >= 20 || x < 20` (   ) 9. 根据运算符优先级,表达式 `!true || false && true` 的结果是? A. 1   B. 0   C. 无法计算   D. true (   ) 10. `int a = 10;`,下列哪个表达式的结果是 `false` (或 `0`) ? A. `a > 5`   B. `a > 5 || a < 1`   C. `! (a == 5)`   D. `a > 1 && a < 10` #### **三、 判断题 (对的打“√”,错的打“×”)** 1. 逻辑运算符 `&&` 的优先级比 `||` 要高。 (   ) 2. 对于 `int` 型变量 `a`,表达式 `!a` 和 `a == 0` 在逻辑判断上是等价的。 (   ) 3. 在 C++ 中,`5 < x < 10` 这个表达式可以正确地判断 `x` 是否在 5 和 10 之间。 (   ) 4. 关系运算符(如 `>`、`==`)的优先级要低于逻辑运算符(如 `&&`)。 (   ) 5. 在表达式 `A || B` 中,如果 `A` 的计算结果为 `true`,那么计算机就必须再计算 `B` 的值才能确定最终结果。 (   ) 6. 以下代码执行后,会输出 `1`。 (   ) ```cpp int a = 1, b = 2, c = 3; cout << (a > b || c > b); ``` 7. 以下代码执行后,变量 `b` 的值会变成 `11`。 (   ) ```cpp int a = 0, b = 10; bool result = a && (b++); ``` 8. 表达式 `!0` 的计算结果是 `1`。 (   ) 9. `cout << (true && false);` 的输出结果是 `0`。 (   ) 10. 当我们想表达“两个条件中至少有一个满足”时,应该使用 `||` 运算符。 (   )