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

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

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

出典:基本情報技術者試験 科目A免除 修了試験 20130127 実施分 問7(問題文は IPA の公開問題。解説は当サイト作成)

解説に誤りを見つけたら、解説の誤りを報告してください。

答えと解説を見る

正解:ア

覚える知識

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

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

この問題で必要なこと

先に X(長さ m)を Z(k) へ格納し、次に Y(長さ n)を Z の m 番目の後ろ(m+k)へ格納する。

ひっかけ

ウ・エは X と Y の役割が逆。イは Y の格納位置を n+k とし、前の配列の長さ m ではなく後ろの長さを使っている。

この知識の出題:本試験系 1 回・免除試験 5 回(公開問題での観測値)。頻出知識ランキング488位(全1,254件中)。

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

同じ知識の過去問