2012年5月31日木曜日

=== 平成24年春 問10 ===


平成24年春目次  前の問題  次の問題

問10

マルチコアプロセッサの特徴として適切なものはどれか。

ア コアの個数をn倍にすると,プロセッサ全体の処理性能はnの2乗倍になる。
イ 消費電力を抑えながら,プロセッサ全体の処理性能を高められる。
ウ 複数のコアが同時に動作しても,共有資源の競合は発生しない。
エ プロセッサのクロック周波数をシングルコアより高められる。



解説

マルチコアCPUを搭載したコンピュータでは次のようなメリットがある。

・複数のソフトを起動しても、処理速度が落ちにくい
・マルチコア対応ソフトの処理速度が上がる
・消費電力量、発熱量を抑えられる

ア コアの数をn倍にすると複数のコアを協力させるために必要な処理があるため、n倍にはならない。まして、nの2乗倍にはならない
イ 正解
ウ 共有資源の競合は発生しやすくなる
エ 1つ1つのコアのクロック周波数は変わらない。





=== 平成24年春 問9 ===


平成24年春目次  前の問題  次の問題

問9

Web環境での動的処理を実現するプログラムであって,Webサーバ上だけで動作するものはどれか。

ア JavaScript       イ Javaアプレット
ウ Javaサーブレット    エ VBScript



解説

Javaサーブレットは、Webサーバ上で動作するJavaのプログラム。
リクエストに対して、動的に、htmlを作成し、クライアントに返すという作業をする。

ア 一般的に、ブラウザ上で動作する
イ サーバからダウンロードされ、ブラウザ上で動作するJavaのプログラム
ウ 正解
エ IISというマイクロソフトのWebサーバでも動作するが、マイクロソフトのブラウザInternetExplorer上でも動作する。





2012年5月30日水曜日

=== 平成24年春 問8 ===


平成24年春目次  前の問題  次の問題

問8

再帰呼出しの説明はどれか。

ア あらかじめ決められた順番ではなく,起きた事象に応じた処理を行うこと
イ 関数の中で自分自身を用いた処理を行うこと
ウ 処理が終了した関数をメモりから消去せず,必要になったとき再び用いること
エ 処理に失敗したときに,その処理を呼び出す直前の状態に戻すこと



解説

再帰呼び出しとは関数の中から自分自身を呼び出す処理。

ア イベントドリブンの説明
イ 正解
ウ リユーザブルの説明
エ ロールバックの説明





2012年5月29日火曜日

=== 平成24年春 問7 ===


平成24年春目次  前の問題  次の問題

問7

多数のデータが単方向リスト構造で格納されている。このリスト構造には,先頭ポインタとは別に,末尾のデータを指し示す末尾ポインタがある。次の操作のうち,ポインタを参照する回数が最も多いものはどれか。

ア リストの先頭にデータを挿入する。
イ リストの先頭のデータを削除する。
ウ リストの末尾にデータを挿入する。
エ リストの末尾のデータを削除する。



解説

図のようなリストがあると思って考えてみる。


ア 新しくデータを作成し、「次のデータへのポインタ」に、先頭ポインタに格納されている100番地を入れる
  先頭ポインタには、自分のデータのアドレスを入れる。
  この場合先頭ポインタにアクセスするだけ。データをたどる回数は0回

イ 先頭ポインタの示すデータ(100番地)の「次のデータへのポインタ」(110番地)を先頭ポインタに入れる
  この場合、先頭ポインタから、1番目のデータまでたどるので1回 

ウ データを作成し、次のデータへのポインタはnullとする
  末尾ポインタが示す最後のデータにアクセスし「次のデータへのポインタ」を自分のアドレスにする
  末尾ポインタの150番地を自分のアドレスに変更する
  末尾ポインタから末尾のデータまでたどるので1回
エ 先頭ポインタから、データをたどり、次のデータへのポインタに、末尾ポインタの値が入っているデータまで順にたどる
  ここでは、200番地のデータの「次のデータへのポインタ」が、末尾ポインタに入っている150番地になっている
  その150番地をnullに変更する
  末尾ポインタの値は、変更したデータのアドレス200番地とする
  この場合は、3番目のデータまでたどったので、3回

結局、エの場合に、ポインタを参照して、データをたどる回数が最も多くなる。





2012年5月28日月曜日

=== 平成24年春 問6 ===


平成24年春目次  前の問題  次の問題

問6

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

function f(x) {
 p=p+1;
 A[p]=x;
 return None;
}

function g() {
 x=A[p];
 p=p-1;
 return x;
}

ア キュー     イ スタック
ウ ハッシュ    エ ヒープ



解説

f(x)では、配列にデータを入れる作業をしており、g()では、配列からデータを取り出す作業をしている。
f(x)を3回呼び出すとどんなことが起きるか、考えてみよう。
pは初期値0であるから、1回目の呼び出しではp=1となり、A[1]にデータが格納される。
2回目にはp=2となり、A[2]にデータが格納される。
3回目にはp=3となり、A[3]にデータが格納される。

では、この後、3回 g()を呼び出したとすると、どうなるだろう。
今、p=3となっているので、A[3]の値が取り出され、p=2となる。
次にA[2]の値が取り出され、p=1となる。
その次は、A[1]の値が取り出され、p=0となる。

このようにみてみると、取り出される値は、1番最後に入れたデータとなる。(Last In First Out)
ということなので、これはスタックとなる。





=== 平成24年春 問5 ===


平成24年春目次  前の問題  次の問題

問5

図は70円切符の自動販売機に硬貨が投入されたときの状態遷移を表している。状態Q4から状態Eへ遷移する事象はどれか。ここで,状態Q0は硬貨が投入されていない状態であり,硬貨が1枚投入されるたびに状態は矢印の方向へ遷移するものとする。
なお,状態Eは投入された硬貨の合計が70円以上になった状態であり,自動販売機は切符を発行し,釣銭が必要な場合には釣銭を返す。また,自動販売機は10円硬貨,50円硬貨,100円硬貨だけを受け付けるようになっている。


ア 10円硬貨が投入された。
イ 10円硬貨又は50円硬貨が投入された。
ウ 10円硬貨又は100円硬貨が投入された。
エ 50円硬貨又は100円硬貨が投入された。



解説

たとえば、Q0の状態で、10円硬貨を入れると、隣のQ1に遷移する。また、50円硬貨を入れると、Q5に遷移し、100円硬貨を入れれば、Eの状態に遷移し、終了となる。
今Q4の状態にあるということは、10円が4回投入され40円になっている。この状態で10円硬貨を入れれば、Q5に遷移し、50円硬貨を入れれば、90円になるため、Eに遷移する。また、100円硬貨を投入した場合も、140円になるので、Eに遷移する。
このことから、Eに遷移するのは、50円硬貨か100円硬貨が投入された時となる。





2012年5月27日日曜日

=== 平成24年春 問4 ===


平成24年春目次  前の問題  次の問題

問4

後置表記法(逆ポーランド表記法)では,例えば,式 Y=(A-B)×C を YAB-C×= と表現する。
次の式を後置表記法で表現したものはどれか。
  Y=(A+B)×(C-(D÷E))

ア YAB+C-DE÷×=    イ YAB+CDE÷-×=
ウ YAB+EDC÷-×=    エ YBA+CD-E÷×=



解説

演算子があったら、その前の2つをその演算子で計算するのが、後置表記法である。

アからエは次のようになる。

ア Y=((A+B)-C)×(D÷E)
イ Y=(A+B)×(C-(D÷E))
ウ Y=(A+B)×(E-(D÷C))
エ Y=(B+A)×((C-D)÷E)