在这篇文章中,边肖给大家介绍了C语言程序调试方法的内容,有需要的朋友可以借鉴一下。
c语言程序的调试方法
所谓程序调试,就是指程序的调试和调试。
调试程序一般应经历以下步骤:
一、先进行人工检查,即静态检查。
写好程序后,不要急着进电脑,要手动检查程序。这一步非常重要。它能发现程序员的疏忽。
大多数错误。这一步往往被忽视,总希望把所有东西都推送到电脑上,但这样会占用更多的机器时间。作为一个程序员,要养成严谨的作风,每一步都要严格把关,才不会把问题留给后面的流程。
为了更有效地进行人工检查,编制的程序应努力做到以下几点:
采用结构化编程方法,增加可读性;
尽可能注释,帮助理解每个程序的功能;
编写复杂程序时,不要把所有语句都写在主函数中,而是多利用函数,用一个函数实现一个单一的函数。职能分工
通过参数传递数据时,尽量少耦合关系,便于分别检查和处理。
二、在人工检查无误后,再上机调试。
在计算机上查找错误称为动态检查。编译时会给出语法错误信息,调试时可以根据提示信息具体找出程序中的错误并改正。应该做
注意,有时提示错误的地方并不是错误真正发生的地方。如果在提示错误的那一行找不到错误,应该在前一行找。有时,错误的类型不是绝对准确的。因为错误很多,而且各种错误都是相互关联的,所以要善于分析,找出真正的错误,而不是只从字面上寻找错误信息。
如果系统提示的错误信息很多,要从上到下一条一条的改正。有时候显示一大段错误信息,往往会让人觉得问题很严重,无从下手。实际上,也许吧。
只有一两个错误。例如,如果使用的变量是未定义的,那么在编译时将向包含该变量的所有语句发送一条错误消息。这时候只要增加一个变量定义,所有的错误都消除了。
三、在改正语法错误(包括“错误(error)”和“警告(warning)”)后,程序经过连接(link)就得到可执行的目标程序。
奔跑
程序,输入程序需要的数据,就可以得到运行结果。应对运行结果进行分析,看其是否符合要求。有些初学者看到运行结果就认为没有问题。如果他们不仔细分析,那是危险的。
有时候数据比较复杂,很难马上判断结果是否正确。可以提前考虑一批“测试数据”,输入这些数据就很容易判断结果是否正确。
不可以,比如解方程ax2 bx c=0,A,B,C的值分别为1,-2,1,那么根X的值就是1。这个很好判断。如果根号不等于1,程序显然是错误的。
但在使用“测试数据”时,程序运行正确,不能保证程序完全正确。因为有可能另一组数据运行不正确。例如,用a0和b2-4ac0求x的根的值时,可以得到正确的结果,但当a=0或b2-4ac0时,就不能得到正确的结果(假设程序中没有对a=0进行辩护,也没有对复数进行处理)。因此,我们应该在节目中尝试每一种可能的情况。比如if语句有两个分支,有可能程序通过一个分支的结果是正确的,但是通过另一个分支的结果是不正确的。一定要体贴。事实上,当程序复杂时,很难尝试所有可能的情况,因此选择典型的临界数据进行实验就足够了。
四、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:
1.仔细比较程序和流程图。如果流程图是对的,程序写的不对,很容易查出来。比如复合语句忘记写花括号,只需要一个控制流。
可以很快找到程途。
2.如果实在找不到错误,可以用“分段检查”的方法。在程序的不同位置设置几个printf函数语句,输出相关变量的值,逐段往下。
检查。直到发现某个段中的数据不正确。这时,错误已经局限在这一段了
3.还可以使用“条件编译”命令调试程序(在程序调试阶段,会编译执行几条printf函数语句。调试完成后,这些语句
不再编译,也不再执行)。这种方法可以通过逐个消除printf函数语句来提高效率。
4.如果在程序中没有发现问题,检查流程图有无错误,也就是算法。如果有,请更正它,然后修改程序。
5.有些系统还提供调试工具来跟踪程序并给出相应的信息,使用起来更方便。请参考相关手册。
总之,程序调试是一项细致深入的工作,需要努力,需要动脑,需要积累经验。在程序调试的过程中,往往会体现出一个人的水平和经验。
还有态度。希望大家足够重视。在计算机上调试程序的目的绝不是“验证程序的正确性”,而是“掌握调试方法和技巧”。你要学会自己发现问题,这样才能慢慢写出错误少的实用程序。
关于C语言程序调试方法的这篇文章到此为止。关于C语言程序调试方法的更多内容,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。