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

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

長さ 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: X(k) → Z(k),b: Y(k) → Z(m+k)
  • イ a: X(k) → Z(k),b: Y(k) → Z(n+k)
  • ウ a: Y(k) → Z(k),b: X(k) → Z(m+k)
  • エ a: Y(k) → Z(k),b: X(k) → Z(n+k)

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

答えと解説を見る

正解:ア

覚える知識

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

先頭の文字列を格納した後ろに続けるには、先の文字列の長さ分だけ添字をずらして格納する。

この問題で必要なこと

XをZ(1..m)へ、続けてYをZ(m+1..m+n)へ格納する。b側のオフセットは先に格納した文字列長mである。

ひっかけ

オフセットに後ろの文字列の長さnを使う誤りや、XとYの順序の入替えに混同させる。

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

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

同じ知識の過去問