ITパスポートの過去問
令和6年度
テクノロジ系 問7

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

令和6年度 ITパスポート試験 テクノロジ系 問7 (訂正依頼・報告はこちら)

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

問題文の画像
  • {0,0,1,2,1}
  • {0,1,2,1,1}
  • {1,0,1,2,0}
  • {1,1,2,1,0}

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

正解は「{1,1,2,1,0}」です。

 

convert(arrayInput)は arrayInput の要素を1つずつ ”A” または ”B”に変換し、 stringOutput に返却する関数です。

if文の条件式より、arrayInput[i] の値が1の場合は”A”それ以外の場合は”B”に変換します。

 

戻り値を「AABAB」にしたい場合、 arrayInput は{1,1,x,1,x}※ となります。

※xは任意の値

選択肢1. {0,0,1,2,1}

戻り値が「BBABA」になるため、不正解です。

選択肢2. {0,1,2,1,1}

戻り値が「BABAA」になるため、不正解です。

選択肢3. {1,0,1,2,0}

戻り値が「ABABB」になるため、不正解です。

選択肢4. {1,1,2,1,0}

戻り値が「AABAB」になるため、正解です。

参考になった数5

02

関数 convert は、整数型の配列を一定のルールで文字列に変換するプログラムです。関数 convert(array Input) として呼び出したときの戻り値が「AABAB」になる引数 array Input の値を問う問題です。配列の要素番号は1から始まります。

選択肢1. {0,0,1,2,1}

変換: A A B C B

結果: AABCB → 不正解

選択肢2. {0,1,2,1,1}

変換: A B C B B

結果: ABCBB → 不正解

選択肢3. {1,0,1,2,0}

変換: B A B C A

結果: BABCA → 不正解

選択肢4. {1,1,2,1,0}

変換: B B C B A

結果: AABAB → 正解

まとめ

正解の配列は {1, 1, 2, 1, 0} です。

参考になった数2

03

この問題を解くポイントは、プログラムが配列の各要素に対して「1 なら A を追加」「1 以外なら B を追加」するというルールで文字列を作成することを理解することです。そして、最終的に「AABAB」という文字列を生成するためには、どのような配列の値の並びが必要かを正確に見極めることです。

選択肢1. {0,0,1,2,1}

1番目:0 → "B"(不適切)

2番目:0 → "B"(不適切)

3番目:1 → "A"

4番目:2 → "B"

5番目:1 → "A"

最初の2つが「A」でないため、この配列では「AABAB」は生成されません。

選択肢2. {0,1,2,1,1}

1番目:0 → "B"(不適切)

2番目:1 → "A"

3番目:2 → "B"

4番目:1 → "A"

5番目:1 → "A"

最初が「A」でないため、この配列では「AABAB」は生成されません。

 

選択肢3. {1,0,1,2,0}

1番目:1 → "A"

2番目:0 → "B"(不適切)

3番目:1 → "A"

4番目:2 → "B"

5番目:0 → "B"

2番目が「A」でないため、この配列では「AABAB」は生成されません。

選択肢4. {1,1,2,1,0}

1番目:1 → "A"

2番目:1 → "A"

3番目:2 → "B"

4番目:1 → "A"

5番目:0 → "B"

すべての要素が「AABAB」のパターンと一致しています。この配列が正解です。

まとめ

プログラムは、配列内の各値が 1 かどうかを判定し、1 の場合は "A"、それ以外の場合は "B" を文字列に追加します。最終的に「AABAB」という文字列を生成するためには、arrayInput が「1, 1, 2, 1, 0」の順に並んでいる必要があります。

参考になった数0