
基本情報技術者試験 令和7年度 公開問題 科目B、全6問のうちの問1。
出典:令和7年度 基本情報技術者試験 公開問題 科目B 問1(プログラムは原本の画像を文字に書き起こし、字下げは 1 段を空白 2 つで表した。空欄は[ a ][ b ]で、解答群の表は 1 行の文に組み直した)
次の
関数 function1 が
○整数型: function1(整数型: n, 整数型: m)整数型: count ← 0整数型: ifor (iをnからmまで1ずつ増やす)if ((i mod 4)が0と等しい)count ← count + 1endifendforreturn count○整数型: function2(整数型: n, 整数型: m)整数型: count ← 0整数型: tempN ← n整数型: i, jfor ([ a ])if ((tempN mod 4)が0と等しい)繰返し処理を終了するendiftempN ← tempN + 1endforfor ([ b ])count ← count + 1endforreturn count
- アa iを
1から 2まで 1ずつ増やす, b jを nから 始めて mを 超えない 範囲で temp Nずつ増やす - イa iを
1から 2まで 1ずつ増やす, b jを tempNから mまで 1ずつ増やす - ウa iを
1から 2まで 1ずつ増やす, b jを tempNから 始めて mを 超えない 範囲で 4ずつ増やす - エa iを
1から 3まで 1ずつ増やす, b jを nから 始めて mを 超えない 範囲で temp Nずつ増やす - オa iを
1から 3まで 1ずつ増やす, b jを tempNから mまで 1ずつ増やす - カa iを
1から 3まで 1ずつ増やす, b jを tempNから 始めて mを 超えない 範囲で 4ずつ増やす
答えと解説を開く
正解はカです。
function1 は、
ほかの選択肢が違う理由
- アa が
2 回までだと、 n = 1 の とき tempN は 3 で 止まり、 4 の 倍数に なりません。 b も n から tempN ずつ 進むので、 n = 1、 m = 11 では j = 1、 4、 7、 10 の 4 回数え、 2 と 合いません。 - イtempN が
3 で 止まるうえ、 b は tempN から m まで 1 ずつ 進むので、 4 の 倍数ではない 数まで 数えます。 n = 1、 m = 11 では 3 から 11 までの 9 を 返します。 - ウ4 ずつ
進む b は 合っていますが、 a が 2 回までなので n = 1 の とき tempN が 3 で 止まります。 j = 3、 7、 11 と 4 の 倍数でない 数を 数えて 3 を 返します。 - エa は
合っていますが、 b が n から tempN ずつ 進みます。 n = 1、 m = 11 では tempN = 4 なので j = 1、 5、 9 の 3 回数え、 2 と 合いません。 - オa は
合っていますが、 b が 1 ずつ 進むので、 tempN から m までの 全部の 数を 数えます。 n = 1、 m = 11 では 4 から 11 までの 8 を 返します。
仕組み
整数を
4 の