在 PTA 中,程序填空题、函数题和编程题是需要被评测机编译(或解释)执行的题目类型,通过对输出数据的对比,判断学生答题正确性。
平时我们在检查题目以及解答老师疑问的过程中,总结出一些容易遇到的错误:
- 出题老师添加的测试数据有误,学生无法得到某些评测点分数
- 程序填空题挖空语法错误,导致系统解析空格时出错
- 函数题忘记添加代码插入点,评测机无法正确评测学生答案
- 编程题样例输入输出错误
我们在逐步优化的过程中添加了更严格的出题语法检查,预防常见的出题错误,同时加入了在线查看测试数据功能,方便老师随时检查测试数据。


本月我们对程序填空题、函数题和编程题上线了题目自测功能。
什么是题目自测
题目自测能够将出题老师的测试数据(以及编程题的样例数据)与题目标准答案一起提交到评测机执行,比对标准答案结果与实际程序输出结果,并给出测试结果。
这一机制能有效保证测试数据的正确性,防止由于出题老师疏忽或系统问题导致学生做题时无法得到正确的评测结果。
通过自测意味着什么
题目自测保证了这道题目能够正确被系统解析、能够在评测机中执行,同时出题老师的标准答案和测试数据相符合。
除此之外自测不能解决以下问题:
- 题目描述不清或有误导致学生无法理解
- 测试数据本身较弱,使用不完善的程序也能执行通过
引用他人通过自测的题目
在题库列表以及向题目集中添加题目时,可以在状态列查看题目自测结果,同时只有通过自测的题目才可以进行发布。

出题时查看自测结果
每次题目的添加和更新都会自动执行题目自测功能,老师在一般情况下无需手动执行。
在题目修改界面的右上角会显示当前题目的自测结果,并且在点击后查看更加详细的评测结果(包含运行时间、内存占用、编译提示等信息)。

编程题的样例数据是学生辅助学生正确理解题目的重要信息,为尽量避免学生由于样例数据错误对题目造成误解,除了测试数据外,编程题在进行自测时还检查了了样例数据的正确性。

UPDATE 1: 现有的已公开题目有可能未通过自测,我们将逐步提醒老师并协助进行完善,但之后所有的题目发布操作都需要已经通过自测。
UPDATE 2: 目前在题目创建完成时不会自动执行自测,老师可以在右上角手动点击开始自测或再次进行更新,我们近期将会修复。