●問題
第5問 (選択問題) (配点 20)
次のプログラムは2以上の自然数Nを入力したときに、
N以上の最小の2の累乗2aを求め、
aとb=2aを表示させるものである。変数Aと変数Bがそれぞれaとbに対応する。
(2)また、Nに5を入力したとき、40行は[カ]回実行され、画面にはAとして[キ]が表示され、 Bとして[ク]が表示される。
(3)Nに1998を入力したとき、画面にはAとして[ケコ]が表示され、Bとして[サシスセ]が表示される。
10 INPUT "N=" ; N 20 A=0 30 B=1 40 A=A [ア] 1 50 B=B [イ] 2 60 IF B [ウ] N THEN GOTO [エオ] 70 PRINT "A=";A,"B=";B 80 END(1)[ア]、[イ]、[ウ]については、当てはまるものを、 次の(0)-(9)のうちから選び、[エオ]については行番号を入れて、プログラムを完成せよ。
(0) + | (1) - | (2) * | (3) / | (4) = |
(5) <> | (6) > | (7) < | (8) >= | (9) <= |
(2)また、Nに5を入力したとき、40行は[カ]回実行され、画面にはAとして[キ]が表示され、 Bとして[ク]が表示される。
(3)Nに1998を入力したとき、画面にはAとして[ケコ]が表示され、Bとして[サシスセ]が表示される。
●問題の急所
(1)このプログラムは、「ある数N以上の最小の2の累乗を求める」プログラムです。
指数部分はa、2の累乗自体はbに収められます。これを踏まえれば、
[ア]=0、[イ]=2は明らかです。
60行の「IF B [ウ] N THEN GOTO [エオ]」についてですが、 結論を先に言えば、[ウ]=7、[エオ]=40です。なぜなら、 70行に、AとBの値を表示する内容の命令があります。もし[ウ]=6、[エオ]=70なら、 B<N=のときは何事もなく70行に行ってしまうからです。
(2)5以上の最小の2の累乗は、8=23です。つまり、 40行の「A=A+1」は3回繰り返されます。なので、答えは、[カ]=3、[キ]=3、 [ク]=8です。
(3)2の累乗で、1998以上で最小のものは2048(=211)ですから、表示されるAの値は11、Bの値は2048です。
60行の「IF B [ウ] N THEN GOTO [エオ]」についてですが、 結論を先に言えば、[ウ]=7、[エオ]=40です。なぜなら、 70行に、AとBの値を表示する内容の命令があります。もし[ウ]=6、[エオ]=70なら、 B<N=のときは何事もなく70行に行ってしまうからです。
(2)5以上の最小の2の累乗は、8=23です。つまり、 40行の「A=A+1」は3回繰り返されます。なので、答えは、[カ]=3、[キ]=3、 [ク]=8です。
(3)2の累乗で、1998以上で最小のものは2048(=211)ですから、表示されるAの値は11、Bの値は2048です。
●解答
配点は20点満点。
空所の記号 | 解答 | 配点 |
ア | 0 | 3 |
イ | 2 | 3 |
ウ | 7 | 3 |
エオ | 40 | 3 |
カ | 3 | 2 |
キ | 3 | 2 |
ク | 8 | 2 |
ケコ | 11 | 1 |
サシスセ | 2048 | 1 |