「厳選5題」過去問と解説 | 平成26年度 春期 の過去問やるならこれをやれ


2020-09-08 更新

ここでは、平成 26 年度 春期 基本情報技術者試験の午前試験 の中から「やるべき問題」を 5 題に厳選し、ぶっちゃけた解説をさせていただきます。

やるべき問題とは、よく出る問題であり、かつ、練習すればできる問題(練習しないとできない問題)です。

info本記事ではわかりやすいよう、シンタックスハイライトや囲みなどを入れています

【厳選問題 1 】
小数点以下 4 桁まで、2 進数の桁の重みを書き出してみよう

問 1 (平成 26 年度 春期)

次の 10 進小数のうち, 2 進数で表すと無限小数になるものはどれか。

ア 0.05  イ 0.125  
ウ 0.375  エ 0.5

解説

これは、練習しないとできない問題の典型でしょう。ただし、練習すれば簡単にできるようになりますので、しっかり覚えてください。

まず、問題の趣旨を説明しましょう。

コンピュータの内部では、データが 2 進数で取り扱われています。

10 進数では、単純な小数点数であっても、それを 2 進数に変換すると、永遠に続く無限小数になってしまうものがあります。

この無限小数は、途中で打ち切られることになるので、誤差が生じることになります。それは、選択肢の中で、どの 10 進数でしょうか、という問題です。

 

問題の解き方を説明しましょう。

基本情報技術者試験の会場には、電卓を持ち込めないので、面倒な計算が必要になる問題は、出題されません。これまでの過去問題を見ると、2 進数の小数点数は、小数点以下 4 桁までしか出題されていません。

小数点以下 4 桁までの桁の重みを暗算で書き出してみましょう。

小数点 0.5 0.25 0.125 0.0625
.

2 進数は、桁が 1 つ下がると、桁の重みが 1/2 になります。

整数部の 1 桁目の桁の重みが 1 なので、小数点以下の桁の重みは、

1 の 1 / 2 の 0.5
0.5 の 1 / 2 の 0.25
0.25 の 1 / 2 の 0.125
0.125 の 1 / 2 の 0.0625

です。

2 進数を 10 進数に変換するには、桁の重みと桁の数を掛けて集計 します。これは、整数部でも小数点以下でも同様です。

そのため、小数点以下 4 桁までの 2 進数を 10 進数に変換すると、0.5 、0.25 、0.125 、0.0625 のいずれかを足し合わせた数になります。

選択肢に示された数が、0.5 、0.25 、0.125 、0.0625 のいずれかを足し合わせた数なら、小数点以下 4 桁までの 2 進数で表せます( 2 進数で 無限小数 になりません)。

そうでないなら、2 進数で 無限小数 になります。選択肢の中に 無限小数 になるものが、1 つだけあるはずだからです。

0.05 は、0.5 、0.25 、0.125 、0.0625 のいずれかを足し合わせた数ではありません。
0.125 は、0.125 そのものです。
0.375 は、0.375 = 0.25 + 0.125 です。
0.5 は、0.5 そのものです。

イ、ウ、エは、0.5 、0.25 、0.125 、0.0625 のいずれかを足し合わせた数なので、そうでない ア が 2 進数で無限小数になるはずです。

正解は、アです。

解答

searchタグで関連記事をチェック2進数

【厳選問題 2 】
この問題を通して、関係データベースの「掟(おきて)」を知っておこう

問 26 (平成26年度 春期)

項目 a の値が決まれば項目 b の値が一意に定まることを, a → b で表す。例えば,社員番号が決まれば社員名が一意に定まるという表現は,社員番号 → 社員名である。 この表記法に基づいて,図の関係が成立している項目 a ~ j を,関係データベース上の三つのテーブルで定義する組合せとして,適切なものはどれか。


ア テーブル 1 ( a )
  テーブル 2 ( b , c , d , e )
  テーブル 3 ( f , g , h , i , j )
イ テーブル 1 (a , b , c , d , e )
  テーブル 2 (b , f , g , h )
  テーブル 3 (e , i , j )
ウ テーブル 1 (a , b , f , g , h )
  テーブル 2 ( c , d )
  テーブル 3 ( e , i , j )
エ テーブル 1 ( a , c , d )
  テーブル 2 ( b , f , g , h )
  テーブル 3 ( e , i , j )

解説

データを表形式で格納する関係データベースには、必ず守らなければならないルールがあります。

それは、

「表には主キー(他と同じ値にならないユニークな列)があること」
「表には主キーに従属した(主キーによって一意に定まる)値だけがあること」

の2つです。これらは、関係データベースの「掟(おきて)」と呼べるものです。この掟がわかれば、この問題も簡単にできます。

 

問題をみてみましょう。

何やら得体の知れない図が示されていますが、アルファベットの a 、b 、c 、・・・、j で示された項目が、どれによってどれが一意に定まるかを矢印で示しているのでしょう。

したがって、この図は、

「 a が主キーであり、それに従属した b 、c 、d 、e という項目がある表」
「 b が主キーであり、それに従属した f 、g 、h という項目がある表」
「 e が主キーであり、それに従属した i 、j という項目がある表」

の 3 つを表しています。


選択肢を見ると、これまた何やら得体の知れない表現ですが、「テーブル名(項目名 1, 項目名 2, ・・・)」という意味なのでしょう。したがって、イが正解です。

解答

【厳選問題 3 】
選択肢の SQL 文の違いに注目して消去法で答えを絞り込もう

問 28 (平成 26 年度 春期)

“商品” 表,”在庫” 表に対する次の SQL 文の結果と同じ結果が得られる SQL 文はどれか。ここで,下線部は主キーを表す。

info右にスクロールできます

SELECT 商品番号 FROM 商品
  WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫) 
商品

商品番号 商品名 単価
在庫

倉庫番号 商品番号 在庫表

ア 

SELECT 商品番号 FROM 在庫
    WHERE EXISTS (SELECT 商品番号 FROM 商品)

イ 

SELECT 商品番号 FROM 在庫
    WHERE NOT EXISTS (SELECT 商品番号 FROM 商品)

ウ 

SELECT 商品番号 FROM 商品
  WHERE EXISTS (SELECT 商品番号 FROM 在庫
          WHERE 商品.商品番号 = 在庫.商品番号)

エ 

SELECT 商品番号 FROM 商品
  WHERE NOT EXISTS (SELECT 商品番号 FROM 在庫
             WHERE 商品.商品番号 = 在庫.商品番号)
解説

問題に示された SQL 文と同じ結果が得られる SQL 文を、選択肢から選ぶ問題です。

どの SQL 文も WHERE 句に SELECT 命令がある 副問合せ になっています。

見るからに難しそうですが、選択肢の SQL 文の違いに注目して消去法で答えを絞り込んでいけば、簡単にできますので、どうぞ安心してください。

 

まず、FROM 句を見てみましょう。

問題に示された SQL 文は、「 FROM 商品」です。

選択肢アとイは、「 FROM 在庫」であり、ウとエは「 FROM 商品」です。同じ結果が得られる SQL 文を選ぶのですから、「 FROM 商品」であるべきです。

これで、答えをウとエに絞れます。

SELECT 商品番号 FROM 商品 これと同じ結果になるSQL文を選ぶ
  WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫)

ア SELECT 商品番号 FROM 在庫 close
    WHERE EXISTS (SELECT 商品番号 FROM 商品)
イ SELECT 商品番号 FROM 在庫 close
    WHERE NOT EXISTS (SELECT 商品番号 FROM 商品)
ウ SELECT 商品番号 FROM 商品 panorama_fish_eye
    WHERE EXISTS (SELECT 商品番号 FROM 在庫
              WHERE 商品.商品番号 = 在庫.商品番号)
エ SELECT 商品番号 FROM 商品 panorama_fish_eye
    WHERE NOT EXISTS (SELECT 商品番号 FROM 在庫
                 WHERE 商品.商品番号 = 在庫.商品番号)
info右にスクロールできます

次に、選択肢ウとエを比べてみましょう。違いは、EXISTS の前に NOT があるかどうかだけです。

問題に示された SQL 文の条件は、「在庫表から取り出した商品番号の中に、商品番号がない( NOT IN )」です。

ウとエの EXISTS 句 の後にある SELECT 命令 は、「商品表と在庫表を商品番号で結合して、在庫表から商品番号を取り出せ」です。

この商品番号が存在しなければ、問題に示された SQL 文と同じ条件になるので、NOT があるエが正解です。

SELECT 商品番号 FROM 商品
  WHERE 商品番号 NOT IN (SELECT 商品番号 FROM 在庫)
          これと同じ結果になる SQL 文を選ぶ

ウ SELECT 商品番号 FROM 商品
    WHERE EXISTS (SELECT 商品番号 FROM 在庫
        close    WHERE 商品.商品番号 = 在庫.商品番号)
エ SELECT 商品番号 FROM 商品
    WHERE NOT EXISTS (SELECT 商品番号 FROM 在庫
        panorama_fish_eye        WHERE 商品.商品番号 = 在庫.商品番号)

解答

searchタグで関連記事をチェックSQL

【厳選問題 4 】
トランザクションの ACID 特性は、自分流のわかりやすい説明で覚えよう

問 29 (平成 26 年度 春期)

トランザクションが,データベースに対する更新処理を完全に行うか,全く処理しなかったかのように取り消すか,のどちらかの結果になることを保証する特性はどれか。

ア 一貫性 ( consistency )   
イ 原子性 ( atomicity )
ウ 耐久性 ( durability )  
エ 独立性 ( isolation )

解説

利用者から見たデータベースに対する1つのまとまった処理を 「トランザクション」 と呼びます。

利用者から見たと断っているのは、コンピュータから見たら 1 つのトランザクションが複数の処理(複数の SQL 文)で構成されている場合が多々あるからです。

 

代表的な例としてよく取り上げられるのは、銀行の振込処理です。

たとえば、「 A さんが B さんに 1 万円振り込む」という処理は、ユーザーである A さんから見れば 1 つのまとまった処理(トランザクション)ですが、コンピュータからみれば

「 A さんの口座の残高を -1 万円して更新する」と
「 B さんの口座の残高を +1 万円して更新する」

という 2 つの処理です。

 

トランザクションには、「トランザクションとは、こういうものでなければいけない」という性質があり、 ACID(アシッド)特性 と呼ばれます。

ACID は、選択肢に示された 4 つの言葉の頭文字を取ったものです。

「原子性( atomicity )」
「一貫性( consistency )」
「独立性( isolation )」
「耐久性( durability )」

どれも難しそうな言葉ですね。

こういう言葉を覚えるときは、自分流のわかりやすい説明を作るとよいでしょう。そうすれば、簡単に覚えられます。

以下に例を示します。

  • 原子性( atomicity )とは、原子のように分割できない こと
  • 一貫性( consistency )とは、実行後のデータの内容に 矛盾が生じない こと
  • 独立性( isolation )」とは、 処理途中の中途半端なデータが外部から見えない こと
  • 耐久性( durability )」とは、実行後のデータが 確実に保存され失われない こと

それでは、問題文を見てみましょう。

更新処理を完全に行うか、全く処理しなかったとように取り消すか、のどちらかの結果になることを保証する特性

を ACID から選ぶという内容になっています。

先ほどの銀行の振込処理のように、複数の処理から構成されたトランザクションは、すべての処理を行わねば適切な結果が得られません。

もしも、いずれかの処理を行えなかった場合は、すべての処理を取り消す必要があります。

つまり、トランザクションは、分割して部分的に実行できないのです。分割できないのですから、これは原子性( atomicity )です。したがって、正解はイです。

解答

【厳選問題 5 】
JIS の定義からセキュリティの本質がわかる

問 39 (平成 26 年度 春期)

情報セキュリティにおける “完全性” を脅かす攻撃はどれか。

Web ページの改ざん
システム内に保管されているデータの不正コピー
システムを過負荷状態にする DoS 攻撃
通信内容の盗聴
解説

JIS( JIS Q27001 )では、「情報セキュリティ」という言葉を「情報の機密性、完全性及び可用性を維持すること」と定義しています。

「機密性」「完全性」「可用性」どれも難しそうな言葉ですね。

先ほどの ACID 特性と同様に、こういう言葉を覚えるときは、自分流のわかりやすい説明を作るとよいでしょう。そうすれば、簡単に覚えられます。

以下に例を示します。

  • 機密性( confidentiality )とは、情報漏えいが起こらないようにすること
  • 完全性( integrity )とは、情報の改ざんが起こらないようにすること
  • 可用性( availability )とは、情報の利用停止が起こらないようにすること

選択肢ア~ウは、機密性、完全性、可用性 のいずかを脅かす攻撃になっているはずです。

「 Web ページの改ざん」は、完全性 を脅かします。
「不正コピー」は、情報が洩れるので、機密性 を脅かします。
「 DoS 攻撃」は、サービスを停止させるので、可用性 を脅かします。
「盗聴」は、情報が洩れるので、機密性 を脅かします。

ここでは、完全性を脅かす攻撃を選ぶのですから、選択肢アが正解です。

 

セキュリティという言葉は、なかなかつかみどころのないものですが、この問題を通して 機密性、完全性、可用性という 3 つのポイントがある ことを知ってください。

これは、セキュリティの本質がわかる、とってもよい問題です。

解答

記事をお読みいただきありがとうございます。

もしも、一度解いただけでは、よくわからない問題があったなら、わかるまで何度でも練習してください。「やるべき問題」は「わかるまでやるべき問題」だからです。

この厳選問題大全集が、受験者の皆様のお役に立てば幸いです。

 

label 関連タグ
実は、午前試験を『免除』できます 独習ゼミで午前免除試験を受けた 86% の方が、
午前試験を免除しています。
今なら最大 2 回の
午前免除チャンス
info_outline
今なら最大 2 回の
午前免除チャンス
詳しく見てみるplay_circle_filled
label これまでの『厳選5題 過去問と解説』の連載一覧 label 著者

『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”

大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。

主な著作物

  • 「プログラムはなぜ動くのか」(日経BP)
  • 「コンピュータはなぜ動くのか」(日経BP)
  • 「出るとこだけ! 基本情報技術者」 (翔泳社)
  • 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
  • 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数