这些题目涵盖整个布尔逻辑模块:计算表达式、真值表、电路、等价,以及把句子转成条件。题目全部原创,由易到难排列。
请在纸上写出完整步骤,包括每一步括号的计算,然后打开答案对照。全程的运算顺序是:括号、NOT、AND、OR。
题目
**1.(容易)**当 A = 1、B = 0 时,求 Q = NOT A OR B。
查看答案
NOT A = NOT 1 = 0。再 0 OR 0 = 0。
**2.(容易)**当 A = 1、B = 0、C = 1 时,求 Q = (A AND B) OR C。
查看答案
括号:1 AND 0 = 0。再 0 OR 1 = 1。
**3.(容易)**当 A = 0、B = 0、C = 1 时,求 Q = NOT (A OR B) AND C。
查看答案
括号:0 OR 0 = 0。NOT 0 = 1。再 1 AND 1 = 1。
**4.(容易)**三个输入的真值表需要多少行?五个输入呢?
查看答案
23 = 8 行。25 = 32 行。
**5.(中等)**完成 Q = NOT A OR B 的真值表。
查看答案
| A | B | NOT A | Q |
|---|---|---|---|
| 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 |
只有当 A = 1 且 B = 0 时,Q 才是 0。
**6.(中等)**输入 A 和 B 进入 AND 门,输出 X。X 进入 NOT 门,输出 Q。写出表达式,并按 AB = 00、01、10、11 的顺序写出输出列。
查看答案
Q = NOT (A AND B),也就是 NAND 门。四行的 A AND B 依次是 0、0、0、1,所以 Q 是 1、1、1、0。
**7.(中等)**输入 A 和 B 进入 XOR 门,输出 X。X 进入 NOT 门,输出 Q。按 AB = 00、01、10、11 的顺序写出输出列。
查看答案
XOR 依次得 0、1、1、0。NOT 把每个值反过来:Q 是 1、0、0、1。当两个输入相同时,这个电路输出 1。
**8.(中等)**NOT (A OR B) 与 (NOT A) AND (NOT B) 等价吗?
查看答案
| A | B | NOT (A OR B) | (NOT A) AND (NOT B) |
|---|---|---|---|
| 0 | 0 | 1 | 1 AND 1 = 1 |
| 0 | 1 | 0 | 1 AND 0 = 0 |
| 1 | 0 | 0 | 0 AND 1 = 0 |
| 1 | 1 | 0 | 0 AND 0 = 0 |
四行全部吻合,所以它们等价。
**9.(较难)**A AND (NOT A OR B) 与 A AND B 等价吗?
查看答案
若 A = 0:左边是 0 AND (1 OR B) = 0,右边是 0 AND B = 0。若 A = 1:左边是 1 AND (0 OR B) = B,右边是 1 AND B = B。两种情形都吻合,所以它们等价。
**10.(较难)**一家商店说:“订单超过 RM100 的,以及会员,免运费。”请用 Total 和 Member 写出伪代码条件,并用 Total = 50、Member = TRUE 测试。
查看答案
商店的意思是任一组人都符合,所以用 OR:
IF (Total > 100) OR (Member = TRUE) THEN
OUTPUT "Free delivery"
ENDIF
测试:(50 > 100) 为 FALSE,Member = TRUE,所以 FALSE OR TRUE = TRUE,免运费。如果用 AND,结果会是 FALSE,错误地拒绝了会员。
**11.(较难)**追踪下面的伪代码,写出输出。
Score ← 62
Attended ← TRUE
IF (Score >= 50) AND NOT (Attended = FALSE) THEN
OUTPUT "Pass"
ELSE
OUTPUT "Retry"
ENDIF
查看答案
(62 >= 50) 为 TRUE。(Attended = FALSE) 为 FALSE,所以 NOT FALSE = TRUE。再 TRUE AND TRUE = TRUE。输出是 Pass。
如果你做错了
| 错在哪里 | 去哪一课 |
|---|---|
| 括号、NOT 或 AND/OR 顺序之后的值算错(第 1 至 3 题、第 11 题) | 计算带括号的逻辑表达式 |
| 漏行或行数不对(第 4、5 题) | 制作真值表 |
| 逻辑门输出错误,把 XOR 与 OR 混淆(第 6、7 题) | 解读简单的逻辑电路 |
| 检查的情形太少就断定等价(第 8、9 题) | 用情形比较两个等价的表达式 |
| 句子被翻译成了错误的运算符(第 10 题) | 区分逻辑 AND 与日常语言的歧义 |
你可以用布尔与数字表示实验室检查小表达式,用受限伪代码追踪训练器追踪第 11 题的伪代码。计算机科学学习指南列出了其他模块。
如果同一类题目总是让你出错,我们的老师可以在一对一线上计算机科学补习中检查你的解题过程。