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

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

長さ m,n の文字列をそれぞれ格納した配列 X,Y がある。図は,配列 X に格納した文字列の後ろに,配列 Y に格納した文字列を連結したものを,配列 Z に格納するアルゴリズムを表す流れ図である。図中の a,b に入れる処理として,適切なものはどれか。ここで,1 文字が一つの配列要素に格納されるものとする。
流れ図: 開始 → ループ1 (k: 1, 1, m) → [a] → ループ1 終端 → ループ2 (k: 1, 1, n) → [b] → ループ2 終端 → 終了 (注)ループ端の繰返し指定は,変数名:初期値,増分,終値 を示す。 選択肢表
ab
アZ(k) ← X(k)Z(m + k) ← Y(k)
イZ(k) ← X(k)Z(n + k) ← Y(k)
ウZ(k) ← Y(k)Z(m + k) ← X(k)
エZ(k) ← Y(k)Z(n + k) ← X(k)
  • ア a: Z(k) ← X(k) b: Z(m + k) ← Y(k)
  • イ a: Z(k) ← X(k) b: Z(n + k) ← Y(k)
  • ウ a: Z(k) ← Y(k) b: Z(m + k) ← X(k)
  • エ a: Z(k) ← Y(k) b: Z(n + k) ← X(k)

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

答えと解説を見る

正解:ア

覚える知識

配列の連結処理の流れ図読解

連結では後ろの配列を、前の配列の長さ分ずらした添字に格納する。

この問題で必要なこと

Xのm要素を先頭に、続けてYのn要素を位置m+kに格納する。したがってa:Z(k)←X(k)、b:Z(m+k)←Y(k)。

ひっかけ

mとnを取り違え、Z(n+k)にしてしまう。

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

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

同じ知識の過去問