平成21年度 秋期 基本情報技術者試験 問1−20 解答編




このページは

基本情報

(基本情報技術者試験)

解答と解説のページです。

問題だけで勉強したい方は目次へ戻ってください


問1 N個の観測値の平均値を算出する式はどれか。ここで、SはN個の観測値の和(ただし、S>0)とし、[X]はX以下で最大の整数とする。また、平均値は、小数第1位を四捨五入して整数値として求める。
【S/N−0.5】
【S/N−0.4】
【S/N+0.4】
【S/N+0.5】
解答
解説 実際に値を代入して検証してみます。

まず、S/N=1.4とすると、これは、四捨五入で1になるはずです。
ア:【1.4−0.5】=【0.9】=0
イ:【1.4−0.4】=【1.0】=1
ウ:【1.4+0.4】=【1.8】=1
エ:【1.4+0.5】=【1.9】=1

次に、S/N=1.5とすると、これは、四捨五入で2になるはずです。
ア:【1.5−0.5】=【1.0】=0
イ:【1.5−0.4】=【1.1】=1
ウ:【1.5+0.4】=【1.9】=1
エ:【1.5+0.5】=【2.0】=2

この二つの検証から要件を満たすのは選択肢エであることが分かります。

問2 実数aをa=f×rと表す浮動小数点表示に関する記述として、適切なものはどれか。
fを仮数、eを指数、rを基数という。
fを基数、eを仮数、rを指数という。
fを基数、eを指数、rを仮数という。
fを指数、eを基数、rを仮数という。
解答
解説 コンピュータ上で実数を表す表現の一種に浮動小数点表記というのがあります。

これは、実数や、指数表記を用いるような数を表すもので、f×reで表現されます。
たとえば、123000000は、1.23×108となります。このとき、1.23を仮数(仮数部)、10を基数(基数部)、8を指数(指数部)といいます。コンピュータ上では、基数を2で固定して、符号と仮数と指数を表すのが一般的です。なお、仮数を1.xxxxとすることで、1ビット節約することを『けち表現』などといい、このように変換することを正規化といいます。

問3 逆ポーランド表記法(後置表記法)で、“EF−G÷CD−AB+÷+”と表現される式はどれか。
((A+B)+(C−D))÷G−(E÷F)
((A+B)÷(C−D))+G÷(E−F)
((E−F)÷G)+((C−D)÷(A+B))
((E−F)÷G)÷((C−D)+(A+B))
解答
解説 逆ポーランド記法とは、スタックを使うことで表現でき、括弧を使わないで計算の順序を指定できるため、コンパイラなどで用いられています。

優先順位に応じて括弧を補うと次のようになります。
((FE−)G÷)((CD−)(AB+)÷)+

これをもとに、優先順位が高いものから元の式に戻していきます。
((F−E)G÷)((C−D)(A+B)÷)+
((F−E)÷G)((C−D)÷(A+B))+
((F−E)÷G)+((C−D)÷(A+B))

よって、選択肢ウが正解となります。

問4 産業機器の機器制御に使われるシーケンス制御の説明として、適切なものはどれか。
あらかじめ定められた順序又は条件に従って、制御の各段階を逐次進めていく制御方法である。
外乱が予測できる場合に、あらかじめ外乱を想定して前もって必要な修正動作を行う制御方法である。
制御量を常に検出して制御に反映しているので、予測できないような外乱に強い制御方法である。
“やや多い”、“やや少ない”などあいまい性に基づく制御方法である。
解答
解説 機器の制御には、大きく分けてシーケンス制御とフィードバック制御があります。二つの違いを下にまとめます。

シーケンス制御:あらかじめ決められた手順に従って順番に進めていく。洗濯機などはシーケンス制御といえます。(選択肢アに相当)
フィードバック制御:目的の値に向けて、出力を修正していく制御方式。エアコンなどはフィードバック制御といえます。(選択肢ウに相当)

選択肢イは、フィードフォワード制御の説明です。
選択肢エは、ファジィ制御の説明です。

問5 空のスタックに対して次の操作を行った場合、スタックに残っているデータはどれか。ここで、“push x”はスタックへデータxを格納し、“pop”はスタックからデータを取り出す操作をあらわす。

push 1 → push 2 → pop → push 3 → push 4 → pop → push 5 → pop

1と3
2と4
2と5
4と5
解答
解説 順番に追いかけていきます。

push1:1
push2:1,2
pop:1
push3:1,3
push4:1,3,4
pop:1,3
push5:1,3,5
pop:1,3

よって、最終的には1,3が残っていることになります。

問6 クイックソートの処理方法を説明したものはどれか。
既に整列済みのデータ列の正しい位置に、データを追加する操作を繰り返していく方法である。
データ中の最小値を求め、次にそれを除いた部分の中から最小値を求める。この操作を繰り返していく方法である。
適当な基準値を選び、それより小さな値のグループと大きな値のグループにデータを分割する。同様にして、グループの中で基準値を選び、それぞれのグループを分割する。この操作を繰り返していく方法である。
隣り合ったデータの比較と入替えを繰り返すことによって、小さな値のデータを次第に端の方へ移していく方法である。
解答
解説 代表的なソート法を下にまとめます。

挿入ソート:既に整列済みのデータ列の正しい位置に、データを追加する操作を繰り返していく
選択ソート:データ中の最小値を求め、次にそれを除いた部分の中から最小値を求める。この操作を繰り返していく
バブルソート:隣り合ったデータの比較と入替えを繰り返すことによって、小さな値のデータを次第に端の方に移していく
クイックソート:適当な基準値を選び、それより小さな値のグループと大きな値のグループにグループを分割する。この操作を繰り返していく
シェルソート:ある一定間隔おきに取り出した要素から成る部分列をそれぞれ整列し,更に間隔を詰めて同様の操作を行い,間隔が1になるまでこれを繰り返す
ヒープソート:未整列の部分を順序木に構成し、そこから最大値又は最小値を取り除いて既整列の部分に移す。これらの操作を繰り返して、未整列部分を縮めていく

問7 オブジェクト指向プログラムの特徴はどれか。
計算順序は制御フローではなくデータの流れによって規定される。命令は、入力となるすべてのデータがそろったときに実行可能となる。
計算の制御は命令から命令へ順次渡される。命令間でのデータの受渡しは、“変数”を介するメモリへの参照によって間接的に行う。命令とデータの定義は分離されている。
データを外部から隠ぺいし、メソッドと呼ばれる手続きによって間接的に操作することができる。プログラムは、データとメソッドをひとまとまりにしたものの集まりである。
プログラムは、入れ子構造の演算子、関数を表現する命令(演算記号)、データによって構成され、“命令実行”に対応するのは“演算式又は関数の値の計算(評価)”である。
解答
解説 オブジェクト指向の概念について下にまとめます。

クラス:データとメソッドを1つにまとめたもの
メソッド:オブジェクトがもっている手続のこと
メッセージ:オブジェクト間でやり取りされる情報のこと
カプセル化:データにメソッドを通じてのみアクセスできること
インスタンス:型であるクラスに実際の値を入れて、具現化すること
抽象化:共通の性質をまとめて定義したもの、一般的にスーパークラスとして定義される。
継承:スーパークラスを取り込むこと。(例:人間クラスを継承して学生クラスを作る)
多相性(多態性):同じメッセージに対して別の振る舞いをすること(例『鳴く』というメッセージに対して、『ワンワン・ニャーニャー』など別の振る舞いをする)

オブジェクト指向の代表的な言語にJavaやRubyC#などが挙げられます。

問8 Ajaxの説明はどれか。
HTTPプロトコルを用いて、XML形式やHTML形式のデータがファイアウォールを通過できるようにした通信方式
スタイルシートを適用することによって、デザインを統一したり、保守性を高めたりする仕組み
ブラウザからの要求に対してWebサーバが応答し、テキスト・画像・音声・動画などをやり取りするための通信方式
ブラウザとWebサーバとがXML形式のデータを用いて非同期の通信をし、動的に画面を再描画する仕組み
解答
解説 Ajax(Asynchronous JavaScript + XML)とは、JavaScriptを利用してサーバーとXML形式のデータを非同期にやり取りし、再描画する仕組みです。本来サーバとのやりとりは、同期を取ってページ単位で行われます。しかし、Ajaxでは、ページを移動することなく一部分を再描画することができます。つまり、テキストボックスに数式を入力しただけで、その合計がすぐに下に表示されるというようなことができます。

問9 ディジタルカメラの画像データや携帯音楽プレーヤの音楽データの記憶媒体として利用されているものはどれか。
DRAM
SRAM
フラッシュメモリ
マスクROM
解答
解説 それぞれの記憶媒体を下にまとめます。

SRAM:容量は小さいが高速。リフレッシュがいらず消費電力も小さい。比較的高価。主にキャッシュメモリに利用される。
DRAM:容量は大きいが低速。リフレッシュが必要で消費電力が大きい。比較的安価。主に主記憶に利用される。
(リフレッシュとは、値を保持するために、電気的に再充電する操作をいいます。DRAMはトランジスタとコンデンサによって構成されているので、このような操作が必要となります。)
フラッシュメモリ:記憶と消去を一括又はブロック単位で行うことができる。
マスクROM:製造時にデータが書き込まれる。マイクロプログラム格納用メモリとして用いられる。

問10 メモリインタリーブの説明として、適切なものはどれか。
CPUから主記憶へのアクセスを高速化するために、キャッシュメモリと主記憶との両方に同時にデータを書き込む。
CPUから主記憶へのアクセスを高速化するために、主記憶内部を複数のバンクに分割し、各バンクを並列にアクセスする。
CPUと主記憶のアクセス速度の違いによるボトルネックを解消するために、高速かつ小容量のメモリを配置する。
パイプライン処理を乱す要因をなくすために、キャッシュメモリを命令用とデータ用の二つに分離する。
解答
解説 メモリインタリーブとは、主記憶を複数の独立したグループに分けて、各グループに交互にアクセスすることによって、主記憶へのアクセスの高速化を図るものです。以下の例ではアクセス幅が1の場合は3語分、アクセス幅が2の場合は6語分に同時にアクセスできます。

メモリインタリーブを表示できません

選択肢アは、キャッシュメモリのアクセス方式の一つである、ライトスルー方式の説明です(ほかにもライトバック方式などがあります)
選択肢ウは、キャッシュメモリの説明です
選択肢エは、ハーバードアーキテクチャの説明です

問11 USBの説明はどれか。
PCに内蔵されるCD−ROM装置、DVD装置などを接続するためのぱられるインタフェースウである。
磁気ディスク、プリンタなどをデイジーチェーンで接続するパラレルインタフェースである。
ハブを介してツリー状に機器を接続できるシリアルインタフェースである。
プリンタなどに赤外線を使ってデータを転送するシリアルインタフェースである。
解答
解説 USB(Universal Serial Bus)は現在最も主流な周辺機器をパソコンに接続するインタフェースの一種です。中でもUSB2.0というのが最も主流で、従来のUSB1.1で利用できたロースピードモード、フルスピードモードに、ハイスピードモードを追加したものです。また、転送モードも4つあります。下にまとめます。なお、USB1.1とUSB2.0は互換性があります。

ロースピードモード(1.5Mbps):キーボードやマウスなど
フルスピードモード(12Mbps):スキャナやプリンタなど
ハイスピードモード(480Mbps):大容量のHDDなど

コントロール転送:デバイスの設定・制御するためのもの
インタラプト転送:一定間隔でデータを転送するためのもの。キーボードやマウスな等に使われる
バルク転送:まとまったデータを一度に転送するためのもの。スキャナ等に使われる
アイソクロナス転送:連続的、周期的なデータ転送するためのもの。ビデオやオーディオ等に使われる。。

問12 図に示すように、データを細分化して複数台の磁気ディスクに格納することを何と呼ぶか。ここで、b0〜b15はデータがビットごとにデータディスクに格納される順番を示す。

画像(問12)を表示できません
ストライピング
ディスクキャッシュ
ブロック化
ミラーリング
解答
解説 RAID(Redundant Arrays of Inexpensive Disks あるいはRedundant Arrays of Independent Disks)とは、複数のHDDを1台の高信頼性のHDDとして利用する技術のことです。RAID1〜5は冗長ビットをどこに配置するかで決まります。代表的なRAIDの例を下に示します。

RAID0(ストライピング):複数のHDDに分散してデータを書き込む(冗長性はない)
RAID1(ミラーリング):複数のHDDに同じデータを書き込む
RAID5:ブロック単位で冗長データをもつが、特定のドライブに冗長データを書き込むということはしない。

また、複数の技術を組み合わせた、RAID1+0、RAID0+1、RAID5+0、RAID0+5、RAID5+1、RAID1+5などもあります。

ディスクキャッシュとは、HDDと主記憶とのアクセス速度の差を埋めるもので、ブロック化とは複数のレコードをまとめて管理することをいいます。

問13 500バイトのセクタ8個を1ブロックとして、ブロック単位でファイルの領域を割り当てて管理しているシステムがある。2,000バイト及び9,000バイトのファイルを保存するとき、それら二つのファイルに割り当てられるセクタ数の合計は幾らか。ここで、ディレクトリなどの管理情報が占めるセクタは考慮しないものとする。
22
26
28
32
解答
解説 まず、1ブロック=8セクタ=4000バイトが記録単位です。

2000バイトのほうは、1ブロックあれば足りるので8セクタ必要です。
9000バイトのほうは、3ブロック必要なので、24セクタ必要です。

よって、8+24=32セクタ(4ブロック)記録するのに必要となります。

問14 クライアントサーバシステムの特徴として、適切なものはどれか。
クライアントとサーバが強調して、目的の処理が遂行する分散処理形態であり、サービスという概念で機能を分割し、サーバがサービスを提供する。
クライアントとサーバが強調しながら共通のデータ資源にアクセスするために、システム構成として密結合システムを採用している。
クライアントは、多くのサーバからの要求に対して、互いに協調しながら同時にサービスを提供し、サーバからのクライアント資源へのアクセスを制御する。
サービスを提供するクライアント内に設置するデータベースも、規模に対応して柔軟に拡大することができる。
解答
解説 クライアントサーバシステム(CSS、C/S)は処理を要求する側(クライアント)と専門に処理する側(サーバ)に分けることで、処理効率を向上させるシステムです。この際OSを同一にする必要はありません、また機能別にコンピュータを分ける必要もありません。(Webサーバとメールサーバを同じマシンにすることも可能です)また、サーバは必要に応じて別のサーバに処理を委託することもあります。

問15 ホットスタンバイ方式に関する記述のうち、適切なものはどれか。
待機系は、現用系が動作しているかどうかを監視していて、現用系のダウンを検出すると現用系が行っていた処理を直ちに引き継ぐ。
待機系は、現用系に入力されるジョブを監視していて、処理量の大きいジョブが入力されると現用系に代わってこれを実行する。
待機系は、現用系の負荷状態を監視していて、現用系のオーバロード(過負荷状態)を検出するとオーバロードした分の処理を引き受けて実行する。
待機系も現用系と同時に同じ処理を実行していて、現用系がダウンしても待機系が処理を完了する。
解答
解説 ホットスタンバイシステムは、待機系のシステムに現用系のオンライン処理プログラムをロードして待機させておき、現用系に障害が発生した場合は、即時に待機系に切り替えて処理を続行する。というものです。

ほかの、システムについてもまとめておきます。

デュアルシステムは:2台が同時に稼働していて結果を照合するシステム
ホットスタンバイシステム:2台を同時に稼働させておくが、一方は待機状態にしておくシステム
コールドスタンバイシステム:メインが故障したときにもう1台が代わりに処理を行うシステム
シンプレックスシステムは:1台のみの単純なシステム。故障するとお終いです。

稼働率の比較は
デュアルシステム > ホットスタンバイシステム > コールドスタンバイシステム > シンプレクスシステム

ホットスタンバイとコールドスタンバイの差は、一方が故障してから切り替えるまでのスピードの差によります。

問16 3台のコンピュータA〜Cが図のように接続されている場合、システム全体の稼働率は幾らか。ここで、A〜Cの稼働率は、すべて0.8とする。また、コンピュータA、Bによって構成されている並行接続部分については、A、Bのいずれか1台でも稼動していれば、当該部分は稼動しているものとする。

画像(問16)を表示できません
0.512
0.768
0.928
0.992
解答
解説 まず、AとBの並列部分は1−(AとBが両方稼動していない確率)=1−(1−0.8)×(1−0.8)=1−0.04=0.96。この部分と、Cが直列なので、0.96×0.8=0.768が全体の稼働率です。

問17 オンラインシステムにおいて、1トランザクションの処理に平均60万命令を実行し、平均2回のファイルアクセスが必要であるとき、CPU性能が30MIPSであるコンピュータの1トランザクションの平均処理時間は何ミリ秒か。ここで、ファイルの平均アクセス時間は30ミリ秒とし、当該トランザクション以外の処理は発生しないものとする。
40
62
80
解答
解説 まず、60万命令を実行するのには、60万命令/30MIPS=60万命令/1秒間に30・百万命令実行できる=0.02秒。1回のファイルアクセスに30ミリ秒かかり、平均2回行われるので60ミリ秒。

よって、0.02秒+60ミリ秒=20ミリ秒+60ミリ秒=80ミリ秒が正解となります。

問18 様々なサイズのメモリ資源を使用するリアルタイムシステムのメモリプール管理において、可変長方式と比べた場合の固定長方式の特徴として、適切なものはどれか。
メモリ効率が良く、獲得及び返却の処理速度は遅く一定である。
メモリ効率が良く、獲得及び返却の処理速度は遅く不定である。
メモリ効率が悪く、獲得及び返却の処理速度は速く一定である。
メモリ効率が悪く、獲得及び返却の処理速度は速く不定である。
解答
解説 まず、固定長と可変長のイメージをしたの図示しします。

固定長と可変長を表示できません

上記のように、固定長では、メモリの確保が一定の幅でしか確保できないので、少ない容量でも1つのブロックを使用してしまします。つまり、メモリ効率は悪いといえます。逆に、可変長では、必要な分だけ使用できるので、フラグメンテーション(断片化)が発生するものの、使用するメモリ効率は良いといえます。

一方、メモリの獲得と返却速度は、固定長では、必要なブロックの個数を確保すればいいので、すぐに確保でき、返却も速く一定です。しかし、可変長では、連続してあいているメモリスペースを検索する必要があり、処理速度は遅い上に、検索により早く見つかるときや遅く見つかるときもあるので、不定となります。

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

画像(問19)を表示できません

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


〔ディレクトリの指定方法〕
(1) ディレクトリは、“ディレクトリ名\…\ディレクト名”のように、経路上のディレクトリを順に“\”で区切って並べた後に、“\”とディレクトリ名を指定する。
(2) カレントディレクトは“.”で表す。
(3) 1階層上のディレクトリは、“..”で表す。
(4) 始まりが“\”のときは、左端にルートディレクトリが省略されているものとする。
(5) 始まりが“\”、“.”、“..”のいずれでもないときは、左端にカレントディレクトリ配下であることを表す“.\”が省略されているものとする
¥A
¥A¥A
¥A¥B¥A
¥B¥A
解答
解説 カレントディレクトリを順に追いかけていくと、¥A¥B → ¥A → ¥B → ¥B¥Aとなります。

問20 CASEツールが提供する機能のうち、上流CASEツールに属するものはどれか。
DFDの作成支援
テストデータの作成支援
プログラムの自動生成
ライブラリの管理支援
解答
解説 CASE(Computer Aided Software Engineering:コンピュータ支援ソフトウェア工学)とは、ソフトウェア開発を支援するツールで、解析ツール、設計ツール・コンパイラ・テストツールなどから構成されます。

要求定義から内部設計程度までを上流。プログラミング設計、プログラミングあたりを下流。テスト、保守の4つから構成されます。(場合によっては、2つや3つにまとめる場合もあります)

選択肢の中で最も上流にあるのは、要求定義を支援するDFDの作成支援なので、上流CASEツールに属するといえます。