2023年4月から基本情報技術者の試験制度が変更されました。
試験制度は変更されたものの科目B(旧:午後問題)の重要さは変わりません。
出題方式は「多肢選択式」で以前と同じですが、データ構造及びアルゴリズムが8割、情報セキュリティが2割の割合で出題される点が大きく変わっています。
合格基準点は600点以上/1000点満点中、つまり6割以上取れれば合格になります。
サンプル問題では前半16問が「データ構造及びアルゴリズム」の問題。残り4問が「情報セキュリティ」の問題。となっています。
サンプル問題は公式にIPAから出されている貴重な情報です!
早速、問題を見ていきましょう!
問13 (データ構造及びアルゴリズム)
設問
解答
答え:「ウ」
解説
探索に関する問題です。
無限ループになる選択肢を見つけていきます。
それぞれのときのプログラムの動きを見てみましょう。
ア:low = 1、high = 1 となる。
middle ← (1 + 1) ÷ 2 の商 (= 1)
data[1] が目的のデータ(target)と等しいので、middleを返して終了
イ:low = 1、high = 2 となる。
middle ← (1 + 2) ÷ 2 の商 (= 1)
data[1] が目的のデータ(target)と等しいので、middleを返して終了
ウ:low = 1、high = 2 となる。
middle ← (1 + 2) ÷ 2 の商 (= 1)
配列は昇順になっており、data[1] は目的のデータ(target)よりも小さいので、
low に middle の値を代入します(low = 1)。
そのため、 low = 1、high = 2 となり、同じ処理を繰り返します。
つまり、無限ループの処理となります。
エ:要素に-1(負の数)が含まれていても、処理には影響がありません。
よって、正解の選択肢は「ウ」になります。
最後に
いかがだったでしょうか。
それぞれの条件でプログラムの動きを見てみましょう。すぐ該当ではないと思えるもの以外は試してみましょう。
プログラムが複雑に見えるかもしれませんが、理解できないときは試しに値を入れて動きを見てみましょう。プログラムの動きがわかれば、そこまで怖がる問題ではありません。
徐々に難しさも見えてきますが、冷静に解答していきましょう!