問6:計算量がO(n^2)のアルゴリズムがある。データ数n=100のとき実行時間が1秒であった場合、n=300のときの実行時間として最も適切なものはどれか。
【資料】アルゴリズムの計算量はO(n^2)。n=100で1秒。実行時間は計算量に比例するものとする。参考としてO(n)なら3秒、O(n^3)なら27秒だが、本問はO(n^2)である。
- A:9秒
- B:3秒
- C:27秒
- D:6秒
【第6問:正解と解説】
正解:A
・A
【論点】実行時間が計算量に比例する場合、データ数がk倍になると実行時間はオーダーに応じて変化する。O(n^2)ではk^2倍になる。オーダーの指数を取り違えないことが要点となる。【考え方】データ数の倍率をオーダーの指数だけ累乗した分だけ実行時間が増える。O(n^2)なら倍率の2乗、O(n^3)なら3乗となる。線形と二次を混同しないよう注意する。【選択肢解説】データ数が3倍でO(n^2)なので3^2=9倍、実行時間は9秒となり正しい。
・B
【選択肢解説】O(n)として3倍とした誤りで、二次の増加を線形と取り違えている。
・C
【選択肢解説】O(n^3)として27倍とした誤りで、オーダーの指数を1つ大きく取っている。
・D
【選択肢解説】倍率の扱いを誤り、指数を反映していない値である。
関連過去問:計算量と実行時間(H29類似)
問7:OS(基本ソフトウェア)とミドルウェアに関する記述として、最も適切なものはどれか。
- A:応用ソフトウェアはハードウェアを直接制御し、OSを介さずにメモリ管理やタスク管理を自ら行うのが一般的である。
- B:ミドルウェアはOSと応用ソフトウェアの中間に位置し、DBMSやWebサーバのように共通機能を提供するソフトウェアである。
- C:OSのタスク管理とは、複数のファイルを1つの圧縮ファイルにまとめて保存する機能を指す。
- D:デバイスドライバはOSとは無関係に動作し、いかなる周辺機器でも共通の単一ドライバで制御できる。
【第7問:正解と解説】
正解:B
・A
【論点】OSは基本ソフトウェアとしてハードウェア資源の管理(タスク・メモリ・ファイル・入出力)を担い、ミドルウェアはOSと応用ソフトの中間で共通機能を提供する。各層の役割を区別する。【考え方】ソフトウェアの階層構造(ハードウェア→OS→ミドルウェア→応用ソフト)と各層の担当機能を正確に押さえる。タスク管理やドライバの役割を別の機能と取り違えないことが要点となる。【選択肢解説】応用ソフトは通常OSを介して資源を利用しており、直接制御が一般的という記述が誤り。
・B
【選択肢解説】ミドルウェアはOSと応用ソフトの中間で共通機能を提供し正しい。
・C
【選択肢解説】タスク管理は処理の実行制御であり、ファイル圧縮とする記述が誤り。
・D
【選択肢解説】デバイスドライバは機器ごとに用意され、単一ドライバで全機器を制御できるという記述が誤り。
関連過去問:OSとミドルウェア(H26類似)
問8:仮想記憶に関する記述として、最も適切なものはどれか。
- A:仮想記憶は主記憶の容量を物理的に増設する技術であり、補助記憶は一切使用しない。
- B:ページングでは主記憶が不足しても補助記憶を用いないため、大きなプログラムは実行できない。
- C:仮想記憶は主記憶と補助記憶を組み合わせ、実際の主記憶容量より大きな記憶空間を利用可能にする技術である。
- D:スワッピングが頻発してもシステム性能に影響はなく、スラッシングは発生しない。
【第8問:正解と解説】
正解:C
・A
【論点】仮想記憶は補助記憶を主記憶の延長として使い、物理主記憶より大きなアドレス空間を提供する。ページング・スワッピングの仕組みと、過度な入替えで生じるスラッシングを理解する。【考え方】仮想記憶が何と何を組み合わせて容量を補うのか、入替えが多発したときに何が起こるのかを押さえる。補助記憶を使わないとする記述や、性能低下が生じないとする記述に注意する。【選択肢解説】仮想記憶は物理増設ではなく補助記憶を活用する技術であり、補助記憶を使わないという記述が誤り。
・B
【選択肢解説】ページングは補助記憶を用いて大きなプログラムを実行可能にするため、記述が逆で誤り。
・C
【選択肢解説】仮想記憶は主記憶と補助記憶を組み合わせ大きな記憶空間を提供し正しい。
・D
【選択肢解説】スワッピング多発時はスラッシングにより性能が低下するため、影響なしという記述が誤り。
関連過去問:仮想記憶(H25類似)
問9:プログラムの言語処理系に関する記述として、最も適切なものはどれか。
- A:インタプリタはソースコード全体を事前に機械語へ翻訳し、実行可能ファイルを生成してから実行する方式である。
- B:コンパイラはソースコードを1行ずつ解釈しながら逐次実行するため、実行可能ファイルを生成しない。
- C:高水準言語で書かれたプログラムは翻訳せずにCPUがそのまま直接実行できる。
- D:コンパイラはソースコード全体を機械語へ翻訳して実行可能ファイルを生成し、インタプリタは逐次解釈しながら実行する。
【第9問:正解と解説】
正解:D
・A
【論点】コンパイラは事前に全体を機械語へ翻訳して実行ファイルを生成、インタプリタは実行時に逐次解釈する。高水準言語は機械語への翻訳が必要である点も含めて区別する。【考え方】翻訳を事前にまとめて行うか実行時に逐次行うかで両者を区別する。実行可能ファイルを生成するのはどちらか、CPUが直接実行できるのは何かを取り違えないことが要点となる。【選択肢解説】全体を事前翻訳して実行ファイルを生成するのはコンパイラであり、インタプリタの説明として誤り。
・B
【選択肢解説】1行ずつ逐次実行するのはインタプリタであり、コンパイラの説明と入れ替わっている。
・C
【選択肢解説】高水準言語は機械語への翻訳が必要であり、直接実行できるという記述が誤り。
・D
【選択肢解説】コンパイラは事前翻訳、インタプリタは逐次解釈という対応で正しい。
関連過去問:言語処理系(H27類似)
問10:オブジェクト指向プログラミングの概念に関する記述として、最も適切なものはどれか。
- A:カプセル化はデータとそれを操作する手続きを1つにまとめ、内部の実装を外部から隠蔽する仕組みである。
- B:継承とは、あるクラスの内部データをすべて公開し、外部から自由に書き換え可能にする仕組みである。
- C:多相性(ポリモーフィズム)とは、1つのクラスから複数のインスタンスを生成できないよう制限する概念である。
- D:インスタンスとはクラスの設計図そのものを指し、クラスはその設計図から生成された実体を指す。
【第10問:正解と解説】
正解:A
・A
【論点】カプセル化(データと手続きの一体化・隠蔽)、継承(上位クラスの性質を引き継ぐ)、多相性(同一操作が対象で異なる振る舞い)、クラスとインスタンスの関係を正確に区別する。【考え方】各概念の定義を正確に押さえる。継承・多相性・カプセル化の説明を入れ替える誤りや、クラスとインスタンス(設計図と実体)の関係を逆にする誤りに注意する。【選択肢解説】カプセル化はデータと手続きをまとめ内部を隠蔽する仕組みであり正しい。
・B
【選択肢解説】データを全公開して自由に書き換え可能にするのはカプセル化と反対の考えであり、継承の説明として誤り。
・C
【選択肢解説】多相性はインスタンス生成を制限する概念ではなく、記述が誤り。
・D
【選択肢解説】クラスが設計図、インスタンスが実体であり、両者の関係が逆で誤り。
関連過去問:オブジェクト指向(H28類似)

コメント