《C语言程序常见错误与调试方法(1)》由会员分享,可在线阅读,更多相关《C语言程序常见错误与调试方法(1)(17页珍藏版)》请在人人文库网上搜索。

1、C语言程序常见错误与调试方法,(一)C语言程序常见错误,程序设计很少能够没有错误的一次完成,在编程的过程中由于种种原因,总会出现这样或那样的错误,这些程序的错误也就是常说的“Bug”,而检测并修正这些错误就是“Debug”(调试)。 程序错误可分为三类:语法错误、运行错误和逻辑错误。,1、语法错误,语法错误是指那些由于编程中输入不符合语法规则产生的错误。 例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不配对等。 通常,编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式列举出来。,2、运行错误,运行错误是指程序在运行过程中出现错误。。

2、 例如:进行除法运算时除数为零、数组下标越界、文件无法打开等。 这类错误只出现在运行过程中,在程序编译时一般是无法发现的。,3、逻辑错误,逻辑错误是指程序运行后,没有得到预期的结果。这类错误从语法上来说是有效的,但是程序逻辑上存在缺陷。 例如:使用了不正确的变量类型、循环条件不正确、程序设计算法考虑不周等。 一般情况下,编译器在编译程序时,不能检查到程序的逻辑错误,也不会产生逻辑错误提示信息。,(二)语法错误的分类,语法错误的调试,可以由集成开发环境提供的调试功能来完成,在程序进行编译时,编译器会对程序中的语法错误进行诊断。 编译诊断的语法错误分为3类:致命错误、错误和警告。,1、致命错误,“。

3、致命错误”大多数是编译程序内部发生错误。 发生这类错误时,编译被迫终止,只能重新启动编译程序。幸运的是,这类错误很少发生,但是为了安全,编译前最好先保存程序。,2、错误,“错误”通常是在编译时,语法不当所引起的,例如括号不匹配、变量为声明等。 产生这类错误时,编译程序会出现报错提示,根据提示对源程序进行修改即可。这类错误是出现最频繁的。,3、警告,“警告”是指被编译程序怀疑有错,但不确定,有时可强行编译通过。例如:主函数没有返回值时没有加void声明、double型数据被转换为float型数据等。 这些警告中,有些会导致错误,有些则可以编译通过。,(三)C语言程序调试方法,1、先进行人工检查,。

4、即静态检查。 在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现由于疏忽而造成的多数错误。这一步往往容易被人忽视,总希望把一切都推给计算机去做,但这样会多占用机器时间,作为一个程序设计人员应当养成严谨的作风,每一步都要严格把关,不把问题留给后面的工序。,(三)C语言程序调试方法,为了更有效地进行人工检查,所编的程序应力求做到以下几点: 1)应当采用结构化程序方法编程,以增加可读性; 2)尽可能多加注释,以帮助理解每段程序的作用; 3)在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样便于分别检查和处理。。

5、,(三)C语言程序调试方法,2、在人工检查无误后,再上机调试。即动态检查。 在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。应当注意的是有时提示出错的地方并不是真正出错的位置,如果在提示出错的行找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多且各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。,(三)C语言程序调试方法,3、对运行结果作分析,看它是否符合要求。 有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。 有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好。

6、一批“试验数据”,输入这些数据可以很容易判断结果正确与否。 事实上,当程序复杂时很难把所有的可能情况全部都试到,选择典型的临界数据作试验即可。,(三)C语言程序调试方法,4、运行结果不对,大多属于逻辑错误。 这类错误往往需要仔细检查和分析才能发现。可以采用以下办法: 1)将程序与流程图仔细对照,如果流程图是正确的,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。,(三)C语言程序调试方法,2)如果实在找不到错误,可以采用“分段检查”的方法。逐段往下检查,直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。 3)如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题。有则改正之,接着修改程序。,(三)C语言程序调试方法,总之,程序调试是一项深入细致的工作,需要下功夫,动脑子,善于积累经验。在程序调试过程中往往反映出一个人的水平、经验和态度。希望大家给以足够的重视。上机调试程序的目的决不是为了“验证程序的正确”,而是“掌握调试的方法和技术”,要学会自己找问题,这样慢慢自己就会写出错误较少的实用程序。,END。

c语言程序中的错误可分为,C语言程序常见错误与调试方法(1)相关推荐

  1. boost::timer模块检查在同一程序中使用 Chrono 和 Timer 不会导致链接错误

    boost::timer模块检查在同一程序中使用 Chrono 和 Timer 不会导致链接错误 实现功能 C++实现代码 实现功能 boost::timer模块检查在同一程序中使用 Chrono 和 ...

  2. c 程序多语言,怎样在程序中利用C支持多国语言

    怎样在程序中利用C支持多国语言 本文以emule为例,探讨一下多国语言支持的实现.选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换.而且最关键,它是开源的,可以直接通过源码来研究它的 ...

  3. ip地址转换数字函数 iton_c# – RabbitMQ CreateConneciton问题 – 在一个应用程序中运行,但在另一个应用程序中运行...

    所以这是连接代码. var factory = new ConnectionFactory { HostName = "myserver", UserName = "te ...

  4. 定义分数类中和运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。

    /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作    者:李德彪 *完成时间:2016年6月15日 * ...

  5. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  6. 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...

    相关问题 在普通视图中,需打开"插入"菜单,单击"脚注"或"尾注",打开一注释内容编辑区, 才能查看和编辑注释内容: 视图 中 菜单 脚注 ...

  7. 在c语言程序中可把整型数,C语言程序设计(2).doc

    作业4 单项选择题 第1题 若要说明一个类型名STP,使得是定义语句STP s;等价于char *s;以下选项中正确的: A.typedef STP char *s; B.typedef *char ...

  8. 在C语言程序中 当调用函数时,c语言程序设计第2版) 教学课件 作者 梅创社试题库 期末试卷一.docx...

    期末试卷一 一.单项选择题(每题1分,共45分)1.在计算机系统中,可以执行的程序是( )A.源程序 B.汇编语言程序C.机器语言程序 D.ASCII码2.C语言程序的基本单位是( )A.程序行 B. ...

  9. java程序中语句隔开_《Java语言程序设计》填空题.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava <Java语言程序设计>填空题.doc9页 ...

最新文章

  1. 图灵2010.08书讯
  2. 苹果加急审核详细步骤
  3. IT外企那点事[转载]
  4. 块级元素内联并列显示
  5. 根号三的用计算机怎么表示,计算器根号3怎么打
  6. 在featureDataset和workspace下創建featureclass
  7. 【JAVA零基础入门系列】Day14 Java对象的克隆
  8. python 去除字符串的标点符号 用_Python输入和输出
  9. win10改成ubundu主题_如何将ubuntu引导win10,修改为win10引导ubuntu
  10. 谷歌:. apk 成为历史!
  11. 金笛JDMail邮件服务器帮你应付电子邮件归档危机
  12. 121道分布式面试题和答案
  13. 前端常见浏览器兼容性问题解决方案
  14. 加速计/陀螺仪/磁力计是什么,3轴/6轴/9轴传感器又是什么?
  15. ISBN书号怎么查询
  16. Matplotlib动图:FuncAnimation实现
  17. HIT信息安全概论复习:1~10
  18. 管理 Office com 加载项
  19. 关于自行修改人人商城模板文件目录指引
  20. C#和倍福PLC之间的通信

热门文章

  1. 计算机英语句型,英语句型大全句型宝典.pdf
  2. AirPlay Deamon学习(Linux Daemon)
  3. 使用CSS+JS实现猜谜语,集碎片,合成3D灯笼
  4. ai作文批改_AI智能作文批改与人工批改对比分析
  5. 从EOS 主网同步数据
  6. 爬虫案例之爬取国家药监局化妆品生产许可明细(爬取动态加载数据)
  7. fiddler获取APP启动流量教程
  8. Java实现将表格数据导出成Excel
  9. 物联网LPWA通信技术(1):NB-IOT通信特点及主要场景应用
  10. 苏格拉底的oracle,苏格拉底的智慧——“三个最”