




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序常见错误与调试方法 一 C语言程序常见错误 程序设计很少能够没有错误的一次完成 在编程的过程中由于种种原因 总会出现这样或那样的错误 这些程序的错误也就是常说的 Bug 而检测并修正这些错误就是 Debug 调试 程序错误可分为三类 语法错误 运行错误和逻辑错误 1 语法错误 语法错误是指那些由于编程中输入不符合语法规则产生的错误 例如 表达式不完整 缺少必要的标点符号 关键字输入错误 数据类型不匹配 循环语句或选择语句的关键字不配对等 通常 编译器对程序进行编译的过程中 会把检测到的语法错误以提示的方式列举出来 2 运行错误 运行错误是指程序在运行过程中出现错误 例如 进行除法运算时除数为零 数组下标越界 文件无法打开等 这类错误只出现在运行过程中 在程序编译时一般是无法发现的 3 逻辑错误 逻辑错误是指程序运行后 没有得到预期的结果 这类错误从语法上来说是有效的 但是程序逻辑上存在缺陷 例如 使用了不正确的变量类型 循环条件不正确 程序设计算法考虑不周等 一般情况下 编译器在编译程序时 不能检查到程序的逻辑错误 也不会产生逻辑错误提示信息 二 语法错误的分类 语法错误的调试 可以由集成开发环境提供的调试功能来完成 在程序进行编译时 编译器会对程序中的语法错误进行诊断 编译诊断的语法错误分为3类 致命错误 错误和警告 1 致命错误 致命错误 大多数是编译程序内部发生错误 发生这类错误时 编译被迫终止 只能重新启动编译程序 幸运的是 这类错误很少发生 但是为了安全 编译前最好先保存程序 2 错误 错误 通常是在编译时 语法不当所引起的 例如括号不匹配 变量未声明等 产生这类错误时 编译程序会出现报错提示 根据提示对源程序进行修改即可 这类错误是出现最频繁的 3 警告 警告 是指被编译程序怀疑有错 但不确定 有时可强行编译通过 例如 主函数没有返回值时没有加void声明 double型数据被转换为float型数据等 这些警告中 有些会导致错误 有些则可以编译通过 三 C语言程序调试方法 1 先进行人工检查 即静态检查 在写好一个程序以后 不要匆匆忙忙上机 而应对程序进行人工检查 这一步十分重要 它能发现由于疏忽而造成的多数错误 这一步往往容易被人忽视 总希望把一切都推给计算机去做 但这样会多占用机器时间 作为一个程序设计人员应当养成严谨的作风 每一步都要严格把关 不把问题留给后面的工序 三 C语言程序调试方法 为了更有效地进行人工检查 所编的程序应力求做到以下几点 1 应当采用结构化程序方法编程 以增加可读性 2 尽可能多加注释 以帮助理解每段程序的作用 3 在编写复杂的程序时不要将全部语句都写在main函数中 而要多利用函数 用一个函数来实现一个单独的功能 这样便于分别检查和处理 三 C语言程序调试方法 2 在人工检查无误后 再上机调试 即动态检查 在编译时会给出语法错误的信息 调试时可以根据提示信息具体找出程序中出错之处并改正 应当注意的是有时提示出错的地方并不是真正出错的位置 如果在提示出错的行找不到错误的话应当到上一行再找 有时提示出错的类型并非绝对准确 由于出错的情况繁多且各种错误互有关联 因此要善于分析 找出真正的错误 而不要只从字面意义上找出错信息 钻牛角尖 三 C语言程序调试方法 3 对运行结果作分析 看它是否符合要求 有的初学者看到运行结果就认为没问题了 不作认真分析 这是危险的 有时 数据比较复杂 难以立即判断结果是否正确 可以事先考虑好一批 试验数据 输入这些数据可以很容易判断结果正确与否 事实上 当程序复杂时很难把所有的可能情况全部都试到 选择典型的临界数据作试验即可 三 C语言程序调试方法 4 运行结果不对 大多属于逻辑错误 这类错误往往需要仔细检查和分析才能发现 可以采用以下办法 1 将程序与流程图仔细对照 如果流程图是正确的 程序写错了 是很容易发现的 例如 复合语句忘记写花括弧 只要一对照流程图就能很快发现 三 C语言程序调试方法 2 如果实在找不到错误 可以采用 分段检查 的方法 逐段往下检查 直到找到在某一段中数据不对为止 这时就已经把错误局限在这一段中了 不断减小 查错区 就能发现错误所在 3 如果在程序中没有发现问题 就要检查流程图有无错误 即算法有无问题 有则改正之 接着修改程序 三 C语言程序调试方法 总之 程序调试是一项深入细致的工作 需要下功夫 动脑子 善于积累经验 在程序调试过程中往往
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年骨科常见病症诊断治疗能力检测试卷答案及解析
- 2025煤矿供销合同
- 2025年外科常见手术并发症应急处理模拟考试卷答案及解析
- 2025年呼吸内科常见疾病诊断治疗策略考核答案及解析
- 菏泽市公费医学毕业生选聘考试真题2024
- 2025年消化内科专业知识综合测验答案及解析
- 2025财产抵押借款合同范本
- 2025年心血管病学论述题考核试卷答案及解析
- 2025年风湿免疫科体液免疫反应考试答案及解析
- 2025年度妇产科学准入资格考试真题答案及解析
- 《高级计量经济学》-上课讲义课件
- 中学生物学教学技能与实践课件
- 塔吊基础-专项施工方案
- 《工贸行业重大安全生产事故隐患判定标准》解读课件
- 《农产品质量安全》系列讲座(第一讲-农产品质量及安全)课件
- 第二届中国管理培训生项目现状与发展调研报告
- 托业考试Toeic考题
- IPM原理及测试方法ppt课件
- GB∕T 10429-2021 单级向心涡轮液力变矩器 型式和基本参数
- 电信市场营销试题库
- 资产评估质量保证措施
评论
0/150
提交评论