平成29年度 春期 午前 問18
ソフトウェア
カレントディレクトリに関する問題
A,B という名の複数のディレクトリが,図に示す構造で管理されている。“¥B¥A¥B”がカレントディレクトリになるのは,カレントディレクトリをどのように移動した場合か。ここで,ディレクトリの指定は次の方法によるものとし,→ は移動の順序を示す。
〔ディレクトリ指定方法〕
(1) ディレクトリは,“ディレクトリ名¥…¥ディレクトリ名”のように,経路上のディレクトリを順に“¥”で区切って並べた後に,“¥”とディレクトリ名を指定する。 (2) カレントディレクトリは,“.”で表す。 (3) 1階層上のディレクトリは,“..”で表す。 (4) 始まりが“¥”のときは,左端にルートディレクトリが省略されているものとする。 (5) 始まりが“¥”,“.”,“..”のいずれでもないときは,左端に“.¥”が省略されているものとする。
図(木構造の図):
ルート
├── A
│ ├── A ──┬── A
│ │ └── B
│ └── B ──┬── A
│ └── B
└── B
├── A ──┬── A
│ └── B
└── B ──┬── A
└── B
(=ルートの直下に A・B,その各々の直下に A・B,さらにその各々の直下に A・B の3階層)- ア¥A → ..¥B → .¥A¥B
- イ¥B → .¥B¥A → ..¥B
- ウ¥B → ¥A → ¥B
- エ¥B¥A → ..¥B
答えと解説を見る
✓ これが正解ア¥A → ..¥B → .¥A¥B
解説
根からA、上へ戻ってB、そこからAとBへ順に進みます。
目指すのは、Bの下のA、そのまた下のBという三階層の場所です。一つずつ移った先を追いかけて、行き着く場所を確かめます。正解の一つ目は、根から数えてAへ移りました。二つ目は上へ戻ってからBへ入るので、根の真下のBに立ちます。三つ目はカレントディレクトリからAへ、続けてBへ進みました。出発点がBだったので、三階層めのBに届きました。これが問われた場所と一致しました。二つ目の肢は、Bへ移ってから、その下のBのAまで潜ります。最後に上へ戻ってBへ入るため、途中のAが抜け落ちました。三つ目の肢は、三回とも書き出しが根を指す記号でした。前の移動が打ち消されるので、一階層で止まります。四つ目の肢は、Bの下のAまで一度で移りました。そこから一つ上がってBへ進むと、深さが一つ足りません。
ほかの選択肢はなぜ違うのか
- イ¥B → .¥B¥A → ..¥B:Bへ移った後、その下のBのAまで潜ります。ここで三つの階層に入りました。最後に一つ上がってBへ進みます。たどり着くのはBの下のBの下のBでした。途中のAが抜け落ちています。深さは足りていますが、中身が別でした。中身の並びが違います。
- ウ¥B → ¥A → ¥B:三回とも書き出しが根を指す記号です。そのたびに、いる場所が根へ戻りました。前の移動が打ち消されていきます。最後に残るのは一階層だけでした。三階層には届きません。深さが足りませんでした。一階層しか進めません。
- エ¥B¥A → ..¥B:Bの下のAまで一度で移ります。ここまでは問われた場所と同じでした。ところが次に一つ上がります。戻った先はBで、そこからBへ進みました。Bの下のBに落ち着きます。真ん中のAが消えました。真ん中が抜けた形でした。
出典:平成29年度 春期 基本情報技術者試験 午前 問18
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)