- トップページ
- 基本情報技術者
- 平成16年度秋季問題
- 平成16年度秋季解答・解説
平成16年度秋季解答
問題41
プログラムの制御構造に関する記述のうち、適切なものはどれか。
ア | “後判定繰返し”は、繰返し処理の先頭で終了条件の判定を行う。 |
イ | “双岐選択”は、前の処理に戻るか、次の処理に進むかを選択する。 |
ウ | “多岐選択”は、二つ以上の処理を並列に行う。 |
エ | “前判定繰返し”は、繰返し処理の本体を 1 回も実行しないことがある。 |
解答:エ
<解説>
- 前判定繰返し
- ループ構造の先頭で条件を判定します。条件が真であればループ内の処理を繰り返し実行し、偽であれば、ループを抜ける構造です。条件によってはループ内の処理を 1回も実行しない可能性がある。
「For ~ や Do While~」が、これに相当する。 - 後判定繰返し
- ループ構造の最後で条件を判定します。条件が真であればループ内の先頭へ戻って処理を実行し、偽であれば、ループを抜ける構造です。条件判定が最後にあるので、ループ内の処理は最低でも 1回は実行される。
「Do ~ Until」が、これに相当する。 - 双岐選択
- 条件の真偽によって、2つの処理のうちどちらかを実行する構造である。
「IF THEN ~ ELSE ~」 が、これに相当する。 - 多岐選択
- 条件によって、2つ以上の処理のうちどれかを実行する構造です。双岐選択を何段階にも使用( IF THEN ~ ELSEIF ~ ELSEIF ~ ・・・ )することで多岐選択と同様の処理構造を表現できるが、複雑になってしまうので、選択肢が多い場合は多岐選択が使用される。
「SWITCH CASE ~」 が、これに相当します。
ア | × | “後判定繰返し”は、繰返し処理の最後で終了条件の判定を行う。 |
イ | × | “双岐選択”は、条件の真偽によって、2つの処理のうちどちらかを実行する構造である。 |
ウ | × | “多岐選択”は、条件によって、2つ以上の処理のうちどれかを実行する構造です。ただし、並列に行うものではない。 |
エ | ○ | ループ構造の先頭で条件を判定します。条件が真であればループ内の処理を繰り返し実行し、偽であれば、ループを抜ける構造です。条件によってはループ内の処理を 1回も実行しない可能性がある。 |
問題42
再帰的プログラムの特徴として、最も適切なものはどれか。
ア | 一度実行した後、ロードし直さずに再び実行を繰り返しても、正しい結果が得られる。 |
イ | 実行中に自分自身を呼び出すことができる。 |
ウ | 主記憶上のどこのアドレスに配置しても、実行することができる。 |
エ | 同時に複数のタスクが共有して実行しても、正しい結果が得られる。 |
解答:イ
<解説>
ア | × | リユーザブル(再使用可能)に関する説明である。 |
イ | ○ | リカーシブル(再帰的プログラム)に関する説明である。 |
ウ | × | リロケータブル(再配置可能)に関する説明である。 |
エ | × | リエントラント(再入可能)に関する説明である。 |
問題43
言語プロセッサに関する記述のうち、適切なものはどれか。
ア | アセンブラは、ある処理系用に書かれた原始プログラムを、ほかの処理系用の原始プログラムに変換する。 |
イ | インタプリタは、ほかのコンピュータ用のプログラムを解読し、実行するマイクロプログラムである。 |
ウ | ジェネレータは、入力・処理・出力などの必要な条件をパラメタで指示することによって、処理目的に応じたプログラムを生成する。 |
エ | トランスレータは、高水準言語で書かれたプログラムを、解釈しながら実行する。 |
解答:ウ
<解説>
ア | × | トランスレータに関する説明である。アセンブラは、低水準言語であるアセンブリ言語を機械語に翻訳するプロセッサである。 |
イ | × | エミュレータに関する説明である。インタプリタは、ソースコードを1行ずつ機械語に変換しながら実行するプロセッサである。 |
ウ | ○ | ジェネレータは、入力・処理・出力などの必要な条件をパラメタで指示することによって、処理目的に応じたプログラムを生成する。 |
エ | × | インタプリタに関する説明である。トランスレーターは、データやプログラムを変換するソフトウエアである。 |
問題44
Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。
[条件]
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ 100 行のバイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり、コンパイルしてから実行すると 0.003 秒掛かる。
(3) コンパイル時間は 100 行当たり 0.1 秒掛かる。
(4) コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力、コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。
(5) プログラムファイルのダウンロード時間など、その他の時間は無視して考える。
ア | 50 |
イ | 75 |
ウ | 125 |
エ | 155 |
解答:エ
<解説>
- インタプリタ
- ソースコードを1行ずつ機械語に変換しながら実行するプロセッサ
- コンパイラ
- ソースコードを一括で機械語に変換(コンパイル)してから実行するプロセッサ
プログラム行数をaとする。
コンパイラ方式の処理時間=実行時間+コンパイル時間+オーバヘッドより、
0.003÷100×a+0.1÷100×a+0.15
インタプリタ方式の処理時間=実行時間より、
0.2÷100×a
コンパイラ方式の処理時間<インタプリタ方式の処理時間により、
( 0.003 ÷ 100 )× a +( 0.1 ÷ 100 )× a +( 0.15 )<( 0.2 ÷100 )× a
a > 約 154.64≒155となり、155行以上であればコンパイラ方式の方が早いことになる。
問題45
Web環境での動的処理を実現するプログラムであって、Webサーバだけで動作するものはどれか。
ア | JavaScript |
イ | Javaアプレット |
ウ | Javaサーブレット |
エ | VBScript |
解答:ウ
<解説>
Java Servlet(ジャバ サーブレット)とは、サーバ上でウェブページなどを動的に生成したりデータ処理を行うために、Javaで作成されたプログラム及びその仕様である。
よって正解はウである。
お問い合わせ