アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20161211 実施分 問8

要素番号が 0 から始まる配列 TANGO がある。n 個の単語が TANGO[1]から TANGO[n]に入っている。図は,n 番目の単語を TANGO[1]に移動するために,TANGO[1]から TANGO[n−1]の単語を順に一つずつ後ろにずらして単語表を再構成する流れ図である。a に入れる処理として,適切なものはどれか。
流れ図: 開始 TANGO[n] → TANGO[0] ループ上端(i : n−1, −1, 0) [a] ループ下端 終了 (注)ループにおける条件は,変数名:初期値,増分,終値を示す。
  • ア TANGO[i] → TANGO[i+1]
  • イ TANGO[i] → TANGO[n−i]
  • ウ TANGO[i+1] → TANGO[n−i]
  • エ TANGO[n−i] → TANGO[i]

出典:基本情報技術者試験 科目A免除 修了試験 20161211 実施分 問8

答えと解説を見る

正解:ア

覚える知識

配列要素のシフト(ずらし)処理の流れ図読解

配列を後ろへずらすときは、上書きを避けるため末尾側の要素から順に移す。

この問題で必要なこと

後ろへずらす処理は、末尾側から先頭側へ i を減らしながら TANGO[i]→TANGO[i+1] とする。ループは i を n−1 から0まで減らす。

ひっかけ

添字を n−i とする式は値の対応が合わない。移動先の添字を i−1 とする誤りもある。

この知識の出題:本試験系 1 回・免除試験 6 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「配列の添字操作と表計算の参照」で学ぶ

同じ知識の過去問