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

2026年度公開問題 科目B 問4
アルゴリズムとプログラミングの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

次のプログラム中の[a]と[b]に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。

単方向リストを,配列dataList と配列pointerList の二つの配列で表現する。dataList にリストの要素の値を格納し,pointerList にリストの次の要素に対応するdataList の要素番号を格納する。単方向リストの先頭は,dataList[1] 及びpointerList[1] の組みである。単方向リストの末尾に対応するpointerList の要素は未定義である。dataList のうち単方向リストの要素の値を格納していない要素と,対応するpointerList の要素は未定義である。プログラムが扱うdataList 及びpointerList の内容を図1 に示す。先頭の次の要素の要素番号は,pointerList[1] に格納された3 であり,値はdataList[3] に格納された20 である。その次の要素の要素番号はpointerList[3] に格納された2 であり,値はdataList[2] に格納された30 である。

図1 dataList 及び pointerList の内容
要素番号12345
dataList10302040未定義
pointerList342未定義未定義

原典の網掛けセルは「未定義」と文字で表記。

関数orderList は,図1 のdataList 及びpointerList で表現した単方向リストの値を,単方向リストの先頭からたどって順番に格納した配列を返す。関数orderListが返す配列を図2 に示す。

図2 関数orderListが返す配列
要素番号1234
値10203040

〔プログラム〕

 
大域: 整数型の配列: dataList ← {10, 30, 20, 40, 未定義の値} 
大域: 整数型の配列: pointerList ← {3, 4, 2, 未定義の値, 未定義の値} 
 
○整数型の配列: orderList() 
  整数型: i, p ← 1 
  整数型の配列: linearList ← {}  // 要素数0の配列 
  for (i を 1 から dataListの要素数 まで 1 ずつ増やす) 
    linearListの末尾 に dataList[p]の値 を追加する 
    if ([a] が 未定義) 
      繰返し処理を終了する 
    endif 
    p ← [b]
  endfor 
  return linearList

出典:出典:IPA 令和8年度 基本情報技術者試験 科目B 公開問題 問4。共通の表記ルールは原典PDFの2〜3ページを参照してください。

原典PDFへのリンクを掲載。テキストは改行を整形し、ルビを本文漢字に統合。科目Bの枠付き空欄を[空欄]または[a][b]で表記。解説未作成。

当てはまるものを、ひとつ選んでね。

1〜4キーでも選択できます。Enterキーで採点できます。

出典:IPA 令和8年度 基本情報技術者試験 科目B 公開問題 問4
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は エ です。

この問題の解説は準備中です。正解と出典を確認しながら、理解を深めてみましょう。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…