問題
次の擬似言語プログラムを実行したとき、変数countの値はいくつか。 文字列型: s ← "hello world" 整数型: count ← 0 整数型: i ← 1 while (i ≦ 文字数(s)) if (文字取得(s, i) = "l") count ← count + 1 endif i ← i + 1 endwhile
選択肢
- 1ア 1
- 2イ 2
- 3ウ 3
- 4エ 4
正解
3. ウ 3
詳しい解説を見る解説を閉じる
解説
文字列"hello world"を先頭から1文字ずつ調べ、文字"l"に一致するたびにcountを1増やす処理である。文字列を分解すると h、e、l、l、o、空白、w、o、r、l、d の11文字であり、"l"は3文字目・4文字目・10文字目の3か所に現れる。よってcount=3でウが正解である。イの2は"hello"内の2個だけを数えて"world"内の1個を見落とした値、エの4は数え過ぎである。文字列の走査は、配列の走査と同様に「全要素を順に調べて条件に合うものを数える」集計パターンの応用であり、ループ範囲が文字数(ここでは空白を含む11)で決まる点に注意する。見落としを防ぐには、文字列を1文字ずつ書き出して該当位置に印を付けるのが確実であり、空白も1文字として数えることも頻出の注意点である。
一問一答
科目A 180問+科目B 60問