第 4 课:debugging、字符串与模拟考试
非 UNSW 官方材料。本文基于 Debugging Guide、Lab Exam 信息页、strings/2D array lecture 和 C reference sheet 做中文转述;不复制官方 exam 题目或样例。[S004][S003][S014][S006]
今天只做:把错误分成 compile、autotest、runtime、logic 其中一类。 下一步:主控台 · 上一课 · 下一课:strings、2D arrays 与 structs 别乱跳:先看第一条错误,不整题重写。
debugging:先分类,不要乱猜
Debugging Guide 把问题分成 compile error、autotest error、run time error 和 logic error;你明天考试时先判断是哪一类,再决定看报错、看输出差异、还是补边界测试。[S004]
| 症状 | 先查什么 |
|---|---|
| 编译后马上报错 | 看第一条错误、行号和 dcc 解释 |
| autotest 不过 | 先挑一个失败测试,看你的输出和期望输出差异 |
| 运行中崩掉 | 检查数组下标、除以 0、输入是否读到 |
| 结果不对 | 检查条件边界、循环次数和初始化位置 |
字符串:先当 char array 看
Lecture 7/8 把 strings 和 arrays 放在一起讲,C reference sheet 也列出 string.h 中常见函数;Exam 1 急救时先掌握 char 数组和 '\0' 结束标记,再考虑库函数。[S013][S014][S006]
CodeBlock Loading...
如果题目要求逐字符处理,就用下标循环读 word[i]。下面是原创练习模板,用来训练“遇到某个字符就改掉”。[S014]
CodeBlock Loading...
30 分钟模拟节奏
Lab Exam 信息页公开说明示例考试有阅读时间、工作时间、题量、分值不均和 autotest/fetch 相关命令;这里不复刻题目,只把这些高层规则转成做题节奏。[S003]
- 5 分钟:只读题,标出每题是否要
return、是否禁止printf/scanf。 - 10 分钟:先做最熟的数组循环题。
- 10 分钟:做 2D array 或 string 题,先写循环框架。
- 5 分钟:按 Debugging Guide 分类查错,优先修编译和输出格式。[S004]
最后检查清单
- 我每题都保存了文件。
- 我至少重新编译过一次。
- 我按公开说明使用允许的 autotest/fetch 命令,而不是把题目内容搬到公开地方。[S003]
- 我检查了输出大小写、空格和换行。
- 我没有使用题目或 Style Guide 不允许的语言特性。[S005]
引用
- [S003] COMP1511 Lab Exam public information page: https://cgi.cse.unsw.edu.au/~cs1511/current/labexam/index.html
- [S004] COMP1511 Debugging Guide: https://cgi.cse.unsw.edu.au/~cs1511/26T1/resources/debugging_guide.html
- [S005] COMP1511 Style Guide: https://cgi.cse.unsw.edu.au/~cs1511/26T1/resources/style_guide.html
- [S006] COMP1511 C reference sheet PDF: https://cgi.cse.unsw.edu.au/~cs1511/26T1/resources/c-reference-sheet.pdf
- [S013] Lecture 7 PDF: https://cgi.cse.unsw.edu.au/~cs1511/26T1/slides/week_4/COMP1511_26T1_Lecture07.pdf
- [S014] Lecture 8 PDF: https://cgi.cse.unsw.edu.au/~cs1511/26T1/slides/week_4/COMP1511_26T1_Lecture08.pdf