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


2023-06-26 更新

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

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

厳選問題looks_one文字列の正規表現の問題は、教わればできます

問 3 平成 28 年度 春期

UNIX における正規表現 [A-Z] + [0-9] * が表現する文字列の集合の要素となるものはどれか。 ここで,正規表現は次の規則に従う。

  • [A-Z] は、大文字の英字 1 文字を表す。
  • [0-9] は、数字 1 文字を表す。
  • + は,直前の正規表現の1 回以上の繰返しであることを表す。
  • は,直前の正規表現の0 回以上の繰返しであることを表す。

ア 456789  イ ABC+99  
ウ ABC99*  エ ABCDEF

解説

「正規表現」と聞くと、「関係データベースの正規化のこと?」や「浮動小数点数形式のこと?」と思われるかもしれませんが、そうではありません。 この問題の正規表現は、文字列のパターンが、あらかじめ決めておいていた形式に合っているかどうかを判断するためのものです。

正規表現の書き方には、 OS やプログラミング言語によっていくつかの形式がありますが、ここでは UNIX という OS の形式を取り上げています。

 

正規表現の書き方は、問題に示されているので、あらかじめ覚えておく必要はありません。 それよりも大事なことは、文字列のパターンは、プログラムの処理の流れと同じであり、

  • 「順次(まっすぐ進む)」
  • 「選択(どれかを選ぶ)」
  • 「反復(繰り返す)」

から構成されていることを知ることです。 これを知っていれば、どのような書き方の正規表現であっても、意味を理解できます。

 

問題に示された正規表現は、 [A-Z] + [0-9]* です。 左から右に向かって、このパターンでまっすぐ進みます。

これは、順次です。

 [  ]  で囲まれた部分
その中に示されたものから 1 つを選びます。
[A-Z]
A から Z の中から 1 文字を選びます。
[0-9]
0 から 9 の中から 1 文字を選びます。
これらは、選択です。
 + 
直前の 1 文字以上の繰り返し です。
[A-Z] +
A から Z の中から 1 文字を選ぶこと を 1 回以上繰り返します。
 * 
直前の 0 回以上の繰り返し です。
[0-9]*
0 から 9 の中から 1 文字を選ぶこと を 0 回以上繰り返します。
これらは、反復です。

これで、正規表現とは何かご理解いただけたでしょう。

 

それでは、問題を解いてみましょう。

[A-Z]+[0-9]* という正規表現は、文字列を左から右に向かって見て、

まず A から Z の中から 1 文字を選ぶことを 1 回以上繰り返し、
次に 0 から 9 の中から 1 文字を選ぶことを 0 回以上繰り返す、

というパターンです。

選択肢ア 456789
A から Z が 1 文字以上ないのでパターンに合っていません。
選択肢イ ABC+99
文字列の中に + があるのでパターンに合っていません。
選択肢ウ ABC99*
文字列の中に * があるのでパターンに合っていません。
選択肢エ ABCDEF
パターンに合っています。

したがって、正解は、選択肢エです。

解答

厳選問題looks_two音声のサンプリングの計算方法も、教わればわかります

問 4 平成 28 年度 春期

PCM 方式によって音声をサンプリング(標本化)して 8 ビットのディジタルデータに変換し,圧縮せずにリアルタイムで転送したところ,転送速度は 64,000 ビット / 秒であった。 このときのサンプリング間隔は何マイクロ秒か。

ア 15.6  イ 46.8  ウ 125  エ 128

解説

「こんな難しい問題できない!」と思うかもしれませんが、問題で使われている用語の意味と計算方法を教われば、必ずできるようになりますので、とにかくやってみましょう。

問題の冒頭にある「 PCM( Pulse Code Modulation 、パルス符号変調)方式」とは、データをそのまま 2 進数の符号にする形式です。 つまり、特殊なことはしないという意味なので、気にする必要はありません。

「サンプリング(標本化)」
一定の時間間隔でデータを記録することです。 この時間間隔を「サンプリング間隔」と呼びます。
「転送速度」
1 秒間に送るデータの量です。 ここでは、 1 回のサンプリングで 8 ビットのデータが記録されます。 それを、そのまま送ったところ、 1 秒間に 64,000 ビット のデータ量になったのです。

それでは、サンプリング間隔は何マイクロ秒でしょう? という問題です。

1 回のサンプリングで 8 ビット のデータが得られ、
1 秒間に 64,000 ビット のデータ量になったのですから、
1 秒間に 64,000 ÷ 8 = 8,000 回のデータの記録が行われています。

サンプリング回数を求めるなら 8,000 回で正解なのですが、ここではサンプリング間隔を求めなければなりません。

 

1 秒間に 8,000 回ですから、サンプリング間隔は、 1 秒 ÷ 8,000 回 です。 このまま計算するのは、面倒ですが、答えをマイクロ秒単位で求めることになっています。

1 秒 = 1,000,000 マイクロ秒
1 秒 ÷ 8,000 回 = 1,000,000 秒 ÷ 8,000 回 = 1,000 秒 ÷ 8 回
= 125 マイクロ秒

簡単に計算できますね。

したがって、正解は、選択肢ウです。

できましたね!

解答

searchタグで関連記事をチェック音声サンプリング

厳選問題looks_3割り算が引き算の繰り返しで実現できることも、教われば納得できます

問 8 平成 28 年度 春期

x と y を自然数とするとき,流れ図で表される手続を実行した結果として,適切なものはどれか。


q の値 r の値
x ÷ y の余り x ÷ y の商
x ÷ y の商 x ÷ y の余り
y ÷ x の余り y ÷ x の商
y ÷ x の商 y ÷ x の余り
解説

「割り算は、引き算の繰り返しで実現できる」ということをご存じですか。

たとえば、 100 ÷ 3 という割り算は、 100 から 3 を引くこと を 繰り返す ことで実現できます。 33 回引けて 1 が余るので、 100 ÷ 3 の 商は 33 で 余りは 1 です。

私の知る限り、市販のほとんどの解説書には、「割り算は、引き算の繰り返しで実現できる」という説明はありません。

当たり前のことだからでしょう。

 

しかし、その当たり前のことも、初めて知る人には当たり前ではないはずです。 そして、初めて知る人には当たり前ではないことが、この問題に出ているのです。 ですから、練習しておきましょう。

フローチャート、擬似言語、プログラミング言語のどれで表記されていても、アルゴリズムを読み取るコツは、わかりやすい具体例を想定することです。

 

ここでは、 100 ÷ 3 という割り算を具体例にしましょう。 100 ÷ 3 という割り算では、 100 から 繰り返し 3 を引く処理を行うことになります。

引き算をしているのはr ← r - yです。 したがって、 y は 100 ÷ 3 の 3 に相当します。
q ← 0で q に初期値として 0 を代入し、
r ← r - yを行うたびにq ← q + 1で q の値をカウントアップ しています。

したがって、 q は 3 を引けた回数であり、割り算の商です。

r ← xで r に初期値として x を代入し、
r ← r - yで繰り返し r から y を引いている のですから、 x から y を繰り返し引いたのと同じ結果が得られます。

したがって、 x は 100 ÷ 3 の 100 に相当し、ここでは x ÷ y という割り算が行われています。

r < yという条件が Yes なら、もう r から y が引けないので、繰り返しが終わります。

このとき、 r には 100 ÷ 3 の 余りの 1 が格納されています。

以上のことから、 x ÷ y という割り算を行っていて、 q が商 で、 r が 余り であることがわかりました。 正解は、選択肢イです。

解答

searchタグで関連記事をチェックテクニック 具体的な値を想定

厳選問題looks_4「何これ?」という問題ですが、教わって覚えてください

問 10 平成 28 年度 春期

RISC プロセッサの5段パイプラインの命令実行制御の順序はどれか。 ここで、このパイプラインのステージは次の五つとする。

  1. 書込み
  2. 実行とアドレス生成
  3. 命令デコードとレジスタファイル読出し
  4. 命令フェッチ
  5. メモリアクセス

ア (3), (4), (2), (5), (1)  
イ (3), (5), (2), (4), (1)
ウ (4), (3), (2), (5), (1)  
エ (4), (5), (3), (2), (1)

解説

初めてこの問題を見たなら「何これ?」と思うでしょう。

これは、コンピュータのプロセッサ( CPU とも呼びます)が、プログラムを解釈・実行するときの手順を答える問題です。

プロセッサには、いくつかの種類があるので、 RISC( Reduced Instruction Set Computer 、リスク)プロセッサであると断わり、 5 段階の手順で解釈・実行するとしているので、 5 段パイプラインであると断っているのです。

ここでは、これらを気にする必要はありません。 RISC やパイプラインをテーマにした問題に遭遇したときに、大いに気にしてください。

 

それでは、問題を解くために必要とされる知識をお教えしましょう。

プログラムのひとつの処理は、「 ○○ せよ、△△ を」という形式になっています。 「 ○○ せよ」の部分は、命令であり、「 △△ を」の部分は命令の対象となるデータです。

命令もデータも、メモリの中にあります。

プロセッサは、

  1. 「命令を読み込む」→
  2. 「命令を解釈する」→
  3. 「命令を実行する」→
  4. 「データを読み込んで演算する」→
  5. 「結果をメモリに書き込む」

という手順で、プログラムを解釈・実行します。


「ええっ、こんな難しいこと覚えられないよ!」と思われるかもしれませんが、決して難しくありません。

繰り返しますが、プログラムのひとつの処理は、命令とデータから構成されています。 命令を先に解釈しないと、どのようなデータが対象になるのかわかりませんね。

そして、命令を解釈するためには、その前に命令を読み込まなければなりません。 命令を読み込んで、解釈したら、実行します。

ここまでが、「(1) 命令を読み込む」→「(2) 命令を解釈する」→「(3) 命令を実行する」という手順です。

 

命令を実行したら、命令の対象となるデータが演算されます。 それが、「(4) メモリのデータを読み込んで演算する」です。

演算したら「(5) 結果をメモリに書き込む」を行います。

 

これで、(1) から (5) の手順がつながりました。 難しくないでしょう。

 

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

「(1) 命令を読み込む」→「(2) 命令を解釈する」→「(3) 命令を実行する」→「(4) データを読み込んで演算する」→「(5) 結果をメモリに書き込む」という手順が、専門用語を交えて示されています。

問題に示された
「(4) 命令フェッチ」の「フェッチ( fetch )」は、「読み込む」という意味です。
「(3) デコード」の「デコード( decode )」は、「解釈する」という意味です。

したがって、専門用語を交えると

(4) 「命令フェッチ」→
(3) 「命令デコード」→
(2) 「実行」→
(5) 「メモリアクセス」→
(1) 「書き込み」

という順序になります。 正解は、選択肢ウです。

解答

厳選問題looks_5計算方法をお教えしますので、暗記でなく仕組みで覚えてください

問 12 平成 28 年度春期

表示解像度が 1,000 × 800 ドットで,色数が 65,536 色 ( 210 色) の画像を表示するのに最低限必要なビデオメモリ容量は何 M バイトか。 ここで, 1 M バイト = 1,000 k バイト, 1 K バイト = 1,000 バイトとする。

ア 1.6  イ 3.2  ウ 6.4  エ 12.8

解説

基本情報技術者試験に出題される計算問題の多くは、実務でそのような計算が必要とされるのではなく、「仕組みがわかっているなら計算できるよね?」という問題です。

ですから、計算方法を暗記するのではなく、仕組みを覚えて計算できるようになってください。 この問題は、その好例です。

はじめに、仕組みを説明しますので、それを覚えたら計算を行ってみましょう。

コンピュータの画面には、縦横に小さな粒が並んでいます。 この粒を「ドット」や「ピクセル」や「画素」と呼びます。

それぞれのドットは、メモリの記憶領域に対応付けられていて、このメモリを「ビデオメモリ」や「 VRAM( Video RAM 、ブイラム)」と呼びます。

1 つのドットに割り当てられているメモリの記憶容量によって、表現できる色数が決まります。

1 ビット なら 2 色、
2 ビット なら 4 色、
3 ビット なら 8 色、
more_vert
N ビット なら 2N 色 です。

ここまでが、この問題を解くために知っておくべき仕組みです。

 

それでは、計算を行ってみましょう。

表示解像度が 1,000 × 800 ドットということは、画面に 1,000 × 800 個のドットがあるということです。
色数が 65,536 色( 216 色)ということは、 1 つのドットに割り当てられるメモリの記憶容量が 16 ビット = 2 バイト ということです。

したがって、画面全体で必要とされるメモリの記憶容量は、

chevron_right1,000 × 800 × 2 = 1,600,000 バイト = 1.6 M バイト

です。

正解は、選択肢アです。

「ええっ、こんな簡単な計算なの!」と思われるでしょう。 「仕組みがわかっているなら計算できるよね?」という問題なので、計算は簡単な場合が多いのです。

解答

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

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

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

 

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『厳選5題 過去問と解説』の連載一覧 label 著者