アルゴリズムとプログラミング
平成23年度 秋期 基本情報技術者試験 午前 問7
要素番号が 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]
出典:平成23年度 秋期 基本情報技術者試験 午前 問7
答えと解説を見る
正解:ア
覚える知識
配列要素のシフト(ずらし)処理の流れ図読解
配列要素を後ろへずらすときは、上書きを避けるため末尾側から順に移す。
この問題で必要なこと
後ろから前へi=n-1から0まで降順にTANGO[i]をTANGO[i+1]へ移す。上書き防止のため大きい添字側から処理する。
ひっかけ
添字を取り違えた式(n−iなど)や代入方向の逆の選択肢が紛れる。
この知識の出題:本試験系 1 回・免除試験 6 回(公開問題での観測値)