基本情報技術者試験の科目Bのサンプル問題を題材に,配列の要素を逆順にする処理について学習します。この問題では,配列の要素を入れ替えて並びを逆順にする処理を確認します。
(令和4年度4月公開) 基本情報技術者試験 サンプル問題 科目B 問2
問 次のプログラム中の a と b に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。
次のプログラムは,整数型の配列arrayの要素の並びを逆順にする。
〔プログラム〕
整数型の配列: array ← {1,2,3,4,5}
整数型: right,left
整数型: tmp
for (left を 1 から (arrayの要素数 ÷ 2 の商) まで 1 ずつ増やす)
right ← a
tmp ← array[right]
array[right] ← array[left]
b ← tmp
endfor
解答群
a | b | |
| ア | arrayの要素数 - left | array[left] |
| イ | arrayの要素数 - left | array[right] |
| ウ | arrayの要素数 - left + 1 | array[left] |
| エ | arrayの要素数 - left + 1 | array[right] |
【解答】ウ
【解説】
left は配列の先頭側,right は末尾側の要素番号を表す。配列の要素数が5の場合,left が1なら right は5,left が2なら right は4となる。このため,right は「arrayの要素数 − left + 1」で求めることができる。また,tmp に array[right] の値を一時的に保存してから,array[right] に array[left] の値を代入し,最後に array[left] に tmp の値を代入することで,array[left] と array[right] の値を入れ替えることができる。したがって,aは「arrayの要素数 - left + 1」,bは「array[left]」となる。
この処理を配列の中央まで繰り返すことで,配列 {1,2,3,4,5} は {5,4,3,2,1} のように逆順になる。
【参考】
この問題のポイント
この問題から学べることは,
- 配列の要素を入れ替えて逆順にする方法
- 一時的に値を保存する変数 tmp の使い方
- 配列の要素数を利用して,繰り返し処理の回数を決める方法
です。特に,配列の先頭と末尾,次にその内側の要素というように,対応する要素を順番に入れ替えることで,配列を逆順にできることを理解しておきましょう。
基本情報技術者試験の学習におすすめの参考書
基本情報技術者試験の合格を目指す方におすすめの参考書です。
学習のお役に立ちましたら
この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。
よろしければ、このサイトを応援いただけますと嬉しいです。
※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。


