問78
頻出度★★☆
手続 calcMod3 を呼び出したときの出力はどれか。 〔プログラム〕 ○calcMod3() 整数型: totalValue, i totalValue ← 0 for (i を 1 から 7 まで 1 ずつ増やす) if (i ÷ 3 の余り が 0 と等しい) totalValue ← totalValue + i endif endfor totalValue を出力する
这道题的解析和你的作答记录。
手続 calcMod3 を呼び出したときの出力はどれか。 〔プログラム〕 ○calcMod3() 整数型: totalValue, i totalValue ← 0 for (i を 1 から 7 まで 1 ずつ増やす) if (i ÷ 3 の余り が 0 と等しい) totalValue ← totalValue + i endif endfor totalValue を出力する
2 既不是被加上的值(3 和 6),也不是它们的合计。1~7 中 3 的倍数是 3 和 6,共 2 个,如果把这个「个数」误当成答案就会得到 2,但输出的不是个数,而是合计 totalValue,所以错误。
3 只是 i=3 时第一次加上后的中间结果。循环会一直进行到 i=7,而 i=6 也是 3 的倍数会被加上,因此最终值是 9。如果在 i=3 时就停止累加,就会误选 3。
7 是循环的上限值(i 的最大值),而不是合计。totalValue 是满足条件的那些 i 的总和,所以上限值 7 不会被原样输出。
正解 for 循环让 i 从 1 到 7 每次增加 1,仅当满足条件「i ÷ 3 的余数等于 0」(即 i 是 3 的倍数)时,才把 i 加到 totalValue 上。1~7 中 3 的倍数只有 3 和 6,因此 totalValue = 3 + 6 = 9,最后输出的就是 9。所以正确答案是 エ「9」。