印刷プレビューです。ブラウザの印刷機能でPDF保存・印刷できます。
ITパスポート 基礎理論
全40問 / トルカ(https://toruca.app)
問1. 2進数「1010」を10進数に変換するといくつになるか。
2進数の各桁は右から2の0乗、2の1乗、2の2乗…を表す。単位: / ヒント: 8+0+2+0 を計算する
正解: 10 / 2進数1010は、右から順に0×2⁰+1×2¹+0×2²+1×2³=0+2+0+8=10(10進数)となる。
問2. 10進数の13を2進数に変換した値として正しいものはどれか。
- A. 1101
- B. 1110
- C. 1011
- D. 1010
正解: A. 1101 / 10進数13は、8+4+1=13より2進数では「1101」(8の位1、4の位1、2の位0、1の位1)と表される。
問3. 16進数の説明として最も適切なものはどれか。
- A. 0〜9の数字とA〜Fの文字を組み合わせた16種類の記号で数を表す記数法
- B. 0と1の2種類の記号のみで数を表す記数法
- C. 0〜9の10種類の数字のみで数を表す記数法
- D. ローマ数字のみを使った記数法
正解: A. 0〜9の数字とA〜Fの文字を組み合わせた16種類の記号で数を表す記数法 / 16進数は、0〜9の数字とA〜F(10〜15を表す)の文字を組み合わせた16種類の記号で数値を表現する記数法であり、2進数を4桁ずつまとめて表現できるためコンピュータ内部の値を人が読みやすい形で表す際によく使われる。
問4. 基本的な論理演算の名称と内容を対応させよ。
- AND(論理積) ー ( )
- OR(論理和) ー ( )
- NOT(否定) ー ( )
正解: AND(論理積)→入力が両方とも真の場合にのみ真になる、OR(論理和)→入力の少なくとも一方が真であれば真になる、NOT(否定)→入力の真偽を反転させる / AND(論理積)は両方の入力が真の場合のみ真、OR(論理和)はどちらか一方でも真であれば真、NOT(否定)は真偽を反転させる基本的な論理演算である。
問5. XOR(排他的論理和)の説明として最も適切なものはどれか。
- A. 2つの入力が異なる(一方が真で他方が偽)の場合にのみ真になる
- B. 2つの入力が両方とも真の場合にのみ真になる
- C. 2つの入力のうちどちらか一方でも真であれば常に真になる
- D. 1つの入力の真偽を反転させる
正解: A. 2つの入力が異なる(一方が真で他方が偽)の場合にのみ真になる / XOR(排他的論理和)は、2つの入力が異なる場合(真と偽の組み合わせ)にのみ真となり、両方とも真、または両方とも偽の場合は偽になる論理演算である。
問6. ベン図の用途として最も適切なものはどれか。
- A. 複数の集合の関係(重なりや包含関係)を円などの図形で視覚的に表現する
- B. 作業のスケジュールを横棒グラフで表現する
- C. プログラムの処理の流れを記号で表現する
- D. 組織の指揮命令系統を表現する
正解: A. 複数の集合の関係(重なりや包含関係)を円などの図形で視覚的に表現する / ベン図は、複数の集合同士の関係(和集合・積集合・補集合などの重なりや包含関係)を円などの図形の重なりで視覚的に表現するための図である。
問7. コンピュータが扱う情報量の最小単位として最も適切なものはどれか。
- A. ビット(bit)
- B. バイト(byte)
- C. キロバイト(KB)
- D. メガバイト(MB)
正解: A. ビット(bit) / ビット(bit)は、0または1のいずれかを表す、コンピュータが扱う情報量の最小単位である。
問8. 1バイト(byte)は何ビット(bit)に相当するか。
- A. 8ビット
- B. 4ビット
- C. 16ビット
- D. 2ビット
正解: A. 8ビット / 1バイトは8ビットに相当し、256(2の8乗)通りの値を表現できる。バイトは文字コードなど情報を扱う基本単位として広く使われる。
問9. 1GB(ギガバイト)は約何MB(メガバイト)に相当するか(情報の分野で一般的に用いられる近似値)。
- A. 約1,000MB
- B. 約100MB
- C. 約10MB
- D. 約10,000MB
正解: A. 約1,000MB / 情報量の単位は1,000(10進)倍ごとにキロ→メガ→ギガ→テラと接頭辞が変わる(コンピュータの世界では2進数に基づき1,024倍で扱われる場合もあるが、概算では1GB≒1,000MBとして理解してよい)。
問10. コンピュータの小数計算において、指定した桁数に収まるように末尾の数値を四捨五入・切り捨てなどで処理することにより生じる誤差を何と呼ぶか。
- A. 丸め誤差
- B. 桁落ち
- C. 情報落ち
- D. 打切り誤差
正解: A. 丸め誤差 / 丸め誤差は、コンピュータが扱える桁数(有効桁数)に収めるために、四捨五入や切り捨てなどの処理を行うことで生じる誤差である。
問11. 絶対値がほぼ等しい2つの数値の差を計算した際、有効桁数が大きく減少してしまう誤差を何と呼ぶか。
- A. 桁落ち
- B. 丸め誤差
- C. 情報落ち
- D. オーバーフロー
正解: A. 桁落ち / 桁落ちは、絶対値がほぼ等しい2つの数値を引き算した際に、上位の桁が相殺されて有効桁数が大きく減少し、計算精度が低下してしまう誤差である。
問12. 絶対値の差が非常に大きい2つの数値を加算・減算する際に、小さい方の数値が結果にほとんど反映されなくなる誤差を何と呼ぶか。
- A. 情報落ち
- B. 桁落ち
- C. 丸め誤差
- D. 打切り誤差
正解: A. 情報落ち / 情報落ちは、絶対値の差が非常に大きい数値同士を加減算する際、コンピュータが扱える有効桁数の制約により、小さい方の値の情報がほとんど計算結果に反映されなくなる誤差である。
問13. 無限に続く計算を、ある回数や精度で打ち切ることによって生じる誤差を何と呼ぶか。
- A. 打切り誤差
- B. 桁落ち
- C. 情報落ち
- D. 丸め誤差
正解: A. 打切り誤差 / 打切り誤差は、円周率の計算や数値積分など本来無限に続く計算処理を、現実的な回数や精度で途中で打ち切ることによって生じる誤差である。
問14. フローチャートの基本記号と意味を対応させよ。
- 楕円(端子) ー ( )
- 四角形(処理) ー ( )
- ひし形(判断) ー ( )
正解: 楕円(端子)→処理の開始・終了を表す、四角形(処理)→具体的な処理内容を表す、ひし形(判断)→条件分岐(Yes/No)を表す / フローチャートでは、楕円(端子)で開始・終了、四角形(処理)で具体的な処理、ひし形(判断)で条件分岐を表現する。
問15. アルゴリズムの説明として最も適切なものはどれか。
- A. 問題を解決するための手順を、明確かつ有限のステップとして定めたもの
- B. プログラムを実行するためのハードウェアそのもの
- C. データを保存するための記憶媒体
- D. 利用者が操作する画面デザインのみを指す
正解: A. 問題を解決するための手順を、明確かつ有限のステップとして定めたもの / アルゴリズムは、ある問題を解決するための処理手順を、曖昧さのない明確なステップとして定めたものであり、プログラムを作成する際の設計図となる。
問16. 線形探索法(リニアサーチ)の説明として最も適切なものはどれか。
- A. データの先頭から順番に1つずつ、探している値と一致するかを比較していく探索方法
- B. データを整列させたうえで、中央の値と比較しながら範囲を半分ずつ絞り込む探索方法
- C. データを一切比較せずに探索結果を確定する方法
- D. 全てのデータを並び替える方法
正解: A. データの先頭から順番に1つずつ、探している値と一致するかを比較していく探索方法 / 線形探索法(リニアサーチ)は、データの先頭から末尾に向かって順番に1つずつ、目的の値と一致するかどうかを比較していく最も基本的な探索アルゴリズムである。
問17. 二分探索法(バイナリサーチ)を適用するための前提条件として最も適切なものはどれか。
- A. 対象のデータがあらかじめ昇順または降順に整列(ソート)されていること
- B. 対象のデータが1件のみであること
- C. 対象のデータが文字列ではなく数値のみであること
- D. 対象のデータが必ず重複していること
正解: A. 対象のデータがあらかじめ昇順または降順に整列(ソート)されていること / 二分探索法は、あらかじめ整列(ソート)されたデータに対して、中央の値と目的の値を比較しながら探索範囲を半分ずつ絞り込んでいく手法であり、データが整列済みであることが前提条件となる。
問18. バブルソートの説明として最も適切なものはどれか。
- A. 隣り合う要素を比較し、順序が逆であれば入れ替えるという操作を繰り返してデータを整列させる方法
- B. データを整列済みの状態から探索する方法
- C. データを一切比較せずにランダムに並べ替える方法
- D. データベースに新しいレコードを追加する方法
正解: A. 隣り合う要素を比較し、順序が逆であれば入れ替えるという操作を繰り返してデータを整列させる方法 / バブルソートは、隣り合う要素を先頭から順に比較し、順序が逆であれば入れ替えるという操作をデータ全体に繰り返し行うことで、データを昇順または降順に整列させる基本的な整列アルゴリズムである。
問19. スタック(LIFO:Last In First Out)の説明として最も適切なものはどれか。
- A. 最後に格納したデータを最初に取り出す、後入れ先出しのデータ構造
- B. 最初に格納したデータを最初に取り出す、先入れ先出しのデータ構造
- C. 格納したデータの順序に関係なくランダムに取り出すデータ構造
- D. データを一切格納できないデータ構造
正解: A. 最後に格納したデータを最初に取り出す、後入れ先出しのデータ構造 / スタックは、最後に格納(プッシュ)したデータを最初に取り出す(ポップ)「後入れ先出し(LIFO)」の性質を持つデータ構造であり、Webブラウザの「戻る」機能などに応用されている。
問20. キュー(FIFO:First In First Out)の説明として最も適切なものはどれか。
- A. 最初に格納したデータを最初に取り出す、先入れ先出しのデータ構造
- B. 最後に格納したデータを最初に取り出す、後入れ先出しのデータ構造
- C. データを木構造の形式でのみ格納するデータ構造
- D. データを常に逆順に並べ替えるデータ構造
正解: A. 最初に格納したデータを最初に取り出す、先入れ先出しのデータ構造 / キューは、最初に格納したデータを最初に取り出す「先入れ先出し(FIFO)」の性質を持つデータ構造であり、印刷待ちの順番管理など順序を保証したい処理に応用されている。
問21. 配列の説明として最も適切なものはどれか。
- A. 同じ型の複数のデータを、連続した領域にインデックス(添字)で管理するデータ構造
- B. データを木の枝分かれのような階層構造で管理するデータ構造
- C. データを常に暗号化して保存するデータ構造
- D. データを1件のみ格納できるデータ構造
正解: A. 同じ型の複数のデータを、連続した領域にインデックス(添字)で管理するデータ構造 / 配列は、同じデータ型を持つ複数のデータを、連続したメモリ領域に格納し、インデックス(添字)を指定することで特定の要素に高速にアクセスできるデータ構造である。
問22. 連結リスト(リスト構造)の特徴として最も適切なものはどれか。
- A. 各データが次のデータへのポインタ(参照)を持ち、途中への要素の挿入・削除が配列より効率的に行える
- B. 全てのデータが必ず連続したメモリ領域に格納される
- C. データの挿入・削除が一切できない
- D. データに一切アクセスできない
正解: A. 各データが次のデータへのポインタ(参照)を持ち、途中への要素の挿入・削除が配列より効率的に行える / 連結リストは、各データ(ノード)が次のデータへのポインタ(参照)を持つ構造であり、配列と異なりデータを詰め直す必要がないため、途中への要素の挿入・削除を効率的に行える特徴がある。
問23. 木構造(ツリー構造)の特徴として最も適切なものはどれか。
- A. 1つの根(ルート)から枝分かれする階層的な親子関係でデータを表現する構造
- B. 全てのデータが同じ階層に並列に存在する構造
- C. データを一切階層化しない構造
- D. データが必ず円環状につながっている構造
正解: A. 1つの根(ルート)から枝分かれする階層的な親子関係でデータを表現する構造 / 木構造(ツリー構造)は、1つの根(ルート)ノードから複数の子ノードへと枝分かれしていく階層的な親子関係を表現するデータ構造であり、ファイルシステムのフォルダ階層などに応用されている。
問24. コンパイラの説明として最も適切なものはどれか。
- A. ソースコード全体を一括して機械語に翻訳してから実行するプログラム
- B. ソースコードを1行ずつ解釈しながら実行するプログラム
- C. ハードウェアの物理的な故障を修理するプログラム
- D. 画面のデザインのみを作成するプログラム
正解: A. ソースコード全体を一括して機械語に翻訳してから実行するプログラム / コンパイラは、高水準言語で書かれたソースコード全体を一括して機械語(実行可能な形式)に翻訳(コンパイル)してから実行するプログラムであり、実行速度が速い傾向がある。
問25. インタプリタの説明として最も適切なものはどれか。
- A. ソースコードを1行(または少しずつ)解釈しながら、その場で逐次実行していくプログラム
- B. ソースコード全体を事前に全て機械語へ翻訳してから実行するプログラム
- C. ハードウェアの部品を製造する工程を指す
- D. データベースのバックアップを取得する機能のみを指す
正解: A. ソースコードを1行(または少しずつ)解釈しながら、その場で逐次実行していくプログラム / インタプリタは、ソースコードを1行ずつ(あるいは逐次的に)解釈しながらその場で実行していく方式のプログラムであり、コンパイラのような事前の一括翻訳を行わない。修正結果をすぐに確認できる利点がある。
問26. 高水準言語(高級言語)の説明として最も適切なものはどれか。
- A. 人間が理解しやすい構文で記述できるプログラミング言語で、コンパイラやインタプリタにより機械語に変換される
- B. コンピュータのCPUが直接理解できる0と1の羅列のみで記述する言語
- C. ハードウェアの回路設計図を指す用語
- D. 画像データの圧縮形式の一種を指す用語
正解: A. 人間が理解しやすい構文で記述できるプログラミング言語で、コンパイラやインタプリタにより機械語に変換される / 高水準言語(高級言語)は、人間が理解・記述しやすい構文(英単語に近い表現等)で書かれたプログラミング言語であり、コンパイラやインタプリタによってコンピュータが実行できる機械語(低水準言語)に変換される。
問27. HTML(HyperText Markup Language)の説明として最も適切なものはどれか。
- A. Webページの文書構造や内容を記述するためのマークアップ言語
- B. データベースの検索を行うための言語
- C. 画像データを圧縮するための言語
- D. 会計処理を自動化するための言語
正解: A. Webページの文書構造や内容を記述するためのマークアップ言語 / HTML(HyperText Markup Language)は、見出し・段落・リンクなどのタグを用いてWebページの文書構造や内容を記述するためのマークアップ言語である。
問28. XML(Extensible Markup Language)の特徴として最も適切なものはどれか。
- A. 利用者が独自にタグを定義でき、データの構造化・異なるシステム間でのデータ交換に用いられるマークアップ言語
- B. タグを一切使用しない言語
- C. 画像専用のファイル形式であり文字データは扱えない
- D. コンパイラを必要とする低水準言語である
正解: A. 利用者が独自にタグを定義でき、データの構造化・異なるシステム間でのデータ交換に用いられるマークアップ言語 / XML(拡張可能なマークアップ言語)は、利用者が目的に応じて独自のタグを定義できる汎用的なマークアップ言語であり、データの構造を明示的に表現できるため、異なるシステム間でのデータ交換によく用いられる。
問29. オープンソースソフトウェア(OSS)の説明として最も適切なものはどれか。
- A. ソースコードが公開され、一定のライセンス条件のもとで誰でも利用・改変・再配布が可能なソフトウェア
- B. ソースコードが一切公開されておらず、開発元のみが改変できるソフトウェア
- C. 必ず有料で購入しなければならないソフトウェア
- D. 1台のコンピュータでしか動作しないソフトウェア
正解: A. ソースコードが公開され、一定のライセンス条件のもとで誰でも利用・改変・再配布が可能なソフトウェア / オープンソースソフトウェア(OSS)は、ソースコードが公開され、定められたライセンス条件のもとで誰でも利用・改変・再配布が可能なソフトウェアである。
問30. 再帰(再帰呼び出し)の説明として最も適切なものはどれか。
- A. ある関数(プログラム)が、その処理の中で自分自身を呼び出す仕組み
- B. プログラムを実行することなく処理結果を得る仕組み
- C. 1つのプログラムを2つの異なる言語で同時に記述する仕組み
- D. ハードウェアを物理的に複製する仕組み
正解: A. ある関数(プログラム)が、その処理の中で自分自身を呼び出す仕組み / 再帰(再帰呼び出し)は、ある関数が自分自身を呼び出すことで、階乗計算や木構造の探索など、繰り返し構造を持つ問題を簡潔に記述できるプログラミング手法である。
問31. アルゴリズムの処理効率(計算量)を評価する際に着目する観点として最も適切なものはどれか。
- A. データ件数が増加した際に、処理時間や必要なメモリ量がどのように増加するか
- B. プログラムの見た目の美しさ
- C. プログラムを開発した人数の多さ
- D. プログラムに使われている変数名の長さ
正解: A. データ件数が増加した際に、処理時間や必要なメモリ量がどのように増加するか / アルゴリズムの処理効率(計算量)は、扱うデータ件数(入力サイズ)が増加した際に、処理時間や必要なメモリ量がどの程度の割合で増加していくかという観点から評価される。一般に、線形探索よりも二分探索の方がデータ件数増加時の処理時間の増加が緩やかで効率的とされる。
問32. 機械学習における「教師あり学習」の説明として最も適切なものはどれか。
- A. 正解ラベル(答え)が付与された学習データを用いて、入力と出力の関係を学習する手法
- B. 正解ラベルを一切用いず、データ自体の構造や類似性からパターンを見つけ出す手法
- C. 試行錯誤を通じて得られる報酬を最大化するように学習する手法
- D. 学習を一切行わずランダムに出力する手法
正解: A. 正解ラベル(答え)が付与された学習データを用いて、入力と出力の関係を学習する手法 / 教師あり学習は、入力データとそれに対応する正解ラベル(答え)がセットになった学習データを用いて、入力と出力の関係性を学習する機械学習の手法であり、画像の分類や需要予測などに用いられる。
問33. 機械学習における「教師なし学習」の説明として最も適切なものはどれか。
- A. 正解ラベルを与えず、データ自体の特徴や類似性からグループ分け(クラスタリング)などのパターンを見つけ出す手法
- B. 必ず正解ラベルを付与したデータのみを使う手法
- C. 報酬を最大化するように試行錯誤を繰り返す手法
- D. 学習済みのモデルを一切使わない手法
正解: A. 正解ラベルを与えず、データ自体の特徴や類似性からグループ分け(クラスタリング)などのパターンを見つけ出す手法 / 教師なし学習は、正解ラベルを与えられていないデータに対して、データ自体が持つ特徴や類似性をもとに、グループ分け(クラスタリング)や次元削減などのパターンを見つけ出す機械学習の手法である。
問34. 機械学習における「強化学習」の説明として最も適切なものはどれか。
- A. 行動の結果得られる報酬を最大化するように、試行錯誤を通じて最適な行動方針を学習する手法
- B. 正解ラベル付きデータのみを用いて学習する手法
- C. データのグループ分けのみを行う手法で報酬という概念を用いない
- D. 学習処理を一切行わない手法
正解: A. 行動の結果得られる報酬を最大化するように、試行錯誤を通じて最適な行動方針を学習する手法 / 強化学習は、エージェント(学習主体)が環境の中で行動を選択し、その結果得られる報酬(評価値)を最大化するように、試行錯誤を通じて最適な行動方針を学習していく機械学習の手法であり、ゲームAIやロボット制御などに応用される。
問35. ニューラルネットワークの説明として最も適切なものはどれか。
- A. 人間の脳神経回路の仕組みを模した、入力層・中間層・出力層から成る数理モデル
- B. 紙の書類を単純にスキャンする技術
- C. サーバーの物理的な配線を指す用語
- D. 会計帳簿の勘定科目を分類する仕組み
正解: A. 人間の脳神経回路の仕組みを模した、入力層・中間層・出力層から成る数理モデル / ニューラルネットワークは、人間の脳における神経細胞(ニューロン)のつながりを模した数理モデルであり、入力層・中間層(隠れ層)・出力層から構成され、機械学習・ディープラーニングの基盤技術となっている。
問36. 1から6までの目があるサイコロを1回振ったとき、偶数の目が出る確率は何%か。
偶数の目は2・4・6の3通り、全体は6通り。単位: % / ヒント: 3 ÷ 6 × 100 を計算する
正解: 50% / 偶数の目(2・4・6)は6通り中3通りであるため、確率=3 ÷ 6 × 100=50%。
問37. 命題「PならばQ」が偽になるのはどのような場合か。
- A. Pが真でQが偽の場合
- B. Pが偽でQが真の場合
- C. PとQが両方とも真の場合
- D. PとQが両方とも偽の場合
正解: A. Pが真でQが偽の場合 / 命題論理における「PならばQ」(含意)は、前提Pが真であるにもかかわらず結論Qが偽である場合にのみ偽となる。それ以外の組み合わせ(Pが偽の場合を含む)では真となる。
問38. 文字・数字・記号などをコンピュータ内部で扱うために、それぞれに割り当てられた固有の数値を何と呼ぶか。
- A. 文字コード
- B. バージョン番号
- C. ドメイン名
- D. パスワード
正解: A. 文字コード / 文字コードは、コンピュータ内部でアルファベットや数字、日本語などの文字を扱うために、それぞれの文字に割り当てられた固有の数値(符号)である(例:ASCIIコード、Unicode)。
問39. 浮動小数点数の説明として最も適切なものはどれか。
- A. 数値を仮数部と指数部に分けて表現することで、非常に大きい数や小さい数を扱えるようにする表現方式
- B. 小数点を一切使わずに整数のみを表現する方式
- C. 文字列のみを表現するための方式
- D. 画像データのみを圧縮するための方式
正解: A. 数値を仮数部と指数部に分けて表現することで、非常に大きい数や小さい数を扱えるようにする表現方式 / 浮動小数点数は、数値を「仮数部×基数の指数部乗」の形式で表現することで、桁数の制約の中で非常に大きい数値や小さい数値を扱えるようにするコンピュータでの数値表現方式である。
問40. 疑似言語(アルゴリズムを説明するための擬似的なプログラム表記)を用いる目的として最も適切なものはどれか。
- A. 特定のプログラミング言語の文法に依存せず、アルゴリズムの処理の流れを分かりやすく表現する
- B. 実際にコンピュータ上で実行するための正式なプログラミング言語として使用する
- C. ハードウェアの回路設計図として使用する
- D. 契約書の様式として使用する
正解: A. 特定のプログラミング言語の文法に依存せず、アルゴリズムの処理の流れを分かりやすく表現する / 疑似言語(擬似言語)は、特定のプログラミング言語の文法や実行環境に依存せず、アルゴリズムの処理の流れ(条件分岐・繰り返し等)を人間にとって分かりやすく表現するために用いられる、試験や設計書などで使われる記法である。