4.2 KiB
C++ 逻辑运算符 课后习题
姓名: ___________________
一、 填空题
- C++ 中用来表示逻辑“与”的运算符是 __________,表示逻辑“或”的运算符是 __________,表示逻辑“非”的运算符是 __________。
- 逻辑与
&&的运算规则是:两个条件必须都为true,结果才为true,这叫做“__________,一假即为假”。 - 逻辑或
||的运算规则是:只要有一个条件为true,结果就为true,这叫做“__________,全假才为假”。 - 在C++的逻辑判断中,整数
0会被当作 __________ 来看待,而任何非零的整数(如5、-10)都会被当作 __________ 来看待。 - 在
A && B这个表达式中,如果A的值为false,程序就不会再去计算B的值,这种现象叫做 __________。 - 运算符的优先级决定了计算顺序,逻辑运算符的优先级从高到低是:__________ > __________ > __________。
- 运算符优先级顺序的口诀是:非 > ______ > ______ > ______ > 或。
二、 单项选择题
( ) 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
三、 判断题 (对的打“√”,错的打“×”)
- 逻辑运算符
&&的优先级比||要高。 ( ) - 对于
int型变量a,表达式!a和a == 0在逻辑判断上是等价的。 ( ) - 在 C++ 中,
5 < x < 10这个表达式可以正确地判断x是否在 5 和 10 之间。 ( ) - 关系运算符(如
>、==)的优先级要低于逻辑运算符(如&&)。 ( ) - 在表达式
A || B中,如果A的计算结果为true,那么计算机就必须再计算B的值才能确定最终结果。 ( ) - 以下代码执行后,会输出
1。 ( )int a = 1, b = 2, c = 3; cout << (a > b || c > b); - 以下代码执行后,变量
b的值会变成11。 ( )int a = 0, b = 10; bool result = a && (b++); - 表达式
!0的计算结果是1。 ( ) cout << (true && false);的输出结果是0。 ( )- 当我们想表达“两个条件中至少有一个满足”时,应该使用
||运算符。 ( )