実体験から始める情報講座

基本情報技術者講座

★ 猫本 4-10 プログラム言語とマークアップ言語(その4) ★

基本情報技術者 令和元年度秋期 問7

次のBNFで定義される<変数名>に合致するものはどれか。

 <数字>::= 0|1|2|3|4|5|6|7|8|9

 <英字>::= A|B|C|D|E|F

 <英数字>::=<英字>|<数字>|_

 <変数名>::=<英字>|<変数名><英数字>

ア  _B39
イ  246
ウ  3E5
エ  F5_1

解説

<変数名>::=<英字>|<変数名><英数字>より

<変数名>は<英字> か

<変数名>は<変数名><英数字> のいずれか

 ↓

※以降,<変数名>に,<英字>か<変数名><英数字>を代入する。

 ↓

<変数名>は<英字><英数字> か

<変数名>は<変数名><英数字><英数字> のいずれか

 ↓

<変数名>は<英字><英数字><英数字> か

<変数名>は<変数名><英数字><英数字><英数字> のいずれか


(続く)


これより,<変数名>は,

<英字>

<英字><英数字>

<英字><英数字><英数字>


よって,選択肢から英字で始まるのはエである。

解答

基本情報技術者 平成28年度春期 問3

UNIXにおける正規表現 [A-Z]+[0-9]* が表現する文字列の集合の要素となるものはどれか。ここで,正規表現は次の規則に従う。

[A-Z]は,英字1文字を表す。

[0-9]は,数字1文字を表す。

*は,直前の正規表現の0回以上の繰返しを表す。

+は,直前の正規表現の1回以上の繰返しを表す。

ア  456789
イ  ABC+99
ウ  ABC99*
エ  ABCDEF

解説

英字が1文字以上から始まり,数字が0文字以上続く(数字がなくてもよい)文字列なので,エである。

*と+は特殊文字なので,文字列には出てこない(イとウは×)。

解答