プログラミングの基礎(擬似言語のトレース)

配列の要素番号は1から始まる。最大の要素を探す次のプログラムを実行した後の m の値はどれか。

整数型の配列: a ← {3, 8, 2, 8, 5}
整数型: m ← 1
for (i を 2 から 5 まで 1 ずつ増やす)
  if (a[i] > a[m])
    m ← i
  endif
endfor
  1. A2
  2. B4
  3. C8
答えと解説を見る

正解:A. 2

m は、それまでに見た中で最大の要素の要素番号です。i = 2 で a[2] = 8 > a[1] = 3 なので m = 2 になります。i = 4 の a[4] = 8 は a[2] = 8 と等しく、> は成り立たないので m は変わりません。そのため最大値が複数あるときは、最初に現れた要素番号2が残ります。条件を ≧ にすると、最後に現れた要素番号4になります。

  • A. 正しい。等しい値では m を更新しないので、最初の最大値の要素番号2が残ります。
  • B. 条件を a[i] ≧ a[m] にした場合の結果です。
  • C. 最大値そのものです。m には要素番号を代入しています。
この分野を解く 分野ページへ

関連する計算ツール

プログラミングの基礎(擬似言語のトレース)の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

プログラミングの基礎(擬似言語のトレース)のほかの問題

  1. 配列 a の要素を逆順に並べ替えるつもりで、次のプログラムを書いた。配列の要素番号は1から始まる。実行した後の a の内容はどれか。
  2. 配列の要素番号は1から始まる。次のプログラムを実行した後の配列 a の内容はどれか。
  3. 配列の要素番号は1から始まる。隣り合う要素を比べる次のプログラムを実行した後の c の値はどれか。
  4. m[i, j] は二次元配列 m の i 行目 j 列目の要素を表し、要素番号は1から始まる。次のプログラムを実行した後の s の値はどれか。
  5. 4行5列の二次元配列 m の要素を、次のプログラムで要素数20の配列 b に移す。m[i, j] は i 行目 j 列目の要素を表し、要素番号は1から始まる。m[3, 2] が代入される b の要素番号はどれか。