基本情報 科目Bの公開問題を解説|問題タイプ別の考え方と解き方

公開日: 2026-08-18

科目Bの「公開問題」を開いてはみたけれど、結局そのまま閉じてしまった。

IPAのサイトからダウンロードした問題を前に、手が止まっていませんか?

解説がついているとはいえ、いきなり答えを読んでも「なぜそう解くのか」までは残りません。かといって、自力で全部追うには時間がかかりすぎる気がする。

その迷いは、公開問題の数が限られていることを知っているからこそ出てくるものです。貴重な問題を、1回解いて終わりにしたくないんですよね。

私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。新しい仕様書を渡されたとき、最初にやるのは全部を読むことではなく、これは何の種類の話なのかを見分けることです。

種類さえ分かれば、どこを丁寧に読むべきかが決まります。科目Bの公開問題も、まず型を見抜くところから始めると、限られた問題数を何倍にも使えます。

この記事では、公開問題とは何かを整理したうえで、出題される型と、1問を考え方の順にたどる読み方までを順番に説明していきます。

科目Bの公開問題とは何か

はじめに、公開問題という言葉が指しているものをはっきりさせておきます。ここがあいまいだと、探す場所も使い方もぶれてしまいます。

公開問題とは、IPA(情報処理推進機構)が実際の試験問題の一部を、試験後に公表しているものです。誰でも無料でダウンロードでき、解答例もあわせて公開されています。

現在の基本情報技術者試験は通年で実施されていますが、そのすべての問題が公開されるわけではありません。年度ごとに、代表的な問題が抜き出されて公表される形になっています。

公開問題とサンプル問題セットは別物

科目Bの練習材料としてIPAが出しているものには、大きく2種類あります。名前が似ているので、最初に整理しておきましょう。

種類 中身 使いどころ
サンプル問題セット 制度変更に合わせて公表された、科目B全体の見本問題 出題形式と難易度の全体像をつかむ
年度ごとの公開問題 実際の試験から抜き出して公表された問題 本番に近い手ざわりを確かめる

サンプル問題セットは、試験制度が変わったタイミングで、これから何が出るのかを受験者に示すために公表されたものです。まず全体像を知りたいなら、こちらから目を通すと落ち着きます。

年度ごとの公開問題は、実際に出された問題です。数は多くありませんが、本番の空気に一番近い材料になります。まずはサンプル問題セットで形式に慣れてから、公開問題で本番の手ざわりを確かめる。この順番で使うと、それぞれの持ち味を無駄なく引き出せます。

数値は公開情報で確認しておく

問題を解く前に、科目Bという試験の枠を数字で押さえておきます。ここがずれていると、時間配分の感覚まで狂ってしまいます。

科目Bは全20問を100分で解く試験で、全問が必須です。選択して解く問題はなく、20問すべてに答えることになります。

出題の内訳は、アルゴリズムとプログラミング(擬似言語)がおよそ8割、情報セキュリティがおよそ2割と示されています。つまり、擬似言語を読む力が得点の大部分を左右します。

採点は正誤の単純な合計ではなく、項目応答理論という方式にもとづくスコアで、1000点満点の600点以上が合格の基準です。この数値はIPAの公開情報にもとづくもので、制度変更で変わることがあるため、受験前に必ず最新の情報を確認してください。

公開問題をどこで手に入れ、どう使い回すかを先に知っておきたい人は、こちらの記事が土台になります。

【関連記事】基本情報 科目Bの過去問はどこで解ける?公開問題の使い方と勉強法

公開問題は大きく2つの型に分かれる

数字の枠が入ったところで、中身の話に移ります。公開問題を眺めると、出題は大きく2つの型に分けられます。

さきほどの内訳と同じで、擬似言語を読むプログラミングの型と、情報セキュリティの型です。この2つは、頭の使い方がまるで違います。

問われること 手の動かし方
プログラミング(擬似言語) コードを追って結果や空欄を求める 値を表にして1行ずつ追う
情報セキュリティ 場面から適切な対策や判断を選ぶ 用語と状況を結びつけて考える

数のうえではプログラミングの型が中心です。だからこそ、公開問題で練習する時間の多くは、擬似言語を読むことに充てて構いません。

プログラミング(擬似言語)の型

プログラミングの型では、擬似言語で書かれた短いコードが示され、その動きを追わせます。最終的な変数の値を答える問題と、空欄に入るコードを選ぶ問題が代表的です。

この型は、知識よりも手を動かした量がそのまま点に出ます。頭の中だけで追わず、紙に値を書き出す習慣がついているかで差がつきます。

科目Bという試験そのものの位置づけから確かめ直したい人は、親記事にあたるこちらを先に読んでおくと全体が見えます。

【関連記事】基本情報技術者試験の科目Bとは?擬似言語・アルゴリズム対策を初心者向けに解説

情報セキュリティの型

もう一方の情報セキュリティの型は、擬似言語ではなく、場面を読んで正しい対応を選ぶ問題が中心です。攻撃の手口や、その場で取るべき対策を問う形が多く見られます。

こちらは計算やトレースではなく、状況の読み取りが問われます。登場人物が誰で、どの情報を守りたくて、何が脅威になっているのかを、設問文から拾い出せるかどうかがすべてです。用語をただ暗記するより、その用語がどんな場面で出てくるのかとセットで覚えると、選択肢を絞りやすくなります。

こちらは擬似言語のトレースとは頭の使い方が違うので、同じ日にまとめて詰め込むより、別の時間に回したほうが定着します。擬似言語とセキュリティのどちらから手を付けるか迷う場合は、こちらの整理が参考になります。

【関連記事】基本情報科目Bで擬似言語と情報セキュリティ、どちらから対策すべき?

公開問題を1問、考え方の順にたどる

型が分かったところで、実際に手を動かしてみます。ここでは公開問題そのものを転載する代わりに、公開問題でよく見る形をまねた自作の類題を使います。

出典を明らかにしておくと、これから示すコードはIPAの公開問題を丸写ししたものではなく、頻出の考え方を確かめるために変数名や値を変えて作った類題です。実際の問題に取り組むときは、IPA公表の公開問題と解答例をあわせて確認してください。

題材は、配列の中で一番大きい値が「どこにあるか」を求める処理です。値そのものではなく位置を返すところに、ひとつ落とし穴があります。

○整数型: 最大の位置(整数型の配列: 数値)
  整数型: i, 最大位置
  最大位置 ← 1
  for (i を 2 から 数値の要素数 まで 1 ずつ増やす)
    if (数値[i] > 数値[最大位置])
      最大位置 ← i
    endif
  endfor
  return 最大位置

10行ほどのコードですが、公開問題で問われる要素がしっかり入っています。順番に見ていきましょう。

まず設問が何を聞いているかを決める

コードを追う前に、返している値を確かめます。最後のreturnの行を見ると、返しているのは最大位置であって、最大の値そのものではありません。

つまり、この処理が答えるのは配列の何番目かという位置です。値の90や80を選ばせる選択肢が並んでいても、それは引っかけになります。

公開問題では、この位置と値の取り違えがくり返し狙われます。最初にreturnの行を読んでおくだけで、その罠の半分は避けられます。

トレース表で確かめる

読む場所が決まったら、値を入れて動かします。数値に40、90、60、90の4つが入っているとして、繰返しごとの状態を表にします。

繰返し i 数値[i] 数値[最大位置]と比べて大きいか 最大位置(処理後)
開始前 1
1回目 2 90 はい(90>40) 2
2回目 3 60 いいえ(60>90ではない) 2
3回目 4 90 いいえ(90>90ではない) 2

繰返しを抜けた時点で最大位置は2です。返される答えは2になります。

注目してほしいのは3回目です。4番目の値もまた90ですが、条件が「より大きい」なので更新されず、最初に見つかった90の位置が残ります。

もし条件が「以上」だったら、最大位置は最後の90に当たる4に変わります。同じ値が2つあるとき、どちらの位置を答えるかはこの不等号ひとつで決まります。

こうした境目は、頭の中で数えていると見落とします。表を1行ずつ埋めていくと、更新されなかった行がそのまま目に残るので、あとで選択肢を見分けるときの根拠になります。

トレース表の書き方そのものをまだ固めきれていない人は、手順を分解したこちらから練習すると近道です。

【関連記事】擬似言語のトレース表の書き方|科目Bで変数の値を追う手順を解説

間違えやすい選択肢の見分け方

答えの2が出たあとも、すぐには選びません。公開問題の選択肢には、途中でつまずいた人がたどり着く値が必ず混ぜてあるからです。

今回の類題を例に、どんな誤答が並びやすいかを表にまとめました。答えを出したら、この右の列を上から当てはめて確かめます。

誤りやすい答え どこで生まれるか 見分け方
90(最大の値そのもの) 位置ではなく値を答えてしまう returnの行が返す変数を読み直す
4(最後の90の位置) 「より大きい」を「以上」と読み違える 同じ値のとき更新されるか確かめる
1(初期値のまま) 更新の行を追い忘れる 最大位置が変わった行を数える

3つとも、コードを正しく追えていても選択肢の読み方ひとつで落ちる型です。とくに90を選ばせる誤答は、位置を問う問題で毎回のように登場します。

選択肢を見て迷ったら、その値になるにはどこを間違えればよいかを逆にたどってみてください。誤答の作られ方が見えると、正解の輪郭がはっきりします。

少ない公開問題を何倍にも使うために

最後に、限られた公開問題をどう活かすかに触れておきます。数が多くないぶん、1問との付き合い方で差がつきます。

公開されている問題だけを1回ずつ解いて終わりにすると、あっという間に材料が尽きます。大事なのは、解いた1問から型を取り出して、似た形の問題に応用できる状態にしておくことです。

そのために効くのが、値を変えて何度も動かしてみることです。さきほどの類題でも、配列の中身を入れ替えたり、条件を「より大きい」から「以上」に変えたりするだけで、まったく別の答えが出てきます。

同じ1問でも、確かめ方を変えるだけで練習の量はぐっと増えます。私も現場でコードの動きを確かめるとき、正常な入力だけでなく、空のデータや境目の値をわざと入れて挙動を見ます。うまくいく場合を1回試すより、崩れそうな場合を試したほうが理解が深まるからです。

科目Bの公開問題でも同じで、要素が1つだけの配列や、すべて同じ値の配列を入れてみると、その処理の性格が見えてきます。値を最初から見つけたときと、最後まで見つからなかったときで、答えがどう変わるかを追ってみてください。

紙の上で何度も書き換えるのは骨が折れますが、ここは道具に任せられます。Giji Academy の擬似言語シミュレーターなら、コードを1行ずつ進めながら、変数の値が変わる瞬間を画面で追えます。

自分が書いたトレース表と画面の値がずれた行が、そのままあなたの弱点です。公開問題で出会った型を、値を変えながらシミュレーターで確かめると、1問が何問分にもなります。

解く手順そのものをもっと細かく身につけたい人は、問題文から答えを出すまでを段階に分けたこちらもあわせてどうぞ。

【関連記事】基本情報 科目Bの問題はどう解く?問題文から答えを出すまでの手順

まとめ

最後に、この記事の流れを振り返っておきます。

公開問題は、IPAが試験から抜き出して公表している問題で、制度変更時のサンプル問題セットとは別物でした。まずはこの2つを区別して、全体像をつかむところから始めます。

出題は、擬似言語を追うプログラミングの型と、場面を読む情報セキュリティの型に分かれます。数のうえではプログラミングが中心なので、練習時間の多くはコードを追うことに充てて構いません。

そして1問を解くときは、いきなり全部を追わず、returnの行で何を答えるのかを先に決めます。今回の類題なら、返すのは値ではなく位置でした。あとはトレース表で1行ずつ確かめれば、同じ値が並んだときの罠も自然に見えてきます。

公開問題は数こそ限られていますが、型を取り出して値を変えながら動かせば、そのまま何倍もの練習になります。まずは1問、returnの行から読む練習を今日から始めてみましょう。

擬似言語の基礎から応用まで学べる
Giji Academy

Giji Academyでは、擬似言語の基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。
また、ブラウザ上で直接擬似言語コードを試すことができ、実践的なスキルを身につけることが可能です。

擬似言語の学習を始める