版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 关于关于C 语言程语言程 序的序的 调调 试试前言:前言: C 语言程序的调试主要是为了排除程序的逻辑错误语言程序的调试主要是为了排除程序的逻辑错误,在程序运行的结果与预期的结果不一致的情况下进行。在程序运行的结果与预期的结果不一致的情况下进行。 C 语言程序调试的手段有多种:语言程序调试的手段有多种: 1. 最简单的一种是最简单的一种是”单步调试单步调试”,使用使用”step over” . 一步一步地执行一步一步地执行. 可可在在“变量窗口变量窗口”(Variables)观察和分析变量的变化。观察和分析变量的变化。 2. 使用使用 设置设置(或取消或取消)断点断点, 再使用再使用 运行到
2、断点运行到断点. 可在可在“变量窗口变量窗口”(Variables)观察和分析变量的变化。观察和分析变量的变化。 然后决定是继续单步执行然后决定是继续单步执行,还是运行到下一个断点。还是运行到下一个断点。C+ 6.0的界面窗口如下:3. 运行到光标处:运行到光标处: 先定位好光标的位置,再使用先定位好光标的位置,再使用 (run to cursor)运行运行 到光标处。到光标处。 然后决定是继续单步执行然后决定是继续单步执行,还是运行到下一个断点。还是运行到下一个断点。输出窗口输出窗口工作窗口工作窗口编辑窗口编辑窗口 可在菜单栏空白处可在菜单栏空白处右击右击.选择要显示的选择要显示的窗口和工具
3、条。窗口和工具条。调试工具条的显示调试工具条的显示:方法:方法:使用右键使用右键: 在菜单栏空白处右击在菜单栏空白处右击. 调试程序示例调试程序示例1: 计算分段函数计算分段函数: 1/x x0 f(x) = 0 x=0 #includevoid main() float x,y; printf(input x:n); scanf(%f,x) if(x!=0) y=1/x; else y=0; printf(f(%.2f)=%.1fn,x,y);注注: 在进行调试前,首先要正常通过编译和连接,排在进行调试前,首先要正常通过编译和连接,排除所有语法错误除所有语法错误.点击此按钮点击此按钮进行编译
4、进行编译.1.“输出窗口输出窗口”显显示出错信息说明示出错信息说明及大致行数及大致行数.3.黑色箭头指示黑色箭头指示错误的大致位置错误的大致位置.2. 双击某行双击某行错误信息错误信息.一一.单步调试单步调试: 主要是解决程序的逻辑错误: 运行结果与期望值不一致.1.开始单步调试开始单步调试: 单击单击”单步执行单步执行”(Step Over(F10)变量窗口变量窗口.显示或隐藏变显示或隐藏变量窗口量窗口.显示或隐藏观显示或隐藏观察窗口察窗口. 观察观察(wacth)窗口窗口. 可以输入变量和表达式可以输入变量和表达式,观察观察它们的值它们的值. 当运行到输入语句时当运行到输入语句时,任务标上
5、会出现小图任务标上会出现小图标标. 点击之点击之.在输入窗口输入数据在输入窗口输入数据.2. 停止调试停止调试: 单击单击”终止调试终止调试”(Stop Debuging)终止调试终止调试.二二. 设置断点调试设置断点调试: 调试程序示例2: 计算累加和,程序有错。#includevoid main() int i,sum; for(i=1;i=100;i+) sum=sum+i; printf(sum=%dn,sum);排除语法错误,运行后发现其结果显然不对。排除语法错误,运行后发现其结果显然不对。如下图所示,设置一断点。如下图所示,设置一断点。 使用此按钮,使用此按钮,运行到断点处运行到断
6、点处. 在变量窗口发现在变量窗口发现sum的值有问题!的值有问题!这时应想到是变这时应想到是变量没赋初值量没赋初值。注:如果程序代码多,可设多个断点,。注:如果程序代码多,可设多个断点,。调试程序示例2: 输入一个510之间的整数n,求:1!+2!+.n!.#include void main() int n=0,i=1,s,k=1; printf(请输入5-10之间任意数:n); scanf(%d,&n); while(in) s+=k; i+; k*=i; printf(1!+2!+.%d!=%dn,n,s);三三. 运行到光标处运行到光标处: 排除语法错误,运行后发现其结果显然不对。排除
7、语法错误,运行后发现其结果显然不对。 先定位好光标。先定位好光标。 1.使用此按钮使用此按钮(run to cursor),运行到光标处运行到光标处. 2.输入数据后,输入数据后,运行到光标处运行到光标处. 使用单步调试,使用单步调试,一步一步执行。一步一步执行。 同时观察变量同时观察变量的变化。的变化。说明:说明: 1. 可以使用可以使用”单步单步”,”断点断点”,”运行到光标处运行到光标处”等手段等手段互相互相 组合来进行组合来进行. 2. 在调试时在调试时,也可利用也可利用”监视窗口监视窗口”,输入变量或表达式输入变量或表达式,观察其值的变化观察其值的变化. 输入变量或表达输入变量或表达
8、式式,同时观察其同时观察其值的变化。值的变化。调试示例调试示例:求二数的最小公倍数和最大公约数求二数的最小公倍数和最大公约数.#includevoid main() int m,n,j,k; printf(input m,n:n); scanf(%d%d,&m,&n); while(m0 & n0) ; j=m; while(j/n!=0) j=j+m; k=(m*n)/j; printf(最小公倍数是最小公倍数是%dn 最大公约数是最大公约数是%dn,j,k);Input m n: 3 7(回车回车)首先排除所有语法错误后首先排除所有语法错误后,运行程序运行程序:输出结果输出结果: 最小公倍
9、数是最小公倍数是:3 最大公约数最大公约数:7 答案不对答案不对!调试方法调试方法:1. 首先要排除语法错误首先要排除语法错误 .点击此按钮点击此按钮进行编译进行编译.当排除所有语法错误后当排除所有语法错误后,进行下步操作进行下步操作:(在光标所在行在光标所在行)点击此图点击此图标设断点标设断点(再点击即取消再点击即取消).根据需要可以设根据需要可以设置多个断点置多个断点.调试开始调试开始:点击此图标点击此图标(GO),运行到断点处运行到断点处.中间有一输入语句中间有一输入语句,输入数据输入数据:-3 7程序运行到第程序运行到第一个断点一个断点.在在”变量窗口变量窗口”观察到观察到: m=-3
10、, n=7.再次点击此图标再次点击此图标(GO),运行到第二运行到第二个断点处个断点处.在在”变量窗口变量窗口”观察到观察到: m= -3, n=7.在此处发现问题在此处发现问题.什么问题什么问题? 是因为数据输入不对是因为数据输入不对! 程序要求不允许输入负数程序要求不允许输入负数,二个数必需为正数二个数必需为正数,否则否则程序不能往下走程序不能往下走.单击单击”终止调试终止调试”(Stop Debuging)终止调试终止调试.把循环条件把循环条件: (M0 & n0) 改为改为: ( M0 | n0) 关闭工作区间关闭工作区间,重新编译重新编译,设置二个断点设置二个断点.点击图标点击图标(GO),运行运行.如输入如输入: -3 7.再点击图标再点击图标(GO),程序不向下走程序不向下走.说明有问题:输入数据不对!说明有问题:输入数据不对! 重新输入正确数据重新输入正确数据: 3 7 .点击图标点击图标(GO),运行到第二个断点运行到第二个断点.然后可以执行然后可以执行”单步调试单步调试”,运行到运行到printf()处处.发现发现:j=3 k=7. 答案也不对答案也不对! 说明第二个断点后有问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网线布放施工方案(3篇)
- 英语合唱活动策划方案(3篇)
- 街道新闻发布应急预案(3篇)
- 道路路基砼施工方案(3篇)
- 铁路石道床施工方案(3篇)
- 险企内部营销方案(3篇)
- 餐厅策划营销活动方案(3篇)
- 26年高性价比靶点筛选指南
- 国际贸易就业方向全解析
- 化妆品安全规范培训
- 泉室施工方案
- 报联商培训课件
- 民航安保业务知识培训课件
- DB37-2374-2018 锅炉大气污染物排放标准
- 广师大环境学概论课件第4章 自然资源的利用与保护
- 玉米施肥技术课件
- 护理礼仪与人际沟通说课
- 酒店业务外包服务方案投标文件(技术方案)
- GA 68-2024警用防刺服
- T/CSMT-KJ 001-2022超薄均热板性能测试方法
- 《食道癌基础知识》课件
评论
0/150
提交评论