科目B

令和8年度 基本情報技術者試験 科目B 公開問題 問1

次のプログラム中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。 次のプログラムは,整数型の配列 data の末尾の要素の値を先頭の要素に移動する。この際,末尾以外の各要素の値は,一つずつ後ろの要素に移動する。 〔プログラム〕
整数型の配列: data ← {1, 2, 3, 4, 5, 6, 7, 8, 9}
整数型: top, i
整数型: len ← dataの要素数
top ← data[len]
for (i を  )
  data[i] ← data[i - 1]
endfor
data[1] ← top
答えを選ぶ

出典:令和8年度 基本情報技術者試験 科目B 公開問題 問1(問題文は IPA の公開問題。図・数式・下線などはテキストに直して掲載。解説は当サイト作成)

科目Bの解き方と全問の一覧

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:エ

覚える知識

配列要素のシフト(ずらし)処理の流れ図読解

配列の要素を後ろへずらすときは末尾側から、前へずらすときは先頭側から処理する。そうしないと、まだ写していない値を上書きしてしまう。

この問題で必要なこと

末尾の値を top に退避してから、各要素を一つ後ろへ写す(data[i] ← data[i-1])。後ろへずらすときは、後ろ側から上書きしないと値が消える。iを len から 2 まで減らしていくと {1,…,9} は {9,1,2,…,8} になる。よって正解はエ。

ひっかけ

ア・イのように前から増やすと、data[2] 以降がすべて data[1] の値(1)で上書きされる。ウは len-1 から始めるので data[len] ← data[len-1] が抜け、8 が消えて 9 が残ったままになる(終わりの位置が1つずれる誤り)。

この知識を科目Aの過去問で覚える レッスン「配列の添字操作と表計算の参照」で学ぶ

同じ知識の過去問