アルゴリズムとプログラミング
平成26年度 春期 基本情報技術者試験 午前 問8
長さ m,n の文字列をそれぞれ格納した配列 X,Y がある。図は,配列 X に格納した文字列の後ろに,配列 Y に格納した文字列を連結したものを,配列 Z に格納するアルゴリズムを表す流れ図である。図中の a,b に入れる処理として,適切なものはどれか。ここで,1 文字が一つの配列要素に格納されるものとする。
流れ図(上から下):
開始 → ループ1[k:1, 1, m]→ 処理 a → ループ1 端 → ループ2[k:1, 1, n]→ 処理 b → ループ2 端 → 終了
(注)ループ端の繰返し指定は,変数名:初期値,増分,終値 を示す。
選択肢表:
| a | b | |
|---|---|---|
| ア | 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) |
答えを選ぶ
出典:平成26年度 春期 基本情報技術者試験 午前 問8(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:ア
覚える知識
配列の連結処理の流れ図読解
連結では、後ろの配列は前の配列の長さ分だけ添字をずらして格納する。
この問題で必要なこと
Xのm個をZ(1..m)に、続けてYのn個をZ(m+1..m+n)に格納する。後半の添字はm+kとなる。
ひっかけ
n+kとするとYの長さでずらすことになり、配列が重なったり隙間ができたりする。
この知識の出題:本試験系 1 回・免除試験 5 回(公開問題での観測値)。頻出知識ランキング488位(全1,254件中)。