修了試験 2016-01-24実施分 基本情報技術者試験 問6
長さm,nの文字列をそれぞれ格納した配列X,Yがある。 図は,配列Xに格納した文字列の後ろに,配列Yに格納した文字列を連結したものを,配列Zに格納するアルゴリズムを表す流れ図である。 図中のa,bに入れる処理として,適切なものはどれか。 ここで,1文字が一つの配列要素に格納されるものとする。

正答1
解説
正解は1です。 この問題は、配列Xの後ろに配列Yを連結して配列Zに格納する流れ図の空欄を問うています。 図では、ループ1がkを1からmまで1ずつ増やしながら処理aを繰り返します。 続くループ2は、kを1からnまで1ずつ増やしながら処理bを繰り返します。 Zの1〜m番目にはXの内容、m+1〜m+n番目にはYの内容が入る必要があります。 【選択肢別解説】 1:○ aでX(k)をZ(k)に格納すると、Zの1〜m番目にXが入ります。 bでY(k)をZ(m+k)に格納すると、Yの1文字目がZのm+1番目に入り、Xの直後に連結されます。 2:× bでY(k)をZ(n+k)に格納すると、Yの格納開始位置がZのn+1番目になります。 mとnが異なると、Xとの間に空きができたりXを上書きしたりするので誤りです。 3:× ループ1はkが1からmまで動くので、長さmのXを扱う必要があります。 aでYを先に格納すると、連結の順序もループの回数も合わなくなります。 4:× aとbでXとYが逆になっており、ループの回数とも一致しません。 格納位置もn+kなので、Xの後ろにYを連結する処理になりません。 【ポイント】 連結では、後ろにつなぐ配列の格納位置を「前の配列の長さ+k」とずらすのが定石です。 流れ図では、ループ変数の終値(mかnか)がどの配列に対応しているかを確認しましょう。まとめて解く
修了試験 2016-01-24実施分を通しで解く(80問)→