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

94 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# dim2 · 代码修改(3 题 / 满分 7 分)
> 考察:定位缺陷、最小修复、不越界。**题面发给模型;评分点不给。**
> 判定:把模型的修复产物放回可运行环境实测(自动化优先)。
---
## Q2.1 · Python 平均值(3 分)
### 给模型的题面
```text
下面是一个工具函数,请修复它,使其满足规格:
规格:
- 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 分)
### 给模型的题面
```text
下面函数意图是返回数组所有元素之和,但存在缺陷,请修复:
规格:
- 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 分)
### 给模型的题面
```text
下面函数应把版本字符串解析为 (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 | 人工/评委 |