只有当布尔表达式A
,B
和C
全部为false
时,以下哪项才会评估为真?
答案:
!(A || B || C)
我的回答:!(A && B && C)
为什么我的回答不正确?如果A
,B
和C
全部为false
且!
已分发,则会使所有true
成为true
,从而返回{ {1}}。
鉴于a
,b
和c
是整数,请考虑布尔表达式
(a < b) || !((c == a * b) && (c < a))
以下哪项可以保证表达式为true
?
答案:
c < a
是false
由于(c == a * b)
,结果是否依赖于false
&&
?
答案 0 :(得分:2)
关键字:仅。如果A
,B
或C
中至少有一个为true
,则!(A || B || C)
将为false
(因为A || B || C
将true
是! true
而false
是(c == a * b)
)。
由于
&&
,结果是否依赖c < a
为假?
否:如果false
为(c == a * b) && (c < a)
,则false
必须也为! ((c == a * b) && (c < a))
,这意味着true
必须表达为true
,暗示整个表达式必须为||
(因为true
,而且我们已经知道右侧的事实将是{{1}})。< / p>
答案 1 :(得分:0)
因为如果任何表达式为假,您的表达式将评估为true。他们并非都必须虚假才能评估为真,这就是问题所要求的。
答案 2 :(得分:0)
关键词“只有”,你的答案,A B和C的其他组合是假的,而某些真的也会产生真实。虽然如果它们都是假的,它也会产生真的,但只有当
时才会显示答案 3 :(得分:0)
这是因为!在第一个。你是对的,通常情况会发生。数字电子学也是如此。要得到答案,你必须使用或,因为除非它们都是相同的,否则它们都是真的。这很奇怪,但它有效。
答案 4 :(得分:0)
否定运算符的分布方式不是您认为的那样 - 请参阅De Morgan's Law。首先评估括号。
我建议建立一个表达式的真值表来验证其正确性。