問題 #3 ・ 文字列処理 ・ 難易度 2
次の関数 doubleChars は、文字列を受け取り、各文字を2回ずつ繰り返した新しい文字列を返す。例えば doubleChars("ABC") は "AABBCC" を返す。プログラム中の〔 a 〕に入れる正しい式を選べ。
○文字列型: doubleChars(文字列型: str)整数型: len ← strの文字数文字列型: result ← ""整数型: ifor (i を 1 から len まで 1 ずつ増やす)result ← 〔 a 〕endforreturn result
str = "ABC"(len = 3)でトレースする。 【選択肢イの場合】 i=1: result ← "" + 'A' + 'A' = "AA" i=2: result ← "AA" + 'B' + 'B' = "AABB" i=3: result ← "AABB" + 'C' + 'C' = "AABBCC" → 仕様どおり各文字が2回ずつ並ぶ。 【選択肢アの場合】 i=1: result = "A", i=2: result = "AB", i=3: result = "ABC" → 単なるコピーになる。 【選択肢ウの場合】 i=1: result = "AA", i=2: result = "BBAA", i=3: result = "CCBBAA" → 逆順になる。 【選択肢エの場合】 i=1: result = "AA", i=2: result = "BAAB", i=3: result = "CBAABC" → 並びが崩れる。 したがって正解はイである。
登録すると解いた結果が残り、間違えた問題は日をおいて復習に出ます。
この問題は AI が作り、別の AI に解かせて検証し、人が確認したうえで公開しています。 誤りに気づいたら goku.tore9@gmail.com までお知らせください。
記号の意味に迷ったら擬似言語の記法で確かめられます。