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

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

配列 A が図 2 の状態のとき,図 1 の流れ図を実行すると,配列 B が図 3 の状態になった。図 1 の a に入れる操作はどれか。ここで,配列 A,B の要素をそれぞれ A (i, j),B (i, j) とする。
図1 流れ図: 開始 → ループ1「i : 0, 1, 7(注)」→ ループ2「j : 0, 1, 7(注)」→ 処理 a → ループ2(端)→ ループ1(端)→ 終了。(注)ループ端の繰返し指定は,変数名:初期値,増分,終値 を示す。 図2 配列 A の状態(8×8,行 i=0〜7(縦,下向き),列 j=0〜7(横)。* の位置): i=0: j=1,2,3,4,5,6 / i=1: j=1 / i=2: j=1 / i=3: j=1,2,3,4 / i=4: j=1 / i=5: j=1 / i=6: j=1 / i=7: j=1 図3 実行後の配列 B の状態(同形式): i=0: なし / i=1: j=0,1,2,3,4,5,6,7 / i=2: j=4,7 / i=3: j=4,7 / i=4: j=4,7 / i=5: j=7 / i=6: j=7 / i=7: なし
  • ア B (7-i, 7-j) ← A (i, j)
  • イ B (7-j, i) ← A (i, j)
  • ウ B (i, 7-j) ← A (i, j)
  • エ B (j, 7-i) ← A (i, j)

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

答えと解説を見る

正解:エ

覚える知識

2次元配列の回転・転置操作の読解

8×8配列の時計回り90度回転は、B(j, 7−i) ← A(i, j) と表せる。

この問題で必要なこと

A(i,j) の移動先を図2と図3の*の位置から調べ、90度回転に相当する B(j,7−i) への代入だと特定する。

ひっかけ

反時計回りや上下左右反転の添字式との取り違え。

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

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

同じ知識の過去問