CO-P20情報Ⅰ 対策問題

コンピュータとプログラミングプログラミング特訓 (第3問対策)

次のプログラムは、配列 Moji の文字を1文字ずつ変数 kotae につないで、1つの文字列を作る。実行したとき、表示される文字列はどれか。 (1) Moji = ["A", "B", "C"] (2) kotae = "" (3) i を 2 から 0 まで 1 ずつ減らしながら繰り返す: (4) ⎿ kotae = kotae + Moji[i] (5) 表示する(kotae) ※ 文字列の + は連結を表す。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

文字列の連結と逆順ループ を問う問題です。

解説

文字列に対する「+」は、数値の足し算ではなく連結(つなげる)という演算です。"CB" + "A" は "CBA" になります。同じ記号でもデータ型によって意味が変わる——これがこの問題の第一のポイントです。kotae は最初 ""(空の文字列)で、(4)のたびに右端へ1文字ずつ追加されていきます。

ループは「2 から 0 まで 1 ずつ減らし」なので、i は 2→1→0 の順。kotae の変化を1ステップずつトレースします。
i=2のとき: kotae = "" + Moji[2] = "" + "C" = "C"。
i=1のとき: kotae = "C" + Moji[1] = "C" + "B" = "CB"。
i=0のとき: kotae = "CB" + Moji[0] = "CB" + "A" = "CBA"。
よって表示は "CBA" です。

注意したいのは連結の順序です。(4)は「kotae + Moji[i]」なので新しい文字は右側に付きます。もし「Moji[i] + kotae」なら左側に付き、結果は変わります(この場合は "ABC" に戻る)。どちら側に連結するかは、式の左右をそのまま読み取るのが確実です。

「逆順ループ+連結」は文字列を反転する基本形で、共通テストでは回文判定や文字の並べ替えの部品として登場します。数値の合計(goukei = goukei + x)と同じ「積み上げ型」の更新である点にも気づけると、既習パターンの応用として整理できます。

選択肢の確認

1.○ i=2,1,0 の順に C→B→A を右へ連結して "CBA"。
2.× "ABC" は 0 から 2 へ増やす正順ループの結果。
3.× "CAB" になる連結順はこのプログラムでは起こらない。
4.× "BCA" も同様に順序の読み違い。

ここだけは覚えよう

文字列の「+」は連結、新しい文字は式の右側に付く — 逆順ループ+連結=文字列反転の基本形。

関連問題

CO-P19CO-P21