共通テスト 情報Ⅰ・4-1

アルゴリズムの基礎の一問一答

共通テスト「情報Ⅰ」の「アルゴリズムとプログラミング」から、アルゴリズムの基礎に関する4択問題を10問。「答えと解説を見る」を開くと、正解とその理由がその場で読めます。会員登録は不要です。

この分野の演習

全10問/解説付き・基本無料

アプリ形式で解く(全800問) アルゴリズムとプログラミングの要点解説を読む
問題

上から順に解いてみてください。答えは各問の下で確認できます。

問14-1・基礎

アルゴリズム(問題を解決するための手順)が持つべき特性として、処理が無限に続かず、必ずいつかは終了することを何と呼ぶか?

  • ①処理の正当性(正確性)
  • ②処理の確定性(一意性)
  • ③処理の有限性(停止性)
  • ④処理の汎用性(応用性)
答えと解説を見る
正解 ③処理の有限性(停止性)
解説
正解は「処理の有限性(停止性)」。決まった数の手順のあとで、必ず終わるという性質。

なぜ
アルゴリズムは、問題を解決するための方法や手順のこと。アルゴリズムは、問題を解くための、明確に定義された規則を有限個、順に並べたものと説明されることが多い。ただし規則が有限個でも、繰り返しが永遠に終わらなければ答えが出ない。そのため、どの入力でも有限回の手順のあとで必ず終わることが求められる。

ひっかけ注意

・「処理の正当性(正確性)」…どんな入力にも正しい答えを出す性質。手順が止まらない場合は、正しさを確かめる前に答えそのものが出ない。
・「処理の確定性(一意性)」…各手順が1通りに決まり、人によって読み方が変わらない性質。この国際規格の定義の、明確に定義された規則という部分に当たる。
・「処理の汎用性(応用性)」…値やデータを変えた場合にも同じ手順を使える性質。止まるかどうかとは関係がない。
問24-1・基礎

JISで規定されたフローチャート(流れ図)記号において、「ひし形(◇)」の記号の中に記述すべき内容はどれか?

  • ①変数への代入や計算式
  • ②データの入力または出力処理
  • ③プログラムの開始または終了
  • ④条件分岐を行うための条件式
答えと解説を見る
正解 ④条件分岐を行うための条件式
解説
正解は「条件分岐を行うための条件式」。ひし形は判断の記号で、中に x > 10 のような条件を書く。

なぜ
ひし形からは、条件が成り立つとき(Yes)と成り立たないとき(No)の2本の矢印が出て、流れが分かれる。大学入試センターが示したフローチャートの例でも、中央の値と探す値を比べる条件を書き、Yes と No で流れを分けている。

ひっかけ注意

・「変数への代入や計算式」…長方形の処理の記号に書く。入口と出口の矢印は1本ずつで、流れは分かれない。
・「データの入力または出力処理」…平行四辺形のデータの記号に書く。共通テスト用プログラム表記では、入力を【外部からの入力】、出力を 表示する( ) と書く。
・「プログラムの開始または終了」…角の丸い端子の記号に、はじめ・おわりと書く。繰り返しの範囲は、ループ端の記号2つではさみ、繰り返しの条件はループ端の中に書く。
問34-1・基礎

構造化プログラミングにおいて、プログラムを構成する「3つの基本構造」の組み合わせとして正しいものはどれか?

  • ①順次、分岐、反復
  • ②入力、演算、出力
  • ③順次、並列、再帰
  • ④定義、実行、評価
答えと解説を見る
正解 ①順次、分岐、反復
解説
正解は「順次、分岐、反復」。どんな手順も、この3つの組み合わせで書ける。

なぜ
順次は上から順に実行すること。分岐(選択)は条件によって処理を分けること。反復(繰り返し)は条件を満たす間繰り返すこと。文部科学省の教員研修用教材も、どんなアルゴリズムもこの3つの組み合わせでできているとし、これを制御構造と呼んでいる。

ひっかけ注意

・「入力、演算、出力」…コンピュータの5大装置(入力・出力・記憶・演算・制御)のうち3つの働き。処理の流れを決める構造ではない。
・「順次、並列、再帰」…並列は複数の処理を同時に進めること、再帰は関数が自分自身を呼び出すこと。どちらも処理の方法の名前で、3つの基本構造には数えない。
・「定義、実行、評価」…関数を定義し、実行して、結果を評価するという作業の順番に近い並び。流れの形を表す3つの構造ではない。
問44-1・標準

アルゴリズムの性能を評価する「計算量(オーダー)」の説明において、データ数 n が増えたとき、最も処理時間の増加が緩やかな(効率が良い)ものはどれか?

  • ①O(n)
  • ②O(1)
  • ③O(n²)
  • ④O(log n)
答えと解説を見る
正解 ②O(1)
解説
正解は「O(1)」。データ数 n がいくら増えても、処理時間がほぼ変わらない。

なぜ
O( ) はオーダー記法といい、n が増えたときの手間の増え方の目安を表す。増え方がゆるやかな順に並べると O(1)、O(log n)、O(n)、O(n²) になる。n=1,000 のとき、log n(2を底とする)は約10、n は1,000、n² は1,000,000。

ひっかけ注意

・「O(n)」…n に比例して増える。n が2倍なら手間も2倍。線形探索の最大の比較回数がこの増え方。
・「O(n²)」…n の2乗に比例し、4つの中でいちばん急。n が2倍なら4倍。選択ソートやバブルソートの比較回数。
・「O(log n)」…n が2倍になっても1増えるだけで、とてもゆるやか。二分探索の最大の比較回数がこの増え方だが、O(1) よりは増える。
問54-1・基礎

変数の値を、処理のステップごとに手書きで表に書き出しながら、アルゴリズムの動きを確認する作業を何と呼ぶか?

  • ①コンパイル
  • ②リファクタリング
  • ③トレース
  • ④デバッグ
答えと解説を見る
正解 ③トレース
解説
正解は「トレース」。手順を1つずつ追い、そのときの変数の値を表に書いて動きを確かめる作業。

なぜ
コンピュータを使わずに、紙の上で値の変化を追う。繰り返しが何回行われるか、どこで値がずれるかを見つけるのに役立つ。共通テストのプログラムの問題でも、変数の値を順に書き出すと答えを確かめやすい。

ひっかけ注意

・「コンパイル」…ソースプログラム全体を、機械語などの実行できる形にまとめて翻訳すること。コンパイルせずに、インタプリタというプログラムが解釈しながら実行する場合もある。
・「リファクタリング」…出てくる結果は同じまま、プログラムの書き方だけを読みやすく整理し直すこと。
・「デバッグ」…誤り(バグ)を見つけて直す作業全体。トレースは、その中で値の変化を追う手段の1つ。
問64-1・標準

1からNまでの整数の総和を求める際、ループ処理を使わずに「(1+N)×N÷2」という公式を使って計算する場合の計算量はどうなるか?

  • ①O(N)
  • ②O(N²)
  • ③O(log N)
  • ④O(1)
答えと解説を見る
正解 ④O(1)
解説
正解は「O(1)」。N がどれだけ大きくても、計算の回数は変わらない。

手順
①公式では、足し算1回・かけ算1回・割り算1回を行う。
②N が10でも1億でも、この3回で答えが出る。例:N=100 なら (1+100)×100÷2=5,050。
③回数が N に関係しないので O(1) になる。

ひっかけ注意

・「O(N)」…1から N まで順に足す繰り返しを使ったとき。足し算を N 回するので、N が2倍なら手間も2倍。
・「O(N²)」…二重の繰り返しで N×N 回処理するとき。N が2倍なら手間は4倍になる。
・「O(log N)」…二分探索のように、毎回範囲を半分にする処理。N が2倍になっても1回増えるだけ。
問74-1・基礎

フローチャートにおいて、ループ処理(反復)の「終了条件」が正しく設定されていない場合に発生する不具合はどれか?

  • ①無限ループ
  • ②構文エラー
  • ③オーバーフロー
  • ④文字化け
答えと解説を見る
正解 ①無限ループ
解説
正解は「無限ループ」。繰り返しが終わらず、処理が止まらなくなる状態。

なぜ
例えば i が10より小さい間繰り返す処理の中で i を増やし忘れると、条件はずっと成り立つ。そのため繰り返しから抜けられない。反復では、繰り返すたびに終わりの条件へ近づく処理が必要。

ひっかけ注意

・「構文エラー」…かっこの閉じ忘れなど、決められた書き方(文法)に合わない書きまちがい。無限ループは、文法が正しい場合でも起こる。
・「オーバーフロー」…計算結果が、決められたビット数で表せる範囲をこえること。例:符号なし8ビットで表せるのは0〜255まで。
・「文字化け」…送る側と読む側で文字コード(UTF-8 と Shift_JIS など)がちがうとき、文字が正しく表示されないこと。
問84-1・基礎

2つの変数 a と b の値を入れ替える(交換する)手順として、一時的な変数 temp を使った正しいものはどれか?(左から順に実行する。「=」は右辺の値を左辺の変数に代入する)

  • ①a = b、b = a、temp = a
  • ②temp = a、a = b、b = temp
  • ③a = temp、temp = b、b = a
  • ④temp = b、a = temp、b = a
答えと解説を見る
正解 ②temp = a、a = b、b = temp
解説
正解は「temp = a、a = b、b = temp」。先に a の値を temp に逃がしてから入れ替える。

手順
①a=3、b=5 とする。temp = a で temp は3。
②a = b で a は5。元の3は temp に残っている。
③b = temp で b は3。これで a=5、b=3 と入れ替わる。

ひっかけ注意

・「a = b、b = a、temp = a」…最初に a が上書きされ、a も b も5になる。
・「a = temp、temp = b、b = a」…最初の temp にはまだ値が入っていないため、a = temp で a の元の値(3)が消えてしまう。
・「temp = b、a = temp、b = a」…a も b も5になり、入れ替わらない。
問94-1・基礎

ある関数(手続き)の中で、自分自身を呼び出すことによって処理を行うアルゴリズムの手法を何と呼ぶか?

  • ①反復呼び出し(イテレーション)
  • ②動的呼び出し(ダイナミック)
  • ③再帰呼び出し(リカーシブ)
  • ④並列呼び出し(パラレル)
答えと解説を見る
正解 ③再帰呼び出し(リカーシブ)
解説
正解は「再帰呼び出し(リカーシブ)」。関数が自分自身を呼び出して、問題を小さくしながら解く方法。(情報Ⅰの範囲を少し超えた発展の内容です)

なぜ
例えば5の階乗は、5×(4の階乗)と表せる。4の階乗も同じ関数で求め、1まで来たら止める。止める条件がないと呼び出しが終わらない。

ひっかけ注意

・「反復呼び出し(イテレーション)」…イテレーションは、条件が成り立つ間、同じ処理を繰り返すこと。自分を呼び出さず、ループで同じ結果を出せる場合も多い。
・「動的呼び出し(ダイナミック)」…実行中に、呼び出す先をその時の条件で決める仕組み。呼び出す相手が自分自身とは限らない。
・「並列呼び出し(パラレル)」…複数の処理を同時に進める方法。再帰では、呼び出した側は呼ばれた側が終わるまで待つため、同時には動かない。
問104-1・基礎

アルゴリズムを表す方法のうち、人間にとって読みやすく、プログラミング言語に近い形式で手順を書き表したものを何と呼ぶか?

  • ①バイナリコード
  • ②アセンブリ言語
  • ③アクティビティ図
  • ④擬似コード(疑似言語)
答えと解説を見る
正解 ④擬似コード(疑似言語)
解説
正解は「擬似コード(疑似言語)」。特定の言語の細かい文法にしばられず、手順の流れを読みやすく書いたもの。

なぜ
もし x > 0 ならば、のように日本語を交えて書けるので、言語を知らなくても手順を読める。共通テストでは、授業で使う言語がさまざまなため、大学入試センターが示す共通テスト用プログラム表記で手順が書かれる。学習指導要領の解説も、アルゴリズムを文章・フローチャート・アクティビティ図などで表すとしている。

ひっかけ注意

・「バイナリコード」…0と1の並びで表したデータや命令。8けたで1バイトになり、人が読むのには向かない。
・「アセンブリ言語」…機械語の命令を、ADD(足し算)のような短い英字に1対1で置き換えた言語。CPU の種類ごとに違う。
・「アクティビティ図」…処理の流れを図で表す方法で、UML(統一モデリング言語)という図の決まりの1つ。複数の処理がやり取りしながら同時に進む様子も表せる。文字で書く擬似コードとは違い、図で表す。

当サイトは、独立行政法人 大学入試センターとは一切関係のない、非公式の学習サイトです。試験に関する最新情報は、大学入試センターの公式サイトでご確認ください。

共通テスト 情報Ⅰ 基礎完全対策(全800問)に戻る

※本ページでは、アクセス解析(Googleアナリティクス)と、広告の配信・成果の計測(A8.net)のためにCookie等を利用し、閲覧に関する情報をGoogle LLC・株式会社ファンコミュニケーションズへ送信しています。詳しくはプライバシーポリシーをご覧ください。

※本ページの問題・解説は、生成AI(人工知能)を活用して作成しています。

【PR】