問11:基本的なデータ構造に関する記述として、最も適切なものはどれか。
- A:キューは後入れ先出し(LIFO)の構造で、最後に格納したデータが最初に取り出される。
- B:スタックは後入れ先出し(LIFO)の構造で、関数呼び出しの戻り先の管理などに用いられる。
- C:連想配列(Key-Value)は添字に整数しか使えず、キーによる検索ができないデータ構造である。
- D:配列は要素の途中への挿入・削除がリストより高速で、メモリ上で非連続に配置される。
【第11問:正解と解説】
正解:B
・A
【論点】スタックはLIFO(関数の戻り先管理等)、キューはFIFO(順番待ち等)、連想配列はキーで値を参照、配列は連続領域でランダムアクセスが速い、という各構造の性質を区別する。【考え方】後入れ先出しか先入れ先出しか、キーで参照できるか、メモリ配置が連続か非連続かといった観点で各データ構造を正しく対応付けることが要点となる。【選択肢解説】後入れ先出しはスタックであり、キューは先入れ先出しであるため記述が誤り。
・B
【選択肢解説】スタックはLIFOで関数の戻り先管理などに用いられ正しい。
・C
【選択肢解説】連想配列はキーで値を参照でき、整数添字に限られるという記述が誤り。
・D
【選択肢解説】配列は連続配置でランダムアクセスが速いが途中挿入は不得手であり、記述が誤り。
関連過去問:データ構造(H24類似)
問12:OSS(オープンソースソフトウェア)に関する記述として、最も適切なものはどれか。
- A:OSSはソースコードが公開されているが、改変や再配布は一切許可されていない。
- B:OSSは必ず無償でなければならず、有償で提供することはライセンス上認められない。
- C:GPLなどのコピーレフト型ライセンスでは、OSSを改変して再配布する場合に同じライセンスでの公開が求められることがある。
- D:OSSを利用するとその企業の自社開発ソフトのソースコードもすべて公開する義務が常に生じる。
【第12問:正解と解説】
正解:C
・A
【論点】OSSはソースコード公開・改変・再配布が許諾される。GPL等のコピーレフトは派生物の同一ライセンス公開を求める場合がある。無償と混同せず、義務の範囲を正確に区別する。【考え方】OSSの定義(公開・改変・再配布の自由)と、コピーレフト型が課す条件を押さえる。無償を必須とする誤解や、あらゆる自社コードの公開義務が常に生じるという誤解に注意する。【選択肢解説】OSSは改変・再配布が許可されており、一切許可されないという記述が誤り。
・B
【選択肢解説】OSSは有償提供も可能であり、無償必須という記述が誤り。
・C
【選択肢解説】コピーレフト型は改変・再配布時に同一ライセンス公開を求めることがあり正しい。
・D
【選択肢解説】自社コードすべての公開義務が常に生じるわけではなく、条件は利用形態やライセンスによるため誤り。
関連過去問:OSSライセンス(H26類似)
問13:プロセスとスレッドに関する記述として、最も適切なものはどれか。
- A:スレッドは独立したメモリ空間を持ち、同一プロセス内の他スレッドとメモリを共有しない。
- B:プロセスは必ず1つのスレッドしか持てず、複数スレッドによる並行処理はできない。
- C:スレッドの生成・切替はプロセスの生成・切替より一般にオーバーヘッドが大きく低速である。
- D:1つのプロセスは複数のスレッドを持つことができ、同一プロセス内のスレッドはメモリ空間を共有する。
【第13問:正解と解説】
正解:D
・A
【論点】プロセスは独立したメモリ空間を持つ実行単位、スレッドはプロセス内の実行単位でメモリを共有し軽量に切替できる。両者の関係と生成・切替コストの違いを区別する。【考え方】メモリ空間を共有するのがプロセスかスレッドか、1プロセスが複数スレッドを持てるか、切替コストの大小はどちらが軽いかを正確に押さえる。関係を逆にする誤りに注意する。【選択肢解説】同一プロセス内のスレッドはメモリを共有するため、共有しないという記述が誤り。
・B
【選択肢解説】1プロセスは複数スレッドを持てるため、1つしか持てないという記述が誤り。
・C
【選択肢解説】スレッドの切替はプロセスより軽量であり、オーバーヘッドが大きいという記述が誤り。
・D
【選択肢解説】1プロセスは複数スレッドを持ち、それらはメモリ空間を共有するため正しい。
関連過去問:プロセスとスレッド(H29類似)
問14:データ記述・マークアップに関する記述として、最も適切なものはどれか。
- A:JSONは軽量なデータ記述形式で、キーと値の組を用いてデータを表現し、多くの言語で相互にやり取りしやすい。
- B:HTMLは数値計算専用の言語であり、Webページの文書構造を記述する用途には使えない。
- C:XMLはタグを一切使わず、固定された少数の要素だけでデータ構造を表現する形式である。
- D:CSVはタグで階層構造を厳密に表現する形式で、表形式データの単純な保存には適さない。
【第14問:正解と解説】
正解:A
・A
【論点】JSONはKey-Value形式の軽量データ記述、HTMLは文書構造の記述、XMLは拡張可能なタグでデータ構造を記述、CSVは区切り文字による表形式、という各形式の特徴を区別する。【考え方】各データ記述形式が何を表現するのに向くか、タグや区切り文字をどう使うかを押さえる。用途や記法を取り違える誤りに注意する。【選択肢解説】JSONはキーと値でデータを表す軽量形式で相互運用しやすく正しい。
・B
【選択肢解説】HTMLは文書構造を記述する言語であり、数値計算専用という記述が誤り。
・C
【選択肢解説】XMLは拡張可能なタグを用いる形式であり、タグを使わないという記述が誤り。
・D
【選択肢解説】CSVは区切り文字による表形式で階層表現は不得手であり、記述が実態と逆で誤り。
関連過去問:データ記述形式(H27類似)
問15:整列(ソート)アルゴリズムに関する記述として、最も適切なものはどれか。
- A:バブルソートは平均計算量がO(n・log2 n)で、大規模データでもクイックソートより高速なのが一般的である。
- B:クイックソートは分割統治法に基づき、平均計算量はO(n・log2 n)で大規模データの整列に広く用いられる。
- C:選択ソートは常にO(n)で整列が完了し、データ数によらず一定時間で終わる。
- D:整列アルゴリズムの計算量はどの方式でも同一であり、方式選択が性能に影響することはない。
【第15問:正解と解説】
正解:B
・A
【論点】整列アルゴリズムは方式ごとに計算量が異なり、バブル・選択ソートはO(n^2)、クイック・マージソートは平均O(n・log2 n)である。方式による性能差を区別する。【考え方】各方式の平均計算量を正しく対応付ける。O(n^2)級とO(n・log2 n)級の違い、方式選択が性能に影響するかどうかを取り違えないことが要点となる。【選択肢解説】バブルソートの平均計算量はO(n^2)であり、O(n・log2 n)でクイックソートより速いという記述が誤り。
・B
【選択肢解説】クイックソートは分割統治で平均O(n・log2 n)であり、大規模整列に用いられ正しい。
・C
【選択肢解説】選択ソートはO(n^2)級であり、常にO(n)という記述が誤り。
・D
【選択肢解説】計算量は方式で異なり性能に影響するため、同一という記述が誤り。
関連過去問:整列アルゴリズム(H25類似)

コメント