正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-J 2025 第一轮真题 › 第 7 题

CSP-J 2025 第一轮 第 7 题:布尔表达式 (a&&b) (!c&&a) 与哪个表达式不始终相等

单项选择 · 程序基本概念与数据类型 · 难度 很容易 · 答案 C

题目

假设 $a, b, c$ 都是布尔变量,逻辑表达式 (a && b) || (!c && a) 的值与下列哪个表达式不始终相等?
CSP-J 2025 第一轮 第 7 题 原题
原题扫描(页面加载后可直接在线作答)

选项

  • A. a && (b || !c)
  • B. (a || !c) && (b || !c) && (a || a)
  • C. a && (!b || c)
  • D. !(!a || !b) || (a && !c)

答案

C

题解

答案是 C。

这里 && 表示“与”,|| 表示“或”,! 表示“非”。题目问“不始终相等”,也就是找出一个选项:至少存在一组布尔变量的取值,使它与原表达式的结果不同。

先把原表达式中的公共因子 a 提出来:

``text (a && b) || (!c && a) = (a && b) || (a && !c) = a && (b || !c) ``

因此,原表达式为真的条件是:a 为真,并且 b 为真或 c 为假。

下面逐项判断。

A:始终相等。

a && (b || !c) 就是上面化简得到的表达式。

B:始终相等。

由于 a || a 等于 a,所以:

``text (a || !c) && (b || !c) && (a || a) = (a || !c) && (b || !c) && a = a && (b || !c) ``

最后一步使用了吸收律:a && (a || !c) 等于 a。也可以这样理解:当 a 为假时,两边都为假;当 a 为真时,a || !c 必定为真,不再影响整个“与”表达式的结果。

C:不始终相等。

它是 a && (!b || c),其中括号内的条件和原式不同。举一个反例即可确定它不等价:令 a = true、b = true、c = false。

原表达式的值为:

``text (true && true) || (!false && true) = true || true = true ``

C 的值为:

``text true && (!true || false) = true && (false || false) = false ``

同一组取值下,一个为真、一个为假,因此 C 符合题意。

D:始终相等。

根据德摩根律,!(!a || !b) 等于 a && b,所以:

``text !(!a || !b) || (a && !c) = (a && b) || (a && !c) ``

这与原表达式相同。

这类题可以先用分配律、吸收律和德摩根律化简;对怀疑不等价的选项,只要找到一组结果不同的取值,就能证明它们“不始终相等”。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号