本文へ移動

基本情報技術者試験 · 学習ガイド

2026年度 科目B 公開問題の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2026年度 科目B 公開問題の概要
30:00

問題番号から選ぶ

配列要素の巡回シフト処理

データ構造とアルゴリズム · 配列操作 / 要素のシフト / ループ制御

要素番号が 1 から始まる要素数 9 の整数型配列 data に対し、末尾の要素の値を先頭に移動し、それ以外の各要素の値を一つずつ後ろへずらすプログラムがある。末尾の値をあらかじめ変数 top に退避した後、各要素を後方にシフトするための繰返し処理の制御記述として、空欄に入る正しいものを選べ。 〔プログラム〕 整数型の配列: 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

解答・解説を表示

解答

エ

解説

まず要点:配列の中身を後ろに1つずつずらすときは、後ろの要素から順に書き換える。前から書き換えると、まだ移動していない後ろの値を上書きして消してしまう。だから、書き込み先があいている末尾側から処理するのがコツだ。

解き方

  1. 末尾のdata[len]は変数topに退避(いったん別の場所に保存)してあるので、上書きしても平気。
  2. data[len]にdata[len-1]を、次にdata[len-1]にdata[len-2]を入れるので、iはlenから2へ1つずつ減らす。
選択肢 ア不正解
番号を増やしながら進むと値を次々と上書きして消してしまい、しかも最後の要素に入れる処理もない。
選択肢 イ不正解
2から増やしながら入れると、data[1]の値が後ろの要素へどんどんコピーされて元の値が消えてしまう。
選択肢 ウ不正解
始まりがlen-1だと、配列の最後であるdata[len]に値が入らず、末尾の要素を更新できない。
選択肢 エ正解
lenから2へ1つずつ減らせば、値を消さずに全部の要素を1つ後ろへ正しく移せる。

覚えるポイント

  • 配列要素を後ろへずらすときは「後ろから」、前へ詰める時は「前から」処理するのが基本です。

間違えやすいところ

  • ループの終わりでdata[1]←data[0]としないよう、番号の下限が2である点を見落とさない。

出題の前提:擬似言語の仕様および配列の要素番号が 1 から始まる出題条件に基づく。

出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.4 ↗(www.ipa.go.jp)

2026年度 科目B 公開問題

参照した公式資料

IPAが公開した2026年度 科目B 公開問題の問題・解答資料です。