基本情報技術者試験 |
2001年度 = 平成13年度・秋期 |
午前 |
問14 |
長さm、nの文字列を格納した配列X、Yがある。図は、長さmの文字列の後ろに長さnの文字列を連結したものを配列Zに格納するアルゴリズムを表す流れ図である。図中のa、bに入れる処理として、正しいものはどれか。ここで、1文字が一つの配列要素に格納されるものとする。
| 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 ) |
ア
文字列を連結するアルゴリズムを問う問題です。ここでは、
配列X … 文字列"ABCD"
配列Y … 文字列"123"
を連結するとしましょう。すなわち、mの値は4で、nの値は3です。
まず、ループ1では、下図に示すように配列X(1)~X(4)をZ(1)~Z(4)にそのままコピーします。
すなわち、kを1からmまで増やしながら、X(k)をZ(k)に代入します。
次に、ループ2では、下図に示すように配列Y(1)~Y(3)をZ(5)~Z(7)にコピーします。
すなわち、kを1からnまで増やしながら、Y(k)をZ(m+k)に代入します。