平成31年度春 応用情報技術者試験 午前 問6から問10

問題文はIPAからの引用です。


問6

次の手順はシェルソートによる整列を示している。データ列7, 2, 8, 3, 1, 9, 4, 5, 6を手順(1)〜(4)に従って整列するとき、手順(3)を何回繰り返して完了するか。

 ここで[ ]は小数点以下を切り捨てた結果を表す。

〔手順〕

(1) [データ数÷3]→H とする。

(2) データ列を、互いにH要素分だけ離れた要素の集まりからなる部分列とし、それぞれの部分列を、挿入法を用いて整列する。

(3) [H÷3]→H とする。

(4) Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。

ア 2

イ 3

ウ 4

エ 5

「ア:2」回繰り返して完了します!

手順通りに実行します。

データ列7,2,8,3,1,9,4,5,6のデータ数は「9」つです。

(1)

データ数 = 9 なので、9 ÷ 3 = 3となり、H = 3です。

(2)

互いにH(=3)要素分だけ離れた要素の集まりからなる部分列とします。

7,3,4 | 2,1,5 | 8,9,6

それぞれの部分列を,挿入法を用いて整列します。

3,4,7 | 1,2,5 | 6,8,9

(3)

[3÷3]→H とするので「H = 1」となります。

(4)

Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。

「H = 1」なので、(2)に戻ります。

(2)

互いにH(=1)要素分だけ離れた要素の集まりからなる部分列とします。

3 | 4 | 7 | 1 | 2 | 5 | 6 | 8 | 9

それぞれの部分列を、挿入法を用いて整列します。

1, 2, 3, 4, 5, 6, 7, 8, 9

(3)

[1÷3]→H とするので「H = 0(小数点は切り捨て)」となります。

(4)

Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。

H = 0なので、データ列の整列は完了します。


問7

JavaScriptの言語仕様のうち、オブジェクトの表記法などの一部の仕様を基にして規定したものであって、“名前と値の組みの集まり”と“値の順序付きリスト”の二つの構造に基づいてオブジェクトを表現する、データ記述の仕様はどれか。

ア DOM

イ JSON

ウ SOAP

エ XML

答えは「JSON」です!

JavaScriptの言語仕様ですが、よく使われるのでPHPやJavaなどでも使われます。

(パース、コンバートのメソッドがあります)


問8

スーパスカラの説明として、適切なものはどれか。

ア 一つのチップ内に複数のプロセッサコアを実装し、複数のスレッドを並列に実行する。

イ 一つのプロセッサコアで複数のスレッドを切り替えて並列に実行する。

ウ 一つの命令で,複数の異なるデータに対する演算を、複数の演算器を用いて並列に実行する。

エ 並列実行可能な複数の命令を、複数の演算器に振り分けることによって並列に実行する。

スーパスカラの説明として、適切なものは「エ 並列実行可能な複数の命令を、複数の演算器に振り分けることによって並列に実行する。」です!

スーパースカラとは、マイクロプロセッサ高速化手法の一つです!

プロセッサに複数のパイプラインで、複数の命令を並列に処理します!

動画解説


問9

同一メモリ上で転送するとき、転送元の開始アドレス、転送先の開始アドレス,方向フラグ及び転送語数をパラメタとして指定することでブロック転送ができるCPUがある。図のようにアドレス 1001 から 1004 の内容をアドレス 1003 から 1006 に転送する場合、パラメタとして適切なものはどれか。ここで、転送は開始アドレスから1語ずつ行われ、方向フラグに0を指定するとアドレスの昇順に、1を指定するとアドレスの降順に転送を行うものとする。

q9.png

転送元の開始アドレス
転送先の開始アドレス
方向フラグ
転送語数


1001
1003
0
4


1001
1003
1
4


1004
1006
0
4


1004
1006
1
4

正解は「エ」です!

感覚的には「ア」になりそうですが…

1001 → 1003 の時「1003」が「1001」の値に上書きされそうです。

そのため後ろから転送します。

転送元の開始アドレスは「1004」

転送先の開始アドレスは「1006」

後ろの下がるので降順となり、方向フラグは「1」

転送語数は「4」

となります!


問10

バス幅が16ビット、メモリサイクルタイムが80ナノ秒で連続して動作できるメモリがある。このメモリのデータ転送速度は何Mバイト/秒か。ここで、Mは106を表す。

ア 12.5

イ 25

ウ 160

エ 200

メモリサイクルタイムが80ナノ秒です。

1秒あたりの転送回数は

1 / 80ナノ秒

ナノ = 109

1 / 80 × 109

= 12500000

バス幅は16ビット = 2バイト (1バイト = 8ビット)なので…

2 × 12500000 = 25000000 = 25M (Mは106)

目次