「厳選5題」過去問と解説|平成21年度 秋期 の過去問やるならこれをやれ


2020-12-09 更新

ここでは、平成 21 年度 秋期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。

やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題(練習しないとできない問題)です。

厳選問題looks_oneCUI 環境でディレクトリを指定する方法を知っておこう

問 19 (平成 21 年度 秋期)

A , B というディレクトリ名をもつ複数個のディレクトリが図の構造で管理されている。


カレントディレクトリを ¥A¥B → .. → ..¥B → .¥A の順に移動させた場合,最終的なカレントディレクトリはどこか。 ここで,ディレクトリの指定方法は次のとおりとする。

〔ディレクトリの指定方法〕

(1)
ディレクトリは, “ディレクトリ名 ¥・・・¥ ディレクトリ名” のように,経路上の ディレクトリを順に “¥” で区切って並べた後に “¥” とディレクトリ名を指定する。
(2)
カレントディレクトリは “.” で表す。
(3)
1階層上のディレクトリは “..” で表す。
(4)
始まりが “¥” のときは,左端にルートディレクトリが省略されているものとする。
(5)
始まりが “¥” , “.” , “..” のいずれでもないときは,左端にカレントディレクトリ配下であることを表す “.¥” が省略されているものとする。

ア ¥A  イ ¥A¥A  
ウ ¥A¥B¥A  エ ¥B¥A

解説

UNIX 系の OS や Windows などを操作するには、

  • ウインドウのメニューやアイコンを操作するビジュアルな GUI( Graphical User Interface )環境
  • コマンドをキー入力して操作する CUI( Character User Interface )環境

があります。 GUI 環境でフォルダと呼ばれるものは、 CUI 環境でディレクトリと呼ばれます。

この問題では、 CUI 環境におけるカレントディレクトリ(現在の操作対象のディレクトリ)の移動がテーマになっています。 問題の図に示されたディレクトリの構造で、指定された通りにカレントディレクトリを移動してみましょう。

 

はじめは、 ¥A¥B がカレントディレクトリです。 先頭の ¥ はルートを示し、それ以降の ¥ はディレクトリの区切りを示します。

したがって、 ¥A¥B は「ルートの下の A 、その下の B 」という意味であり、以下がカレントディレクトリになります(これ以降では、カレントディレクトリを赤色の円で囲んで示します)。


次に、 “..” に移動します。 “..” は、「 1 つ上のディレクトリ」を意味するので、現在位置から 1 つ上に上がって、以下がカレントディレクトリになります。


次に、 ..¥B に移動します。 これは、「 1 つ上のディレクトリに上がって、その下の B 」という意味であり、以下がカレントディレクトリになります。


最後に、 .¥Aに移動します。 “.” は、「カレントディレクトリ」を意味するので、現在位置から A に下がって、以下がカレントディレクトリになります。

このディレクトリは、「ルートの下の B 、その下の A 」なので、 ¥B¥A です。 したがって、選択肢エが正解です。


解答 エ

厳選問題looks_two半加算器と全加算器の違いを知っておこう

問 25 (平成 21 年度 秋期)

図は全加算器を表す論理回路である。 図中の x に 1 , y に 0 , z に 1 を入力したとき,出力となる c(けた上げ数) , s(和) の値はどれか。


c s
0 0
0 1
1 0
1 1
解説

この連載では、かつて半加算器の問題(平成 21 年度 春期 問 25 )を取り上げました。

半加算器は、 XOR 演算と AND 演算を使って、 1 桁の 2 進数を加算するものです。 複数桁の 2 進数を加算するには、半加算器だけでなく、全加算器も必要になります。

 

例として、 0101 と 0011 という 4 ビットの 2 進数を加算するとしましょう。 最下位桁は、その桁にある 2 つの数値を足すだけであり、これは半加算器で行えます。

最下位桁より上の桁は、その桁にある 2 つの数値と、下位桁からの桁上がり、全部で 3 つの数値を足すことになります。 これを実現するのが、全加算器です。

したがって、 4 ビットの 2 進数の加算は、以下のように、 1 つの半加算器と 3 つの全加算器で実現されることになります。

図 4 ビットの加算の例

問題に示された全加算器の図を見てください。

左側の x 、 y 、 z は、加算する 3 つの数字です。 右側の c は計算結果の桁上がり( carry )で、 s は sum (和)です。

ここでは、 x = 1 、 y = 0 、 z = 1 とするので、計算結果は、 1 + 0 + 1 = 10 になり、 c が 1 で s が 0 です。 したがって、選択肢ウが正解です。

 

全加算器の内部では、半加算器を 2 つ使っています。 以下に全加算器の仕組みを示します。


  1. x と y を半加算器 1 で足す
  2. その結果の s と z を半加算器 2 で足す
  3. その結果の s を全加算器の s とする
  4. 半加算器 1 の c と半加算器 2 の c を OR 回路につなぎ、その結果が全加算器の c とする

解答 ウ

info_outline加算器 / 半加算器に関する詳しい記事

基本情報でわかる 論理演算 「真理値表を書けば、半加算器と全加算器の仕組みがわかる」

厳選問題looks_3サブネットマスクと CIDR 表記の対応を知っておこう

問 39 (平成 21 年度 秋期)

IP アドレス 10.1.2.146 ,サブネットマスク 255.255.255.240 のホストが属するサブネットワークはどれか。

ア 10.1.2.132/26  
イ 10.1.2.132/28
ウ 10.1.2.144/26  
エ 10.1.2.144/28

解説

サブネットワークとは、 1 つのネットワークを分割したものです。 IPv4 の IP アドレスでは、サブネットマスクおよび CIDR( Classless Inter-Domain Routing 、サイダー)表記によって、サブネットワークを示すことができます。

この問題は、255.255.255.240 というサブネットマスクが、 CIDR 表記ではどのようになるかを、選択肢から選ぶものです。

 

IPv4 の IP アドレスのサイズは、 32 ビットです。 255.255.255.240 というサブネットマスクを 2 進数で表記してみましょう。

swipe横スクロールできます

11111111.11111111.11111111.11110000

32 ビットの上位 28 ビットに 1 が並び、残りの下位 4 ビットに 0 が並んでいます。

このように、サブネットマスクは、上位桁に 1 が並び下位桁に 0 が並んだ形式になっていて、 1 が並んだ部分がサブネットワーク(ネットワークとサブネットのアドレス)で、 0 が並んだ部分がホストアドレスであることを示しています。

 

10.1.2.146 という IP アドレスのサブネットワークを求めてみましょう。 10.1.2.146 を 2 進数で表記します。

00001010.00000001.00000010.10010010

ここでは、上位 28 ビットがサブネットワークなので、

00001010.00000001.00000010.1001xxxx

になります。

xxxx の部分は、「設定なし」という意味にしたいので、 0 で埋めて、

00001010.00000001.00000010.10010000

とします。

これを 10 進数表記にすると、 10.1.2.144 です。

 

サブネットワークを 10.1.2.144 と示しただけでは、上位何桁までがサブネットワークなのかがわかりません。 そこで、 CIDR 表記が使われます。

CIDR 表記は、 / の後に上位桁の桁数を示したもの です。

ここでは、上位 28 ビットがサブネットワークなので、それを /28 で示します。 したがって、 10.1.2.144/28 となっている選択肢エが正解です。

解答 エ

searchタグで関連記事をチェックIP アドレス

厳選問題looks_4UML のクラス図とシーケンス図の役割を知っておこう

問 45 (平成 21 年度 秋期)

UML 2.0 で定義している図のうち,動的な振る舞いを表現するものはどれか。

ア オブジェクト図  
イ クラス図
ウ シーケンス図  
エ パッケージ図

解説

UML 2.0 では、 13 種類の図が定義されていますが、試験によく出るのは、クラス図シーケンス図です。

これらは、オブジェクト指向において最も重要な概念である「オブジェクト」と「メッセージ」を示すものです。

クラス図
オブジェクトの静的な構造(構成要素と関連)
シーケンス図
オブジェクトの動的な振る舞い(メッセージの受け渡し)

この問題は、動的な振る舞いを表現する図を選ぶのですから、選択肢ウのシーケンス図が正解です。

 

言葉だけではイメージがつかめないと思いますので、クラス図とシーケンス図の簡単な例をお見せしましょう。 ここでは、ユーザーとコンピュータがジャンケンをするプログラムを作るとします。

プログラムが、どのような構成要素を持つクラスから構成され、どのように関連しているのかを示すのが、クラス図です。 クラス図では、四角形を 3 つに区切り、上から順にクラス名、属性(クラスが持つデータ)、振る舞い(クラスが持つ処理)を記述します。

ここでは、「ユーザー」「コンピュータ」「審判」という 3 つのクラスがあるとしています。

descriptionクラス図の例

「審判」から「ユーザー」と「コンピュータ」に伸びた破線の矢印は、「審判」が「ユーザー」と「コンピュータ」を使うことを意味します。 クラス図にも振る舞いがありますが、動的ではありません。 そのクラスが、その振る舞いを持っていることを示しているだけなので、静的です。

プログラムの実行時には、クラスがメモリにロードされます。 これを「クラスのインスタンス」または「オブジェクト」と呼びます。 シーケンス図は、プログラムの実行時のオブジェクト間のメッセージの受け渡しを示します。

descriptionシーケンス図の例

    シーケン図の見方

  • 四角形で囲まれた「:クラス名」は、そのクラスのインスタンス(オブジェクト)を意味します
  • そこから下に伸びた破線は、インスタンスの存在期間を示します
  • 図の上から下に時間が経過するとして、実線の矢印でメッセージ(他のオブジェクトの振る舞いの呼び出し)を示します
  • 破線の矢印でメッセージへの応答を示します。 縦長の四角形は、処理を行っている区間を示します

このようにして、シーケンス図は、オブジェクトの動的な振る舞いを表現するのです。

解答 ウ

searchタグで関連記事をチェックUML

厳選問題looks_5カプセル化、継承、多態性の意味を知っておこう

問 46 (平成 21 年度 秋期)

オブジェクト指向でシステムを開発する場合のカプセル化の効果はどれか。

オブジェクトの内部データ構造やメソッドの実装を変更しても,ほかのオブジェクトがその影響を受けにくい。
既存の型に加えてユーザ定義型を追加できるので,問題領域に合わせてプログラムの仕様を拡張できる。
子クラスとして派生するので,親クラスの属性を子クラスが利用できる。
同一メッセージを送っても,受け手のオブジェクトによって,それぞれが異なる 動作をするので,メッセージを受け取るオブジェクトの種類が増えても,メッセージを送るオブジェクトには影響がない。
解説

先ほどの問題で示したように、オブジェクト指向の最も基本となる概念は、オブジェクトとメッセージですが、それらの次に重要な概念として、カプセル化、継承、多態性があります。

この問題では、カプセル化がテーマになっていますが、選択肢の中には、継承と多態性に関する説明もあります。

 

カプセル化とは、属性と振る舞いをまとめて 1 つのオブジェクトにすることです。 まとめることによって、属性や振る舞いの変更がオブジェクトの内部で対処できるようになり、外部に影響を与えにくくなります。

したがって、カプセル化の効果に該当するのは、選択肢アであり、これが正解です。

継承とは
既存のクラス(親クラス)を改造することなく、必要な機能を付け足して新たなクラス(子クラス)を作成することです。
子クラスは、親クラスの属性と振る舞いを利用できます。
継承の効果に該当するのは、選択肢ウです。
多態性とは
同じ構文の振る舞い(同じメッセージで呼び出せる振る舞い)を、複数のオブジェクトが持つことです。
これによって、オブジェクトを利用する側は、同じメッセージで、様々なオブジェクトを利用できます。
多態性の効果に該当するのは、選択肢エです。

解答 ア

searchタグで関連記事をチェックオブジェクト指向

記事をお読みいただきありがとうございます。

もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。 「やるべき問題」は「わかるまでやるべき問題」だからです。

この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。

 

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『厳選5題 過去問と解説』の連載一覧 label 著者