平成30年度 秋期 応用情報技術者試験 午前 問4
次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。<パラメタ指定>として,適切なものはどれか。
<パラメタ指定> ::= <パラメタ> | (<パラメタ指定>, <パラメタ>)
<パラメタ> ::= <英字> | <パラメタ><英字>
<英字> ::= a | b | c | d | e | f | g | h | i
キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:ア
定義から,<パラメタ>は英字a〜iを1文字以上並べたもの,<パラメタ指定>は<パラメタ>単独か,「(<パラメタ指定>,<パラメタ>)」の形です。
-
ア: ((abc,def),ghi)
正しい。abc,def,ghiはいずれも<英字>の並びなので<パラメタ>です。abcは<パラメタ指定>にもなるため,(abc,def) は「(<パラメタ指定>,<パラメタ>)」の形で<パラメタ指定>になります。さらに ((abc,def),ghi) も「(<パラメタ指定>,<パラメタ>)」の形なので,<パラメタ指定>として適切です。 -
イ: ((abc,def))
誤り。(abc,def) は<パラメタ指定>ですが,それを括弧で囲んだだけの「(<パラメタ指定>)」という形は定義にありません。括弧は必ず「,<パラメタ>」と組で現れます。 -
ウ: (abc,(def))
誤り。カンマの後ろは<パラメタ>(英字の並び)でなければなりません。(def) は括弧を含むため<パラメタ>ではありません。 -
エ: (abc)
誤り。括弧で囲む形は「(<パラメタ指定>,<パラメタ>)」だけなので,カンマのない (abc) は<パラメタ指定>になりません。
答え
ア: ((abc,def),ghi)
出典:平成30年度 秋期 応用情報技術者試験 午前 問4