- C语言程序设计
- 徐凤生 黄超 谢玉华编著
- 942字
- 2025-04-17 10:56:38
1.6.1 静态调试
1.对程序语法规则进行检查
(1)语句正确性检查。保证程序中每条语句的正确性是编写程序时的基本要求。由于程序中包含大量的语句,书写过程中由于疏忽或笔误,写错语句在所难免。对程序语句的检查应注意以下几点:
①检查每条语句的书写是否有字符遗漏,包括必要的空格符。
②检查形体相近的字符是否书写正确,例如o和0,书写时要有明显的区别。
③检查函数调用时形参和实参的类型、个数是否相同。
(2)语法正确性检查。每种计算机语言都有自己的语法规则,书写时必须遵守一定的语法规则,否则编译时程序将给出错误信息。
①语句的配对检查。许多语句都是配对出现的,不能只写半条语句。另外,语句有多重括号时,每重括号也都应成对出现,不能缺左少右。
②注意检查语句顺序。有些语句不仅句法本身要正确,而且语句在程序中的位置也必须正确。例如,变量定义要放在使用该变量的所有可执行语句之前。
2.检查程序的逻辑错误
(1)检查程序中各变量的初值和初值的位置是否正确。例如,经常遇到的“累加”“累乘”,其初值和位置都非常重要。若赋的初值或赋初值的位置错了,就得不到预想的结果。
(2)检查程序中分支结构是否正确。程序中的分支结构都是根据给定的条件来决定执行不同的路径的,因此在设置各条路径的条件时一定要谨慎,在设置“大于”“小于”这些条件时,一定要仔细考虑是否应包含“等于”这个条件,更不能把条件写反。尤其要注意的是,实型数据在运算过程中会产生误差,如果用“等于”或“不等于”对实数的运算结果进行比较,则会因为误差而产生错误判断,路径选择也就出现错误。因此,在遇到要判断实数a和实数b相等与否作为条件来选择路径时,应该把条件写成if(fabs(a-b)<=1e-6),而不应该写成if(a==b)。要特别注意条件语句嵌套时,if和else的配对关系。
(3)检查程序中循环结构的循环次数和循环嵌套的正确性。C语言中可用for循环、while循环、do-while循环。在给定循环条件时,不仅要考虑循环变量的初始条件,还要考虑循环变量的变化规律、循环变量变化的时间,任何一条变化都会引起循环次数的变化。
(4)检查表达式合理与否。程序中不仅要保证表达式的正确性,而且还要保证表达式的合理性,尤其要注意表达式运算中的溢出问题。例如,运算数值可能超出整数范围就不应该采用整型运算,否则必然导致运算结果的错误。