身心障礙人員考試身障四等-資訊處理類科計算機概要114 年第 22 題單選題
若某一語法採用 BNF(Backus-Naur Form)定義如下:
<NT1> ::= 1 <NT2> | 0 <NT3>
<NT2> ::= <D1> | <NT2> <D1>
<NT3> ::= <D2> | <NT3> <D2>
<D1> ::= 0 | 2 | 4 | 6 | 8
<D2> ::= 1 | 3 | 5 | 7 | 9
則下列字串何者不符合此語法?
D正確答案
NT1 必為「1+偶數串」或「0+奇數串」,00 屬 0 開頭卻接偶數,違反規則。
為什麼答案是 D
首字為 0,依規則後面須接奇數串(<NT3>,來自 D2={1,3,5,7,9}),但第二字 0 屬偶數,不符 <NT3> 定義,違法。
載入中…
完整詳解
Pro · 無限重點 NT1 必為「1+偶數串」或「0+奇數串」,00 屬 0 開頭卻接偶數,違反規則。
看首字:1→後面全偶數(02468);0→後面全奇數(13579)。不符即淘汰。
逐選項分析
A✕
首字為 1,後接 22222 全為偶數(D1 集合),符合 <NT1>→1<NT2> 推導,合法。
B✕
首字為 0,後接 135 全為奇數(D2 集合),符合 <NT1>→0<NT3> 推導,合法。
C✕
首字為 1,後接 246 全為偶數,符合 <NT1>→1<NT2>→<NT2><D1> 遞迴推導,合法。
D✓ 正確
首字為 0,依規則後面須接奇數串(<NT3>,來自 D2={1,3,5,7,9}),但第二字 0 屬偶數,不符 <NT3> 定義,違法。
BNF 推導規則速查
| 首字 | 後續規則 | 可用數字 | 範例 |
|---|
| 1 | <NT2> 一個以上 | 0,2,4,6,8(偶數) | 122222, 1246 |
| 0 | <NT3> 一個以上 | 1,3,5,7,9(奇數) | 0135, 07 |
| 0 | 接偶數 ✗ | 不合法 | 00, 02(違法) |
考生看到「00」直覺像是合法字串,但 BNF 嚴格規定「0 開頭」後面只能接奇數(D2 集合),而 0 本身屬於偶數(D1),所以違反文法。這類題要逐字對照產生規則,不能憑直覺。