科目Bに共通する注意事項(表記ルールなど)については、下記のリンク先を参照してください。
問題
次の記述中の空欄に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。
関数 search は,data から key の要素の並びと同じ並びを全て探し,その先頭の要素番号を全て格納した配列を返す。見つからなければ,要素数0 の配列を返す。関数 search を search({“a”,”b”,”a”,”b”,”c”,”a”,”b”,”c”}, {“a”,”b”,”c”}) として呼び出すと,`/*** β ***/` の行の条件式が真となる回数は[ ]回である。
[プログラム]
/* keyは,要素数1以上の配列である */
○整数型の配列: search(文字型の配列: data, 文字型の配列: key)
整数型: i, j, lenData, lenKey
整数型の配列: result ← {} // 要素数0の配列
lenData ← dataの要素数
lenKey ← keyの要素数
/* (lenData - lenKey + 1) が0以下のときは繰返し処理を実行しない */
for (i を 1 から (lenData − lenKey + 1) まで 1 ずつ増やす)
for (j を 1 から lenKey まで 1 ずつ増やす) // α
if (data[i + j − 1] が key[j] と等しい) /*** β ***/
if (j が lenKey と等しい)
resultの末尾 に iの値 を追加する
endif
else
αの行から始まる繰返し処理を終了する
endif
endfor
endfor
return result
- ア:1
- イ:2
- ウ:3
- エ:4
- オ:5
- カ:6
- キ:7
- ク:8
- ケ:9
- コ:10