本文へスキップ

FE SUBJECT B

データ構造及びアルゴリズムの問題一覧

基本情報技術者 科目Bの「データ構造及びアルゴリズム」分野を、問題ごとの解説ページで確認できます。

SUMMARY

出題数と難易度

掲載問題数 90問
難しい 69問
標準 16問
易しい 5問

QUESTION LIST

問題一覧

挿入ソート 配列 a={5,2,4,6,1,3} に対して、次の手続 partialInsertion(a) を実行したときの戻り値はどれか。 ○整数型: partialInsertion(整… 難しい / fe_b_v89_alg_rec_001 選択ソート 配列 a={7,2,6,3,5} に対して、次の手続 partialSelection(a) を実行したときの戻り値はどれか。 ○整数型: partialSelection(整数型… 難しい / fe_b_v89_alg_rec_002 隣接行列 次の無向グラフを隣接行列に入れるプログラムを実行したとき,戻り値はどれか。 整数型の二次元配列: m[1..5, 1..5] ← すべて0 辺の配列: e ← {{1,2}, {1… 標準 / fe_b_v89_alg_rec_003 幅優先探索 次の手続 bfsOrder() を実行したときの戻り値はどれか。 ○整数型: bfsOrder() グラフの辺: (1,2), (1,3), (2,5), (3,4), (3,6)… 難しい / fe_b_v89_alg_rec_004 二次元配列 次の二次元配列処理を実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の二次元配列: m ← {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} … 標準 / fe_b_v89_alg_rec_005 二次元配列 二次元配列 m={{2,5,1,4},{3,6,2,1},{4,1,5,2}} に対して、次の手続 matrixHard(m) を実行したときの戻り値はどれか。 ○整数型: mat… 難しい / fe_b_v89_alg_rec_006 文字列処理 次の文字列処理を実行したとき,戻り値はどれか。 文字列型: s ← "AABBAAC" 整数型: i, count ← 0 for (i を 2 から sの文字… 易しい / fe_b_v89_alg_rec_007 文字列処理 文字列 s="AABCCBAA" に対して、次の手続 runScore(s) を実行したときの戻り値はどれか。 ○整数型: runScore(文字列型: s) 整数型: i, ru… 難しい / fe_b_v89_alg_rec_008 ビット処理 次の手続 bitOddScore(45) を実行したときの戻り値はどれか。 ○整数型: bitOddScore(整数型: n) 整数型: pos ← 1, c ← 0, bit w… 難しい / fe_b_v89_alg_rec_009 ビット処理 次のビット演算を実行したとき,戻り値はどれか。13は2進数で1101,5は2進数で0101とする。 整数型: x ← 13 整数型: mask ← 5 整数型: y ← x XOR… 易しい / fe_b_v89_alg_rec_010 ハッシュ表 次の手続 hashProbeScore() を実行したときの戻り値はどれか。 ○整数型: hashProbeScore() 整数型の配列: key ← {14, 22, 30, 9… 難しい / fe_b_v89_alg_sortsearch_001 ハッシュ表 次の手続 hashPlaceScore() を実行したときの戻り値はどれか。 ○整数型: hashPlaceScore() 整数型の配列: key ← {8, 15, 3, 10}… 難しい / fe_b_v89_alg_sortsearch_002 累積和 配列 a={3,1,4,1,5,9} に対して、次の手続 prefixQuery(a) を実行したときの戻り値はどれか。 ○整数型: prefixQuery(整数型の配列: a) … 難しい / fe_b_v89_alg_sortsearch_003 スライディングウィンドウ 配列 a={1,3,2,1,4,2} に対して、次の手続 countWindows(a) を実行したときの戻り値はどれか。 ○整数型: countWindows(整数型の配列: a… 難しい / fe_b_v89_alg_sortsearch_004 二重ループ 配列 a={2,5,1,4,3} に対して、次の手続 breakPair(a) を実行したときの戻り値はどれか。 ○整数型: breakPair(整数型の配列: a) 整数型: i… 難しい / fe_b_v89_alg_sortsearch_005 break処理 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {5, 9, 4, 7} 整数型: i, s ← 0 for (i を 1 か… 易しい / fe_b_v89_alg_sortsearch_006 マージ処理 配列 a={1,4,7}, b={2,4,6,8} に対して、次の手続 mergeScore(a,b) を実行したときの戻り値はどれか。 ○整数型: mergeScore(整数型の… 難しい / fe_b_v89_alg_sortsearch_007 二ポインタ 昇順配列 a={1,2,4,6,9} に対して、次の手続 twoPointerScore(a,10) を実行したときの戻り値はどれか。 ○整数型: twoPointerScore(… 難しい / fe_b_v89_alg_sortsearch_008 動的計画法 配列 a={3,1,2,5,4} に対して、次の手続 lisScore(a) を実行したときの戻り値はどれか。 ○整数型: lisScore(整数型の配列: a) 整数型の配列: … 難しい / fe_b_v89_alg_sortsearch_009 貪欲法 次の手続 greedySelect() を実行したときの戻り値はどれか。 ○整数型: greedySelect() 区間は終了時刻の昇順に (1,3), (2,5), (4,7),… 難しい / fe_b_v89_alg_sortsearch_010 配列トレース 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 9, 2, 7, 6} 整数型: i, s ← 0 for (i を … 標準 / fe_b_v90_alg_trace_091 配列トレース 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {3, 8, 5, 7, 7, 2} 整数型: i, count ← 0 fo… 標準 / fe_b_v90_alg_trace_092 文字列処理 次のプログラムを実行したとき,戻り値はどれか。 文字列型: s ← "ABACAD" 整数型: i, count ← 0 for (i を 2 から sの文字数… 標準 / fe_b_v90_alg_trace_093 文字列処理 次のプログラムを実行したとき,戻り値はどれか。 文字列型: s ← "AABBBAAC" 整数型: i, cur ← 1, max ← 1 for (i を 2… 標準 / fe_b_v90_alg_trace_094 スタック 次の手続 stackScore() を実行したときの戻り値はどれか。 ○整数型: stackScore() スタック st ← 空 整数型: s ← 0 操作列: push 2, … 難しい / fe_b_v90_alg_trace_095 キュー 次の手続 queueScore() を実行したときの戻り値はどれか。 ○整数型: queueScore() キュー q ← 空 整数型: x, y enqueue(q, 4) en… 難しい / fe_b_v90_alg_trace_096 探索 回転済み昇順配列 a={7,9,1,3,5} に対して、次の手続 rotatedSearch(a,3) を実行したときの戻り値はどれか。 ○整数型: rotatedSearch(整… 難しい / fe_b_v90_alg_trace_097 探索 昇順配列 a={1,2,2,2,4,5,5} に対して、次の手続 countKey(a,2) を実行したときの戻り値はどれか。 ○整数型: countKey(整数型の配列: a, … 難しい / fe_b_v90_alg_trace_098 整列 次の挿入ソートをi=4まで実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 3, 5, 2, 4} 整数型: i, j, key for… 難しい / fe_b_v90_alg_trace_099 整列 次の選択ソートを3回だけ実行したとき,戻り値はどれか。 整数型の配列: a ← {8, 1, 6, 3, 7} 整数型: i, j, min, tmp for (i を 1 から … 難しい / fe_b_v90_alg_trace_100 二次元配列 次のプログラムを実行したとき,戻り値はどれか。 整数型の二次元配列: m ← {{2, 5, 1, 4}, {3, 2, 6, 1}, {0, 7, 2, 3}} 整数型: i, … 難しい / fe_b_v90_alg_trace_101 二次元配列 次のプログラムを実行したとき,戻り値はどれか。 整数型の二次元配列: m ← {{5, 1, 2}, {3, 4, 6}, {7, 8, 9}} 整数型: i, j, s ← 0 … 標準 / fe_b_v90_alg_trace_102 再帰 次の再帰関数を実行したとき,戻り値はどれか。 ○整数型: f(整数型: n) if (n ≦ 1) return 1 elseif (n mod 2 = 0) return f(n… 難しい / fe_b_v90_alg_trace_103 再帰 次の再帰関数を実行したとき,戻り値はどれか。ここで÷は整数除算である。 ○整数型: g(整数型: n) if (n = 0) return 0 endif 整数型: t ← g(n… 難しい / fe_b_v90_alg_trace_104 グラフ探索 次の幅優先探索を実行したとき,戻り値はどれか。頂点番号は1から始まる。 整数型の配列の配列: adj ← {{2,3}, {4,5}, {5}, {6}, {6}, {}} 整数型… 難しい / fe_b_v90_alg_trace_105 グラフ探索 次の深さ優先探索をスタックで実行したとき,戻り値はどれか。 整数型の配列の配列: adj ← {{2,3}, {4}, {4,5}, {6}, {6}, {}} 整数型の配列: s… 難しい / fe_b_v90_alg_trace_106 ハッシュ表 次の線形探索法のハッシュ表で,28を見つけるまでの参照回数はどれか。 整数型の配列: table[0..6] ← {空, 空, 空, 空, 空, 空, 空} 整数型の配列: key… 難しい / fe_b_v90_alg_trace_107 ビット処理 次のビット処理を実行したとき,戻り値はどれか。ここで∧はビットAND,<<と>>はビットシフトである。 整数型: b ← 45, c ← 0 while (… 難しい / fe_b_v90_alg_trace_108 累積和 次のプログラムを実行したとき,戻り値はどれか。配列pの添字は0から始まる。 整数型の配列: a ← {3, 1, 4, 1, 5} 整数型の配列: p ← {0, 0, 0, 0,… 標準 / fe_b_v90_alg_trace_109 スライディングウィンドウ 次の長さ3の区間を調べるプログラムを実行したとき,戻り値はどれか。 整数型の配列: a ← {2, 1, 3, 2, 4, 1} 整数型: left, right, sum ← 0… 難しい / fe_b_v90_alg_trace_110 二重ループ 次の二重ループを実行したとき,戻り値はどれか。 整数型の配列: a ← {3, 1, 4, 2, 5} 整数型: i, j, count ← 0 for (i を 1 から aの要… 難しい / fe_b_v90_alg_trace_111 二重ループ 次の二重ループを実行したとき,戻り値はどれか。 整数型の配列: a ← {4, 1, 3, 2} 整数型: i, j, count ← 0 for (i を 1 から aの要素数 … 難しい / fe_b_v90_alg_trace_112 マージ処理 次のマージ処理を途中まで実行したとき,戻り値はどれか。 整数型の配列: a ← {1, 4, 6, 9} 整数型の配列: b ← {2, 4, 5, 8} 整数型: i ← 1, … 難しい / fe_b_v90_alg_trace_113 二ポインタ 次の二ポインタ法で,和が8以下の組の数を求める。戻り値はどれか。 整数型の配列: a ← {1, 2, 3, 5, 7} 整数型: left ← 1, right ← 5, cou… 難しい / fe_b_v90_alg_trace_114 動的計画法 次の動的計画法で,合計5を作る組合せ数を求める。戻り値はどれか。 整数型の配列: coin ← {1, 2, 5} 整数型の配列: dp[0..5] ← {1, 0, 0, 0, … 難しい / fe_b_v90_alg_trace_115 貪欲法 次の貪欲法で選択される仕事数はどれか。各行は{開始時刻, 終了時刻}で,終了時刻の昇順に並んでいる。 整数型の二次元配列: job ← {{1,3}, {2,5}, {4,7}, … 難しい / fe_b_v90_alg_trace_116 手続呼出し 次のプログラムで,procMainを呼び出したときの出力順序はどれか。 ○procA() "A" を出力する ○procB() "B" を出… 易しい / fe_b_v90_alg_trace_117 手続呼出し 次の再帰的な手続を呼び出したとき,出力順序はどれか。 ○proc(整数型: x) x を出力する if (x > 1) proc(x - 2) endif proc(5) を呼び出… 易しい / fe_b_v90_alg_trace_118 木構造 次の木構造を再帰的に評価したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: value ← {5, 2, 4, 1, 3} 整数型の配列: left ← {2… 難しい / fe_b_v90_alg_trace_119 グラフ 次のトポロジカルソートを実行したとき,戻り値はどれか。 整数型の配列の配列: edge ← {{3}, {3,4}, {5}, {5}, {6}, {}} 整数型の配列: inde… 難しい / fe_b_v90_alg_trace_120 配列トレース 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 1, 4, 9, 2} 整数型: i, s ← 0 for (i を … 標準 / fe_b_v90_alg_trace_121 配列トレース 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {5, 3, 8, 2, 7} 整数型: i, diff, best ← -9… 標準 / fe_b_v90_alg_trace_122 文字列処理 次のプログラムを実行したとき,戻り値はどれか。文字列の文字番号は1から始まる。 文字列: s ← "ABBACCC" 整数型: i, count ← 1 for (i を 2 から… 標準 / fe_b_v90_alg_trace_123 文字列処理 次のプログラムを実行したとき,戻り値はどれか。文字列の文字番号は1から始まる。 文字列: s ← "101001" 文字型: prev ← s[1] 整数型: i, count ←… 標準 / fe_b_v90_alg_trace_124 スタック 次の後置記法をスタックで評価したとき,戻り値はどれか。 文字列型の配列: token ← {"5", "3", "+", "2", "*", "4", "-"} 整数型のスタック:… 難しい / fe_b_v90_alg_trace_125 キュー 次の循環キュー操作を実行したとき,戻り値はどれか。enqueueはrear位置へ格納してrearを1進め,dequeueはfront位置から取り出してfrontを1進める。 整数型… 難しい / fe_b_v90_alg_trace_126 探索 次の二分探索で,x×xが50以上となる最小のxを求める。戻り値はどれか。 整数型: left ← 1, right ← 10, mid while (left < right) m… 難しい / fe_b_v90_alg_trace_127 探索 次の探索で,keyより大きい最初の要素番号を求める。戻り値はどれか。 整数型の配列: a ← {1, 2, 2, 2, 4, 5} 整数型: key ← 2 整数型: left ←… 難しい / fe_b_v90_alg_trace_128 整列 次のクイックソートの分割処理を1回実行したとき,pivotの最終位置はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 2, 7, 3, 5} 整数型: pi… 難しい / fe_b_v90_alg_trace_129 整列 次のバブルソートを実行したとき,戻り値はどれか。 整数型の配列: a ← {3, 1, 2, 4} 整数型: pass ← 0 論理型: swapped ← true while … 難しい / fe_b_v90_alg_trace_130 二次元配列 次のプログラムを実行したとき,戻り値はどれか。行・列番号は1から始まる。 整数型の二次元配列: m ← {{2, 1, 3}, {4, 5, 6}, {7, 0, 8}} 整数型:… 標準 / fe_b_v90_alg_trace_131 二次元配列 次の二次元配列処理を実行したとき,戻り値はどれか。 整数型の二次元配列: m ← {{3,1,4}, {2,5,0}, {6,2,7}} 整数型: i, j, count ← 0 … 難しい / fe_b_v90_alg_trace_132 再帰 次の再帰関数を実行したとき,戻り値はどれか。ここで÷は整数除算である。 ○整数型: h(整数型: n) if (n < 10) return n else return (n mo… 難しい / fe_b_v90_alg_trace_133 再帰 次の再帰関数を実行したとき,戻り値はどれか。 ○整数型: p(整数型: n) if (n = 0) return 0 elseif (n mod 2 = 0) return p(n… 難しい / fe_b_v90_alg_trace_134 グラフ探索 次のダイクストラ法で,頂点1から頂点5への最短距離はどれか。 頂点1から5への最短距離を求める。 辺と重み: (1,2,2), (1,3,5), (2,3,1), (2,4,4),… 難しい / fe_b_v90_alg_trace_135 グラフ探索 次の深さ優先探索を実行したとき,戻り値はどれか。 整数型の二次元配列: g ← {{0,1,1,0,0}, {0,0,0,1,0}, {0,0,0,1,1}, {0,0,0,0,0… 難しい / fe_b_v90_alg_trace_136 ハッシュ表 次の線形探索法のハッシュ表で,11を見つけるまでの参照回数はどれか。 整数型の配列: table[0..7] ← {空, 空, 空, 空, 空, 空, 空, 空} 整数型の配列: … 難しい / fe_b_v90_alg_trace_137 ビット処理 次のプログラムを実行したとき,戻り値はどれか。整数は8ビットで考える。 整数型: x ← 182 // 2進数で10110110 整数型: mask ← 204 // 2進数で11… 難しい / fe_b_v90_alg_trace_138 累積和 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 1, 7, 3, 6, 2} 整数型の配列: prefix prefi… 難しい / fe_b_v90_alg_trace_139 スライディングウィンドウ 長さ3の連続部分列のうち,和が10を超え,かつ偶数であるものの個数を求める。戻り値はどれか。 整数型の配列: a ← {5, 2, 4, 7, 1, 6} 整数型: i, s, c… 難しい / fe_b_v90_alg_trace_140 二重ループ 次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {2, 5, 1, 4, 3, 6} 整数型: i, j, count ← 0… 難しい / fe_b_v90_alg_trace_141 二重ループ 次のプログラムを実行したとき,戻り値はどれか。行・列番号は1から始まる。 整数型の二次元配列: m ← {{2, 5, 1, 4}, {3, 1, 6, 2}, {7, 2, 1,… 難しい / fe_b_v90_alg_trace_142 マージ処理 整列済み配列a,bに共通して現れる値を,重複も含めて数える。戻り値はどれか。 整数型の配列: a ← {1, 2, 2, 4, 7} 整数型の配列: b ← {2, 2, 3, 4… 難しい / fe_b_v90_alg_trace_143 二ポインタ 次のプログラムを実行したとき,戻り値はどれか。文字番号は1から始まる。 文字列: s ← "abxcdba" 整数型: left ← 1, right ← sの文字数, miss … 難しい / fe_b_v90_alg_trace_144 動的計画法 隣り合う要素を同時に選ばないという条件で,選んだ要素の合計の最大値を求める。戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {4, 1, 7, 3, 6} … 難しい / fe_b_v90_alg_trace_145 貪欲法 終了時刻の早い順に並んだ作業を,重ならないように貪欲に選ぶ。戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: start ← {1, 2, 4, 6, 7} 整数型の… 難しい / fe_b_v90_alg_trace_146 手続呼出し 次の手続を main から実行したとき,出力される文字列はどれか。 手続 main() p1() print("M") end 手続 p1() print("A") p2() pr… 標準 / fe_b_v90_alg_trace_147 再帰的手続 次の再帰的手続 f(5) を実行したとき,出力される文字列はどれか。 手続 f(整数型: n) if (n ≦ 0) return endif print(n) f(n - 2) … 難しい / fe_b_v90_alg_trace_148 木構造 次の二分木を postorder(左,右,根)でたどる。4番目に訪問する頂点はどれか。 left[1]=2, right[1]=3 left[2]=4, right[2]=0 le… 難しい / fe_b_v90_alg_trace_149 トポロジカルソート 次の有向非循環グラフを,入次数0の頂点を小さい番号から取り出す方法でトポロジカルソートする。4番目に出力される頂点はどれか。 辺: 1→3, 2→3, 2→4, 3→5, 4→5 … 難しい / fe_b_v90_alg_trace_150 ビット処理 次のプログラムを実行したときの戻り値はどれか。 8ビット型: b ← 11010110 8ビット型: r ← 00000000 整数型: i, bit for (i を 1 から … 難しい / fe_b_v90_alg_q151 ビット処理 次のプログラムを実行したときの戻り値はどれか。 8ビット型: b ← 10110100 整数型: i, bit, prev ← 0, count ← 0 for (i を 1 から… 難しい / fe_b_v90_alg_q152 配列トレース 次のプログラムを実行したときの戻り値はどれか。 整数型の配列: a ← {3, 1, 4, 1, 5} 整数型: i, s ← 0 for (i を 1 から 5 まで 1 ずつ増… 標準 / fe_b_v90_alg_q153 文字列処理 次のプログラムを実行したときの戻り値はどれか。 文字列型: s ← "AABBBCA" 整数型: i, current ← 1, best ← 1 for (i を 2 から sの… 標準 / fe_b_v90_alg_q154 スタック 次のスタック操作を実行したとき,最後にスタックの一番上にある値はどれか。 push(4) push(7) push(2) x ← pop() y ← pop() push(y - … 難しい / fe_b_v90_alg_q155 循環キュー 次の循環キュー操作を実行したとき,戻り値はどれか。frontは次に取り出す位置,rearは次に格納する位置を表す。 整数型: size ← 5 整数型: front ← 1, re… 難しい / fe_b_v90_alg_q156 二分探索 回転済みの昇順配列からkeyを探す。次のプログラムを実行したとき,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {6, 8, 1, 3, 5} 整数型: … 難しい / fe_b_v90_alg_q157 整列 次のクイックソートの分割処理を実行した後,戻り値はどれか。配列の要素番号は1から始まる。 整数型の配列: a ← {5, 1, 6, 3, 4} 整数型: pivot ← a[5]… 難しい / fe_b_v90_alg_q158 グラフ探索 次の幅優先探索を実行したとき,戻り値はどれか。頂点番号は1から始まる。 隣接リスト: adj[1]={2,3}, adj[2]={4,5}, adj[3]={5}, adj[4]=… 難しい / fe_b_v90_alg_q159 スライディングウィンドウ 和が7以下である連続部分列の最大長を求める。戻り値はどれか。 整数型の配列: a ← {2, 4, 1, 3, 2, 5} 整数型: left ← 1, sum ← 0, best… 難しい / fe_b_v90_alg_q160