科目B 練習問題(擬似言語・自動採点つき)

基本情報技術者試験・科目Bの擬似言語アルゴリズムを無料で練習できます。 当サイトのオリジナル問題です(過去問の転載ではありません)。選んで「採点する」を押すと、その場で正誤と解説が出ます。

科目Bのコツは「頭の中で正確にトレース(1行ずつ実行)する」こと。とくに 「値」と「位置(添字)」の取り違え「>」と「≧」の違いで失点しがちです。まずは3問、実際に手で追ってみてください。

問1:配列から最大値の「位置」を返す

次の関数 maxIndex は、整数型の配列 data を受け取り、ある値を返す。data に {5, 8, 8, 3, 8} を渡したとき、戻り値はどれか。(配列の要素番号は 1 から始まる)

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

問2:整数の各桁を合計する

次の関数 digitSum は、正の整数 n の各桁の数字を合計して返す。digitSum(1234) の戻り値はどれか。ここで「mod」は割った余り、「÷」は商の整数部(小数点以下切り捨て)を表す。

○整数型: digitSum(整数型: n)
  整数型: s
  s ← 0
  while (n > 0)
    s ← s + (n mod 10)
    n ← n ÷ 10
  endwhile
  return s

問3:二分探索でキーの位置を返す

次の関数 bsearch は、昇順に整列済みの整数型の配列 data から key を二分探索し、見つかればその要素番号を、なければ −1 を返す。data に {2, 4, 6, 8, 10, 12}、key に 10 を渡したときの戻り値はどれか。(要素番号は 1 から、「÷」は商の整数部)

○整数型: bsearch(整数型の配列: data, 整数型: key)
  整数型: lo, hi, mid
  lo ← 1
  hi ← data の要素数
  while (lo ≦ hi)
    mid ← (lo + hi) ÷ 2
    if (data[mid] = key)
      return mid
    elseif (data[mid] < key)
      lo ← mid + 1
    else
      hi ← mid - 1
    endif
  endwhile
  return -1
もっと解きたい人へ:この形式のトレース問題を数多くこなすと、本番で「読むのが速く・正確」になります。 勉強計画は 勉強時間の逆算、得点の合否ラインは 合格点シミュレーターで。

科目Bの読解がどうしても伸び悩む人へ

無料の演習でまず十分に戦えます。そのうえで「科目Bだけ点が伸びない」人向けの、任意の補強策です(必要な人だけ)。

出典・ご注意

本ページの問題はIT資格ラボが独自に作成したオリジナル問題です(IPA公式の過去問題の転載ではありません)。擬似言語の記法は公式の記述形式に寄せていますが、細部は簡略化している場合があります。試験制度・出題形式は変更されることがあるため、必ずIPA公式をご確認ください。

最終更新日: