応用情報技術者試験 平成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