次の記述中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数makeNewArrayは、要素数2以上の整数型の配列を引数にとり、整数型の配列を返す関数である。関数makeNewArrayをmakeNewArray({3, 2, 1, 6, 5, 4})として呼び出したとき、戻り値の配列の要素番号5の値は となる。 〔プログラム〕 ○整数型の配列: makeNewArray(整数型の配列: in) 整数型の配列: out ← {} // 要素数0の配列 整数型: i, tail outの末尾 に in[1]の値 を追加する for (i を 2 から inの要素数 まで 1 ずつ増やす) tail ← out[outの要素数] outの末尾 に (tail + in[i]) の結果を追加する endfor return out
末尾に前回値を足し込む処理は累積和を作る
○整数型の配列: makeNewArray(整数型の配列: in)
整数型の配列: out ← {} // 要素数0の配列
整数型: i, tail
outの末尾 に in[1]の値 を追加する
for (i を 2 から inの要素数 まで 1 ずつ増やす)
tail ← out[outの要素数]
outの末尾 に (tail + in[i]) の結果を追加する
endfor
return out
選択肢
- ア5
- イ6
- ウ9
- エ11
- オ12
- カ17
- キ21
正解と解説
正解:カ 17
この関数はoutの末尾の値に入力の次の要素を足しては追加していくので、結果は入力の累積和(先頭からの部分和)の並びになります。入力{3, 2, 1, 6, 5, 4}に対して出力は3、5、6、12、17、21となります。要素番号5の値は先頭5個の合計で、3+2+1+6+5=17です。
選択肢ごとの解説
- ア要素番号2の値であり、位置がずれている。
- イ要素番号3の値で、累積の途中経過。
- ウ累積和の計算が途中で止まっている場合の値。
- エ要素番号4の値。
- オ要素番号4と5を取り違えた場合の値。
- カ正解。先頭5個の累積和3+2+1+6+5=17。
- キ全6要素の合計であり、要素番号6の値。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。