問題
次の擬似言語プログラムを実行したとき、変数countの値はいくつか。 文字列型: s ← "abcabc" 文字列型: target ← "a" 整数型: count ← 0 整数型: i ← 1 while (i ≦ 文字数(s)) if (文字取得(s, i) = target) count ← count + 1 endif i ← i + 1 endwhile
選択肢
- 1ア 1
- 2イ 2
- 3ウ 3
- 4エ 6
正解
2. イ 2
詳しい解説を見る解説を閉じる
解説
このプログラムは文字列sを1文字目から末尾まで順に走査し、取り出した文字がtargetと一致するたびにcountを1増やす出現回数カウント処理である。s="abcabc"は6文字で、target="a"と一致するのは1文字目と4文字目の2箇所だけであるから、ループ終了時のcountは2となり、イが正解である。アの1は最初の一致で走査を打ち切ったと誤読した値、ウの3は1周期分の"abc"の文字数と混同した値、エの6は条件判定をせずに全文字を数えてしまった場合の値である。頻出ポイント:文字列走査の問題はループ範囲(1〜文字数)と一致条件を1文字ずつ確実にトレースするのが基本であり、出現回数カウントは検索・置換・頻度集計アルゴリズムの土台として頻出である。
一問一答
科目A 180問+科目B 60問