平成21年度 秋期 午前 問19
ソフトウェア
カレントディレクトリに関する問題
A,B というディレクトリ名をもつ複数個のディレクトリが図の構造で管理されている。カレントディレクトリを ¥A¥B → .. → ..¥B → .¥A の順に移動させた場合,最終的なカレントディレクトリはどこか。ここで,ディレクトリの指定方法は次のとおりとする。
〔図〕ディレクトリの構造(木構造の図)
ルート
├── A
│ ├── A
│ │ └── A
│ └── B
│ ├── A
│ └── B
└── B
├── A
└── B
(ルート直下は A・B の2つ。左の A の下に A・B があり,その A の下に A が1つ,
その B の下に A・B。右の B の下は A・B で,そこから先は無い)
〔ディレクトリの指定方法〕
(1) ディレクトリは,“ディレクトリ名¥…¥ディレクトリ名”のように,経路上のディレクトリを順に“¥”で区切って並べた後に“¥”とディレクトリ名を指定する。
(2) カレントディレクトリは“.”で表す。
(3) 1階層上のディレクトリは“..”で表す。
(4) 始まりが“¥”のときは,左端にルートディレクトリが省略されているものとする。
(5) 始まりが“¥”,“.”,“..”のいずれでもないときは,左端にカレントディレクトリ配下であることを表す“.¥”が省略されているものとする。- ア¥A
- イ¥A¥A
- ウ¥A¥B¥A
- エ¥B¥A
答えと解説を見る
✓ これが正解エ¥B¥A
解説
一手ずつ現在地を書き換えて最後の位置を出します。
この設問では、同じ名前のディレクトリが何か所にも置かれています。したがって名前だけでは行き先が決まらず、経路をたどって初めて位置が定まります。見分ける軸は、四回の移動を一手ずつカレントディレクトリに反映できているかという一点です。指定が区切り記号で始まるときは左端にルートディレクトリが省略されているので、一手目でカレントディレクトリはルートディレクトリからの絶対の位置に確定します。点二つは一階層上へ戻る指示です。点一つはカレントディレクトリを指すので、そこに続く名前は今いる場所の直下へ下りる指示になります。上がってから下りるという書き方も、一つの指定の中でできます。四手を順に当てると、いったんルートディレクトリ直下の一方のさらに下へ入り、一つ上へ戻り、さらに上がってからもう一方へ入り、最後にその直下へ下ります。図を見れば、その位置が実在することも確かめられます。
ほかの選択肢はなぜ違うのか
- ア¥A:二手目まで反映したところで止まった形です。三手目と四手目の移動がまだ残っており、指定を最後まで当てていません。
- イ¥A¥A:三手目の移動を反映せず、二手目の位置に最後の一手だけを当てた場合に着く先です。上がってから下りるという指定を丸ごと落としています。
- ウ¥A¥B¥A:一手目の位置に最後の一手を当てた場合に着く先です。間に挟まる二手、すなわち上の階層へ戻る指示が反映されないまま先へ進んでいます。
出典:平成21年度 秋期 基本情報技術者試験 午前 問19
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)