09 過去問演習ー1(全分野 横断)

すべて本物の IPA 過去問(基本情報技術者試験 科目A/旧・午前)です。データ構造とアルゴリズムの8分野を1問ずつ、一周します。
問題文と選択肢は画像の中にあります。よく読んで、下の ア〜エ のボタンで解答してください。回答するとクラスの分布が出ます。間違えた分野は 01〜08 に戻って復習を。

配列問1 ★2進数への変換(流れ図の穴埋め)

過去問(配列・2進変換の流れ図)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2020-12-13 問1〕
解説を表示

正解:エ

10進数を2進数にするには「2で割った余り=その桁の2進数商=次に処理する数」を繰り返します。下位桁(1の位)から順に出るので NISHIN(1) から入れます。

だから1回のループでは、先に「今の余り」を桁に格納 → 次に j を半分にの順にします。

順序を逆(先に j を割る)にすると、格納する余りが1つ先の桁のものになってしまう。「余りを取ってから割る」が鉄則。

スタック問2 ★PUSH/POP後のスタック

過去問(スタックのPUSH/POP)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2020-01-26 問8〕
解説を表示

正解:イ(7)

PUSHは7回・POPは3回で正味+4個ですが、最終的に5個あるので開始時にすでに1個あったとわかります。命令を順に追うと、最後まで残るのは 1・4・5・10番目のPUSH の値です。

最終スタックを下から並べると [開始時の1個, 1番目PUSH, 4番目, 5番目, 10番目]。図の下から2番目=1番目のPUSHの値=7

▼速解法:POPは常に一番上を取る。命令を1つずつ紙で追い、「どのPUSHの値が生き残るか」を印つけると速い。

キュー問3 ★ENQ/DEQ のトレース

過去問(キューのENQ/DEQ)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2020-06-14 問8〕
解説を表示

正解:ウ(5)

キューは先入れ先出し(FIFO)。ENQは末尾に入れ、DEQは先頭から出します。左が先頭として1行ずつ追います。

操作キュー(左=先頭)出た値
ENQ1,2,31, 2, 3
DEQ2, 31
ENQ4,52, 3, 4, 5
DEQ3, 4, 52
ENQ63, 4, 5, 6
DEQ4, 5, 63
DEQ5, 64
次のDEQ65

入れた順にそのまま出るので、次に出るのは 5(ウ)。

リスト問4 ★双方向リストへのノード挿入

過去問(双方向リストの挿入)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2019-12-08 問8〕
解説を表示

正解:ウ(a, f)

元の並びは A → K → T(次ポインタでたどる)。A と K の間に G を入れると A → G → K → T になります。

値が変わるのは、挿入点の前の要素の「次」後ろの要素の「前」の2本だけ:

T の前後、K の次、A の前は変わりません。G 自身の x・y は問われている a〜f に含まれません。→ a, f(ウ)。

要素の移動は一切不要。ポインタを付け替えるだけ、が連結リストの強み。

木構造問5 ★2分木の再帰的な走査

過去問(2分木の再帰走査)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2020-07-26 問7〕
解説を表示

正解:ウ(abc−d*+)

Proc は「左の子 → 右の子 → 自分」の順に記号を出力します。これは後行順(後順)の走査です。

+ から後順でたどると:

つなげて a b c − d * +(ウ)。これは式 a + ((b − c) × d)後置記法(逆ポーランド)そのものです。

流れ図問6 ★ユークリッドの互除法

過去問(ユークリッドの互除法)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2018-01-28 問3〕
解説を表示

正解:イ(4回)

手順(2)は「前の2つの数で割った余りを求める」ステップ。余りが0になるまで繰り返します。175 と 77 でトレース:

計算余り
1175 ÷ 7721
277 ÷ 2114
321 ÷ 147
414 ÷ 70 → 終了

手順(2)は 4回実行(イ)。最後に割った 7 が最大公約数です。

探索問7 ★線形探索の流れ図

過去問(線形探索の流れ図)
出典:IPA 基本情報技術者試験 科目A(旧・午前)過去問〔2022-12-11 問9〕
解説を表示

正解:ウ

k は「今、何番目を見ているか」。X = A(k) で一致した瞬間にループを抜けます(前から順に探す=線形探索)。

▼速解法:線形探索は前から順。複数一致なら最初の位置で止まる。

整列問8 ★整列アルゴリズムの説明

過去問(整列法の説明)
出典:IPA 基本情報技術者試験 科目A 過去問〔2025-06-08 問6〕
解説を表示

正解:エ(ヒープソート)

名前と説明がわざと入れ替えられています。キーワードで見抜きます:

説明のキーワード本当の整列法
一定間隔の部分列を整列し間隔を詰めるシェルソート
隣り合う要素を比較・交換バブルソート
基準値で大小2グループに区分クイックソート
順序木(ヒープ)を作り最大/最小を取り出すヒープソート

正しく説明できているのは エ ヒープソートだけ。ア=シェル、イ=バブル、ウ=クイックの説明が別の名前に付いています。


【練習リンク】