こんにちは、ふじみやです。
情報処理技術者試験の勉強のため、ブログの更新が不定期となっています。
最近、応用情報技術者試験の傾向を調べたところ、午前試験の約半数は過去問から出題されるとのことで、試験に合格するためには参考書を読むことに加えて過去問を解く勉強が重要となってきます。
そこで、本ブログではIPA に掲載されている過去問の解き方を解説していきたいと思います。とはいえ、全問解くというよりは、ややトリッキーかなと思った問題を中心に本ブログでは取り上げていきたいと思います。
普通に過去問を勉強されたい方は、過去問道場様のご利用をオススメします。
また、個人的には「キタミ式イラストIT塾 応用情報技術者 令和05年」が分かりやすいと思いましたので、これから勉強をされようとしている方は一度ご覧になってみてください。
それでは早速過去問を見ていきましょう。
問題
解説
x1 と x2 は 2 進数の数字ということですから、それぞれが取りうる値の範囲は 0 または 1 ということになりますので、そこまで場合分けの数も多くありませんのでそれぞれの組み合わせを当てはめていってみましょう。
Case 1:x1 = 1 、x2 = 1
x は 2進数で 11 、つまり 10 進数では 3 ということになり、x2x1 も 10 進数の 3 ということになります。また、int(x/2)は小数点以下を切り捨てた整数となるため、int(3/2) = 1 です。
ア:2x + 4 int(x/2)
2 × 3 + 4 × 1 = 10 になりますので、正解ではないことがわかります。
イ:2x + 5 int(x/2)
2 × 3 + 5 × 1 = 11 になりますので、正解ではないことがわかります。
ウ:2x – 3 int(x/2)
2 × 3 – 3 × 1 = 3 になりますので、正解の候補ですね。
エ:2x – 4 int(x/2)
2 × 3 – 4 × 1 = 2 になりますので、正解ではないことがわかります。
以上から、答えはウであると判断ができますが、念のため x1 と x2 に他の数値を当てはめてみましょう。
Case 2:x1 = 1 、x2 = 0
x は 2進数で 10 ですので 10 進数では 2 です。また、x2x1 は 2進数で 01 となるので 10 進数では 1 です。なお、int(x/2)は int(2/2) = 1 となります。
ア:2x + 4 int(x/2)
2 × 2 + 4 × 1 = 8 になりますので、正解ではないことがわかります。
イ:2x + 5 int(x/2)
2 × 2 + 5 × 1 = 9 になりますので、正解ではないことがわかります。
ウ:2x – 3 int(x/2)
2 × 2 – 3 × 1 = 3 になりますので、正解の候補ですね。
エ:2x – 4 int(x/2)
2 × 2 – 4 × 1 = 0 になりますので、正解ではないことがわかります。
ということで、Case 1 と同じくウのみが正しいということがわかりました。
コメント