int temp; temp=*p1; *p1=*p2; *p2=temp; }
void main() {
int a,b; a=3,b=6; swap(a,b);
printf(“a=%d,b=%d\\n”,a,b) }
启动Turbo C 2.0后,按Alt+E进入编辑器,输入上面的程序代码并选择【File】\\【Save】选项进行源程序的保存,程序名称为exp1.c。
按Alt+C开始编译exp1.c文件,此时编译器的结果显示如图1.26所示。
图1.26 exp1.c编译后的结果显示
由结果信息可以看到,该程序有2个警告错误和一个一般错误,按任意键后系统会在Message区域显示错误的具体信息,如图1.27所示。
23
图1.27 exp1.c编译后错误信息
由图可以看出,exp1.c程序的两个警告错误都是出现在程序的第13行代码,系统提示此代码中参数传递时出现不可移植的指针转换;一般错误发生在程序的第15行,系统提示该行语句丢失了一个分号。
按回车键回到编辑状态,修改程序中语句swap(a,b);为swap(&a,&b);,另外一条语句 printf(“a=%d,b=%d\\n”,a,b)改为printf(“a=%d,b=%d\\n”,a,b);。
重新编译后,系统显示如图1.28所示。
图1.28 exp1.c重新编译后的结果
由图可以看出,此时程序已无任何错误,然后就可以按Alt+R开始程序的运行,运行后按Alt+F5屏幕上随即显示出程序的运行结果如图1.29所示。
24
图1.29 exp1.c运行结果
由结果显示可以看出,该程序运行正确。至此,exp1.c程序的编制结束,用户按任意键返回Turbo C 2.0环境对源程序进行存盘并退出即可。
1.2.4 Turbo C 2.0 环境下程序的调试实例
由于C语言的编辑器只能为用户检查程序中存在的语法和词法错误,而逻辑错误无法检查。因此,经常出现程序通过编译后运行结果不正确的情况,这时就需要对程序进行逻辑错误的跟踪和调试。在Turbo C 2.0环境中,逻辑错误的调试可以使用系统提供的调试器来完成,具体方法有以下两种:
1、单步调试
这种方法是一次仅运行一条程序代码,执行后就暂停,用户此时可以检查相关变量和表达式的值是否正确,最终发现程序中的逻辑错误。
例exp2.c:编程计算8!。 #include
int i,r=1; for(i=1;1<=8;i++) r*=i;
printf(“\\n%d\\n”,r);
25
}
程序经编译器处理显示无任何错误,但是运行程序后得到的结果为:-25216,显然这个结果是错误的。
接下来,我们按F7键开始程序的单步执行,此时系统窗口变化如图1.30所示,其中watch区域是供用户观察数据所用的。
图1.30 单步执行窗口
继续按F7键,使得屏幕亮条移到for(i=1;1<=8;i++)上,此时要想查看变量r的值就可按Ctrl+F7,系统弹出一个对话框,在其中输入要查看的变量名r,则在watch区域可看见此时变量r的值为1,这是正确的,如图1.31所示。
图1.31 变量r的初值
26
继续按F7单步执行程序,发现循环至到第7次时,变量r中的值依然正确,第8次循环后其值变成负数。经过分析,可以看出程序算法并没有错误,而是变量r的定义出现了问题,由于int类型变量的取值范围为:-32768~32767,而8!的值已经超出了这个范围,因此最终结果出错。修改程序后结果即正确,修改后程序代码如下:
#include
printf(“\\n%ld\\n”,r);
}
由此可见,采用单步调试可以很方便地跟踪程序的执行过程,便于用户及时准确地发现程序中存在的逻辑错误。
2、断点调试
单步调试尽管能很方便地对程序的执行进行跟踪,但如果程序的代码较多,则使用单步调试就会影响程序的调试速度。这时,我们可以使用断点调试的方法。
断点调试的思想是在程序中设置若干个断点,程序执行到断点时就会暂停,用户此时可检查相关变量或表达式的值。如果正确,则继续运行程序到下一个断点,这样通过断点将一个程序分割成若干个小段,便于用户缩小错误的查找范围,从而能较快地发现错误。
设置断点的方法为:将光标移动到程序的某一行上,按Ctrl+F8,此行就变成一个颜色条表示断点所在。如需取消,则在断点位置再次按Ctrl+F8即可。程序运行到断点处,与单步调试一样,按Ctrl+F7可显示用户需查看的数据,继续运行按Ctrl+F9即可。
27
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计实验指导及习题解答(最新)(1)(6)在线全文阅读。
相关推荐: