プログラミング，
データ構造とアルゴリズム，オペレーティングシステム，コンピュータアーキテクチャ，コンピュータネットワーク，データベースシステム
６科目の中から３科目を選択
１２０分＜注意事項＞
・試験開始の合図があるまで，問題・解答冊子の中をみてはいけません．
・試験監督者の指示に従って，下の記入欄に受験番号と氏名を記入しなさい．
受験番号

氏名

・６科目の中から３科目を選び，解答しなさい．
科目

ページ科目① プログラミング

２～８

科目② データ構造とアルゴリズム

９～１０

科目③ オペレーティングシステム

１１～１３

科目④ コンピュータアーキテクチャ

１４～１６

科目⑤ コンピュータネットワーク

１７～１９

科目⑥ データベースシステム

２０～２１

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

1

科目①プログラミング

プログラミングは，ページ２からページ８まで

科目①「プログラミング」では、以下の問題１、問題２のうち、いずれか１つに解答しなさい．

問題１．
以下に示す Python で記述された＜プログラム＞は，テキストファイル名を与えることで，そのテキストファイル中に存在する単語ごとに出現数をカウントし，複数箇所に存在する単語を出力するものである（１箇所しか存在しない単語については，出力しない）．ただし，ここでいう単語とは，空白や改行で挟まれたひとかたまりの文字列を指す．
＜実行例＞を参考に＜プログラム＞中の空欄(a)～(j)に入る適切なものを各解答群のア～オより一つ選びなさい．

＜実行例＞
次ページに示す＜プログラム＞を word_counter.py というファイル名で保存し，実行したものである．
C:\Users\Fuku\>python word_counter.py
ファイル名を入力してください: word_counter.py
def: 4=: 7
data: 3
word_count: 3
return: 2
for: 2
one_word: 2
in: 3
if: 3
word_count[one_word]: 2
1: 2
count: 2

2

プログラミング科目①＜プログラム＞

def main():filename =(a)("ファイル名を入力してください: ")data = read_file("./" + filename)word_count = word_counter(data)
print_results_more_than_one_word(word_count)

def read_file(filename):(b)open(filename, "r")data = file.read()(c)

return data
def word_counter(data):words = data.
(d)word_count =(e)()

for one_word in words:
if one_word(f)word_count:
word_count[one_word]
(g)
1
else:
word_count[one_word] = 1
return word_countdef print_results_more_than_one_word(word_count):
for word, count in word_count.items():
if count(h):print(f"{word}: {count}")

(i)
(j)

__name__ == "__main__":
()

3

file:

プログラミングは，ページ２からページ８まで

科目①

プログラミング

プログラミングは，ページ２からページ８まで(a)に関する解答群
ア input
イ print
ウ getsエ readline
オ println!

(a)(b)に関する解答群
ア io
イ withウ asエ usingオ File(b)(c)に関する解答群
ア in
イ is
ウ <<
エ as
オ to(c)(d)に関する解答群
ア splitイ strip
ウ widthエ len
オ append(d)(e)に関する解答群
ア ();
イ [];
ウ {};
エ <>;
オ ||;

(e)

(f)に関する解答群
ア in
イ is
ウ <<
エ as
オ to(f)(g)に関する解答群
ア +=
イ -=
ウ *=
エ /=
オ %=(g)4

科目①

プログラミング

プログラミングは，ページ２からページ８まで(h)に関する解答群
ア <= 1イ <1ウ == 1エ >= 1
オ >1(h)(i)に関する解答群
ア fn
イ //
ウ if
エ df
オ le(i)(j)に関する解答群
ア mainイ beginウ beginPlay
エ factorization
オ start(j)5プログラミングは，ページプログラミング

科目①

２からページ８まで

問題２
Java について、次の問いにすべて解答しなさい（１）次の記述が正しければ ○ を、間違っていれば × を ( ) に記入しなさい。
() 抽象クラスは単体ではオブジェクト（インスタンス）を作成できない。

() メソッドの引数で基本型変数(int 型や double 型など)を渡す場合、「参照渡し」となる。

() 例外処理は try～catch で処理することが可能である。

() Java のソースをコンパイルすると、class ファイル(*.class)が作成される。

() スレッドは CPU のコア数より多いタスクを並列で実行できない。

() String 型変数の文字列は一度初期化すると内容を変更することができない。

() クラスを継承する場合、同時に２個以上の親クラスを持つことはできない。

() クラスの「コンストラクタ」はオーバーロードできない。

() 継承されるクラス（親）をサブクラス、新しく作成したクラス（子）をスーパークラスと呼ぶ。

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

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

１．
「class Parfait extends Sweets{」とクラスの定義を行う場合、Parfait は、Sweets はと呼ぶ。
ア）サブクラスイ）セカンドクラスウ）スペシャルクラス

２．プログラムの実行中に発生するエラーに対して行う処理ををオ）スーパークラスといい、実行中にエラーが発生した場合に行う処理

ブロックに記述し、エラーが発生した場合に備える。

ア）拡張処理イ）並列処理３．ガーベジコレクションはア）CPUエ）ペアレントクラスイ）メモリウ）例外処理

オ）catchカ）tryの使用状況を監視し、使われなくなれば自動的に。

ウ）スレッド

４．平方根を計算するメソッドはエ）errorエ）解放される

オ）確保されるカ）停止するである。

ア）Math.pow(double x)イ）Math.paw(double x)オ）Math.sqr(double x)カ）Math.sqrt(double x)ウ）Math.square(double x)

５．クラスに名前が同じで引数の形式が異なるメソッドを複数定義することをア）マルチメソッドキ）finallyイ）マルチロードウ）オーバーロード

6という。

エ）オーバーライドオ）マルチライド

科目①

プログラミング（３）以下の問いに解答しなさい。
１．下記の表示結果は 0.2 にならない。その理由を説明しなさい。

double a = 1/5;
System.out.println( a );２．下記の実行結果を記述しなさい。また、なぜそうなるのかを簡単に説明しなさい。

for(int i=0;i<15;i++){if( i%3==0 ) System.out.print( " "+i );}３．下記はコンパイル時にエラーがでる。エラーが出る理由を説明しなさい。

class Car{int num;
double gas;}

int getGas(){return gas;}

7

プログラミングは，ページ２からページ８まで

科目①

プログラミング

プログラミングは，ページ２からページ８まで

４．下記の Vehicle クラスのインスタンスを作成しようとして Vehicle v = new Vehicle(); と記述したらエラーが表示された。
その理由を説明しなさい。

abstract class Vehicle{
protected int speed;：
abstract void show();：}

５．下記の処理を (1) score = 70, (2) score = 82, (3) score = 59, (4) score = 99 で実行すると、それぞれの結果は何が表示されるのかを答えなさい。記述例: (1)不可、(2)可、(3)秀、(4)良if( score<60 ){System.out.println("不可");}else if( score<70 ){System.out.println("可");}else if( score<80 ){System.out.println("良");}else if( score<90 ){System.out.println("優");}else{
System.out.println("秀");}8データ構造とアルゴリ データ構造とアルゴリズム

科目②は，ページ９からページ１ズム

０まで以下の問題にすべて解答しなさい．
問題１．
（１）逆ポーランド記法に関する以下の問いに答えなさい。
(ア)

中置記法の式 6 + 1 – 5 * 4 を逆ポーランド記法で書きなさい。

(イ)

逆ポーランド記法の式 4 2 3 + * 1 - を中置記法で書きなさい。

（２）逆ポーランド記法の数式 "1 2 3 * + 4 - 5 +" をスタックを用いて計算する。各入力ごとのスタックの変化を図に記入しなさい。

9科目②

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

は，ページ９からページ１

ズム

０まで

問題２．スタックを用いて"()((())())"のような括弧列の整合性をチェックしたい。
括弧列を左から順番にスキャンし、整合していれば True, そうでなければ False を返すアルゴリズムを書きなさい。

10オペレーティングシス オペレーティングシステム

科目③は，ページ１１からページテム

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

図．プロセスの 3 状態
（１）実行状態:すべての実行に必要なリソースを獲得し実行中の状態
実行可能状態:（CPU 以外のリソースはすべて獲得し，）CPU リソースを確保できれば，プロセスを実行可能な状態
残るもう一つの状態の名称と内容を記述しなさい．
（）状態

内容:

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

11オペレーティングシス オペレーティングシステム

科目③は，ページ１１からページテム

１３まで

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

処理時間[秒]

到着時刻[秒]

A

120

B

14

4

C

6612

オペレーティングシス オペレーティングシステム

科目③は，ページ１１からページテム

１３まで

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

000

4*

1*

1112*

223*

325316

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

13コンピュータアーキテ コンピュータアーキテクチ

科目④ャは，ページ１４からペークチャジ１６まで以下の問題にすべて解答しなさい．
問題 1．
（1）2 進数の 01101000(2)から2 進数の 00010010(2)を減算し，10 進数に基数変換した値を答えなさい．

（2）2 進数の 2 の補数で表現された値（負の値）である 10101101(2)を 10 進数で答えなさい．

（3）2 進数の 00001010(2)を左に 2bit 論理シフトした時の値を 2 進数で求め，その後 10 進数に基数変換して答えなさい．

（4）2 進数 110101111010(2)を 16 進数に基数変換した値を答えなさい．

14

科目④

コンピュータアーキテ コンピュータアーキテクチ

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

クチャ

ジ１６まで

問題 2.
（1）内部割込みが発生する要因について説明しなさい．

（2）外部割込みが発生する要因について説明しなさい．

15

科目④

コンピュータアーキテ コンピュータアーキテクチ

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

クチャ

ジ１６まで

問題 3.

（1）メモリ階層を表した図中のを埋めなさいなさい．

図

メモリ階層（2）高速化の手法であるパイプライン処理について基本原理を説明しなさい．

16

コンピュータネットワ コンピュータネットワーク

科目⑤は，ページ１７からページーク

１９まで

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

ポート番号
20,21

プロトコル名

内容

(５)

(１)

(８)

(６)

(２)

電子メールの配送・転送

DNS

(３)

(９)

(７)

(４)

Web サービスの提供

POP3

(10)

(１) ～ (４) の選択肢
ア）22イ）23ウ）24エ）25オ）32ク）70ケ）80

コ）90サ）100シ）110

カ）53

キ）64ス）120セ）128(５) ～ (７) の選択肢ア）SMTPイ）ARPウ）DHCPエ）NTPオ）FTPカ）RIPキ）IMAPク）NATケ）LDAPコ）HTTPサ）SNMPシ）PPPス）IRCセ）ICMP(８) ～ (10) の選択肢
ア）正確な時刻の同期オ）遠隔認証イ）電子メールの取得

カ）パケットのルーティングケ）通信経路の暗号化ウ）IP アドレスの貸与

エ）MAC アドレスの取得

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

コ）リモート接続の認証

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

17ク）ファイルの転送コンピュータネットワ コンピュータネットワーク

科目⑤は，ページ１７からページーク

１９まで

問題２．
以下の図について、以下の問いに答えなさい。
１．端末(3)を新しくネットワーク A に追加したい。
ネットワークが利用できるように正しい設定を選んでア)～カ)を記入しなさい。
・IP アドレスの設定はである。

ア）172.16.2.24

イ）172.16.2.1ウ）172.16.2.255

エ）192.168.1.24

オ）192.168.1.1 カ）192.168.1.255
・サブネットマスクはである。

ア）255.255.0.0

イ）255.255.0.24

ウ）255.255.255.24

エ）255.255.255.0

オ）255.255.255.254 カ）255.255.255.255
・デフォルトゲートウェイはア）192.168.1.254

である。
イ）192.168.1.1

ウ）192.168.0.1エ）172.16.2.0

オ）172.16.2.1

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

答え）ア）ネットワーク A の DHCP サーバは、172.16.2.1～172.16.2.255 のいずれかの IP アドレスを割り当てるイ）ネットワーク A に新しい PC を参加させる場合、「IP アドレスを自動的に取得」の設定で利用可能となるウ）ネットワーク B に新しい PC を参加させる場合、「IP アドレスを自動的に取得」の設定で利用可能となるエ）ネットワーク B では、どのような設定をしてもネットワーク A の DHCP サーバを利用するのは不可能である
３．ネットワーク A の端末(3)からブローキャストアドレス宛にパケットを送信した場合の説明文で、正しいものを１つ選びな
さい。 答え）ア）パケットはルータに一時保存され、ネットワークＢに転送されるイ）パケットはネットワーク A のすべての端末に届けられるが、ルータには届けられないウ）パケットは端末(4)には届くが、端末(1)には届かないエ）パケットは端末(1)には届くが、端末(4)には届かない

18

科目⑤

コンピュータネットワ コンピュータネットワーク
は，ページ１７からページーク

１９まで

問題３．
１．TCP と UDP の違いについて説明しなさい。

２．bps について説明しなさい。

３．
「輻輳」の読み方をひらがなで書きなさい。また、その意味を説明しなさい。

４．IPv4 と IPv6 の違いを説明し、さらに IPv6 が考案された理由を説明しなさい。

５．ループバックアドレスとは何かを説明しなさい。

６．NAT(NAPT,IP マスカレード)とは何かを説明しなさい。

７．パケットに TTL（Time To Live）が含まれている理由を答えなさい。

８．スイッチングハブとルータの違いを説明しなさい。

９．電子レンジを使うと WiFi 無線通信の通信速度が遅くなることがある．その理由を答えなさい。

１０．MIME とは何かを説明しなさい。

19

科目⑥データベースシステム

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

以下の問題にすべて解答しなさい．
問題１．
リレーショナルデータベースの正規形と正規化について、正規形とは何か説明してください。そして、正規化することのメリットを説明してください。

問題２．
SQL の INSERT, UPDATE, DELETE の役割を説明しなさい

20

科目⑥

データベースシステム

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

問題３．
同時に複数の利用者がデータベースを利用するときに、データベースシステムの側で行われる制御について説明してください。

問題４．
次の SQL 文は、何を行う SQL 文であるかを説明してください。
SELECT * FROM T, S WHERE T.id = S.id;

21