情報処理論，計算機工学（あわせて１２０分）
情報処理論：4 分野中 2 分野選択
計算機工学：4 分野中 2 分野選択
＜注意事項＞
・試験開始の合図があるまで，問題・解答冊子の中をみてはいけません．
・試験監督者の指示に従って，下の記入欄に受験番号と氏名を記入しなさい．
受験番号

氏名

・情報処理論の分野およびページは，下の通りです．この中から 2 分野を選び，解答しなさい．
分野

ページ

分野① C プログラミング

２～５

分野② Java プログラミング

６～９

分野③ データ構造とアルゴリズム

１０～１１

分野④ オペレーティングシステム

１２～１４

・計算機工学の分野およびページは，下の通りです．この中から 2 分野を選び，解答しなさい．
分野

ページ

分野① コンピュータアーキテクチャ

１５～１７

分野② 情報システム

１８～２０

分野③ 情報ネットワーク

２１～２３

分野④ データベースシステム

２４～２６

・試験中に，問題・解答冊子の落丁や印刷不鮮明などの問題に気づいたときは，手を高く上げて知らせなさい．
・不正行為に対しては厳正に対処します．
・試験中は試験監督者の指示に従うこと．

1

分野① C プログラミング

情報処理論

C プログラミングは，ページ２からページ５まで問題．以下に示す C 言語で記述された＜プログラム＞は，C 言語のソースコードが書かれたテキストファイルを読み込み，コメント欄（/*～*/で囲まれた文字列）を削除し，画面出力するプログラムである．ただし，文字列中に含まれる「/*」，「*/」は無視するようになっている．＜実行例＞を参考にプログラム中の空欄(a)～(j)に入る適切なものを各解答群のア～オより一つ選びなさい．

＜実行例＞
読む込むテキストファイル(C_program.c)/* This program is for outputing first line of a textfile. ** It is easy to understand for beginner programmers.
*/#include <stdio.h>
int main(void){
FILE *stream; /* File Pointer */char str[100]; /* Input String */if ((stream = fopen("textmemo.txt", "r")) != NULL){
if (fgets(str, 100, stream) == NULL)
printf("/* Error ! */¥n"); /* Show Error Message */elseprintf("%s", str);/* Output first line string */fclose(stream);}}

表示するテキスト#include <stdio.h>
int main(void){
FILE *stream;char str[100];if ((stream = fopen("textmemo.txt", "r")) != NULL){
if (fgets(str, 100, stream) == NULL)
printf("/* Error ! */¥n");else
printf("%s", str);
fclose(stream);}}

2情報処理論分野① C プログラミング

C プログラミングは，ページ２からページ５まで＜プログラム＞(a)<stdio.h>void main(){int c1, c2;
int inComment = 0; /*コメントフラグ*/
int doubleQuot = 0; /*ダブルクォーテーションフラグ*/
FILE *fin;if ((fin =(b)("C_program.c", "r")) == NULL) return;(c)(c1 = fgetc(fin); (c2 = fgetc(fin)) !=(d)if (!inComment){/* エスケープ文字出力 */if ((e)&& c1 == '¥¥'){
putchar(c1);putchar(c2);c2 = fgetc(fin);continue;}/* ダブルクォーテーション判定 */else if (c1 == '¥"')(f);/* コメント開始判定 */else if ((g)&& c1 == '/' && c2 == '*'){(h);c2 =(i)(fin);
continue;}
putchar(c1);}else{/* コメント終了判定 */if (c1 == '(j)' && c2 == '/'){(h);c2 =(i)(fin);}}}putchar(c1);putchar('¥n');fclose(fin);}

3; c1 = c2){

情報処理論分野① C プログラミング

C プログラミングは，ページ２からページ５まで(a)に関する解答群
ア #import
イ #using
ウ #include
エ #pragma
オ #region(a)(b)に関する解答群
ア fprintf
イ fopenウ fclose
エ fgets
オ fputs(b)(c)に関する解答群
ア if
イ whileウ doエ switch
オ for(c)(d)に関する解答群
ア 0
イ 1
ウ ‘\0’エ EOF
オ NULL(d)(e)に関する解答群
ア doubleQuot
イ !doubleQuot
ウ ^doubleQuot
エ *doubleQuot
オ &doubleQuot(e)(f)に関する解答群
ア doubleQuot = doubleQuot
イ doubleQuot == doubleQuot
ウ doubleQuot = !doubleQuot
エ doubleQuot != doubleQuot
オ doubleQuot -= doubleQuot(f)(g)に関する解答群
ア doubleQuot == 0
イ doubleQuot == 1
ウ !doubleQuot
エ ^doubleQuot
オ *doubleQuot(g)4情報処理論分野① C プログラミングC プログラミングは，ページ２からページ５まで(h)に関する解答群
ア inComment = inComment
イ inComment == !inComment
ウ inComment = !inComment
エ inComment != inComment
オ inComment *= inComment(h)(i)に関する解答群
ア fprintf
イ fputc
ウ fgetc
エ fputs
オ fgets(i)(j)に関する解答群
ア /
イ *
ウ \
エ \\
オ \0

(j)

5

分野② Java プログラミング

情報処理論Java プログラミングは，ページ６からページ９まで

次の問いに解答しなさい．

問題１．
次の記述が正しければ ○ を、間違っていれば × を ( ) に記入しなさい。
() boolean 型の変数は ture または false が入る。

() クラスに名前が同じで引数の形式が異なるメソッドを複数定義することを「オーバーロード」という。

() クラスの継承は２個以上の親クラスを指定することができる。

() Math.cos()はクラスメソッドである。

() インタフェースは複数同時に実装することができる。

問題２．
以下の文章中の空欄で、適切な語句を選んで記号をに記入しなさい。

１．「class DVD extends Disk{」とクラスの定義を行う場合、Disk はア）サブクラスイ）セカンドクラスウ）ペアレントクラス

２．プログラムの実行中に発生するエラーに対して行う処理を、DVD はエ）スペシャルクラスと呼ぶ。
オ）スーパークラスといい、エラーが発生した場合に実行する処理をブロックに記述し、エラーが発生した場合に備える。
ア）拡張処理イ）例外処理ウ）排他処理エ）errorオ）catch３．クラスのメンバのアクセス制御について、アクセス制限が最も厳しいのはア）publicイ）protected

４．コンストラクタはオブジェクトがア）破棄される直前

ウ）privateエ）voidカ）tryである。
オ）staticに実行され、複数のコンストラクタを定義することがイ）作成される直前

ウ）作成された直後

エ）できる

５．String クラスは文字列を保存できるが変更できない。文字列の内容を変更したい場合はア）CharacterBufferキ）finallyイ）TextBufferウ）BufferedReaderオ）StringTokenizer

6。

オ）できないクラスを使う。

エ）StringBuffer情報処理論

分野② Java プログラミング

Java プログラミングは，ページ６からページ９まで

次の問いに解答しなさい．
問題３．
下記は一般社員(田中太郎)と部長(佐藤健一)の年収を計算するプログラムである。一般社員の給与を計算する Shain クラスと、Shain クラスを継承して Bucho クラスを作り、部長の年収を計算している。一般社員の年収は 基本給×(12 + 6) であり、部長の年収は 一般社員の年収ｘ3 + 120 で計算する。なお、一般社員と部長の基本給は共に 20 (万円) としている。
以下のプログラム「Salary.java」「Shain.java」「Bucho.java」における空欄(１) ～ (８) に適切なものを選び記入しなさい。

＜実行結果＞C:¥Java>java Salary
氏名:田中太郎, 役職:一般社員, 年収:360 万円
氏名:佐藤健一, 役職:部長, 年収:1200 万円「Salary.java」
import java.io.*;class Salary{
public static void main (String[] args){
Shain hi; // 一般社員の変数
Bucho bu; // 部長の変数
hi = new Shain("田中太郎"); // インスタンスを作成
hi.setSalary( 20 ); // 基本給の設定
hi.show(); // 名前、役職、年収を表示
bu = （１）; // インスタンスを作成
bu.setSalary(（２）); // 基本給の設定
bu.show(); // 名前、役職、年収を表示}}（１）の選択肢ア）Bucho(佐藤健一) イ）Bucho("佐藤健一") ウ）new Bucho(佐藤健一) エ）new Bucho("佐藤健一")（２）の選択肢

ア）3イ）20ウ）20 + 120エ）1200

7

情報処理論

分野② Java プログラミング

Java プログラミングは，ページ６からページ９まで「Shain.java」
class Shain{
String name; // 氏名
int base; // 基本給
int nenshu; // 年収// コンストラクタ、s:名前の指定
Shain( String s ){name = （３）;}// 基本給を設定して年収を計算する
void setSalary( int a ){base = a;nenshu = a*(12 + 6);}// 氏名、役職、年収の表示
void show(){
System.out.print("氏名:" + name + ", 役職:一般社員, ");System.out.println("年収:" + nenshu + "万円");}}（３）の選択肢ア）Shain(s)イ）new Shain(s)ウ）new String(s)8エ）String(s)情報処理論

分野② Java プログラミング

Java プログラミングは，ページ６からページ９まで「Bucho.java」
class Bucho （４）Shain{// コンストラクタ、s:名前の指定
Bucho( String s ){（５）; // 親クラスのコンストラクタを呼び出す}// 基本給を設定して年収を計算する
部長の年収は 一般社員の年収 x3＋手当 12Z0万円
void setSalary( int a ){（６）.setSalary( a );nenshu = （７）;}// 氏名、役職、年収の表示
void show(){
System.out.print("氏名:" + （８）+ ", 役職:部長, ");System.out.println("年収:" + nenshu + "万円");}}（４）の選択肢ア）implementsイ）abstractウ）extendsエ）export（５）の選択肢

ア）super(s)イ）this(s)ウ）Shain(s)エ）Bucho(s)（６）の選択肢ア）nenshuイ）baseウ）thisエ）super（７）の選択肢

ア）baseイ）base*3+120ウ）base+nenshuエ）nenshu*3+120ウ）Shain.nameエ）Bucho.name（８）の選択肢ア）nameイ）String(name)9情報処理論分野③ データ構造とアルゴリ データ構造とアルゴリズム

は，ページ１０からページズム

１１まで

次の問いに答えなさい．
問題

空の二分探索木に，次の 12 個のキーをもつ節点を左から順に挿入していく．
9, 6, 8, 12, 4, 10, 2, 15, 11, 7, 5, 1
このとき，次の問いに答えなさい．

（１）挿入について(ア)

キー10 をもつ節点までを挿入した段階の二分探索木 t1 を描きなさい．

(イ) 12 個の節点をすべて挿入した段階の二分探索木 t2 を描きなさい．

10情報処理論分野③ データ構造とアルゴリ データ構造とアルゴリズム

は，ページ１０からページズム

１１まで（２）削除について(ウ)

前問の二分探索木 t2 から根を削除した後の二分探索木 t3 を描きなさい．

（３）探索について(エ)前ページ設問(1)の(イ)で描いた二分探索木 t2 において探索が成功する場合に，キーの比較回数の最大値はいくらですか．その際に比較を実行するキーの列も示しなさい．

（４）計算量について(オ)

二分探索木の節点数を N とするとき，最悪の場合の時間計算量を答えなさい．

(カ)

二分探索木の節点数を N とするとき，平均の場合の時間計算量を答えなさい．

(キ) N=6 として(オ)に該当する二分探索木の例をひとつ描きなさい．

11情報処理論分野④ オペレーティングシス オペレーティングシステム

は，ページ１２からページテム

１４まで次の問いに解答しなさい．
問題１．オペレーティングシステム内におけるプロセスは 3 つの状態で存在し，下の図のようにあらわされる．

図．プロセスの 3 状態（１）実行状態：すべての実行に必要なリソースを獲得し実行中の状態
待ち状態：CPU 以外のリソースの不足，もしくは他のプロセスからのデータ待ちである
残るもう一つの状態の名称と内容を記述しなさい．

（）状態

内容：

（２）実行中のプロセスは，この三状態を遷移する．それぞれの状態を遷移する条件を次に示す．
各条件の番号を図中に書き込みなさい．
① CPU スケジューラによって CPU リソースが割り当てられたとき② 実行優先度の高いプロセスの割込みや，自プロセスに割り当てられた CPU 利用可能時間を使い切ったとき③ プロセスがスーパーバイザコールを実行したときや，実行に必要な CPU 以外のリソースを失ったとき④ CPU 以外の実行に必要なリソースを確保できた場合や，オペレーティングシステムに依頼したスーパーバイザコールが終了したとき12情報処理論分野④ オペレーティングシス オペレーティングシステム

は，ページ１２からページテム

１４まで次の問いに解答しなさい．
問題 2．以下の表に 3 つのプロセスの処理時間と，プロセスがオペレーティングシステムに到着し，待ち行列に追加された時刻を示す．ここでターンアラウンドタイムとはプロセスの到着時刻から処理終了時刻までの時間である．
到着順スケジューリングを用いた場合の，それぞれのプロセスのターンアラウンドタイムと平均ターンアラウンドタイムを求めなさい．
表．プロセスの到着時刻と処理時間
プロセス名

処理時間[秒]

到着時刻[秒]A

150B

105C5813情報処理論

分野④ オペレーティングシス オペレーティングシステム

は，ページ１２からページテム

１４まで

次の問いに解答しなさい．
問題 3．ページングによる仮想記憶システムにおいて，ページ置き換えアルゴリズムとして，LRU（最長不使用ページ置き換え）方式を用いた場合の最終のページテーブルの内容とページフォールト回数を示しなさい．なお
主記憶は 4 ページ，ページはプログラム中「0 1 2 3 1 4 5 3 6 7」の順で参照されるものとする．また，最初は主記憶にどのページもロードされていないものとする．

ページ参照列

0123

140*

0000

4*

1*

11112*2223*

335367

ページフレーム0123*ページフォールトの発生
図．LRU アルゴリズムによるページ置き換え

14計算機工学分野① コンピュータアーキテ コンピュータアーキテクチ

ャは，ページ１５からペー

クチャ

ジ１７まで

次の問いに解答しなさい．
問題１．
（１）１６進数の４８と，１６進数の２４を足した結果は，１６進数で何になるか（２）１０進数の「２００」は，２進数で何になるか？

（３）次は，OR 演算に関する真理値表である．空欄を補充しなさい

P

Q

P OR Q

True（真）True（真）True（真）True（真）False（偽）False（偽）True（真）False（偽）False（偽）（４）2 進数の「１１０１」と，２進数の「０１１０」の AND 演算を行った結果は，２進数で何になるか？

15

計算機工学分野① コンピュータアーキテ コンピュータアーキテクチ

ャは，ページ１５からペー

クチャ

ジ１７まで

次の問いに解答しなさい．
問題２．
（１）10 進数の「2.5」を，次のように，仮数と基数と指数の式で表現したい．
仮数 × 基数指数 ＝ 2.5
仮数の値が 10 進数で「0.625」，基数の値が 10 進数で「2」であるとき，指数の値は 10 進数で何になるか？

（２）コンピュータで２の平方根を求めるプログラムを書くときに，なるべく高い精度で２の平方根を求めたいときには，どのような工夫を行うのが有効であるかを説明しなさい．

16

計算機工学分野① コンピュータアーキテ コンピュータアーキテクチ

ャは，ページ１５からペークチャ

ジ１７まで

次の問いに解答しなさい．
問題３．
（１）プロセッサ（CPU）の中のプログラムカウンタ（インストラクションポインタ）の役割を説明しなさい．

（２）あるプロセッサ A と別のプロセッサ B は同一のクロック周波数で動くプロセッサである．しかし，実際に同じプログラムを動作させたところ，プロセッサ A とプロセッサ B で，実行時間に差があった．プロセッサ Aとプロセッサ B の性能の差が生じる要因として，プロセッサ A とプロセッサ B の差異として何がありえるかを，なるべく多く挙げなさい．

17計算機工学

分野② 情報システム

情報システムは，ページ１８からページ２０まで次の問いに解答しなさい．
問題１．コンピュータのハードウェアは図のように，5 つの装置から構成されています．

図．コンピュータの基本構成（１）①に当たる装置の名称と動作を説明しなさい．

（２）②に当たる装置の名称と動作を説明しなさい．

（３）出力装置の例を 2 つ挙げなさい．

18

計算機工学分野② 情報システム

情報システムは，ページ１８からページ２０まで次の問いに解答しなさい．
問題２．記憶装置に関して，下記の問いに答えなさい．
（１）主記憶装置は，半導体の記憶素子で構成されています．
ROM と RAM の違いについて，「揮発性」，「不揮発性」，「電源」の 3 つの用語を用いて説明しなさい．

（２）外部記憶装置の一つである HDD の性能は，記憶容量や動作速度の一つである平均アクセス時間などによってあらわされます．平均アクセス時間は，以下の式で算出されます．
平均アクセス時間=平均待ち時間+データ転送時間
平均待ち時間=平均回転待ち時間+平均シーク時間
平均回転待ち時間=回転時間÷2データ転送時間 4ms，平均シーク時間 3ms，回転数が 6000 回転/分のディスクの平均アクセス時間を求めな
さい．

19

計算機工学分野② 情報システム

情報システムは，ページ１８からページ２０まで次の問いに解答しなさい．
問題 3．システムの信頼性に関して，下記の問いに答えなさい．
（１）ある期間において総動作時間を t，総停止時間を T とした場合のシステムの稼働率を表す式を記述しなさい．

（２）装置を次の図のように接続したとき，全体の信頼度を表す式を記述しなさい．
ただし，各装置の信頼度はすべて r とする．

図．システムの構成図

20

情報ネットワークは，ペー

分野③ 情報ネットワーク

計算機工学

ジ２１からページ２３まで

次の問いに解答しなさい．
問題１．
以下の表は代表的なウェルノウンポート番号とプロトコル名および簡単な説明を記したものである。空欄の(１)～(10)に適切と思われるものを選択肢から選び、記号を記入しなさい。

ポート番号

プロトコル名

20,21

内容

(３)

(１)

(７)
SMTP

(８)

53

(４)

(９)80

(５)(10)(２)(６)

電子メールの取得(１)、(２) の選択肢
ア）25イ）32ウ）90エ）100オ）110ウ）DHCPエ）FTPオ）IMAP(３) ～ (６) の選択肢ア）PHPイ）ARPカ）DNSキ）LDAPク）HTTPケ）POPコ）IRP(７) ～ (10) の選択肢
ア）正確な時刻の同期オ）遠隔認証イ）Web データの送受信

カ）ドメイン名の名前解決

ケ）電子メールの配送・転送ウ）IP アドレスの貸与

キ）ネットワーク機器を監視する

コ）リモート接続の認証

21エ）MAC アドレスの取得
ク）ファイルの転送

計算機工学分野③ 情報ネットワーク

情報ネットワークは，ページ２１からページ２３まで

次の問いに解答しなさい．
問題２．
以下の図について、以下の問いに答えなさい。

１．端末(3)を新しくネットワーク A に追加したい。
ネットワークが利用できるように正しい設定を選んでア)～オ)を記入しなさい。
・IP アドレスの設定はア）172.16.1.0である。
イ）172.16.2.1ウ）172.16.1.128 エ）172.16.2.128
オ）172.16.2.256
・サブネットマスクはである。

ア）255.255.0.0

イ）255.255.24.0

ウ）255.255.255.1

エ）255.255.255.0

オ）255.255.255.254
・デフォルトゲートウェイはア）192.168.1.0である。

イ）192.168.1.1

ウ）192.168.172.16

エ）172.16.2.0

オ）172.16.2.1

２．ネットワーク A に DHCP サーバが設置されているが、ネットワーク B には設置されていないとする。以下の説明文で正しいものを１つ選びなさい。

答え）ア）ネットワーク B では、どのような設定をしてもネットワーク A の DHCP サーバを利用するのは不可能である
イ）ネットワーク A の DHCP サーバは、172.16.2.1～172.16.2.255 のいずれかの IP アドレスを割り当てるウ）ネットワーク A に新しい PC を参加させる場合、「IP アドレスを自動的に取得」の設定で利用可能となるエ）ネットワーク B に新しい PC を参加させる場合、「IP アドレスを自動的に取得」の設定で利用可能となる

３．ネットワーク A の端末(3)からブローキャストアドレス宛にパケットを送信した場合の説明文で、正しいものを１つ選びな
さい。 答え）ア）パケットは端末(4)には届くが、端末(1)には届かないイ）パケットは端末(1)には届くが、端末(4)には届かないウ）パケットはネットワーク A とネットワーク B のすべての端末に届けられるエ）パケットはネットワーク B のすべての端末に届けられる22

情報ネットワークは，ペー

分野③ 情報ネットワーク

計算機工学

ジ２１からページ２３まで

次の問いに解答しなさい．
問題３．
以下の説明文で、空欄

１．TCP はに入れる適切な記号を選び、記入しなさい。

特徴があり、UDP は特徴がある。

ア）送信速度が速く、データの信頼性も高い
イ）送信速度は速いが、データの信頼性は高くないウ）送信速度は速いが、無線 LAN では使えないエ）送信速度は速くないが、データの信頼性が高い
オ）送信速度は速くないが、無線 LAN のみで使える２．IPv4 のアドレスはア）8ビットで構成されており、新しい規格の IPv6 はイ）16

３．TTL はウ）32エ）64オ）96カ）128の頭文字を取ったものであり、

ア）The Time Liveイ）Time Trans Liveオ）パケットの変換時間ウ）Time To Listenカ）パケットの生存時間

ア）127.1.1.0

イ）127.0.0.1

ウ）1.0.0.127

オ）localhostカ）privatehostキ）remotehost

ので、盗聴などのリスクはア）速度がとても速いオ）高くなるイ）暗号化が弱い

カ）ほぼゼロである

ク）512のことである。

エ）Time To Liveキ）パケットの破棄推定時間

４．ループバックアドレスは特別な IP アドレスであり、IPv4 では

５．HTTPS はキ）256ビットに拡張されている。

であり、を意味する。

エ）0.1.1.127
ク）royalhost。

ウ）暗号化されているキ）有線ならゼロである

23エ）監視されている

ク）ゼロである計算機工学

分野④ データベースシステム

データベースシステムは，ページ２４からページ２６まで次の問いに解答しなさい．
問題１．
（１）「主キー」について説明しなさい．

（２）「第三正規形」について説明しなさい．

24

計算機工学分野④ データベースシステム

データベースシステムは，ページ２４からページ２６まで

次の問いに解答しなさい．
問題２．ＳＱＬに関する次の問いに解答しなさい．
リレーショナルデータベースに，次のテーブルＴが格納されている．
ID
123

商品名
XX
YY
ZZZ

重量
1.2
25.2
6.3

（１）下のテーブルを得るＳＱＬを書きなさい．
ID
123

商品名
XX
YY
ZZZ

（２）下のテーブルを得たい．下の空欄を補充しなさい．
ID
1

商品名
XX

重量1.2

select * from T where id =25計算機工学

分野④ データベースシステム

データベースシステムは，
ページ２４からページ２６まで

次の問いに解答しなさい．
問題３．ＳＱＬに関する次の問いに解答しなさい．
リレーショナルデータベースに，次のテーブル S が格納されている．
名前AA
A
B
B科目
データベース
プログラミング
学外実習
データベース
プログラミング

得点90
95
90
86
94

（１）次のＳＱＬの結果は何になるか？
select 科目, count(*) from S group by 科目;
次の空欄に記入しなさい
データベース
プログラミング
学外実習（２）次のＳＱＬの結果は何になるか？
select 科目, min(得点) from S group by 科目;
次の空欄に記入しなさい．min は「最小値」を求める．
データベース
プログラミング
学外実習26