資格道場
学習状況 お問い合わせ ログイン 無料登録

基本情報技術者「アルゴリズム・プログラミング」の一問一答

1 / -- 正解: 0
📖 基本情報技術者「アルゴリズム・プログラミング」の全102問と解説(一覧)

基本情報技術者のアルゴリズム・プログラミングに関する一問一答(全102問)の正解と解説の一覧です。上の一問一答で実際に解いてから、ここで復習・確認できます。

  1. 問1.アルゴリズムは、問題を解決するための手順だが明確に定義する必要はない。

    正解:×(誤り)

    解説:誤り。アルゴリズムは「明確に定義された手順」(曖昧では実装不可)。

  2. 問2.フローチャートは、テキストでアルゴリズムを記述する手法である。

    正解:×(誤り)

    解説:誤り。フローチャートは「図式化(フロー図)」(テキスト記述は擬似言語等)。

  3. 問3.配列は、異なる型のデータを格納するデータ構造である。

    正解:×(誤り)

    解説:誤り。配列は「同じ型のデータを連続領域に格納」(異なる型は不可)。

  4. 問4.連結リストでは、各要素は配列のように連続したメモリ領域に格納される。

    正解:×(誤り)

    解説:誤り。連結リストは「ポインタで連結」(連続メモリは配列)。

  5. 問5.スタックは、最初に入れたデータを最初に取り出すFIFO方式のデータ構造である。

    正解:×(誤り)

    解説:誤り。スタックはLIFO(後入れ先出し)。FIFO(先入れ先出し)はキューです。

  6. 問6.キューは、最後に入れたデータを最初に取り出すLIFO方式である。

    正解:×(誤り)

    解説:誤り。キューは「先入れ先出し(FIFO)」(LIFOはスタック)。

  7. 問7.二分探索木では、左の子ノードの値は親より大きく、右の子ノードの値は親より小さい。

    正解:×(誤り)

    解説:誤り。二分探索木は「左子<親、右子>親」(記述が逆)。

  8. 問8.ハッシュ法では、線形探索によりデータの格納位置を見つける。

    正解:×(誤り)

    解説:誤り。ハッシュ法は「ハッシュ関数で位置決定」(線形探索は別手法)。

  9. 問9.線形探索の平均計算量はO(log n)である。

    正解:×(誤り)

    解説:誤り。線形探索は「O(n)」(O(log n)は二分探索)。

  10. 問10.二分探索は、整列されていないデータにも適用できる。

    正解:×(誤り)

    解説:誤り。二分探索はデータがあらかじめソートされている必要があります。

  11. 問11.二分探索の計算量はO(n)である。

    正解:×(誤り)

    解説:誤り。二分探索は「O(log n)」(n回はソート済み配列で線形)。

  12. 問12.バブルソートは、最大値から順番に確定させていくアルゴリズムである。

    正解:×(誤り)

    解説:誤り。バブルソートは「隣接要素を比較交換」(最大値順は選択ソート)。

  13. 問13.クイックソートの平均計算量はO(n²)、最悪はO(n log n)である。

    正解:×(誤り)

    解説:誤り。クイックは平均「O(n log n)」、最悪「O(n²)」(記述が逆)。

  14. 問14.マージソートの最悪計算量はO(n²)である。

    正解:×(誤り)

    解説:誤り。マージソートは平均・最悪ともに「O(n log n)」(O(n²)はバブル等)。

  15. 問15.再帰処理は、終了条件がなくても永遠に実行される設計である。

    正解:×(誤り)

    解説:誤り。再帰には「必ず終了条件(基底条件)が必要」(無限ループは設計ミス)。

  16. 問16.コンパイラは、ソースコードを1行ずつ解釈実行する方式である。

    正解:×(誤り)

    解説:誤り。コンパイラは「一括翻訳」(1行ずつ解釈はインタプリタ)。

  17. 問17.インタプリタは、ソースコードを一括して機械語に翻訳する方式である。

    正解:×(誤り)

    解説:誤り。インタプリタは「1行ずつ解釈実行」(一括翻訳はコンパイラ)。

  18. 問18.オブジェクト指向の三大要素は、関数化・順次・分岐である。

    正解:×(誤り)

    解説:誤り。OOP3要素は「カプセル化・継承・ポリモーフィズム」(プログラミング基本構造とは別)。

  19. 問19.カプセル化とは、データを直接外部から自由にアクセスさせる仕組みである。

    正解:×(誤り)

    解説:誤り。カプセル化は「外部からの直接アクセスを制限」(自由アクセスはカプセル化と逆)。

  20. 問20.継承は、新しいクラスが既存クラスの機能をすべて削除する仕組みである。

    正解:×(誤り)

    解説:誤り。継承は「既存クラスの機能を引き継ぐ」(削除ではない)。

  21. 問21.ポリモーフィズムは、異なる名前のメソッドが同じ動作をする性質である。

    正解:×(誤り)

    解説:誤り。ポリモーフィズムは「同じ名前のメソッドが異なるクラスで異なる動作」(記述が逆)。

  22. 問22.UMLのクラス図で、継承関係は破線の矢印(→)で表す。

    正解:×(誤り)

    解説:誤り。UMLの継承は「実線の矢印(▷)」(破線は依存等)。

  23. 問23.Singletonパターンは、複数のインスタンスを許容するパターンである。

    正解:×(誤り)

    解説:誤り。Singletonは「インスタンスが1つしか存在しないことを保証」(複数許容ではない)。

  24. 問24.構造化プログラミングの基本構造は、関数・モジュール・クラスの3つである。

    正解:×(誤り)

    解説:誤り。構造化プログラミング3要素は「順次・選択・繰返し」(関数・クラスはOOP)。

  25. 問25.ホワイトボックステストは、内部構造を意識せず仕様に基づくテストである。

    正解:×(誤り)

    解説:誤り。ホワイトボックスは「内部構造に基づく」、仕様ベースはブラックボックス。

  26. 問26.ブラックボックステストは、プログラムの内部構造に基づくテストである。

    正解:×(誤り)

    解説:誤り。ブラックボックスは「内部構造を意識せず仕様ベース」(記述が逆)。

  27. 問27.単体テスト(ユニットテスト)は、結合テストより後に行う。

    正解:×(誤り)

    解説:誤り。テストは単体→結合→システム→受入の順で進めます。

  28. 問28.スタブとは、テスト対象が呼び出される上位モジュールの代替モジュールである。

    正解:×(誤り)

    解説:誤り。スタブは「下位モジュールの代替」(上位代替はドライバ)。

  29. 問29.疑似言語は、特定のプログラミング言語の文法に厳密に従う必要がある。

    正解:×(誤り)

    解説:誤り。疑似言語は「特定言語の文法に依存しない」(汎用記法)。

  30. 問30.Pythonは動的型付けのインタプリタ型プログラミング言語である。

    正解:○(正しい)

    解説:Pythonは動的型付け・インタプリタ言語で、機械学習やWeb開発で広く利用されます。

  31. 問31.JavaScriptは主にWebブラウザ上で動作するクライアントサイドスクリプト言語として始まった。

    正解:○(正しい)

    解説:JavaScriptは現在Node.jsによりサーバ側でも動作しますが、元はブラウザ用でした。

  32. 問32.アジャイル開発におけるスクラムでは、開発期間を「スプリント」と呼ばれる一定期間に区切って反復開発を行う。

    正解:○(正しい)

    解説:スクラムは1〜4週間程度のスプリントを繰り返します。

  33. 問33.DevOpsは、開発(Development)と運用(Operations)を連携・統合する考え方・実践である。

    正解:○(正しい)

    解説:DevOpsは継続的インテグレーション/デリバリー(CI/CD)を中心としたソフトウェア開発手法です。

  34. 問34.バージョン管理システムのGitは、分散型バージョン管理システムである。

    正解:○(正しい)

    解説:Gitは分散型VCSで、各ユーザがローカルリポジトリを持ちます。

  35. 問35.生成AIの活用において、プロンプトエンジニアリングとは生成AIから望ましい出力を得るための指示(プロンプト)を設計する技術である。

    正解:○(正しい)

    解説:2023年以降のシラバスに「生成AI」関連項目が追加されており、FEでも頻出テーマになっています。

  36. 問36.長さnの配列に対する線形探索の平均計算量はどれか。

    • ア.O(n)
    • イ.O(log n)
    • ウ.O(1)
    • エ.O(n²)

    正解:ア.O(n)

    解説:線形探索(リニアサーチ)は配列の先頭から順に比較する手法で、平均比較回数はn/2回。計算量はO(n)。データ数増加に比例して時間も増加。

  37. 問37.ソートアルゴリズムのうち、平均計算量がO(n²)でないものはどれか。

    • ア.バブルソート
    • イ.マージソート
    • ウ.挿入ソート
    • エ.選択ソート

    正解:イ.マージソート

    解説:マージソートは平均O(n log n)。他3つはO(n²)です。

  38. 問38.スタックに1,2,3の順にデータをpushした後、順にpopするとどの順序で取り出されるか。

    • ア.1,2,3
    • イ.2,1,3
    • ウ.3,2,1
    • エ.3,1,2

    正解:ウ.3,2,1

    解説:スタックはLIFOのため逆順3,2,1。

  39. 問39.キューに1,2,3の順にenqueueした後、順にdequeueするとどの順序で取り出されるか。

    • ア.3,1,2
    • イ.3,2,1
    • ウ.2,1,3
    • エ.1,2,3

    正解:エ.1,2,3

    解説:キューはFIFOのため投入順1,2,3。

  40. 問40.要素数1,024の整列済配列に対する二分探索の最大比較回数として最も近いものはどれか。

    • ア.10
    • イ.5
    • ウ.100
    • エ.1024

    正解:ア.10

    解説:log₂1024=10。最大10回の比較で探索可能。

  41. 問41.次のうち、安定ソートでないものはどれか。

    • ア.バブルソート
    • イ.クイックソート
    • ウ.挿入ソート
    • エ.マージソート

    正解:イ.クイックソート

    解説:クイックソートは一般的に安定ソートではありません。

  42. 問42.オブジェクト指向で、同一メソッド名でもオブジェクトの型により異なる動作をする性質を何と呼ぶか。

    • ア.カプセル化
    • イ.継承
    • ウ.ポリモーフィズム
    • エ.抽象化

    正解:ウ.ポリモーフィズム

    解説:ポリモーフィズム(多態性)はオブジェクト指向の3大特性の一つ。同名メソッドがオブジェクトの型により異なる振る舞いをする。継承+オーバーライドで実現。

  43. 問43.UMLで、クラス間の「is-a」関係を表す記法はどれか。

    • ア.関連
    • イ.集約
    • ウ.依存
    • エ.汎化(継承)

    正解:エ.汎化(継承)

    解説:UMLで is-a関係(継承関係)は汎化で表す(白抜き三角形矢印)。is-a関係はサブクラス→スーパークラスの汎化を意味する。has-a は集約・コンポジション。

  44. 問44.ソフトウェア開発手法のうち、要件→設計→実装→テストを順次進める手法はどれか。

    • ア.ウォーターフォール
    • イ.アジャイル
    • ウ.スパイラル
    • エ.プロトタイピング

    正解:ア.ウォーターフォール

    解説:ウォーターフォールは段階を後戻りせず進める伝統的手法です。

  45. 問45.テスト技法のうち、入力値を代表的な範囲に分けて、各範囲から1つずつ代表値を選ぶ手法はどれか。

    • ア.境界値分析
    • イ.同値分割
    • ウ.原因結果グラフ
    • エ.エラー推測

    正解:イ.同値分割

    解説:同値分割(Equivalence Partitioning)の定義です。

  46. 問46.境界値分析テストで、条件「1≦x≦100」に対してテストすべき境界値として適切でないものはどれか。

    • ア.0
    • イ.1
    • ウ.50
    • エ.101

    正解:ウ.50

    解説:50は代表値(同値分割)。境界は0,1,100,101です。

  47. 問47.アジャイル開発の価値観として、アジャイルソフトウェア開発宣言で重視されているものはどれか。

    • ア.包括的なドキュメント
    • イ.契約交渉
    • ウ.計画に従うこと
    • エ.変化への対応

    正解:エ.変化への対応

    解説:アジャイル宣言では「計画に従うことよりも変化への対応を」が掲げられています。

  48. 問48.次のうち、バージョン管理システムの分散型(DVCS)に該当するものはどれか。

    • ア.Git
    • イ.Subversion
    • ウ.CVS
    • エ.VSS

    正解:ア.Git

    解説:Git、Mercurialが分散型。CVS/Subversion/VSSは集中型です。

  49. 問49.フェイルセーフの考え方として最も適切なものはどれか。

    • ア.障害発生時に処理速度を上げる
    • イ.障害発生時にシステムを安全な状態に保つ
    • ウ.障害発生時にすべての機能を停止させる
    • エ.障害発生時に処理を続行する

    正解:イ.障害発生時にシステムを安全な状態に保つ

    解説:フェイルセーフは故障時も安全側に振舞う設計思想です。

  50. 問50.生成AIを業務で活用する際の留意点として、最も適切なものはどれか。

    • ア.生成結果は常に正しいので無条件に採用してよい
    • イ.機密情報や個人情報を入力してもリスクはない
    • ウ.ハルシネーション(誤情報生成)のリスクがあるため結果の検証が必要
    • エ.著作権の考慮は不要である

    正解:ウ.ハルシネーション(誤情報生成)のリスクがあるため結果の検証が必要

    解説:生成AIは誤情報を生成することがあり、出力内容の検証・著作権・情報漏洩対策が不可欠です。

  51. 問51.プログラムの基本制御構造は、順次・選択・反復の3種類である。

    正解:○(正しい)

    解説:構造化プログラミング3要素:順次(sequence)・選択(if-else)・反復(while/for)。すべてのアルゴリズムを表現可。

  52. 問52.配列は、同じ型の要素を連続したメモリに格納するデータ構造で、添字で要素にアクセスできる。

    正解:○(正しい)

    解説:配列:固定長・連続メモリ。添字で O(1) アクセス。挿入・削除はO(n)(要素移動必要)。

  53. 問53.連結リストは、各要素がポインタで次の要素を指し示すデータ構造である。

    正解:○(正しい)

    解説:連結リスト:要素+次要素へのポインタ。挿入・削除はO(1)(位置特定済の場合)、ランダムアクセスはO(n)。

  54. 問54.スタックの操作は、要素を追加する push と取り出す pop が基本である。

    正解:○(正しい)

    解説:スタック:LIFO(後入先出)。push(追加)・pop(取出)・peek(先頭参照)。関数呼出・式評価で使用。

  55. 問55.キューの操作は、要素を追加する enqueue と取り出す dequeue が基本である。

    正解:○(正しい)

    解説:キュー:FIFO(先入先出)。enqueue(末尾追加)・dequeue(先頭取出)。BFS・タスクキュー等で使用。

  56. 問56.二分木は、各ノードが最大2つの子ノードを持つ木構造である。

    正解:○(正しい)

    解説:二分木:左子・右子の2分岐。二分探索木は左<親<右の規則で順序保持、検索O(log n)(バランス時)。

  57. 問57.二分探索(バイナリサーチ)は、ソート済み配列に対し、計算量O(log n)で目的の値を探索する。

    正解:○(正しい)

    解説:二分探索:中間値比較で範囲を半減。ソート前提で線形探索O(n)より圧倒的高速。

  58. 問58.ハッシュ法のアクセスは平均計算量O(n)である。

    正解:×(誤り)

    解説:誤り。ハッシュ法は「平均O(1)」(定数時間)。

  59. 問59.バブルソートは、隣接要素の比較・交換を繰り返してソートするアルゴリズムである。

    正解:○(正しい)

    解説:バブルソート:単純で実装容易、計算量O(n²)。教育用に頻出だが実務性能は劣る。

  60. 問60.選択ソートは、未ソート部分から最小(または最大)値を選び先頭に配置する処理を繰り返すアルゴリズムである。

    正解:○(正しい)

    解説:選択ソート:O(n²)。比較回数は安定だが交換回数最少(O(n))。実装単純でメモリ追加不要。

  61. 問61.挿入ソートは、未ソート部分から最大値を選んで先頭に置くアルゴリズムである。

    正解:×(誤り)

    解説:誤り。挿入ソートは「ソート済み部分に未ソート要素を1つずつ挿入」(最大値選択は選択ソート)。

  62. 問62.マージソートは、配列を分割して再帰的にソートし、マージで結合するアルゴリズムで、計算量はO(n log n)である。

    正解:○(正しい)

    解説:マージソート:分割統治法。最悪ケースもO(n log n)、安定ソート。追加メモリO(n)が必要。

  63. 問63.クイックソートは、最悪計算量がO(n log n)で安定したアルゴリズムである。

    正解:×(誤り)

    解説:誤り。クイックソートは「最悪O(n²)」(平均O(n log n)、不安定でもある)。

  64. 問64.再帰関数は、自分自身を呼び出す関数で、基底条件(終了条件)が必要である。

    正解:○(正しい)

    解説:再帰:基底条件+再帰条件。スタックオーバーフローに注意。フィボナッチ・階乗・木探索等で使用。

  65. 問65.プログラム言語のオブジェクト指向プログラミングでは、クラスをインスタンス化してオブジェクトを生成する。

    正解:○(正しい)

    解説:OOP:クラス(設計図)→インスタンス(オブジェクト)。new演算子等で生成。インスタンス変数は各オブジェクト固有、クラス変数は共有。

  66. 問66.プログラムの変数の有効範囲(スコープ)には、ローカル変数(関数内)・グローバル変数(全体)等がある。

    正解:○(正しい)

    解説:スコープ:ローカル・グローバル・ブロックスコープ等。可視性と寿命を制御し、命名衝突を回避。

  67. 問67.配列とリストの違いは、配列が可変長で、リストが固定長であることである。

    正解:×(誤り)

    解説:誤り。配列は「固定長・連続メモリ」、リストは「可変長・非連続」(記述が逆)。

  68. 問68.プログラムにおける例外処理は、エラー発生時に通常処理から離脱して特別な処理を行う仕組みである。

    正解:○(正しい)

    解説:例外処理:try-catch-finally。通常制御フローと例外フローを分離して読みやすく安全なコードを実現。

  69. 問69.デバッグの基本手法には、ステップ実行・ブレークポイント設定・ログ出力等がある。

    正解:○(正しい)

    解説:デバッグ:IDE(Visual Studio Code等)でブレークポイント・ステップ実行・変数監視。ログはprintf debugging。

  70. 問70.プログラムのテストには、単体テスト・結合テスト・システムテストの段階がある。

    正解:○(正しい)

    解説:テスト段階:単体(関数単位)・結合(複数モジュール)・システム(全体)・受入(顧客)。V字モデル参照。

  71. 問71.次のソートアルゴリズムのうち、平均計算量が O(n log n) でないものはどれか。

    • ア.マージソート
    • イ.クイックソート
    • ウ.ヒープソート
    • エ.バブルソート

    正解:エ.バブルソート

    解説:バブルソートは平均/最悪ともO(n²)。マージ・クイック・ヒープはO(n log n)。

  72. 問72.次のうち、データ構造とアクセス特性の組合せとして誤っているものはどれか。

    • ア.スタック:FIFO(先入先出)
    • イ.連結リスト:先頭からO(n)走査
    • ウ.配列:添字でO(1)アクセス
    • エ.ハッシュテーブル:平均O(1)アクセス

    正解:ア.スタック:FIFO(先入先出)

    解説:スタックはLIFO(後入先出)。FIFOはキュー。

  73. 問73.次のうち、二分探索の前提条件として正しいものはどれか。

    • ア.データが連結リスト形式
    • イ.データがソート済み
    • ウ.データが少数(10未満)
    • エ.データが文字列のみ

    正解:イ.データがソート済み

    解説:二分探索はソート済み配列が前提。中間値比較で範囲を半減させる仕組みのため。

  74. 問74.プログラム制御構造の3要素として誤っているものはどれか。

    • ア.順次
    • イ.選択
    • ウ.並列
    • エ.反復

    正解:ウ.並列

    解説:構造化プログラミング3要素:順次・選択・反復。並列処理は別概念(マルチスレッド等)。

  75. 問75.次のうち、再帰関数で必須の要素はどれか。

    • ア.ループ構文
    • イ.配列引数
    • ウ.グローバル変数
    • エ.基底条件(終了条件)

    正解:エ.基底条件(終了条件)

    解説:再帰関数:基底条件(再帰停止)と再帰呼出が必須。基底条件なしだと無限ループ・スタックオーバーフロー。

  76. 問76.Big-O表記は、入力サイズが小さいときの実行時間を表す。

    正解:×(誤り)

    解説:誤り。Big-Oは「入力サイズが大きい時の漸近的増加傾向」(小さい時ではない)。

  77. 問77.動的計画法は、各段階で最適な選択をするだけで済む単純な手法である。

    正解:×(誤り)

    解説:誤り。動的計画法は「部分問題に分解しメモ化」(最適選択は貪欲法)。

  78. 問78.貪欲法は、全パターン探索でグローバル最適を保証する手法である。

    正解:×(誤り)

    解説:誤り。貪欲法は「局所最適選択を繰返す」(グローバル最適保証ではない)。

  79. 問79.DFSは、グラフを階層ごとに探索する方式である。

    正解:×(誤り)

    解説:誤り。DFSは「深く掘り下げてから戻る」(階層探索はBFS)。

  80. 問80.BFSは、グラフを深く掘り下げてから戻る探索方法である。

    正解:×(誤り)

    解説:誤り。BFSは「階層ごとに探索」(深掘りはDFS、記述が逆)。

  81. 問81.ダイクストラ法は、負の重みのあるグラフでも最短経路を求められる。

    正解:×(誤り)

    解説:誤り。ダイクストラは「負の重み不可」(負重み対応はベルマン-フォード)。

  82. 問82.文字列の連結(concat)は、複数の文字列を1つにつなげる操作である。

    正解:○(正しい)

    解説:文字列操作:連結・部分文字列取得・検索・置換等。Java:concat()/+演算子、Python:+演算子/join()。

  83. 問83.文字列の正規表現(Regular Expression)は、文字列のパターンマッチングに使われる表現法である。

    正解:○(正しい)

    解説:正規表現:PCRE・POSIX等。メールアドレス検証・ログ解析・テキスト置換等で広範に使用。

  84. 問84.線形代数の行列は、行と列で構成された数の配列で、画像処理・機械学習等で頻繁に使われる。

    正解:○(正しい)

    解説:行列:m×n配列。行列積・転置・逆行列等の演算。3DCG・画像変換・機械学習・量子計算等の基盤。

  85. 問85.算術平均は、データの中央値を求める統計指標である。

    正解:×(誤り)

    解説:誤り。算術平均は「合計÷個数」(中央値はメディアン、別概念)。

  86. 問86.中央値は、データの合計を個数で割った値である。

    正解:×(誤り)

    解説:誤り。中央値は「並べた中央の値」(合計÷個数は平均値)。

  87. 問87.標準偏差は、平均からの差の合計をデータ数で割った値である。

    正解:×(誤り)

    解説:誤り。標準偏差は「分散の平方根」(差の合計÷n は平均偏差)。

  88. 問88.疑似乱数は、コンピュータが計算で生成する乱数で、シードを固定すれば同じ列が再現できる。

    正解:○(正しい)

    解説:疑似乱数:完全な乱数ではなく決定論的アルゴリズムで生成。シード再利用で再現可能(テスト・デバッグに利用)。

  89. 問89.コンパイル方式は実行が遅く、インタプリタ方式が高速である。

    正解:×(誤り)

    解説:誤り。コンパイル方式は「実行高速」、インタプリタは「逐次解釈で遅め」(記述が逆)。

  90. 問90.プログラミングのフレームワークは、特定領域のアプリケーション開発を効率化するための共通基盤・ライブラリ集である。

    正解:○(正しい)

    解説:フレームワーク:Web(Django・Rails・Spring)、UI(React・Vue・Angular)、AI(TensorFlow・PyTorch)等。共通機能を提供。

  91. 問91.関数型プログラミングは、関数を第一級オブジェクトとして扱い、副作用を避けるプログラミングパラダイムである。

    正解:○(正しい)

    解説:関数型:Haskell・Lisp・F#・Erlang等。副作用最小化・参照透過性・高階関数。並行処理・テスト容易性で再評価。

  92. 問92.バージョン管理システムは、ソースコードのコンパイル機能を提供する。

    正解:×(誤り)

    解説:誤り。バージョン管理は「変更履歴管理+複数人協力支援」(コンパイルは別ツール)。

  93. 問93.リファクタリングは、ソースコードの動作を大きく変更する作業である。

    正解:×(誤り)

    解説:誤り。リファクタリングは「動作を変えず内部構造改善」(動作変更ではない)。

  94. 問94.コードレビューは、コード作者単独で行う作業である。

    正解:×(誤り)

    解説:誤り。コードレビューは「他の開発者がチェック」(単独ではない、品質向上・知識共有)。

  95. 問95.テスト駆動開発(TDD)は、実装後にテストコードを書く手法である。

    正解:×(誤り)

    解説:誤り。TDDは「テストコードを先に」書く(実装後は通常開発)。

  96. 問96.次のソートアルゴリズムのうち、最悪計算量がO(n²)になる可能性があるものはどれか。

    • ア.マージソート
    • イ.ヒープソート
    • ウ.カウントソート
    • エ.クイックソート

    正解:エ.クイックソート

    解説:クイックソートは平均O(n log n)・最悪O(n²)。マージ・ヒープは安定O(n log n)。カウントソートはO(n+k)。

  97. 問97.次のうち、グラフの最短経路を求めるアルゴリズムはどれか。

    • ア.ダイクストラ法
    • イ.バブルソート
    • ウ.ハッシュ法
    • エ.クイックソート

    正解:ア.ダイクストラ法

    解説:ダイクストラ法:単一始点最短経路(負の重みなし)。ベルマンフォード法は負の重みOK、フロイド・ワーシャル法は全点間最短経路。

  98. 問98.統計の代表値のうち、外れ値の影響を最も受けにくいものはどれか。

    • ア.算術平均
    • イ.中央値
    • ウ.幾何平均
    • エ.最頻値(モード)

    正解:イ.中央値

    解説:中央値:データを順に並べた中央値。外れ値の影響を受けにくい代表値。

  99. 問99.次のプログラミング言語のうち、関数型プログラミング言語に分類されるものはどれか。

    • ア.C
    • イ.COBOL
    • ウ.Haskell
    • エ.Assembly

    正解:ウ.Haskell

    解説:Haskell:純粋関数型言語。Lisp・F#・OCaml・Erlangも関数型。Cは手続き型、COBOLは事務処理向け。

  100. 問100.次のうち、TDD(テスト駆動開発)の正しい順序はどれか。

    • ア.実装→テスト→リファクタリング
    • イ.テスト→リファクタリング→実装
    • ウ.リファクタリング→実装→テスト
    • エ.テスト→実装→リファクタリング

    正解:エ.テスト→実装→リファクタリング

    解説:TDD:Red(失敗するテスト作成)→Green(テストを通す最小実装)→Refactor(コード整理)の順。

  101. 問101.プログラミング言語は、低水準言語(機械語・アセンブラ)と高水準言語(C・Java・Python等)に大別される。

    正解:○(正しい)

    解説:低水準:CPU命令に近い、性能高・記述難。高水準:人間の思考に近い、生産性高・抽象度高。

  102. 問102.プログラムの単体テストでは、関数・メソッド単位で正しく動作するかを検証する。

    正解:○(正しい)

    解説:単体テスト(ユニットテスト):JUnit・pytest等のフレームワーク使用。TDD・CIで自動化が標準。