応用情報技術者試験 応用情報技術者試験 平成29年度春期 午前 問4: あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これをBNFで定義したとき,aに入

←
応用情報技術者試験 平成29年度春期 午前
Q 44 / 80
あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これをで定義したとき,aに入るものはどれか。 <digit> ::= 0|1|2|3|4|5|6|7|8|9 <letter> ::= A|B|C|…|X|Y|Z|a|b|c|…|x|y|z <identifier> ::= a
この問の正解率:40.36%(1,219件)

解説

応用情報技術者試験 平成29年度春期 午前 問4「あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約40%です。

正解

エ. <letter><identifier><letter>

正答率 40.4%(1,219人中 492人が正解)

問題の解説

識別子は、先頭が英字で、その後ろに英字か数字が何個でも続く文字列である。BNF では、最初の1文字を<letter>とし、既にある識別子の後ろに<digit>か<letter>を1文字足す、という再帰の形で表せる。

選択肢ごとの解説

  • ア<digit>だけの文字列も識別子になってしまい、先頭が数字の文字列を許してしまう。
  • イ<digit>だけでも識別子になり、先頭が数字の文字列を許してしまう。また、数字の後ろに英字を続けられないので、a1b のような識別子を導けない。
  • ウ英字を後ろに続ける規則がなく、<letter>は先頭の1文字にしか使えない。ab のように英字が2文字以上続く識別子を導けない。
  • エ正しい。先頭は<letter>の1文字で、その後ろに<digit>か<letter>を何個でも付け足せる。先頭が数字の文字列は導かれない。

応用情報技術者試験 平成29年度春期 午前 の過去問一覧に戻る・問4

応用情報技術者試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

応用情報技術者試験 合格.dev を App Store でダウンロード