配列Aが図2の状態のとき、図1の流れ図を実行すると、配列Bが図3の状態になった。図1のaに入れる操作はどれか。ここで、配列A, Bの要素をそれぞれA(i, j), B(i, j)とする。
添字の交換は転置、片方の反転を伴えば90度回転になる
![図1 流れ図:開始→ループ1(i:0,1,7)→ループ2(j:0,1,7)→[a]→ループ2→ループ1→終了。(注)ループ端の繰返し指定は、変数名:初期値,増分,終値を示す。図2 配列Aの状態(8×8、i=0〜7が縦・j=0〜7が横):*があるのは(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)、(1,1)、(2,1)、(3,1)(3,2)(3,3)(3,4)、(4,1)、(5,1)、(6,1)、(7,1)。図3 実行後の配列Bの状態:*があるのは(1,0)〜(1,7)の全て、(2,4)(2,7)、(3,4)(3,7)、(4,4)(4,7)、(5,7)、(6,7)。i=0の行とi=7の行は空。](/data/fe/figures/fe-2022s-kamokuA-6.jpg)
選択肢
- ア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)
正解と解説
正解:エ B(j, 7-i) ← A(i, j)
実行後の配列では、元の配列で縦に並んでいた印が横並びに、横に並んでいた印が縦並びに変わっている。これは行番号と列番号を入れ替える転置に加え、一方の添字を反転させる操作、すなわち図形を90度回転させる代入に相当する。添字の対応を1つの要素で確かめれば、行と列を交換したうえで元の行番号を反転させる式が合致すると分かる。
選択肢ごとの解説
- ア両方の添字を反転させるだけで、180度回転(点対称)になり縦横が入れ替わらない。
- イ行と列は入れ替わるが回転の向きが逆になり、結果の配置が合わない。
- ウ行はそのままで列だけ反転する左右反転で、縦横の入替えが起きない。
- エ行と列を交換しつつ元の行番号を反転させる、90度回転に相当する正しい代入。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。