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




このページは

基本情報

(基本情報技術者試験)

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

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




問1 次の10進小数のうち、8進数に変換したときに有限小数になるものはどれか。
0.2
0.4
0.5
0.8
解答
解説 まず、2進数3桁を1桁にまとめたものが8進数で、2進数4桁を1桁にまとめたものが16進数です。よって、2進数で表現できるものは、必ず8進数、16進数でも表現できます。逆に8進数、16進数で表現で表現できるものは、必ず2進数で表現できます。

次に、10進数との関係を考えます。
2進数を10進数に変換することを考えると、2-1、2-2・・・2-nのようになっているので、これらの和で表現できます。よって、2進数で表現できることは10進数で表現できます。

しかし、10進数の0.3のようなものは、2-1=0.5と2-2=0.25の間にあるので、厳密な表現はできないということがわかります。

問2 非負の2進数b12・・・bnを3倍したものはどれか。
12・・・bn0+b12・・・bn
12・・・bn00−1
12・・・bn000
12・・・bn
解答
解説 まず、2進数で1ビット左にシフトすると値が2倍になり、nビット左にシフトすると値が2n倍になります。

3倍を2倍+1倍に分け、2倍の部分をシフトで表現し、1倍の部分は元の値を加算することで表現します。

よって、b12・・・bn0(2倍の部分)+b12・・・bn(1倍の部分)は元の値を3倍したものといえます。

問3 隣接行列Aで表されるグラフはどれか。ここで、隣接行列とは、n個の節点から成るグラフの節点ViとVjを結ぶ枝が存在する時は第i行第j列と第j行第i列の要素が1となり、存在しないときは0となるn行n列の行列である。

画像(問3)を表示できません
画像(問3ans)を表示できません
解答
解説 隣接行列から、接続されている節点をまとめると以下のようになります。

・1と2が接続されている(2と1が接続されている)
・1と3が接続されている(3が1と接続されている)
・2と4が接続されている(4と2が接続されている)
・3と4が接続されている(4と3が接続されている)

今回は方向がないので、i行j列目とj行i列目が同じになっています。

上記の条件を満たしているのは、選択肢エのグラフといえます。

問4 後置記法(逆ポーランド記法)では、例えば、式Y=(A−B)×CをYAB−CX=と表現する。次の式を後置記法で表現したものはどれか。

 Y=(A+B)×(C−D÷E)
YAB+C−DE÷×=
YAB+CDE÷−×=
YAB+EDC÷−×=
YBA+CD−E÷×=
解答
解説 逆ポーランド記法とは、後置表記法とも呼ばれ、演算子を対象の後ろに記述する手法です。スタックを使うことで実現でき、括弧が不要なのでコンパイラなどで利用されています。

優先度の高い部分から順に逆ポーランド記法に変換して行きます。

@A+BとD÷Eを変換する
Y=(AB+)×(C−DE÷)
AC−DE÷を変換する
Y=(AB+)×(CDE÷−)
BAB+とCDE÷−を変換する
Y=AB+CDE÷−×
C『=』を変換する
YAB+CDE÷−×=

問5 図は70円切符の自動販売機に硬貨が投入された時の状態遷移を表している。状態Q4から状態Eへ遷移する事象はどれか。こおで、状態Q0は硬貨が投入されていない状態であり、硬貨が1枚投入されるたびに状態は矢印の方向へ遷移するものとする。

 なお、状態Eは投入された硬貨が70円以上になった状態であり、自動販売機は切符を発行し、釣銭が必要な場合には釣銭を返す。また、自動販売機は10円硬貨、50円硬貨、100円硬貨だけを受け付けるようになっている。

画像(問5)を表示できません
10円硬貨が投入された。
10円硬貨又は50円硬貨が投入された。
10円硬貨又は100円硬貨が投入された。
50円硬貨又は100円硬貨が投入された。
解答
解説 まず、それぞれの状態をまとめます。
0:0円の状態
1:10円の状態
2:20円の状態
3:30円の状態
4:40円の状態
5:50円の状態
6:60円の状態
E:70円以上の状態

つぎに、それぞれからの遷移についてまとめます。
0→Q1:10円が投入される
1→Q2:10円が投入される
2→Q3:10円が投入される
3→Q4:10円が投入される
4→Q5:10円が投入される
5→Q6:10円が投入される

0→Q5:50円が投入される
1→Q6:50円が投入される

0→E:100円が投入される
1→E:100円が投入される
2→E:50円か100円が投入される
3→E:50円か100円が投入される
4→E:50円か100円が投入される
5→E:50円か100円が投入される
6→E:10円か50円か100円が投入される

よって、Q4→Eへの遷移は、50円硬貨か100円硬貨が投入された場合に発生する遷移です。

問6 十分な大きさの配列Aと初期値が0の変数pに対して、関数f(x)とg()が次のとおり定義されている。配列Aと変数pは、関数f(x)とg()だけでアクセス可能である。これらの関数が操作するデータ構造はどれか。

画像(問6)を表示できません
キュー
スタック
ハッシュ
ヒープ
解答
解説 それぞれのデータ構造を下にまとめます。

キューとスタック

スタックとキューを表示できません

ハッシュ

ハッシュを表示できません

ヒープ
ヒープを表示できません

キューであれば、データを取り出すg()において、ポインタを減らすことはありません。
ハッシュであれば、何らかの計算が必要になります。
ヒープであれば、場所を特定するための判定文などが必要となります。

問7 多数のデータが単方向リスト構造で格納されている。このリスト構造には、先頭ポインタとは別に、末尾のデータを指し示す末尾ポインタがある。次の操作のうち、ポインタを参照する回数が最も多いものはどれか。
リストの先頭にデータを挿入する。
リストの先頭のデータを削除する。
リストの末尾にデータを挿入する。
リストの末尾にデータを削除する。
解答
解説 まず、単方向リスト構造と双方向リスト構造について以下にまとめます。

リストを表示できません

次に、今回のデータ構造を以下に図示します。

リストを表示できません

これを元に、各選択肢のポインタ参照回数を考えていきます。
選択肢ア:HEADのポインタと、HEADからたどった最初のデータのポインタを書き換えます。
選択肢イ:HEADのポインタを書換えます。
選択肢ウ:TAILのポインタと、TAILからたどった最後のデータのポインタを書き換えます。
選択肢エ:HEADからたどった、最後から2番目のデータのポインタとTAILのポインタを書換えます。

問8 再帰呼出しの説明はどれか。
あらかじめ決められた順番ではなく、起きた事象に応じた処理を行うこと
関数の中で自分自身を用いた処理を行うこと
処理が終了した関数をメモリから消去せず、必要になったとき再び呼び出すこと
処理が失敗したときに、その処理を呼び出す直前の状態に戻すこと
解答
解説 それぞれの選択肢の用語を以下にまとめます。

選択肢ア:イベントドリブンのプログラムの説明です。
選択肢イ:再帰呼出しの説明です。(例:階乗の計算をf(n)=n×f(n−1)のように行う。)
選択肢ウ:関数の再利用性の説明です。
選択肢エ:ロールバックの説明です。

問9 Web環境での動的処理を実現するプログラムであって、Webサーバ上だけで動作するものはどれか。
JavaScript
Javaアプレット
Javaサーブレット
VBScript
解答
解説 Javaに関する重要な用語をいくつか下にまとめておきます。

JavaScript:web上で用いられるスクリプト言語(プログラム言語のJavaとは互換性がなく、基本的に別物)
Javaアプリケーション:単独で動作する一般的なJavaで書かれたプログラム
Javaアプレット:サーバからクライアントにダウンロードして動作するJavaのプログラム
Javaサーブレット:サーバ上で動作するものをJavaのプログラム
JavaBeans:クラスを部品化(汎用化)し、再利用することで開発効率を向上させる仕組み。(getter/setterの命名規則などいくつか条件があります。)
JSP(Java Server Pages):Javaを利用してWebサーバで動的にページを生成する仕組み。HTMLにJavaのプログラムを埋め込んで作成される。

VBScripはVisual Basicの簡易型のスクリプト言語です。

問10 マルチコアプロセッサの特徴として適切なものはどれか。
コアの個数をn倍にすると、プロセッサ全体の処理性能はn2倍になる。
消費電力を抑えながら、プロセッサ全体の処理性能を高められる。
複数のコアが同時に動作しても、共有資源の競合は発生しない。
プロセッサのクロック周波数をシングルコアよりも高められる。
解答
解説 それぞれの選択肢を順に見ていきます。

選択肢ア:コア数をn倍にすると、理論的にはn倍に近づけられますが、n2になることはありません。
選択肢イ:電力比あたりの、処理性能を上げることはできます。(正解)
選択肢ウ:複数のコアがメモリやI/O、ソースなどを取り合うので、競合が発生します。
選択肢エ:構造が複雑になるので、シングルコアと同等もしくはシングルコアよりも低周波数になります。


問11 外部割込みに分類されるものはどれか。
インターバルタイマによって、指定時間経過時に生じる割込み
演算結果のオーバフローやゼロにおる除算で生じる割込み
仮想記憶管理において、存在しないページへのアクセスによって生じる割込み
ソフトウェア割込み命令の実行によって生じる割込み
解答
解説 まず、割り込には大きく分けて内部割りこみと外部割り込みがあります。内部割り込はゼロによる除算に代表されるソフトウェア的な原因。外部割り込みは、入出力の完了や電圧異常などに代表されるハードウェア的な原因です。

また、割り込みを受け付けるとCPUはレジスタのデータを主記憶等に退避させ、割り込みの処理を実行します。さらに、複数の割り込みに優先順位をつけ、順位の低いものが、順位の高いものに割り込みを行わないようにマスク処理をする場合もあります。

問12 DRAMのリフレッシュ動作の説明として、適切なものはどれか。
一定時間ごとに内容を外部記憶装置に書き込む
システムの電源投入時に、全領域を0で初期化する。
データを保持するために、一定時間ごとにアクセスする。
内容を更新する時に、データを一旦消去する。
解答
解説 DRAM(Dynamic Random Access Memory)は、コンデンサというものに電荷が蓄えられているかどうかで、1ビットの情報を保持します。そのため、このコンデンサの電荷が失われないようにするため、常に一定時間ごとに電荷の再充電が必要となり、このために、リフレッシュと呼ばれるアクセス操作が必要となります。

問13 キャッシュメモリに関する記述のうち、適切なものはどれか。
キャッシュメモリの転送ブロックの大きさを仮想記憶のページの大きさと同じにすると、プログラムの実行効率が向上する。
キャッシュメモリは高速アクセスが可能なので、汎用レジスタと同じ働きをする。
主記憶のアクセス時間とプロセッサの命令実行時間の差が大きいマシンでは、多段のキャッシュ構成にすることで実効アクセス時間を短縮できる。
ミスヒットが発生するとキャッシュ全体は一括消去され、主記憶から最新のデータの転送処理が実行される。
解答
解説 キャッシュメモリは、主記憶とCPUのレジスタの速度の差を埋めるために用いられるものです。通常2〜3段構成で、CPUに近い側から1次キャッシュ、2次キャッシュと呼びます。また、データをキャッシュメモリと主記憶の同時に書き込むライトスルー方式と、退避するときのみ書き込むライトバック方式があります。

問14 プラズマディスプレイの説明として、適切なものはどれか。
ガス放電によって発行する光を利用して、映像を表示する。
自身では発光しないので、バックライトを使って映像を表示する。
電極の間に挟んだ有機化合物に電圧をかけると発光することを利用して、映像を表示する。
電子銃から発射した電子ビームを管面の蛍光体に当てて発光させ、文字や映像を表示する。
解答
解説 ディスプレイの種類を以下にまとめます。

CRT:いわゆる普通のブラウン管のディスプレイ。電子ビームと偏光版を使って画像を作ります。(選択肢エ)
PDP:PはプラズマのPで、高い電力が必要となります。(選択肢ア)
TFT:TはトランジスタのTで、1つ1つの画素をトランジスタの発光で実現しています。
有機EL:自らの発光でバックライトの不要なタイプ。次世代に期待されています。(選択肢ウ)
液晶:光の透過を画素ごとに制御し、カラーフィルタを用いて色を表現するもので、自ら発光はしません。(選択肢イ)

問15 クラウドコンピューティングの説明として、最も適切なものはどれか。
あらゆる電化製品をインテリジェント化しネットワークに接続することによって、いつでもどこからでもそれらの機器の監視や操作ができるようになること
数多くのPCの計算能力を集積することによって、スーパコンピュータと同程度の計算能力を発揮させること
コンピュータの資源をネットワークを介して提供することによって、利用者がスケーラビリティやアベイラビリティの高いサービスを容易に受けられるようになること
特定のサーバを介することなく、ネットワーク上のPC同士が対等の関係で相互に通信を行うこと
解答
解説 それぞれの選択肢の用語を以下にまとめます。

選択肢ア:ユビキタスコンピューティングの説明です。
選択肢イ:グリッドコンピューティングの説明です。
選択肢ウ:クラウドコンピューティングの説明です。
選択肢エ:P2P(Peer to Peer)の説明です。

問16 フォールトトレラントシステムを実現する上で不可欠なものはどれか。
システム構成に冗長性をもたせ、部品が故障してもその影響を最小限に抑えることで、システム全体には影響を与えずに処理を続けられるようにする。
システムに障害が発生したときの原因究明や復旧のため、システム稼働中のデータベースの変更状況などの履歴を自動的に記録する。
障害が発生した場合、速やかに予備の環境に障害前の状況を復旧できるよう、定期的にデータをバックアップする。
操作ミスが発生しにくい容易な操作にするか、操作ミスが発生しても致命的な誤りとならないように設計する。
解答
解説 フォールトトレラントシステムとは、障害時に全体が停止するということなく動作し続けるようなシステムを設計することをいいます。冗長化などが代表的な手段といえます。

その他の代表的な高信頼性設計の用語について、以下にまとめておきます。
フォールトアボイダンス:システムの構成要素の信頼性を高め, 元から故障が極力発生しないように設計すること。
フォールトマスキング:障害が発生したときに、その部分を他の機器から隠蔽したり、自律回復するように設計すること。
フェールセーフ:障害が発生した場合、常に安全側に制御・停止すること。
フェールソフト:障害が発生した場合、故障した個所を切り離すなどして、稼動を続けること。
フェールオーバ:障害が発生した場合、ユーザに切り替えを意識させないように、別のシステムに引き継がせること。
フールプルーフ:ユーザが誤った操作をした場合、危険に晒されることがないように、事前に安全策を行うこと。

問17 図に示すシステム構成全体の稼働率を表す式はどれか。ここで、システム全体が正常に稼動するためには、磁気ディスクは2台とも正常でなければならず、それぞれのサイトで少なくとも1台の端末は正常でなければならない。

画像(問17)を表示できません
2C(1−T22
2C(1−(1−T)22
(1−D)2C(1−T22
(1−D)2C(1−(1−T)22
解答
解説 それぞれの要素ごとに求めていきます。

磁気ディスク:2台とも正常でなければならないので、D×D=D2
CPU:冗長性はなく、必ず動作していなければならないので、C
サイト:1つのサイトでは、どちらかが稼動していればよい並列接続なので、(1−(1−T)×(1−T))=(1−(1−T)2
 これが2つとも正常に動作している必要があるので、(1−(1−T)2) × (1−(1−T)2) = (1−(1−T)22

これらの直列接続なので、全体では、D2×C×(1−(1−T)22となります。

問18 ベンチマークテストの説明として、適切なものはどれか。
監視・計測用のプログラムによってシステムの稼動状況や資源の状況を測定し、システム構成や応答性能のデータを得る。
使用目的に合わせて選定した標準的なプログラムを実行させ、その処理性能を測定する。
将来の予測を含めて評価する場合などに、モデルを作成して模擬的に実験するプログラムでシステムの性能を評価する。
プログラムを実際には実行せずに、机上でシステムの処理を解析して、個々の命令の出現回数や実行回数の予測値から処理時間を推定し、性能を評価する。
解答
解説 ベンチマークテストは、標準的なプログラムを実行してそれにかかった時間や精度などで、そのコンピュータの性能を(原則としては相対的に)評価します。代表的なテストとしては、SPECint(整数の演算)やSPECfp(浮動小数点の演算)などがあります。

問19 オンラインリアルタイム処理における一つのトランザクションについて、端末側で応答時間、回線電装時間、端末処理時間が測定できるとき、サーバ処理時間を求める式として適切なものはどれか。ここで、他のオーバヘッドは無視できるものとする。
サーバの処理時間=応答時間+回線電装時間+端末処理時間
サーバの処理時間=応答時間+回線電装時間−端末処理時間
サーバの処理時間=応答時間−回線電装時間+端末処理時間
サーバの処理時間=応答時間−回線電装時間−端末処理時間
解答
解説 まず、それぞれの時間を整理します。

サーバ処理時間:サーバでデータを処理するのにかかる時間
応答時間:ユーザが端末からデータを入力して結果が表示されるまでの時間
回線伝送時間:データが転送されるのにかかる時間
端末処理時間:サーバへデータを送信する時や受け取ったデータを画面に表示したりするのにかかる時間

よって、応答時間=サーバ処理時間+回線伝送時間+端末処理時間ということがいえます。
これを、サーバ処理時間について求めると、サーバ処理時間=応答時間−回線伝送時間−端末処理時間となります。

問20 次の条件で四つのジョブがCPU処理時間及び印刷を行う場合に、最初のCPU処理を開始してから最後の印刷が修了するまでの時間は何分か。

[条件]
(1) 多重度1で実行される。
(2) 各ジョブのCPU処理時間は20分である。
(3) 各ジョブはCPU処理終了時に400Mバイトの印刷データをスプーリングする。スプーリング終了後にOSの印刷機能が働き、プリンタで印刷される。
(4) プリンタは1台であり、印刷速度は100Mバイト当たり10分である。
(5) CPU処理と印刷機能は同時に動作可能で、互いに影響を及ぼさない。
(6) スプーリングに要する時間など、条件に記述されていない時間は無視できる。
120
160
180
240
解答
解説 まず、CPU処理時間は20分で4つあるので、以下のようになります。

ジョブ1のCPU処理時間:0分〜20分
ジョブ2のCPU処理時間:20分〜40分
ジョブ3のCPU処理時間:40分〜60分
ジョブ4のCPU処理時間:60分〜80分

つぎに、印刷は100Mバイト当たり10分かかり、400Mバイトあるので、1ジョブあたり40分かかることになります。ジョブ1からCPU処理が終わり次第行うとすると以下のようになります。

ジョブ1の印刷時間:20分〜60分
ジョブ2の印刷時間:60分〜100分
ジョブ3の印刷時間:100分〜140分
ジョブ4の印刷時間:140分〜180分

よって、ジョブ1の処理の開始から、ジョブ4の印刷終了まで180分かかることになります。