学習トップ / 動画問題 / プログラミング
キーワード一覧から選ぶ 23種類
キーワードは主に関連する分野へ整理しています。この一覧では複数選択のOR検索、各問題に付くキーワードからはその語だけの検索になります。
QUESTION 311
次のプログラムは配列Arrayを選択ソートで昇順に整列するものである。
実行回数ができるだけ少なくなるように空欄に入る最も適切なものを選べ。
ただし、選択ソートとは次の手順により配列の並びを整列するものである。
・未ソートの部分から最小の要素を見つけ出す。
・この最小の要素を未ソートの部分の先頭にある要素と交換する。
・この操作を繰り返し、未ソートの部分がなくなれば終了する。
配列の添字は左端を0とし、要素数(配列)は配列の要素数を返すものとする。 (01)Array = 【外部からの入力】
(02)i を ( ア ) まで 1 ずつ増やしながら繰り返す:
(03)| min_index = i
(04)| j を ( イ ) まで 1 ずつ増やしながら繰り返す:
(05)| | もし Array[j] < Array[min_index]ならば:
(06)| ⎿ ⎿ min_index = j
(07)| もし min_index != i ならば:
(08)| | tmp = Array[i]
(09)| | Array[i] = Array[min_index]
(10)⎿ ⎿ Array[min_index] = tmp
(11)表示する("選択ソート後:", Array)
( ア )
1.0 から 要素数(Array) - 1
2.0 から 要素数(Array) - 2
3.1 から 要素数(Array) - 1
4.1 から 要素数(Array) - 2
( イ )
1.i から 要素数(Array) - 1
2.i から 要素数(Array) - 2
3.i + 1 から 要素数(Array) - 1
4.i + 1 から 要素数(Array) - 2
答えを見る
答え ア2.0 から 要素数(Array) - 2
イ3.i + 1 から 要素数(Array) - 1
QUESTION 312
次のプログラムは配列Arrayを挿入ソートで昇順に整列するものである。
挿入ソートが正しく実行されるように空欄に入る最も適切なものを選べ。
ただし、挿入ソートとは次の手順により配列の並びを整列するものである。
・未ソートの部分の最初の要素の値を取得する。
・この要素を次の手順でソート済み部分の適切な位置に挿入する:
・ソート済み部分を後ろから前へ向かって、取得した要素の値と大きさを比較する。
・取得した要素の値のほうが小さい場合、比較された要素を1つ右にシフトする。
・取得した要素の値が比較された要素の値以上である、または配列の先頭に到達した場合、比較を終了し、取得した要素の値を空いた位置(最後にシフトした要素が元いた場所)に代入する。
・この操作を繰り返し、未ソートの部分がなくなれば終了する。
配列の添字は左端を0とし、要素数(配列)は配列の要素数を返すものとする。 (1)Array = 【外部からの入力】
(2)i を 1 から 要素数(Array) - 1 まで 1 ずつ増やしながら繰り返す:
(3)| current = Array[i]
(4)| j = i - 1
(5)| ( ア ) の間繰り返す:
(6)| | Array[j + 1] = Array[j]
(7)| ⎿ j = j - 1
(8)⎿ Array[j + 1] = current
(9)表示する("挿入ソート後の配列: ", Array)
( ア )
1.j >= 0 and Array[j] > current
2.j >= 0 or Array[j] > current
3.j >= 0 and Array[j] <= current
4.j >= 0 or Array[j] <= current
ただし、論理式は以下のように処理されるものとする。
「P and Q」は「Pが成立するときにQを評価し、Qも成立したならば、P and Qは真である」という評価をする。Pが成立しなければ、Qを評価することなくP and Qは偽となる。
「P or Q」は「Pが成立しないときにQを評価し、Qも成立しなければ、P or Qは偽である」という評価を行う。Pが成立したならば、Qを評価することなくP or Qは真である。
答えを見る
答え 1.j >= 0 and Array[j] > current
QUESTION 313
次のプログラムはマージソートの処理の主要な部分である。
2つの昇順にソート済みの配列を併合(マージ)し、1つの昇順にソート済みの配列Mergedを作成する。
この操作が正しく実行されるように空欄に入る最も適切なものを選べ。
配列の添字は左端を0とし、要素追加(配列, 値)は配列の末尾に新しい要素を追加する関数であり、要素数(配列)は配列の要素数を返すものとする。 (1)A = [1, 3, 4] , B = [2, 3, 6, 9] , Merged = []
(2)i = 0 , j = 0
(3)( ア ) の間繰り返す:
(4)| もし ( イ ) ならば:
(5)| | 要素追加(Merged, A[i])
(6)| | i = i + 1
(7)| そうでなければ:
(8)| | 要素追加(Merged, B[j])
(9)⎿ ⎿ j = j + 1
(10)i < 要素数(A) の間繰り返す:
(11)| 要素追加(Merged, A[i])
(12)⎿ i = i + 1
(13)j < 要素数(B) の間繰り返す:
(14)| 要素追加(Merged, B[j])
(15)⎿ j = j + 1
(16)表示する("マージ後の配列:", Merged)
( ア )
1.i < 要素数(A) and j < 要素数(B)
2.i <= 要素数(A) and j <= 要素数(B)
3.i < 要素数(A) or j < 要素数(B)
4.i <= 要素数(A) or j <= 要素数(B)
( イ )
1.i <= j
2.i >= j
3.A[i] <= B[j]
4.A[i] >= B[j]
答えを見る
答え ア 1.i < 要素数(A) and j < 要素数(B)
イ 3. A[i] <= B[j]
QUESTION 314
次のプログラムはクイックソートの処理の主要な部分である。
配列Arrayの左端の値を基準(ピボット)として、この基準より小さい値の要素を基準の左側に、大きな値の要素を基準の右側に移動するプログラムとなるように空欄に入る最も適切なものを選べ。
配列の添字は左端を0とし、要素追加(配列, 値)は配列の末尾に新しい要素を追加する関数であり、要素数(配列)は配列の要素数を返すものとする。
さらに、配列結合(配列1, 配列2, ...)は複数の配列の引数の順に結合した配列を返す関数である。 (1)Array = 【外部からの入力】
(2)pivot = Array[0]
(3)Less = [], Equal = [pivot], Greater = []
(4)i を 1 から 要素数(Array) - 1 まで 1 ずつ増やしながら繰り返す:
(5)| もし ( ア ) ならば:
(6)| | 要素追加(Less, Array[i])
(7)| そうでなくもし ( イ ) ならば:
(8)| | 要素追加(Equal, Array[i])
(9)| そうでなければ:
(10)| ⎿ 要素追加(Greater, Array[i])
(11)Array = 結合(Less, Equal, Greater)
(12)表示する("ピボットによる分割後:", Array)
( ア )( イ )
1.Array[i] < pivot
2.Array[i] > pivot
3.Array[i] == pivot
4.Array[i] != pivot
答えを見る
答え ア 1.Array[i] < pivot
イ 3.Array[i] == pivot
QUESTION 315
次のプログラムは配列Arrayの中に変数targetの値が存在するかを調べる線形探索のものである。
線形探索が正しく実行されるように空欄に入る最も適切なものを選べ。
線形探索とは次の手順で配列の要素の値を探索するものである。
・配列の要素を前から順にひとつずつ調べていく。
・変数targetの値と等しい要素の値を見つけたら、要素の番号を表示する。
・配列の中に変数targetの値と等しい要素の値が存在しなければ、存在しない旨を表示する。
配列の添字は左端を0とし、要素数(配列)は配列の要素数を返すものとする。 (01)Array = 【外部からの入力】
(02)target = 【外部からの入力】
(03)found = -1
(04)iを 0 から 要素数(Array) - 1 まで 1 ずつ増やしながら繰り返す:
(05)| もし ( ア )ならば:
(06)⎿ ⎿ found = i
(07)もし ( イ ) ならば:
(08)| 表示する(target, "は配列の", found, "番目の要素です")
(09)そうでなければ:
(10)⎿ 表示する(target, "は配列の中に存在しません")
( ア )
1.Array[i] == target
2.Array[i] != target
3.Array[i] >= target
4.Array[i] <= target
( イ )
1.found == -1
2.found != -1
3.found == 0
4.found != 0
答えを見る
答え ア 1.Array[i] == target
イ 2.found != -1
QUESTION 316
次のプログラムは配列Arrayの中に変数targetの値が存在するかを調べる線形探索のものである。
線形探索が正しく実行されるように空欄に入る最も適切なものを選べ。
線形探索とは次の手順で配列の要素の値を探索するものである。
・配列の要素を前から順にひとつずつ調べていく。
・変数targetの値と等しい要素の値を見つけたら、探索を打ち切り、要素の番号を表示する。
・配列の中に変数targetの値と等しい要素の値が存在しなければ、存在しない旨を表示する。
配列の添字は左端を0とし、要素数(配列)は配列の要素数を返すものとする。 (1)Array = 【外部からの入力】
(2)target = 【外部からの入力】
(3)i = 0 , n = 要素数(Array)
(4)( ア ) の間繰り返す:
(5)⎿ i = i + 1
(6)もし ( イ ) ならば:
(7)| 表示する(target, "は配列の", i, "番目の要素です")
(8)そうでなければ:
(9)⎿ 表示する(target, "は配列の中に存在しません")
( ア )
1.i < n and Array[i] == target
2.i < n or Array[i] == target
3.i <= n and Array[i] == target
4.i <= n or Array[i] == target
5.i < n and Array[i] != target
6.i < n or Array[i] != target
7.i <= n and Array[i] != target
8.i <= n or Array[i] != target
( イ )
1.i < n
2.i <= n
3.i > n
4.i >= n
ただし、論理式は以下のように処理されるものとする。
「P and Q」は「Pが成立するときにQを評価し、Qも成立したならば、P and Qは真である」という評価をする。Pが成立しなければ、Qを評価することなくP and Qは偽となる。
「P or Q」は「Pが成立しないときにQを評価し、Qも成立しなければ、P or Qは偽である」という評価を行う。Pが成立したならば、Qを評価することなくP or Qは真である。
答えを見る
答え ア 5.i < n and Array[i] != target
イ 1.i < n
QUESTION 317
次のプログラムは整列済みの配列Arrayの中に変数targetの値が存在するかを調べる二分探索のものである。
二分探索が正しく実行されるように空欄に入る最も適切なものを選べ。
二分探索とは次の手順で配列の要素の値を探索するものである。
・配列の真ん中の要素の値と変数targetの値を比較する。
・この2つが一致していれば、探索を終了し、配列内に目的の値が見つかった旨を表示する。
・要素の値が変数targetの値より小さければ、変数targetの値が存在するなら真ん中より右側にあることがわかる。
→探索する範囲の左端を真ん中の要素の1つ次の要素に更新して、もう一度探索を行う。
・要素の値が変数targetの値より大きければ、変数targetの値が存在するなら真ん中より左側にあることがわかる。
→探索する範囲の右端を真ん中の要素の1つ前の要素に更新して、もう一度探索を行う。
・探索する範囲がなくなれば、探索を終了し、配列内に目的の値が見つからなかった旨を表示する。
配列の添字は左端を0とし、要素数(配列)は配列の要素数を返すものとする。 (01)Array = 【外部からの入力】
(02)target = 【外部からの入力】
(03)low = 0 , high = 要素数(Array) - 1
(04)found = 0
(05)low <= highの間繰り返す:
(06)| mid = (low + high) ÷ 2 #(low + high)を2で割った商
(07)| もし Array[mid] == target ならば:
(08)| | found = 1
(09)| | low = high + 1
(10)| そうでなくもし Array[mid] < target ならば:
(11)| | ( ア )
(12)| そうでなければ:
(13)⎿ ⎿ ( イ )
(14)もし found == 1 ならば:
(15)| 表示する(target, "は配列の", mid, "番目の要素です")
(16)そうでなければ:
(17)⎿ 表示する(target, "は配列の中に存在しません")
( ア )( イ )
1.low = mid
2.low = mid - 1
3.low = mid + 1
4.high = mid
5.high = mid - 1
6.high = mid + 1
答えを見る
答え ア 3.low = mid + 1
イ 5.high = mid - 1
QUESTION 318
乱数()は0以上1未満の実数をランダムに返す関数であり、整数(x)は実数xを超えない最大の整数を返す関数である。
1から5の整数をランダムに返す関数は次のうちどれか。 1.5 * 整数(乱数())
2.5 * 整数(乱数()) + 1
3.整数(5 * 乱数())
4.整数(5 * 乱数()) + 1
答えを見る
QUESTION 319
正の実数aと実数bに対して、べき乗(a, b)はaのb乗を計算して返す関数である。
正の実数x, yに対して、√(x²+y²)の計算結果を返す関数は次のうちどれか。 1.(べき乗(x, 2) + べき乗(y, 2)) / 2
2.べき乗(べき乗(x, 2), 0.5) + べき乗(べき乗(y, 2), 0.5)
3.べき乗(べき乗(x, 2) + べき乗(y, 2), 0.5)
4.べき乗(べき乗(x + y, 2), 0.5)
答えを見る
答え 3.べき乗(べき乗(x, 2) + べき乗(y, 2), 0.5)
QUESTION 320
以下のように定義された関数 面積(x, y)を用いた次のプログラムで、aに3、bに4を入力して実行した際の表示結果を答えよ。 (1)定義する 面積(x, y)
(2)| z = x * y / 2
(3)⎿ 返す z
プログラム
(1)a = 【外部からの入力】 #3と入力
(2)b = 【外部からの入力】 #4と入力
(3)c = 面積(a, b)
(4)表示する("面積は", c)
答えを見る
解説本文について このページでは、問題・答え・キーワードと対応動画だけを掲載しています。書籍に収録した解説本文は掲載していません。