AP计算机科学逻辑运算符

时间:2013-03-08 01:58:38

标签: java

只有当布尔表达式ABC全部为false时,以下哪项才会评估为真?

  

答案: !(A || B || C)
  我的回答: !(A && B && C)

为什么我的回答不正确?如果ABC全部为false!已分发,则会使所有true成为true,从而返回{ {1}}。


鉴于abc是整数,请考虑布尔表达式

(a < b) || !((c == a * b) && (c < a))

以下哪项可以保证表达式为true

  

答案: c < afalse

由于(c == a * b),结果是否依赖于false &&

5 个答案:

答案 0 :(得分:2)

  1. 关键字:。如果ABC中至少有一个为true,则!(A || B || C)将为false(因为A || B || Ctrue! truefalse(c == a * b))。

  2.   

    由于&&,结果是否依赖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。首先评估括号。

我建议建立一个表达式的真值表来验证其正确性。