基本情報 過去問 › 科目B 対策

基本情報技術者試験 科目B 対策と過去問(全50問・解説つき)

科目Bは、擬似言語のプログラムを読む「アルゴリズムとプログラミング」と、事例を読む「情報セキュリティ」の2分野から出る試験です。100分で20問、1問あたり5分で解きます(出典:IPA)。出題の約8割がアルゴリズムとプログラミング、約2割が情報セキュリティです(出典:IPA)。

科目Bの過去問は、IPA が公開している公開問題とサンプル問題だけです。当サイトではその全50問に、答え・解き方・ひっかけを付けています。問題を選ぶと、ブラウザでそのまま解けます。

科目Bの解き方:変数の値を表に書いて追う

アルゴリズムの問題は、プログラムを頭の中だけで読むと間違えます。変数ごとに列を作り、1行実行するたびに値を書き足す(トレースする)のが一番確実です。

  1. 問題文の「入力の例」や小さな値(要素が3つの配列など)を1つ決める
  2. 変数を横に並べた表を作る。ループの変数(i など)を左端に置く
  3. 1行ずつ実行し、値が変わったら次の行に書く。条件式の真偽もメモする
  4. 選択肢を当てはめて、結果が問題文の「期待する出力」と合うかを確かめる

たとえば次のプログラム(基本情報技術者試験 科目B サンプル問題(2022年4月公表) 問1より)はループが無いので、age の値ごとに結果を1行ずつ書けば足ります。境界の値(3・4・9・10)で何円になるかを書き出すと、空欄に入る条件が見えてきます。

○整数型: fee(整数型: age)
  整数型: ret
  if (age が 3 以下)
    ret ← 100
  elseif ( )
    ret ← 300
  else
    ret ← 500
  endif
  return ret

擬似言語の読み方(よく出る書き方)

書き方意味
x ← 式式の値を変数 x に入れる(代入)
if (条件) … elseif (条件) … else … endif上から順に判定し、最初に真になった所だけを実行する
while (条件) … endwhile条件が真の間、繰り返す(最初に判定する)
do … while (条件)1回実行してから条件を判定し、真なら繰り返す
for (i を 1 から n まで 1 ずつ増やす) … endfori を変えながら繰り返す
配列[i]・{1, 2, 3}配列の要素と、配列の中身の書き方。要素番号が1から始まるかは問題文に書いてある
mod・and・or・not割り算の余り・かつ・または・否定

記法は IPA が問題冊子に載せている「擬似言語の記述形式」をもとに、当サイトがまとめたものです。試験では問題冊子の記述形式が正です。

情報セキュリティの問題の解き方

セキュリティの問題は、会社の事例を読んで「どの対策が適切か」を選びます。問われる知識は科目Aと同じ(最小権限の原則・職務分離・2要素認証など)なので、科目Aのセキュリティ分野の頻出知識を先に覚えると解きやすくなります。

アルゴリズムとプログラミングの過去問(41問)

情報セキュリティの過去問(9問)

このページの更新日:2026年10月18日

サンプル問題の問1から解く 基本情報技術者試験とは