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

氏名

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

ページ

分野① C プログラミング

２～５

分野② Java プログラミング

６～１０

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

１１～１２

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

１３～１５

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

ページ

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

１６～１８

分野② 情報システム

１９～２１

分野③ 情報ネットワーク

２２～２４

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

２５～２７

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

1分野① C プログラミング

情報処理論

C プログラミングは，ページ２からページ５まで問題．以下に示す C 言語で記述された＜プログラム＞は，指定された年月のカレンダーを表示するものである．＜実行例＞を参考に＜プログラム＞中の空欄(a)～(j)に入る適切なものを各解答群のア～オより一つ選びなさい．

＜実行例＞

カレンダー表示プログラム
年月入力<YYYY/MM 形式>:2017/08
日

月61320277142128

火
18152229

水
29162330

木 金 土
34510 11 1217 18 1924 25 26
31

年月入力<YYYY/MM 形式>:2018/01
日
7142128

月
18152229

火
29162330

水
310172431

木 金 土
45611 12 1318 19 2025 26 27

年月入力<YYYY/MM 形式>:2020/02
日

月火水木

金29162331017244111825

512192661320277142128

土18152229

年月入力<YYYY/MM 形式>:

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

C プログラミングは，ページ２からページ５まで＜プログラム＞(a)<stdio.h>/*曜日取得*/int dayOfWeek(int year, int month, int day){if(month < 3){year--;month += 12;}/*Zeller の公式*/(b)(year + year / 4 - year / 100 + year / 400 + (13 * month + 8) / 5 + day) % 7;}/*閏年判定*/int leapYear(int year){
return !((year % 400) && !(year % 100) || (year % 4));}/*月末の日付*/
int endOfMonth(int year, int month){/*２月の処理*/if((c))(d)(28 + leapYear(year));/*１月～７月までの処理（２月を除く）*/
if((e))(d)(30 + (month % 2));/*８月～１２月までの処理*/
return 31 - (month % 2);}/*メイン関数*/void main(void){
printf("カレンダー表示プログラム");(f);printf("\n\n 年月入力<YYYY/MM 形式>:");
scanf((g));
while (year != 0){/*曜日表示*/
printf("\n 日 月 火 水 木 金 土\n");int indent = dayOfWeek(year, month, 1);int end = endOfMonth(year, month);
int i, j;/*インデントの挿入*/
for((g); i < indent;(h)/*日付表示*/for((i); i <= end;(h)printf(" %2d", i);if((j)) printf("\n");}printf("\n\n 年月入力<YYYY/MM 形式>:");
scanf((g));}}3) printf("){");

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

C プログラミングは，ページ２からページ５まで(a)に関する解答群
ア #import
イ #using
ウ #include
エ #pragma
オ #region(a)(b)に関する解答群
ア if
イ gotoウ returnエ forオ break(b)(c)に関する解答群
ア month = 2
イ month == 2ウ month < 2エ month <= 2オ month <> 2(c)(d)に関する解答群
ア return
イ if
ウ int
エ year =オ month =(d)(e)に関する解答群
ア month = 8
イ month == 8
ウ month < 8エ month <= 8オ month <> 8(e)(f)に関する解答群
ア int year
イ int month
ウ int year, month
エ int i, j
オ int year, month, i, j(f)(g)に関する解答群
ア i = 0イ i = 0, j = 0
ウ i = 1
エ j = 1オ i = 1, j = 1(g)4

情報処理論分野① C プログラミング(h)に関する解答群
ア i++
イ j++
ウ i++, j++
エ i + jオ i - jC プログラミングは，ページ２からページ５まで(h)(i)に関する解答群
ア i = 0イ i = 0, j = 0
ウ i = 1
エ j = 1オ i = 1, j = 1(i)(j)に関する解答群
ア "%d/%d", &year, &month
イ "%i/%i", &year, &month
ウ "%d/%d", year, month
エ "%i/%i", &year, &month
オ "&d/&d", %year, %month(j)5情報処理論

分野② Java プログラミング

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

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

問題１．
次の記述が正しければ ○ を，間違っていれば × を ( ) に記入しなさい．
() String クラスのインスタンスに格納される文字列は変更することができない．

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

() boolean 型は true か false しか保持できない．

() Math.random()はクラスメソッドである．

() クラスを継承するときは複数の親クラスを持つことができる．

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

１．「class Tea extends Water{」とクラスの定義を行う場合，Water はア）サブクラスイ）セカンドクラスウ）スーパークラス

２．プログラムの実行中に発生するエラーに対して行う処理を，Tea はエ）ペアレントクラスオ）スペシャルクラスといい，エラーが発生する可能性のある処理をブロックに記述し，エラーが発生した場合に備える．
ア）例害処理イ）例慨処理ウ）例外処理エ）tlyオ）tlly

３．クラスのメンバのアクセス制御について，アクセス制限が最も厳しいのはア）public

４．インタフェースはア）importantイ）protectedエ）voidカ）tryイ）implementsイ）Threadableウ）implicitオ）staticエ）できる．
オ）できないクラスか Runnable インタフェースを使う．
ウ）Sureadエ）Sureadable

6キ）trayである．

で実装し，インタフェースを実装したクラスは継承が

５．スレッド処理を行いたい場合はア）Threadウ）privateと呼ぶ．

オ）Run情報処理論

分野② Java プログラミング

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

次の問いに解答しなさい．
問題３．
下記は座標を入力して原点との距離を計算，表示するプログラムである．以下のプログラム「Distance.java」「Point.java」
における空欄 (１) ～ (15) に適切なものを選び記入しなさい．
＜実行結果＞C:¥Java>java Distance
X と Y を入力-->3.0 4.0(0.000000,0.000000)と(3.000000,4.000000)の距離は 5.000000 ですC:¥Java>java Distance
X と Y を入力-->1.0 1.0(0.000000,0.000000)と(1.000000,1.000000)の距離は 1.414214 です「Distance.java」（1）の選択肢

ア）Point()イ）Point(a,b)

ウ）Point(0.0,0.0)エ）Point(p1,p2)オ）Point(x,y)（2）の選択肢ア）Pointイ）Point()ウ）Point(p1,p2)エ）Point(p1)オ）Point(p2)（3）の選択肢ア）Point.getLength( p1, p2 )イ）p1.getLength( p1, p2 ) ウ）p2.getLength( p1, p2 )エ）this.getLength( p1, p2 )オ）super.getLength( p1, p2 )7

情報処理論

分野② Java プログラミング

Java プログラミングは，ページ６からページ１０まで「Point.java」
class Point{
double x,y; // 座標データ// コンストラクタ
Point( double a, double b ){（4）}
Point(){};// 座標を入力するメソッド
void （5）throws IOException{
System.out.print("X と Y を入力-->");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String [] arr = (br.readLine()).split(" ");（6）= Double.parseDouble( arr[0] ); // 数値に変換（7）= Double.parseDouble( arr[1] ); // 数値に変換}// ２点間の距離を計算する（クラスメソッド）（8）
double getLength( Point a, Point b ){return Math.sqrt(（9）);}}（4）の選択肢ア）super(a,b);イ）super(x,y);ウ）x=a+b; y=a-b;エ）x=a; y=b;オ）x=y=a=b;（5）の選択肢ア）inputData(double a, double b)ウ）inputData(Point a, Point b)イ）inputData(int a, int b)エ）inputData(Point p)オ）inputData()（6）,（7）の選択肢

ア）xイ）yウ）int xエ）int y オ）double x カ）double y（8）の選択肢ア）voidイ）staticウ）statusエ）constオ）const（9）の選択肢ア）(a.x-b.x) + (a.y-b.y)ウ）(a.x-b.x)*(a.y-b.y)イ）(a.x)*(b.x) + (a.y)*(b.y)
エ）(a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y)8情報処理論分野② Java プログラミング

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

下記は４点の座標を入力し，その中で最も距離が近い（短い）２点を表示するプログラムである．以下 のプログラム「Distance2.java」における空欄 (10) ～ (15) に適切なものを選び記入しなさい．なお，「Point.java」は前出のものである．

＜実行結果＞C:¥Java>java Distance2
X と Y を入力-->3 5
X と Y を入力-->7 -1
X と Y を入力-->-4 2
X と Y を入力-->-1 -4[0]と[1]の距離は 7.211103[0]と[2]の距離は 7.615773[0]と[3]の距離は 9.848858[1]と[2]の距離は 11.401754[1]と[3]の距離は 8.544004[2]と[3]の距離は 6.708204
最も距離の短い 2 点は [2] と [3] です。

「Distance2.java」

9分野② Java プログラミング情報処理論Java プログラミングは，ページ６からページ１０まで（10）の選択肢ア）Point<4>; イ）Point[4];ウ）Point*[4]; エ）Point*4; オ）Point 4;（11）の選択肢ア）Point(i); イ）new Point(i) ウ）Point() エ）new Point() オ）new Point(i,j)（12）の選択肢ア）Point.getLengthイ）getLengthウ）Point.sqrtエ）Math.sqrtオ）sqrtイ）len,pnt[j]ウ）len,pnt[i]エ）imin,jminオ）i,j（13）の選択肢

ア）pnt[i],pnt[j]（14）の選択肢

ア）i+jイ）4ウ）len+4エ）len+i+jオ）len（15）の選択肢

ア）imin,jminイ）len,minウ）i,jエ）imin-i,jmin-j10オ）imin+i,jmin+j情報処理論

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

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

１２まで

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

項目数 6 の配列に収められているキーを図のように昇順に整列する．

8 6 5

3 9 2 → 2 3 5 6 8 9

このとき，次の問いに答えなさい．
（１）挿入ソート(基本挿入法)を用いて整列した場合の途中経過を示しなさい．

（２）選択ソート(基本選択法)を用いて整列した場合の途中経過を示しなさい．

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

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

１２まで（３）バブルソート(基本交換法)を用いて整列した場合の途中経過を示しなさい．

（４）挿入ソートの時間計算量が線形時間になる場合はどのような場合かを説明しなさい．

（５）キーの個数を N とすると，選択ソートの交換回数は O(N)である．このことが選択ソートの時間計算量に与える影響について説明しなさい．

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

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

テム

１５まで

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

図．プロセスの 3 状態

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

（）状態

内容：

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

13

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

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

テム

１５まで

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

処理時間[秒]

到着時刻[秒]

A

120B

14

4C

6614情報処理論

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

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

１５まで

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

ページ参照列012340*0004*

1*

1

112*22

3*325316

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

15計算機工学

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

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

クチャ

ジ１８まで

次の問いに解答しなさい．
問題１．
（１）２進数の００１０１１０１は，１０進数で何になるか（２）いま，手元に文字数が１億文字の日本語の文書データがある．これらを容量１ギガバイトのメモリに保存することはできるか？ 理由も解答しなさい（３）１６進数の「３０」と，１６進数の「５０」の AND 演算を行うと，結果は何になるか．１６進数で解答しな
さい．

（４）C のプログラムで，次のように「1÷7」の計算を行ってみた．表示される値は正確に 1/7 の値か？
由も解答しなさい．

#include <stdio.h>
int main() {printf("%f", 1.0 / 7.0);
return 0;}

16

その理計算機工学

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

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

クチャ

ジ１８まで

次の問いに解答しなさい．
問題２．
（１）１０進数の１０を３ビット論理右シフトすると，結果は２になる．では，１０進数の１０を２ビット論理右シフトすると，結果に何になるか？

（２）オーバーフローについて説明しなさい．

17

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

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

クチャ

ジ１８まで

次の問いに解答しなさい．
問題３．
（１）プロセッサの分岐命令は，どういう機能を持つか．説明しなさい．

（２）キャッシュメモリが内蔵されたプロセッサと，キャッシュメモリが内蔵されていないプロセッサとでは，どちらの方が高性能であるといえそうか？

理由も含めて説明しなさい．

18

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

情報システムは，ページ１９からページ２１まで

次の問いに解答しなさい．
問題１．コンピュータのハードウェアは図のように，5 つの装置から構成されています．

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

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

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

19

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

情報システムは，ページ１
９からページ２１まで

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

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

20

計算機工学

情報システムは，ページ１

分野② 情報システム

９からページ２１まで

次の問いに解答しなさい．
問題 3．システムの性能に関して，下記の問いに答えなさい．
（１）システムを安全で安定的に運用するための指標として RASIS（Reliability，Availability，Serviceability，Integrity，Security）がある．下記の用語は，RASIS のどれに含まれるか，最も関連の深い用語を記述しなさい．

・稼働率

（）

・犯罪に対する強さ

（）

・MTTR

（）

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

図．システムの構成図

21

計算機工学

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

分野③ 情報ネットワーク

ジ２２からページ２４まで

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

ポート番号

プロトコル名

内容

(１)

(６)

暗号化して通信する

(２)

(７)

メールの転送・配送

(３)

(８)

メールの受信(４)(９)

Web，ホームページ用

(５)

(10)

ドメイン名の名前解決(１) ～ (５) の選択肢
A）20

B）21C）22

D）23E）24

F）25

G）26

H）50

I）51

J）52

K）53

L）54

M）70

N）80

O）90

P）100

Q）110

R）120

S）130

T）140

U）150

(６) ～ (10) の選択肢
A）SNTPB）HTTPC）DHCP

H）DNS

I）BNS

J）LDUMPO）SHHP）SMTPQ）POOPD）HTPP

E）FTP

F）RIP

G）POP3K）SNMP

L）PPP

M）SSH

N）ICMPR）FFFTPS）P2P

22T）LDAP

U）QTP

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

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

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

１．端末(3)を新しくネットワーク A に追加したい．
ネットワークが利用できるように正しい設定を選んでア)～オ)を記入しなさい．
・IP アドレスの設定はア）172.16.0.0

である．
イ）172.16.2.230

ウ）172.16.2.250

エ）172.16.255.250

オ）172.16.255.255
・サブネットマスクはである．

ア）255.255.255.0

イ）255.255.0.0ウ）255.255.0.255

エ）255.255.255.24

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

である．
イ）192.168.1.1

ウ）192.168.172.16

エ）172.16.2.254

オ）172.16.2.1

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

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

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

23

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

情報ネットワークは，ページ２２からページ２４まで次の問いに解答しなさい．
問題３．
以下の問いについて，記述しなさい．

１．HTTP と HTTPS の違いについて説明しなさい．

２．POP3 と IMAP の違いを説明しなさい．

３．IP アドレスと MAC アドレスについて違いを説明しなさい．

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

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

24

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

データベースシステムは，ページ２５からページ２７まで次の問いに解答しなさい．
問題１．
（１）リレーショナルデータベースの「テーブル定義」とは何か？

説明しなさい．

（２）リレーショナルデータベースでの「正規化」はどういう場合に必要になるか？

25

説明しなさい．

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

データベースシステムは，ページ２５からページ２７まで次の問いに解答しなさい．
問題２．ＳＱＬに関する次の問いに解答しなさい．
リレーショナルデータベースに，次のテーブルＴが格納されている．
ID

name
1
2
3
45

X
YY
ZZZ
YY
ZZZ

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

price

X
YY
ZZZ
YY
ZZZ1030200
40500（２）下のテーブルを得るＳＱＬを書きなさい．
ID
24nameYYYY26計算機工学

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

データベースシステムは，ページ２５からページ２７まで次の問いに解答しなさい．
問題３．ＳＱＬに関する次の問いに解答しなさい．
リレーショナルデータベースに，次のテーブル S が格納されている．
name

color
apple
apple
orange
peach
peach

price
yellowredorangewhite
yellow

300
200
100500400（１）次のＳＱＬの結果は何になるか？
select name, count(*) from S group by name;
次の空欄に記入しなさい

apple
orangepeach（２）次のＳＱＬの結果は何になるか？
select * from S order by price;27