Files
vscode-workbench/PLANNING/evals/questions/dim2-code.md
T

2.5 KiB
Raw Blame History

dim2 · 代码修改(3 题 / 满分 7 分)

考察:定位缺陷、最小修复、不越界。题面发给模型;评分点不给。 判定:把模型的修复产物放回可运行环境实测(自动化优先)。


Q2.1 · Python 平均值(3 分)

给模型的题面

下面是一个工具函数,请修复它,使其满足规格:

规格:
- average([]) 返回 0.0
- average([1, 2, 3]) 返回 2.0
- 除上述外行为不变,不要修改函数签名,不要新增依赖

代码:
def average(values):
    total = 0
    for v in values:
        total += v
    return total / len(values)

只输出修复后的完整函数(可含必要的 import 行,但不含其他文字)。

评分点(勿发给被测模型)

# 判据 分值 判定方式
1 average([]) == 0.0 1 自动(执行)
2 average([1,2,3]) == 2.0 且 average([1,2]) == 1.5 1 自动
3 最小改动(≤4 行改动),签名与结构未重写 1 人工/评委

Q2.2 · JS 求和(2 分)

给模型的题面

下面函数意图是返回数组所有元素之和,但存在缺陷,请修复:

规格:
- sum([1,2,3]) === 6
- sum([]) === 0
- 不得使用 reduce(项目规范要求 for 循环)

代码:
function sum(arr) {
  let s = 0;
  for (let i = 0; i <= arr.length; i++) {
    s += arr[i];
  }
  return s;
}

只输出修复后的完整函数,不含其他文字。

评分点(勿发给被测模型)

# 判据 分值 判定方式
1 sum([1,2,3])===6 且 sum([])===0(无 NaN) 1 自动(node 执行)
2 保持 for 循环、未用 reduce、未重写为其他结构(最小修复) 1 自动/人工

Q2.3 · 版本号解析(2 分)

给模型的题面

下面函数应把版本字符串解析为 (major, minor, patch) 三元组,请修复使其满足:

规格:
- parse("v1.2.3") → (1, 2, 3)
- parse("1.2") → (1, 2, 0)   ← 缺少 patch 时补 0
- parse("2") → (2, 0, 0)
- 输入含前导 v 或不含 v 都要支持

代码:
def parse(v):
    parts = v.lstrip("v").split(".")
    return (int(parts[0]), int(parts[1]), int(parts[2]))

只输出修复后的完整函数,不含其他文字。

评分点(勿发给被测模型)

# 判据 分值 判定方式
1 三个规格用例全部通过(v1.2.3 / 1.2 / 2) 1 自动
2 修复简洁且未过度工程(无正则引擎式重写、无新依赖) 1 人工/评委