次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。…

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

次のプログラム中の [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 である。関数orderList は,図1 のdataList 及びpointerList で表現した単方向リストの値を,単方向リストの先頭からたどって順番に格納した配列を返す。関数orderListが返す配列を図2 に示す。

基本情報技術者 2026年度(令和8年度)公開問題 科目B 問4の表(1/3)基本情報技術者 2026年度(令和8年度)公開問題 科目B 問4の表(2/3)基本情報技術者 2026年度(令和8年度)公開問題 科目B 問4の表(3/3)基本情報技術者 2026年度(令和8年度)公開問題 科目B 問4の選択肢の図
参考:擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)

問題冊子の末尾に載っている参考のページです。

擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)
正答 エ
正答は エ。a:pointerList[p]、b:pointerList[p] です。 p は、いま見ているリストの要素の要素番号です。dataList[p] の値を linearList に追加したら、次の要素の要素番号pointerList[p] に p を進めます(b)。ただし、いま見ている要素が末尾なら、pointerList[p] は未定義なので、その場合は繰返しを終えます(a)。 【トレース(エの場合)】 dataList = {10, 30, 20, 40, 未定義} pointerList = {3, 4, 2, 未定義, 未定義}、p = 1
解説の続きをみる続きを閉じる
i = 1:10 を追加 → pointerList[1] = 3(定義済み)→ p ← 3 i = 2:dataList[3] = 20 を追加 → pointerList[3] = 2 → p ← 2 i = 3:dataList[2] = 30 を追加 → pointerList[2] = 4 → p ← 4 i = 4:dataList[4] = 40 を追加 → pointerList[4] は未定義  → 繰返しを終了 linearList = {10, 20, 30, 40} となり、図 2 と一致します。 【ほかの選択肢】 ア a:dataList[p]、b:i 誤り   → p は i と同じ値になり、ポインタをたどらない。    i = 2 で p = 1 なので 10 をもう一度追加し、結果は{10, 10, 30, 20, 40} になる イ a:dataList[p]、b:pointerList[p] 誤り   → i = 4 までは 10, 20, 30, 40 と正しく追加されるが、    dataList[4] = 40 は定義済みなので終了せず、p ← pointerList[4]    (未定義)となる。i = 5 で dataList[p] を参照できない ウ a:pointerList[p]、b:i 誤り   → 終了の判定は正しいが、p が i と同じ値になり、ポインタを    たどらない。結果は {10, 10, 30, 20, 40} になる 【ポイント】 単方向リストの末尾は「次を指すポインタが無い要素」です。 終了の判定にはデータではなくポインタを使います。

出典:令和8年度 基本情報技術者試験 科目B 公開問題 問4(独立行政法人情報処理推進機構)出典元ページ

最終更新日

この回を通しで解く この分野を年度横断で解く

「科目B アルゴリズムとプログラミング」のほかの問題

  1. 2024年度(令和6年度)公開問題 科目B 問4次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。
  2. 2024年度(令和6年度)公開問題 科目B 問5次のプログラム中の [a] ~ [c] に入れる正しい答えの組合せを,解答群の中から選べ
  3. 2025年度(令和7年度)公開問題 科目B 問1次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
  4. 2025年度(令和7年度)公開問題 科目B 問2次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  5. 2025年度(令和7年度)公開問題 科目B 問3次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ
  6. 2025年度(令和7年度)公開問題 科目B 問4次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。

問題文・解答の修正依頼

スポンサーリンク