助け合いフォーラム

情報処理技術者試験

ITパスポート(AI解説)
問題ID : 38278
問題を開く

関数 convert は,整数型の配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert(arrayInput) として呼び出したときの戻り値が"AABAB"になる引数 arrayInput の値はどれか。ここで,arrayInput の要素数は1以上とし,配列の要素番号は1から始まる。

正解

{1, 1, 2, 1, 0}

解説

このプログラムは、整数型の配列arrayInputを受け取り、配列の各要素の値に応じて文字列を生成して返す関数convertです。

以下のルールに従って文字列が生成されます。

  1. 配列arrayInputの要素を1つずつ処理します。
  2. 要素の値が1の場合、文字列に"A"を追加します。
  3. 要素の値が1以外の場合、文字列に"B"を追加します。
  4. 全ての要素の処理が終了したら、生成された文字列を返します。

プログラムの処理の流れをフローチャートで表すと以下のようになります。

graph TD
    A["配列arrayInputの要素を1つずつ処理"] --> B{"要素の値が1か?"}
    B -->|"Yes"| C["文字列に'A'を追加"]
    B -->|"No"| D["文字列に'B'を追加"]
    C --> E{"全ての要素の処理が終了したか?"}
    D --> E
    E -->|"Yes"| F["生成された文字列を返す"]
    E -->|"No"| A

・{0, 0, 1, 2, 1}
この配列を関数convertに渡すと、文字列"BBABB"が生成されます。

・{0, 1, 2, 1, 1}
この配列を関数convertに渡すと、文字列"BABAA"が生成されます。

・{1, 0, 1, 2, 0}
この配列を関数convertに渡すと、文字列"ABABB"が生成されます。

・{1, 1, 2, 1, 0}
この配列を関数convertに渡すと、文字列"AABAB"が生成されます。

以上の解説から、正解は「{1, 1, 2, 1, 0}」となります。

上に戻る

アルゴリズムとプログラミング

投稿日 2025/12/30

・{0, 0, 1, 2, 1}
この配列を関数convertに渡すと、文字列"BBABB"が生成されます。
選択肢の中の1つです。この配列の場合、BBABBではなく、BBABAにならないのでしょうか?

要素が1であれば、A。違うなら、Bのアルゴリズムなら配列の最後の1はAになると認識しています。

この投稿に対して返信しませんか?