平成28年度 秋期 午前 問20
ソフトウェア
直接編成ファイルに関する問題
格納アドレスが1〜6の範囲の直接編成ファイルにおいて,次の条件でデータを格納した場合,アドレス1に格納されているデータのキー値はどれか。
〔条件〕
1. キー値が 3,4,8,13,14,18 の順でデータを格納する。
2. データのキー値を5で割った余りに1を加えた値を格納アドレスにする。
3. 格納アドレスに既にデータがある場合には,次のアドレスに格納する。これを格納できるまで繰り返す。最終アドレスの次は先頭とする。
4. 初期状態では,ファイルは何も格納されていない。
- ア8
- イ13
- ウ14
- エ18
答えと解説を見る
✓ これが正解イ13
解説
あふれた13が先頭へ回り込んでアドレス1に入ります。
条件のとおりに1件ずつ置いていけば決まります。格納アドレスは、キー値を5で割った余りに1を足した値です。まずキー値3は余りが3なので、アドレス4に入ります。次のキー値4は余りが4なので、アドレス5に入ります。キー値8は余りが3でアドレス4を狙いますが、そこは埋まっているので次のアドレス5へ、そこも埋まっているのでさらに次のアドレス6へ進み、空いていたのでそこに入ります。続くキー値13も余りが3でアドレス4を狙い、4も5も6も埋まっているため、最終アドレスの次は先頭とする決まりに従ってアドレス1へ回り込み、ここに収まりました。残るキー値14はアドレス5から進んで2へ、キー値18はアドレス4から進んで3へ入ります。したがって、アドレス1に入っているのはキー値13でした。
ほかの選択肢はなぜ違うのか
- ア8:キー値8が収まったのは末尾のアドレス6でした。狙った位置から二つ後ろへずれただけで済み、そのときはまだ後ろに空きが残っていたので、先頭へ折り返す場面そのものが起きていません。
- ウ14:キー値14が収まったのはアドレス2でした。折り返しは起きたものの、そのときには先頭がすでにふさがっていたため、もう一つ後ろへ落ち着いています。先頭を取ったのは一つ前に置かれた値のほうです。
- エ18:キー値18が収まったのはアドレス3でした。狙った位置から末尾まで進み、折り返した先の先頭とその次も埋まっていたため、さらに後ろへずれています。六つのうち最後に置かれた値でした。
出典:平成28年度 秋期 基本情報技術者試験 午前 問20
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)