本文へスキップ

FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER

プログラムの基本要素の問題一覧

基本情報技術者の「プログラムの基本要素」分野を、問題ごとの解説ページで確認できます。

OVERVIEW

プログラムの基本要素とは(学習のポイント)

「プログラムの基本要素」は、基本情報技術者試験 科目Bの中心となる分野で、擬似言語(疑似コード)で書かれたプログラムを読み解く力を問います。変数・代入・演算(剰余 mod など)、条件分岐(if/else)、繰返し(for などのループ)といった制御構造を土台に、配列(1次元・2次元)、スタック、キュー、ハッシュ表などのデータ構造、線形探索・二分探索・整列、再帰、グラフ探索(幅優先探索など)まで幅広く扱います。累積和・スライディングウィンドウ・動的計画法・貪欲法といったアルゴリズムの考え方も対象です。

出題の特徴は、与えられたコードを1行ずつたどって戻り値や変数の最終値を求める「トレース問題」と、空欄に入る式や処理を選ぶ「空欄補充問題」が中心であることです。暗記より、コードの動きを正確に追える読解力が求められます。当サイトの収録問題はIPAの公開・サンプル問題の出題形式や擬似言語記法を参考にした独自作成問題で、過去問の転載・改題ではありません。

学習のコツは、紙やメモ上で変数の値の変化を表にして手で追う「トレース」を習慣づけることです。配列の添字(要素番号が1から始まるか0からか)、ループの範囲、条件式の真偽判定の取り違えがつまずきやすい代表例です。まず基本的な配列・ループ問題で確実に値を追えるようにし、その後でスタック・キュー・再帰など段階的に対象を広げると理解が安定します。

SUMMARY

出題数と難易度

掲載問題数 70問
易しい 16問
標準 43問
難しい 11問

QUESTION LIST

問題一覧

配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {7, 12, 17, 5, 10}… 易しい / fe_b_v89_alg_trace_001 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {10, 15, 3, 8, 13, 18}… 易しい / fe_b_v89_alg_trace_002 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {13, 18, 6, 11, 16, 4, 9}… 易しい / fe_b_v89_alg_trace_003 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {16… 易しい / fe_b_v89_alg_trace_004 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {2… 易しい / fe_b_v89_alg_trace_005 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {5… 易しい / fe_b_v89_alg_trace_006 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {8… 易しい / fe_b_v89_alg_trace_007 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {11… 易しい / fe_b_v89_alg_trace_008 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {14… 標準 / fe_b_v89_alg_trace_009 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {17… 標準 / fe_b_v89_alg_trace_010 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {3… 標準 / fe_b_v89_alg_trace_011 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {6… 標準 / fe_b_v89_alg_trace_012 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {9… 標準 / fe_b_v89_alg_trace_013 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {12… 標準 / fe_b_v89_alg_trace_014 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {15… 標準 / fe_b_v89_alg_trace_015 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {18… 標準 / fe_b_v89_alg_trace_016 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {4… 標準 / fe_b_v89_alg_trace_017 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {7, 12, 17, 5, 10,… 標準 / fe_b_v89_alg_trace_018 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {10, 15, 3, 8, 13, 18,… 標準 / fe_b_v89_alg_trace_019 配列トレース 次のプログラムを実行したとき、戻り値はどれか。ここで、配列の要素番号は1から始まる。 整数型の配列: a ← {13, 18, 6, 11, 16, 4, 9,… 標準 / fe_b_v89_alg_trace_020 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({3, 5, 7, 9, 2, 4}) の戻り値の要素番号 3… 易しい / fe_b_v89_alg_accum_001 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({4, 7, 1, 4, 7, 1}) の戻り値の要素番号 4… 易しい / fe_b_v89_alg_accum_002 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({5, 9, 4, 8, 3, 7}) の戻り値の要素番号 5… 易しい / fe_b_v89_alg_accum_003 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({6, 2, 7, 3, 8, 4}) の戻り値の要素番号 6… 易しい / fe_b_v89_alg_accum_004 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({7, 4, 1, 7, 4, 1}) の戻り値の要素番号 3… 易しい / fe_b_v89_alg_accum_005 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({8, 6, 4, 2, 9, 7}) の戻り値の要素番号 4… 標準 / fe_b_v89_alg_accum_006 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…の末尾 に (tail + in[i]) の結果を追加する endfor return out makeAccum({9… 標準 / fe_b_v89_alg_accum_007 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…の末尾 に (tail + in[i]) の結果を追加する endfor return out makeAccum({1… 標準 / fe_b_v89_alg_accum_008 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…の末尾 に (tail + in[i]) の結果を追加する endfor return out makeAccum({2… 標準 / fe_b_v89_alg_accum_009 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({3, 5, 7, 9, 2, 4}) の戻り値の要素番号 4… 標準 / fe_b_v89_alg_accum_010 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({4, 7, 1, 4, 7, 1}) の戻り値の要素番号 5… 標準 / fe_b_v89_alg_accum_011 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({5, 9, 4, 8, 3, 7}) の戻り値の要素番号 6… 標準 / fe_b_v89_alg_accum_012 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({6, 2, 7, 3, 8, 4}) の戻り値の要素番号 3… 標準 / fe_b_v89_alg_accum_013 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({7, 4, 1, 7, 4, 1}) の戻り値の要素番号 4… 標準 / fe_b_v89_alg_accum_014 累積配列読解 次のプログラムの実行結果として、指定された要素の値はどれか。配列の要素番号は1から始まる。 ○整数型の配列: makeA…endfor return out makeAccum({8, 6, 4, 2, 9, 7}) の戻り値の要素番号 5… 標準 / fe_b_v89_alg_accum_015 空欄補充 次のプログラム中の[空欄]に入れる最も適切な条件式はどれか。… 標準 / fe_b_v89_alg_blank_001 空欄補充 次のプログラム中の[空欄]に入れる最も適切な式はどれか。 ○… 標準 / fe_b_v89_alg_blank_002 配列トレース 配列 a={3,5,2,8,4} に対して、次の手続 sco… 標準 / fe_b_v89_alg_blank_003 配列トレース 配列 a={2,4,8,6,15} に対して、次の手続 fi… 標準 / fe_b_v89_alg_blank_004 文字列処理 文字列 s="AABCCBA" に対して、次の手続 coun… 標準 / fe_b_v89_alg_blank_005 文字列処理 文字列 s="ABBCCCDDA" に対して、次の手続 lo… 標準 / fe_b_v89_alg_blank_006 スタック 文字列 s="(())()" に対して、次の手続 maxDe… 標準 / fe_b_v89_alg_blank_007 キュー 次の手続 queueCalc() を実行したときの戻り値はど… 標準 / fe_b_v89_alg_blank_008 探索 昇順配列 a={1,3,3,5,8,13,21} に対して、… 難しい / fe_b_v89_alg_blank_009 探索 配列 a={4,9,5,12,7} に対して、次の手続 fi… 標準 / fe_b_v89_alg_blank_010 整列 配列 a={2,4,7,9,5,8} に対して、次の手続 i… 難しい / fe_b_v89_alg_blank_011 整列 配列 a={6,3,5,2,4} に対して、次の手続 sel… 難しい / fe_b_v89_alg_blank_012 二次元配列 二次元配列 m が次のとき、手続 diagScore(m) … 標準 / fe_b_v89_alg_blank_013 二次元配列 二次元配列 m が次のとき、手続 rowScore(m) の… 標準 / fe_b_v89_alg_blank_014 再帰 次の手続 digitSum(407) を実行したときの戻り値… 標準 / fe_b_v89_alg_blank_015 再帰 次の再帰手続 g(5) を実行したときの戻り値はどれか。 ○… 難しい / fe_b_v89_alg_blank_016 グラフ探索 次の手続 bfsScore() を実行したときの戻り値はどれ… 難しい / fe_b_v89_alg_blank_017 グラフ 次の手続 degree2() を実行したときの戻り値はどれか… 標準 / fe_b_v89_alg_blank_018 ハッシュ表 次の手続 hashScore() を実行したときの戻り値はど… 難しい / fe_b_v89_alg_blank_019 ビット処理 次の手続 bitCount(13) を実行したときの戻り値は… 標準 / fe_b_v89_alg_blank_020 累積和 配列 a={3,1,4,1,5} に対して、次の手続 ran… 標準 / fe_b_v89_alg_blank_021 スライディングウィンドウ 配列 a={2,1,3,2,4,1} に対して、次の手続 w… 難しい / fe_b_v89_alg_blank_022 二重ループ 配列 a={1,4,2,5,3} に対して、次の手続 pai… 難しい / fe_b_v89_alg_blank_023 ループ制御 配列 a={2,4,6,9,10} に対して、次の手続 un… 標準 / fe_b_v89_alg_blank_024 動的計画法 配列 a={2,1,3,2} に対して、次の手続 dpHar… 難しい / fe_b_v89_alg_blank_025 手続呼出し 次のプログラムで、procMainを呼び出したときの出力順序はどれか。 ○proc1… 易しい / fe_b_v89_alg_call_001 手続呼出し 次のプログラムで、show3を呼び出したときの出力順序はどれ… 易しい / fe_b_v89_alg_call_002 再帰読解 次のプログラムを実行したときの戻り値はどれか。 ○整数型: … 標準 / fe_b_v89_alg_call_003 再帰読解 次の再帰手続 h(347) を実行したときの戻り値はどれか。… 難しい / fe_b_v89_alg_call_004 スタック 次のプログラムを実行したとき、戻り値はどれか。 文字列型: s ← "ABACC… 標準 / fe_b_v89_alg_call_005 スタック 次の後置記法の評価を行うプログラムで、最後に返される値はどれ… 標準 / fe_b_v89_alg_call_006 キュー 次のキュー操作を実行したとき、戻り値はどれか。 キュー: q… 標準 / fe_b_v89_alg_call_007 循環キュー 次の循環キュー風の添字更新を実行したとき、戻り値はどれか。配… 標準 / fe_b_v89_alg_call_008 境界探索 昇順配列 a={1,2,4,4,4,7,9} に対して、次の… 難しい / fe_b_v89_alg_call_009 線形探索 次のプログラムを実行したとき、戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 8… 易しい / fe_b_v89_alg_call_010