跳到正文

令和5年度 ITパスポート試験 問64

这道题的解析和你的作答记录。

問64
頻出度★★☆

関数 sigma は, 正の整数を引数 max で受け取り, 1から max までの整数の総和を戻り値とする。プログラム中の a に入れる字句として, 適切なものはどれか。 〔プログラム〕 ○整数型: sigma(整数型: max) 整数型: calcX ← 0 整数型: n for (n を 1 から max まで 1 ずつ増やす) a endfor return calcX

出典 令和5年度 ITパスポート試験 問64
解説

問 64

  • 错误ア

    「calcX ← calcX × n」是乘法。由于 calcX 的初始值为 0,无论乘多少次 calcX 都仍为 0,得不到总和(若要求乘积,则需把初始值设为 1)。错误。

  • 错误イ

    「calcX ← calcX + 1」每次只加 1。只是按循环次数累加 1,所以结果是 max(循环次数),得不到 1+2+…+max 的总和。错误。

  • ウ

    正解 函数 sigma 返回从 1 到 max 的整数总和。calcX 初始值设为 0,for 循环将 n 从 1 到 max 每次增加 1 地反复执行。要求总和,只需在每次循环中把当前的 n 累加到累积变量 calcX 上即可。在 a 处填入「calcX ← calcX + n」后,calcX 依次变为 0 →1 →1+2 →1+2+3 →…,循环结束时即为 1+2+…+max 的总和。因此正确答案是ウ。

  • 错误エ

    「calcX ← n」不是加法而是赋值。每次都用 n 覆盖 calcX,所以循环结束时只剩下最后的值 max,得不到总和。错误。

ここがポイント
  • 用循环(for 循环)求总和的基本形式是:把累积变量初始化为 0,并在循环内以「累积变量 ← 累积变量 + 循环变量」的方式不断累加。
  • 区分总和(加法)与总积(乘法):总和时累积变量初始值为 0、运算符用「+」;总积时初始值为 1、运算符用「×」。还要注意单纯赋值「←」与累积加法「← …+…」之间的区别。
用語
解答問64ウ
练这一题

作答记录