基本情報技術者試験 2003年度 = 平成15年度・春期 午前 問11

 数値に関する構文が次のとおり定義されているとき、<数値>として扱われるものはどれか。

  <数値>   ::= <数字列> | <数字列>E<数字列> | <数字列>E<符号><数字列>
  <数字列>  ::= <数字> | <数字列><数字>
  <数字>   ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  <符号>   ::= + | -

 ア -12  イ 12E-10  ウ +12E-10  エ +12E10

解答

 イ

解説

 よく使われる構文記法であるBNF記法backus naur form)に関する問題です。縦線 | は、日本語での“または”に相当します。したがって、数字と符号は、次のように解釈できます。
  <数字>は、0 または 1 または … 9です。
  <符号>は、+ または - です。
 また、<数字列>の解釈は次のようになります。
  <数字列>は、<数字> または <数字列>に<数字>が続くものです。
 すなわち、<数字列>は、1個以上の<数字>の並びとなります。
 問題として問われている<数値>は、次のように解釈されます。
  <数値>は、
    <数字列>
      または
    <数字列>Eが続いたものに<数字列>が続いたもの
      または
    <数字列>Eが続いたものに<符号>が続いたものに<数字列>が続いたもの
      です。
 先頭は必ず<数字列>でなければなりませんので、最初の文字が符号であるは<数値>とみなせません。正解であるの12E-10のみが、正しく構文規則にのっとっています。


BohYoh.comトップページへ