第29347题 单选题
下列关于C++遍历数组求和的循环边界处理与优化的说法中,正确的是?

已知以下代码意图计算vector<int> arr中所有元素的和,但存在边界错误:

int calcSum(const vector<int>& arr) {
    int sum = 0;
    for(int i = 0; i <= arr.size(); ++i) {
        sum += arr[i];
    }
    return sum;
}

请选择正确的处理与优化方案:

A

原代码没有边界错误,仅需要将循环条件改为i < arr.size()即可正确运行

B

arr.size()提前到循环外部存储为局部变量len,同时将循环条件改为i < len,可同时修复边界错误并优化性能

C

将循环条件改为i <= arr.size() - 1即可修正边界错误,无需其他修改

D

为优化性能,可以将循环体中的sum += arr[i]移到循环外部,仅执行一次即可完成计算

程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析