2023年4月から基本情報技術者の試験制度が変更されました。
試験制度は変更されたものの科目B(旧:午後問題)の重要さは変わりません。
出題方式は「多肢選択式」で以前と同じですが、データ構造及びアルゴリズムが8割、情報セキュリティが2割の割合で出題される点が大きく変わっています。
合格基準点は600点以上/1000点満点中、つまり6割以上取れれば合格になります。
サンプル問題では前半16問が「データ構造及びアルゴリズム」の問題。残り4問が「情報セキュリティ」の問題。となっています。
サンプル問題は公式にIPAから出されている貴重な情報です!
早速、問題を見ていきましょう!
問9 (データ構造及びアルゴリズム)
設問
解答
答え:「ウ」
解説
木構造に関する問題です。
プログラムは、tree[n]の要素数によって、3つの処理に場合分けされています。
①tree[n]の要素数が2の場合
要素の1番目の節番号(左側の子)を探索する、自身の節番号を出力する、
要素の2番目の節番号(右側の子)を探索する
②tree[n]の要素数が1の場合
要素の1番目の節番号(左側の子)を探索する、自身の節番号を出力する
③tree[n]の要素数が0の場合
自身の節番号を出力する
また、選択肢から初めの3つの処理がわかれば回答できます。
トレースしていきましょう。
節番号1を根として探索を開始すると、処理は下記のように実施されます。
・order(1)を実行
・配列 tree[1] は2つの要素{2, 3}を持ち、そのうち1番目の要素(tree[1][1])である節番号2を対象として order(2) を実行
・配列 tree[2] は2つの要素{4, 5}を持ち、そのうち1番目の要素(tree[2][1])である節番号4を対象として order(4) を実行
・配列 tree[4] は2つの要素{8, 9}を持ち、そのうち1番目の要素(tree[4][1])である節番号8を対象として order(8) を実行
・配列 tree[8] は要素を持たないので8を出力
order(4) の処理に戻る
・order(4) は自身の節番号4を出力
・次に、2番目の要素(tree[4][2])である節番号9を対象として order(9) を実行
・配列 tree[9] は要素を持たないので9を出力
したがって、出力順は「8 → 4 → 9」となる。
よって、正解の選択肢は「ウ」になります。
最後に
いかがだったでしょうか。プログラム系の問題はトレースするしかありません。
若干の難しさは感じますが、木構造について基本的なことを理解できていれば、問題文に書いてあるとおりにプログラムをなぞっていくことで解ける問題です!
全てのトレースはせず、ケアレスミスのないよう問題を解いていきましょう!