次のプログラム中の a ~ c に入れる正しい答えの組合せを、解答群の中から選べ。 関数fizzBuzzは、引数で与えられた値が、3で割り切れて5で割り切れない場合は"3で割り切れる"を、5で割り切れて3で割り切れない場合は"5で割り切れる"を、3と5で割り切れる場合は"3と5で割り切れる"を返す。それ以外の場合は"3でも5でも割り切れない"を返す。 〔プログラム〕 ○文字列型: fizzBuzz(整数型: num) 文字列型: result if (num が a で割り切れる) result ← " a で割り切れる" elseif (num が b で割り切れる) result ← " b で割り切れる" elseif (num が c で割り切れる) result ← " c で割り切れる" else result ← "3でも5でも割り切れない" endif return result
elseif連鎖では限定的な条件を先に判定する
○文字列型: fizzBuzz(整数型: num)
文字列型: result
if (num が a で割り切れる)
result ← " a で割り切れる"
elseif (num が b で割り切れる)
result ← " b で割り切れる"
elseif (num が c で割り切れる)
result ← " c で割り切れる"
else
result ← "3でも5でも割り切れない"
endif
return result
選択肢
- アa: 3, b: 3と5, c: 5
- イa: 3, b: 5, c: 3と5
- ウa: 3と5, b: 3, c: 5
- エa: 5, b: 3, c: 3と5
- オa: 5, b: 3と5, c: 3
正解と解説
正解:ウ a: 3と5, b: 3, c: 5
if〜elseifは上から順に判定され、最初に成立した条件で処理が確定します。3と5の両方で割り切れる数は3でも5でも割り切れるため、最も限定的な「3と5」の判定を先頭に置かないと、より緩い条件に先に吸収されてしまいます。したがってaに「3と5」、続いてb・cに3と5を並べる組合せが正しくなります。
選択肢ごとの解説
- アaが3なので、15のような数が「3で割り切れる」に吸収される。
- イ同じくaが3で、3と5の両方で割り切れる数を取りこぼす。
- ウ正解。最も限定的な「3と5」を先に判定するので正しく振り分けられる。
- エaが5のため、15が「5で割り切れる」と判定されてしまう。
- オaが5で、やはり3と5の両方で割り切れる数を先に吸収してしまう。
同じ分野の他の問題
- 次のプログラム中の 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/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。