平成 30 年度

春期

基本情報技術者試験

採点講評

午後試験
問１
問 1 では，Web サービスにおけるパスワードの保存を題材に，ハッシュ関数の特性や利用方式について出題した。
設問 1 では，a の正答率は低く，あまり理解されていなかった。ウと誤って解答した受験者が見受けられた。
解答群に挙げたものは，いずれも基本的かつ重要なものなので，その意味を正しく理解しておいてほしい。bの正答率は高く，よく理解されていた。
設問 2 の正答率は平均的で，おおむね理解されていた。
設問 3 の正答率は平均的で，おおむね理解されていたが，ウと誤って解答した受験者が多く見受けられた。
ストレッチング方式を用いる場合であっても，一つのパスワードの候補から求める，照合に用いるハッシュ値は一つであることと，その一つのハッシュ値を求めるためにハッシュ化の操作を繰り返すので，計算時間がより多く必要になることに気がつけば，正答できた。
ハッシュ関数は，様々なサービスや製品で，安全性を向上させるために使われている。ハッシュ関数の特性を正しく理解し，ハッシュ関数をどのように用いると，より安全に利用できるのかを把握できる能力を身につけておいてほしい。

問２
問 2 では，論理回路を題材に，主要な論理演算を行う論理回路を用いて XOR（排他的論理和）と半加算器の論理回路を構成すること，パラメタを利用したアプローチによって基本的な論理回路を実現することについて出題した。
設問 1 の正答率は高く，よく理解されていた。
設問 2 では，b の正答率は平均的で，おおむね理解されていた。c の正答率は高く，よく理解されていた。
設問 3 の正答率は高く，よく理解されていた。
コンピュータは論理回路から構成されているので，論理演算及び論理回路について，理解しておいてほしい。
また，単機能の論理回路だけでなく，パラメタの値を変えることによって異なる論理演算を行うことができる論理回路についても，理解しておいてほしい。

問３
問 3 では，小学生を対象とした，ある子供会における名簿を題材に，活動状況の抽出や集計及び年度の切替えに伴うデータの更新処理について出題した。
設問 1 の正答率は平均的で，おおむね理解されていた。
設問 2 の正答率は平均的で，おおむね理解されていたが，ウと誤って解答した受験者が見受けられた。DISTINCTが指定されているので，グループ化する必要はなく，また，GROUP BY に指定した列名も保護者に関するものでないことに気がつけば，正答できた。
設問 3 の正答率は高く，よく理解されていた。
設問 4 の正答率は平均的で，おおむね理解されていたが，イと誤って解答した受験者が見受けられた。手順(5)で，卒業した児童は児童表から削除されているので，児童表に存在しない保護者番号の保護者を保護者表から削除すればよいことに気がつけば，正答できた。
データベースを運用する上で，年度替わりのタイミングなどでデータの内容を大幅に更新することが必要となる場合がある。そのような状況で，作業を順序立てて適切に実施できる能力を身につけておいてほしい。

1/5©2018 独立行政法人情報処理推進機構

問４問 4 では，クラウドサービスを利用した写真投稿サービス及び写真検索サービスのシステム構築を題材に，仮想マシンのタイプの選択などクラウドサービスの利用に当たり必要となる基本的な事項について出題した。
設問 1 の正答率は低く，あまり理解されていなかった。a では，ウと誤って解答した受験者が見受けられた。
ネットワーク処理能力がネックとなり，コストに見合うだけの処理ができないことに気がつけば，正答できた。
b では，ウ又はエと誤って解答した受験者が見受けられた。タイプ D の仮想マシンが何台必要かを問う問題であるが，解答に当たって，使用する仮想マシンのタイプを誤解したり，計算処理能力の平均使用率を考慮していなかったりしたものと思われる。c では，イと誤って解答した受験者が多く見受けられた。グループ 2，5 及び 6 のサーバ類はプロトコル HTTP を受け付けるが，グループ 2 及び 6 のサーバ類とグループ 5 のサーバ類とでは，アクセス元のサーバ類が異なることに気がつけば，正答できた。
設問 2 の正答率は平均的で，おおむね理解されていた。
処理能力やコストに基づく仮想マシンの選択や仮想マシン間のアクセス許可設定などは，クラウドサービスを利用したシステム構築には必須の事項である。今後，ますますクラウドサービスが広く利用されるようになると考えられるので，よく理解しておいてほしい。

問５
問 5 では，健康管理システムを題材に，システムの各機能で必要となるマスタファイルの特定や，ファイルの突合せ処理の設計について出題した。
設問 1 では，a の正答率は低く，あまり理解されていなかった。a では，ウ，エ又はコと誤って解答した受験者が見受けられた。従業員マスタから抽出した情報に加えて，健康診断コースを決定するためには職位マスタが，健康診断実施場所を決定するためには在勤地マスタが必要である。b の正答率は平均的で，おおむね理解されていたが，コと誤って解答した受験者が見受けられた。従業員の最新の在勤地を把握するためには，在勤地マスタだけでなく，従業員マスタが必要である。a，b いずれも，処理に必要な情報が，どのマスタに含まれているかが分かれば，正答できた。
設問 2 の正答率は平均的で，おおむね理解されていた。
ソフトウェアの設計に当たっては，要件と処理の流れを理解した上で，必要な情報を特定し，処理内容を適切に定めることが重要である。

問６
問 6 では，プロジェクト管理手法の一つである EVM（Earned Value Management）を題材に，EVM 指標値によるプロジェクトのスケジュール及びコストの定量的な管理，及びプロジェクトの状況の分析について出題した。
設問 1 の正答率は高く，よく理解されていた。
設問 2 の正答率は平均的で，おおむね理解されていた。
設問 3 では，b の正答率は平均的で，おおむね理解されていたが，ウと誤って解答した受験者が見受けられた。
結合テストを開始して 1 か月が経過した時点で，指標 PV，AC がともに指標 EV を超えていることをグラフから読み取れば，正答できた。c，d の正答率は高く，よく理解されていた。e の正答率は低く，あまり理解されていなかった。e では，カと誤って解答した受験者が見受けられた。これはプロジェクト完了までの予定総工数
は指標 BAC であることが理解されていなかったからだと思われる。表 4 の EVM 指標の N 社での意味を理解できていれば，正答できた。
プロジェクト管理においては，スケジュール，コストを定量的に管理し，それに基づき計画と実績の差異を分析・評価することが求められる。これらは差異が生じた場合，適切な対応をする上で前提となる能力であるので，しっかり身につけておいてほしい。

2/5©2018 独立行政法人情報処理推進機構

問７
問 7 では，部品メーカの収益分析を題材に，損益分岐点売上高の計算，売上高と費用の関係，及び売上高に対する変動費率を下げるための適切な施策の検討について出題した。
設問 1 の正答率は平均的で，おおむね理解されていた。
設問 2 の正答率は高く，よく理解されていた。
設問 3 の正答率は平均的で，おおむね理解されていた。f では，アと誤って解答した受験者が見受けられた。
変動費率と損益分岐点の関係が理解できていれば，正答できた。
企業の収益を検討する上では，売上に対してどれだけの費用を必要としたかの分析が特に重要になる。必要な費用は固定費と変動費に分け，損益分岐点の分析を行うことが基本となるので，その方法を身につけておいてほしい。

問８
問 8 では，整数型のデータを，ヒープの性質を満たすように配列に格納（ヒープを配列で実現）する処理，配列に格納した整数型のデータをヒープソートで昇順に整列する処理について出題した。
設問 1 の正答率は平均的で，おおむね理解されていた。ヒープの構造と配列 heap に格納されるデータの関係を理解し，配列 heap にデータを追加する位置が，対応する親の値との関係で，どのように決まるのかを理解すれば，正答できた。
設問 2 では，c の正答率は平均的で，おおむね理解されていた。プログラムの動作の説明と配列に格納されているデータを対応付ければ，正答できた。d，e の正答率は低く，あまり理解されていなかった。d ではウと，eではオと誤って解答した受験者が見受けられた。d は，副プログラム downHeap の行番号 5～10 で使われている変数及び関数と行番号 7 の条件式で使われている関係演算子に着目すれば，正答できた。e は，変数 n の値が 0で配列 heap の要素番号 1～5 の内容が図 2 のとおりであることに着目して，副プログラム downHeap の行番号 5～10 の処理を追跡すれば，正答できた。
プログラムでアルゴリズムが正しく実現されていることを確認するためには，プログラムの説明とプログラ
ム中で使用されている変数の意味や処理の条件を対応付けてプログラムの動きを追跡する能力が求められるので，身につけておいてほしい。

問９
問 9 では，ファイルからレコードを読み込んで，指定したキー項目の値ごとに数値項目の合計を求める簡易集計プログラムについて出題した。
設問 1 は，プログラムを完成させる設問である。正答率は平均的で，おおむね理解されていた。b ではエと，c ではアと誤って解答した受験者が見受けられた。b はキー項目の値が変わらない場合の処理であり，c は入力ファイルのレコードを読み終えた場合の処理である。それぞれの場合，どのような処理が必要であるか理解できれば，正答できた。
設問 2 は，プログラムの実行時に問題が発生し得るデータ例を考察する設問である。d の正答率は低く，あまり理解されていなかった。イ又はエと誤って解答した受験者が見受けられた。d は，算術演算 25 - 25 * value/ valuemax を実行すると，あふれが発生するデータ例を問うものである。あふれは，乗算 25 * value の演算結果が long 型の数値の範囲（－231～231－1）を外れた場合に発生する。このことが理解できていれば，正答できた。e，f の正答率は平均的で，おおむね理解されていた。
プログラム作成に当たっては，アルゴリズムとしては正しくても，実行時に問題が発生しないように，取り扱うデータの個数や値の範囲などについて十分に注意する必要があることを，理解しておいてほしい。

3/5©2018 独立行政法人情報処理推進機構

問 10
問 10 では，Web 上のショッピングサイトを題材に，注文データと入金データの突合せ処理について出題した。
設問 1 の正答率は平均的で，おおむね理解されていた。a では，アと誤って解答した受験者が見受けられた。
突き合わせる二つのファイルのレコードを全て処理し終わるまで繰り返さなければならないことに気がつけば，正答できた。
設問 2 では，e の正答率は平均的で，おおむね理解されていたが，ウ又はエと誤って解答した受験者が見受けられた。入金されていないことは，突合せ処理で注文ファイルの注文番号よりも入金ファイルの注文番号が大きいことから判断できることが理解できていれば，正答できた。f の正答率は高く，よく理解されていた。
ファイルの突合せ処理は，COBOL で記述された業務プログラムで多用される。受験者には，プログラムで適切に実装する能力を，身につけておいてほしい。

問 11
問 11 では，API として使用するためのクラスライブラリの作成を題材に，クラスの設計に関わる問題点を考慮しながらプログラムを完成し，テストすることについて出題した。
設問 1 では，a，b の正答率は高く，よく理解されていた。c，d の正答率は平均的で，おおむね理解されていた。
設問 2 の正答率は低く，あまり理解されていなかった。イ又はエと誤って解答した受験者が見受けられた。
アプリケーションやライブラリの開発では，複数のパッケージを使用することが多く，パッケージ間のアクセス可能性は重要なので，修飾子の意味をよく理解しておいてほしい。
設問 3 の正答率は低く，あまり理解されていなかった。エと誤って解答した受験者が見受けられた。
System.out.println の引数にオブジェクトが指定された場合は，オブジェクトのメソッド toString が呼び出される。このとき，Expression のインスタンスである left 及び right は，Constant のインスタンスの toStringまで再帰的に呼び出されることに注意すれば，正答できた。
設問 4 の正答率は低く，あまり理解されていなかった。ウと誤って解答した受験者が見受けられた。ウは，現状のクラス Constant の実装でも true になる点に注意してほしい。
Java では，パッケージ間のアクセス可能性やオブジェクト等価などに関する規則は，言語仕様で規定されている。それらは，Java でプログラムを作成する上で基本であり，クラスの設計に生かせるように，よく理解しておいてほしい。

問 12
問 12 では，整数を表す数字から成る文字列（数字列）の数値への変換，文字列からの数字列の抽出及び整数の乗算，を行うプログラムの作成について出題した。
設問 1 の正答率は平均的で，おおむね理解されていた。
設問 2 の正答率は低く，あまり理解されていなかった。b では，オ又はカと誤って解答した受験者が見受けられた。取り出した文字が空白（数字列の区切り）でなければ，数字の処理を続けることに気がつけば，正答できた。c では，ウ又はオと誤って解答した受験者が見受けられた。数字列の処理中でなければ（数値に変換する数字列がなければ），副プログラム SETWD から何もせずに戻ることに気がつけば，正答できた。d では，イ又はウと誤って解答した受験者が見受けられた。管理テーブルに数字を格納したので，格納位置を次に進めなければならないことに気がつけば，正答できた。
設問 3 では，e の正答率は平均的で，おおむね理解されていた。f の正答率は低く，あまり理解されていなかった。イ又はウと誤って解答した受験者が見受けられた。整数の乗算の過程で，乗数の各ビットの値を下位桁から順に調べていることに気がつけば，正答できた。
コンピュータが周辺機器と数値のデータをやり取りする場合，文字列を介して行うことが多いので，アセンブラプログラムでの数字列の処理方法を習得しておいてほしい。また，アセンブラプログラムでは乗算プログラムを作成することが多々あるので，その処理方法を習得しておいてほしい。

4/5©2018 独立行政法人情報処理推進機構

問 13
問 13 では，会議室の予約システムを主題とし，要求仕様を反映した，条件式及び算術式の記述，関数の適切な利用，及びマクロの実装について出題した。
設問 1 の正答率は平均的で，おおむね理解されていた。c では，イ又はカと誤って解答した受験者が見受けられた。関数“最大”と他の関数との組み合わせ方について，各関数の仕様を理解していれば，正答できた。
設問 2 の正答率は低く，あまり理解されていなかった。d では，ウ又はエと誤って解答した受験者が見受けられた。d に記述された条件が成立しない（開始時刻から終了時刻までの間に他の予約が入っている）場合に，次の行の処理を実行することが理解できれば，正答できた。e では，オと誤って解答した受験者が見受けられた。
e を含む行では，J 番目の予約のデータが対象になっていることに注意すれば，正答できた。f では，ウと誤って解答した受験者が見受けられた。予約のデータが利用日の昇順に整列されていることに注意すれば，正答できた。
関数の仕様を正しく理解し，適切に使いこなす能力は，プログラム言語を問わず求められる基礎的能力なので，身につけておいてほしい。

5/5©2018 独立行政法人情報処理推進機構