平成30年度秋期 応用情報技術者試験 午前 問4

分野:アルゴリズムとプログラミング|実際に出題されたIPA過去問題

次に示す記述は,BNFで表現されたあるプログラム言語の構文の一部である。<パラメタ指定>として,適切なものはどれか。 <パラメタ指定> ::= <パラメタ>|(<パラメタ指定>,<パラメタ>) <パラメタ> ::= <英字>|<パラメタ><英字> <英字> ::= a|b|c|d|e|f|g|h|i

  1.  ((abc, def), ghi)
  2.  ((abc, def))
  3.  (abc, (def))
  4.  (abc)
解答・解説を見る

正解:ア

AI解説

BNF(バッカス・ナウア記法)は構文規則の定義法で、::=は定義、|は選択を表す。定義より<パラメタ指定>は「英字列1個」か「(<パラメタ指定>,<パラメタ>)」の形であり、括弧の中の右側(第2要素)は必ず括弧なしの英字列(<パラメタ>)でなければならない。アの((abc,def),ghi)は、内側(abc,def)が<パラメタ指定>、右側ghiが<パラメタ>で規則に適合するため正しい。 ア: 正しい。(abc,def)は(<パラメタ指定>,<パラメタ>)の形で<パラメタ指定>となり、それとghiを組み合わせた全体も定義に適合する。 イ: ((abc,def))は最外の括弧の中がカンマ区切りの2要素になっておらず、(<パラメタ指定>,<パラメタ>)の形に合致しないため誤りである。 ウ: (abc,(def))はカンマの右側が(def)と括弧付きだが、<パラメタ>は英字の並びのみで括弧を含められないため誤りである。 エ: (abc)は括弧の中が1要素のみで、(<パラメタ指定>,<パラメタ>)というカンマを含む形に合致しないため誤りである。 💡 BNF問題は「定義の形に厳密に当てはめる」だけで解ける。再帰定義(左側が自分自身を含む)がある場合、どちら側が入れ子にできるかを確認するのがポイントである。

出典:平成30年度 秋期 応用情報技術者試験 午前 問4 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング)の過去問