難しくはないんですが、時間のかかる問題が多いです。
過去問と同じ場合はさっ!と答える力が必要。
それ以外の場合は後回しで、時間かけてやりましょう。
基本情報の平成31年春 午前問題(全80問)を
解いていきます。問題の解き方や考え方をわかりや
すく、解説してみる連載です。
問5
2分探索木として適切なものはどれか。ここで、1
~9の数字は、各ノード(節)の値を表す。
問6
三つのスタックA、B、Cのいずれの初期状態も[
1、2、3]であるとき、再帰的に定義された関数
f()を呼び出して終了した後のBの状態はどれか。
ここで、スタックが、[a1 a2、…、an−1]
の状態のときにanをpushした後のスタックの
状態は[a1 a2、…、an−1、an]で表す。
f(){
Aが空ならば{
何もしない。
}
そうでない場合{
Aからpopした値をCにpushする。
f()を呼び出す。
Cからpopした値をBにpushする。
}
}
ア[1、2、3、1、2、3]
イ[1、2、3、3、2、1]
ウ[3、2、1、1、2、3]
エ[3、2、1、3、2、1]
問7
次の流れ図は、2数 A、B の最大公約数を求め
るユークリッドの互除法を、引き算の繰返しによっ
て計算するものである。Aが876、Bが204の
とき、何回の比較で処理は終了するか。
ア 4
イ 9
ウ 10
エ 11
問8
複数のプロセスから同時に呼び出されたときに、互
いに干渉することなく並行して動作することができ
るプログラムの性質を表すものはどれか。
ア リエントラント
イ リカーシブ
ウ リユーザブル
エ リロケータブル
(解答と解説)
問5
2分探索木は
左<真ん中<右 の順番に並んでないと
ダメなので、イしか成立してないことが
わかるはず・・・。です。
問6
やればいいですよね。
0 A[1,2,3] B[1,2,3] C[1,2,3]
1 A[1,2] B[1,2,3] C[1,2,3,3]
2 A[1] B[1,2,3] C[1,2,3,3,2]
3 A B[1,2,3] C[1,2,3,3,2,1]
ここまででAが空になります。
4 A B[1,2,3,1] C[1,2,3,3,2]
5 A B[1,2,3,1,2] C[1,2,3,3]
6 A B[1,2,3,1,2,3] C[1,2,3]
これで終わりになります。
よって、正解はアになります。
問7
要するに、二つの数字が同じになるまで
計算しなさいよ。なので
1 > 876ー204=672
2 > 672ー204=468
3 > 468ー204=264
4 > 264ー204= 60
5 < 204- 60=144
6 < 144ー 60= 84
7 < 84- 60= 24
8 > 60ー 24= 36
9 > 36ー 24= 12
10< 24ー 12= 12
11= 12= 12
あー疲れた。11回ですね。
問8
ア リエントラント
再入。正しいです。
イ リカーシブ
再帰。自分を呼び出すことです。
ウ リユーザブル
再実行なので、同じ結果が出る性質のこと。
エ リロケータブル
メモリのどの番地に配置しても大丈夫なこと。