基本情報技術者試験 科目B用に、いつもより難しめに問題を作りました!ぜひ解いてみて下さい😊
次の擬似言語を実行した後の配列Aの内容として正しいものはどれか。
整数型の配列: A ← {4, 7, 2, 5, 1, 6}
整数型: i, j, temp
for (i を 1 から 5 まで 1 ずつ増やす)
for (j を i + 1 から 6 まで 1 ずつ増やす)
if (A[i] mod 2 = 0 and A[j] mod 2 ≠ 0)
temp ← A[i]
A[i] ← A[j]
A[j] ← temp
elseif (A[i] mod 2 = A[j] mod 2 and A[i] > A[j])
temp ← A[i]
A[i] ← A[j]
A[j] ← temp
endif
endfor
endfor
【選択肢】
A. {1, 5, 7, 2, 4, 6}
B. {1, 5, 7, 4, 2, 6}
C. {1, 7, 5, 2, 4, 6}
D. {7, 5, 1, 2, 4, 6}
#基本情報技術者試験
この問題の解説
こちらの解答は「3」です。
配列A には{3, 8, 2, 10, 5}が格納されています。それを順に4以上の数値であるかを確認。4以上であればcountに1プラスしていく。
配列Aに、4以上の数値が3つ格納されているので、答えは3です☺️
基礎の基礎問題でした🤗
こちらの再帰問題、答えは「0123」です。
test(3)のなかでtest(2)、
test(2)のなかでtest(1)
test(1)のなかでtest(0)
が呼ばれていきます。
引数0でif文の処理からtest関数の呼び出しをせず、0を表示します。
再帰元に戻って、test(1)で1を表示。
また再帰元に戻って2を表示。
またまた戻って3を表示してます。
よって答えは「0123」です。
よくあるミスが「123」と答えるパターン。if文の判定がFalseだからか、その後のprintを忘れて関数から抜けてしまうパターンです。
基本情報で実際に解くときは、気を抜かず、丁寧にコードを見ていきましょう✨️







