平成17年度春期 基本情報 問1−20 解答編





このページは

基本情報

(基本情報技術者試験)

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

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


問1 次の流れ図は、10進数整数j(0<j<100)を2進数に変換する処理を表している。2進数は下位けたから順に、配列の要素NISHIN(1)からNISHIN(8)に格納される。流れ図のa及びbに入る処理はどれか。ここでjdiv2はjを2で割った商の整数部分を、jmod2はjを2で割った余りを表す。

画像(問1)を表示できません
画像(問1ans)を表示できません
解答
解説 まず、10進数の30を2進数に変換する具体例を考えます。

30÷2=15…0
15÷2=7…1
7÷2=3…1
3÷2=1…1
1÷2=0…1

2は2進数の2であり、3進数なら3、4進数なら4となります。ここで、出てきた余りを下からたどると、11110となります。これが求める2進数の値です。

それでは、アルゴリズムにあてはめてみます。
@まず、2で割った余りを取り出す。
A次に、値を半分にする(端数は切り捨て)
B上の2つを値が0になるまで繰り返す。

よって、@がa、Aがbに相当する選択肢エが正解となります。

問2 ある自然数xを2進数で表現すると、1と0が交互に並んだ2nけたの2進数1010・・・10となった。このとき、xに関して成立する式はどれか。
画像(問2ans)を表示できません
解答
解説 まず、xは1010・・・1010となっています。x/2はxを半分にしたものなので、xを右に1ビットシフトしたものと考えることができます。よって、0101・・・0101となります。これを足すので、1111・・・1111となります。3ビットの場合の111は7で23-1となるので、これは、22n−1となります。

問3 負数を2の補数で表す8ビットの数値がある。この値を10進数で表現すると−100である。この値を符号なしの整数として解釈すると、10進数で幾らか。
28
100
156
228
解答
解説 補数とは、x+y=0となるときのxとyのことを言います。つまり、xの補数の補数はx自身になることがわかります。

100=01100100
ビット反転をして、10011011
1を加えて、10011100となります。

これは、128+16+8+4=152となります。

もちろんこれをビット反転して、1を加えると01100011+1で01100100で元の値にもどります。

問4 数多くの数値の加算を行う場合、絶対値の小さなものから順番に計算するとよい。これは、どの誤差を抑制する方法を述べたものか。
アンダフロー
打切り誤差
けた落ち
情報落ち
解答
解説 まず、それぞれの誤差について下にまとめます。

アンダーフロー:演算結果が、扱える数値の最小値を超えることによって生じる誤差
オーバーフロー:演算結果が、扱える数値の最大値を超えることによって生じる誤差
打切り誤差:数表現のけた数に限度があるときに、計算を途中でやめることで起きる誤差
丸め誤差:数表現のけた数に限度があるとき、最小のけたより小さい部分について四捨五入、切上げ又は切捨てを行うことによって生じる誤差
けた落ち:値がほぼ等しい浮動小数点同士の減算において、有効けた数が大幅に減ってしまうことで起きる誤差
情報落ち:浮動小数点の加算において、一方の数値の下位のけたが欠落することで起きる誤差

情報落ちは絶対値の小さいものから計算することで回避できます。
けた落ちは式を変形するなどで回避することができます。
そのほかは、誤差が許容できるほどに大きな計算桁数を準備することで軽減できます。

問5 方程式f(x)=0の解の近似解を求めるアルゴリズムとして知られているニュートン法に関する記述として、適切なものはどれか。
関数f(x)が微分不可能であっても、解の近似解を求めることができる。
幾何学的には、y=f(x)の接線を利用して解の近似値を求めるものである。
異なる初期値を二つ与える必要がある。
どのような初期値を与えても、必ず解の近似値が得られる。
解答
解説 ニュートン法は、代数方程式の解を求める代表的な手法です。任意の初期値から接線(関数の微分)を引き、x軸と交わる点をもとめるということを繰り返すことで、真の解に近づけていく手法です。しかし、下に凸のようなグラフでは、解の間を行ったり来たりするため、真に解に収束しない場合があります。

f(x)の微分(導関数)が計算できない場合には、その近似式を用いる割線法というのがあります。
初期値をは1つで行うことができます。また、初期値を2つ使う2分法などの手法もあります。

問6 コインを4回投げたときに、表が2回だけ出る確率は幾らか。
0.2
0.375
0.5
0.625
解答
解説 4回程度ならば、全部の可能性をしらべてもよいのですが、けたが多くなった場合に通用しなくなるので、一般化して計算をします。全部で4回のうち、2回(順番は問わない)の表が出る確率は、4個の中から2個を選ぶのと同じことです。よって、42=4!/{2!(4−2)!}により、1/6=0.375となります。

問7 次の図は、ある地方の日単位の天気の移り代わりを示したものであり、数値は翌日の天気の変化の確率を表している。ある日の天気が雨のとき、2日後の天気が晴れになる確率は幾らか。

画像(問7)を表示できません
0.15
0.27
0.3
0.33
解答
解説 このような図を状態遷移図といいます。

雨から2日後に晴れになるのは、以下の3通りがあり、その合計が確率となります。
雨→晴れ→晴れ:0.3×0.4=0.12
雨→曇り→晴れ:0.5×0.3=0.15
雨→雨→晴れ:0.2×0.3=0.06

よって、0.33となります。

問8 集合S−(T∩R)に等しいものはどれか。ここで、∩は積集合、∪は和集合、−は差集合の各演算を表す。
(S−T)−R
(S−T)∪(S−R)
(S−T)∪(T−R)
(S−T)∩(T−R)
解答
解説 まず、差集合とはA−Bのとき、AであってBでないものということを表します。よって、A∩¬Bと変換できます。これを使って式を変形していきます。

S∩¬(T∩R) → S∩¬T∩¬R → (S−T)∩¬R → (S−T)−Rとなります。ベン図や真理値表を用いてもよいかもしれません。

問9 8ビットのビット列の下位4ビットが変化しない操作はどれか。
16進数表記0Fのビット列との論理積をとる。
16進数表記0Fのビット列との論理和をとる。
16進数表記0Fのビット列との排他的論理和をとる。
16進数表記0Fのビット列との否定論理積をとる。
解答
解説 ビット演算に関するもので、ネットワークのマスク処理等とかかわりが深い問題です。

代表的なビット演算を下にまとめます。
ビットと1の論理積をとるとビットが残ります。
ビットと0の論理和をとるとビットが残ります。
ビットと1の論理和をとると1になります。
ビットと0の論理積をとると0になります。
ビットと1の排他的論理和をとると、ビットの反転を取り出せます。

問10 7ビットの文字コードの先頭に1ビットの偶数パリティビットを付加するとき、文字コード30、3F、7A、にパリティビットを付加したものはどれか。ここで、文字コードは16進数で表している。
30、3F、7A
30、3F、FA
B0、3F、FA
B0、BF、7A
解答
解説 まず、パリティを付加しないデータを整理します。

0110000 → 1が偶数個 → パリティは0
0111111 → 1が偶数個 → パリティは0
1111010 → 1が奇数個 → パリティは1

よって、パリティを付加すると
00110000 → 30
00111111 → 3F
11111010 → FA

問11 図は1の数が偶数個のビット列を受理するオートマトンの状態遷移図であり、“遇”と書かれた二重丸が受理状態を表す。a、bの正しい組合せはどれか。

画像(問11)を表示できません
画像(問11ans)を表示できません
解答
解説 1が入力されるたびに、偶数と奇数が交互に入れ替わります。0が入力された場合は、偶数と奇数は変化しないのでそのままとなります。

問12 2分探索木として適切なものはどれか。ここで、1〜9の数字は各ノード(節)の値を表す。
画像(問12ans)を表示できません
解答
解説 一般的に2分木とは、すべてのノードについて、左の子の値≦親の値≦右の子の値となっているものを指します。

問13 PUSH命令でスタックにデータをいれ、POP命令でスタックからデータを取り出す。動作中のプログラムにおいて、ある状態から次の順番で10個の命令を実行したとき、スタックの中のデータは図のようになった。1番目のPUSH命令でスタックに入れたデータはどれか。

画像(問13)を表示できません
29
55
326
解答
解説 一つずつ考えるとわかりやすいです。

PUSH:@
PUSH:@A
POP:@
PUSH:@A
PUSH:@AB
PUSH:@ABC
PUSH:@ABCD
POP:@ABC
POP:@AB
PUSH:@ABC

上記のように、スタート時から4つのデータが積まれたことになり、最初のPUSHは先頭から数えて、4番目なので、7となります。

問14 データの整列方法に関する記述のうち、適切なものはどれか。
クイックソートでは、ある一定間隔おきに取り出した要素から成る部分列をそれぞれ整列し、さらに間隔を詰めて同様の操作を行い、間隔が1になるまでこれを繰り返す。
シェルソートでは、隣り合う要素を比較して、大小の順が逆であれば、それらの要素を入れ替えるという操作を繰り返して行う。
バブルソートでは、中間的な基準値を決めて、それよりも大きな値を集めた区分と小さな値を集めた区分に要素を振り分ける。次に、それぞれの区分の中で同様な処理を繰り返す。
ヒープソートでは、未整列の部分を順序木に構成し、そこから最大値又は最小値を取り除いて既整列の部分に移す。これらの操作を繰り返して、未整列部分を縮めていく。
解答
解説 代表的な整列法を下にまとめます。

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

問15 2分探索において、データの個数が4倍になると、最大探索回数はどうなるか。
1回増える。
2回増える。
約2倍になる。
約4倍になる。
解答
解説 2分探索は、1回の探索でデータの存在範囲を半分にします。つまり、データが2個なら1回。データが4個なら2回。データが8個なら3回となります。これは、log2Nとなります。よって、データが4倍になると検索回数は2回増えるといえます。

問16 電気信号によってデータの書換え、消去が可能なメモリであり、電源を切っても内容を保持できるものはどれか。
DRAM
SRAM
フラッシュメモリ
マスクROM
解答
解説 SRAMやDRAMは主記憶やレジスタに利用される半導体です。また、フラッシュメモリは最近大容量化がはかれれている持ち運びしやすい記憶媒体です。マスクROMとは、読み込み専用で、書き込むことができません。

問17 図の論理回路と同じ出力が得られる論理回路はどれか。

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


画像(問17)を表示できません
画像(問17ans)を表示できません
解答
解説 回路に出力を書いていくと以下のようになり、問題の出力を簡略化すると選択肢イと一致します。

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


問18 クロック周波数が1GHzの処理装置がある。この処理装置の命令識別が、表に示す二つから成っているとき、処理能力は約何MIPSか。

画像(問17)を表示できません
34
100
125
133
解答
解説 10×0.6+5×0.4=6+2=8。1命令につき、8クロック使用するので、1G/8=125Mとなります。

問19 割込みに関する記述のうち、適切なものはどれか。
CPUは割込みを受け付けると実行中のプログラムを中断し、プログラムの再開に必要な情報を磁気ディスクの特定の領域に格納する。
アプリケーションは、常に割込みの発生を感知する必要がある。
入出力装置からの動作完了の通知は、内部割込みに分類される。
複数の割込みの発生に備え、個々の割込み原因には優先順位が付けられる。
解答
解説 まず、割り込には大きく分けて内部割りこみと外部割り込みがあります。内部割り込はゼロによる除算に代表されるソフトウェア的な原因。外部割り込みは、入出力の完了や電圧異常などに代表されるハードウェア的な原因です。

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

問20 処理装置で用いられるキャッシュメモリの使用目的として、適切なものはどれか。
仮想記憶のアドレス変換を高速に行う。
仮想記憶のページング処理を高速に行う。
主記憶へのアクセス速度とプロセッサの処理速度の差を埋める。
使用頻度の高いプログラムを常駐させる。
解答
解説 キャッシュメモリは、主記憶とプロセッサのレジスタとのアクセス速度の差を埋めるために用いられるメモリです。同じような役割で、ハードディスクと主記憶のアクセス速度を埋めるために用いられるメモリを、ディスクキャッシュといいます。