常见错误和程序调试.PPT

上传人:国*** 文档编号:1168757 上传时间:2018-12-15 格式:PPT 页数:60 大小:164.50KB
下载 相关 举报
常见错误和程序调试.PPT_第1页
第1页 / 共60页
常见错误和程序调试.PPT_第2页
第2页 / 共60页
常见错误和程序调试.PPT_第3页
第3页 / 共60页
常见错误和程序调试.PPT_第4页
第4页 / 共60页
常见错误和程序调试.PPT_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、 第 16章 常见错误和程序调试16.1 常见错误分析16.2 程序调试要真正学好 C、 用好 C并不容易, “灵活 ”固然是好事,但也使人难以掌握,尤其是初学者往往出了错还不知怎么回事。 C编译程序对语法的检查不如其他高级语言那样严格 (这是为了给程序人员留下 “灵活 ”的余地 )。因此,往往要由程序设计者自己设法保证程序的正确性。调试一个 C程序要比调试一个 PASCAL或FORTRAN程序更困难一些。需要不断积累经验,提高程序设计和调试程序的水平。C语言有些语法规定和其他高级语言不同,学习过其他高级语言的读者往往按照使用其他高级语言的习惯来写 C程序,这也是出错的一个原因。16.1 常见

2、错误分析下面将初学者在学习和使用 C语言 (不包括C+)时容易犯的错误列举出来,以起提醒的作用。这些内容在以前各章中大多已谈到,为便于查阅,在本章中集中列举,供初学者参考,以此为鉴。(1) 忘记定义变量。如:main( ) x=3;y=6;printf(“%dn “, x+y);C要求对程序中用到的每一个变量都必须定义其类型,上面程序中没有对 x、 y进行定义。应在函数体的开头加 int x, y;这是学过BASIC和 FORTRAN语言的读者写 C程序时常见的一个错误。在 BASIC语言中,可以不必先定义变量类型就可直接使用。在FORTRAN中,未经定义类型的变量按隐含的 I-N规则决定其类

3、型,而 C语言则要求对用到的每一个变量都要在本函数中定义 (除非已定义为外部变量 )。(2) 输入输出的数据的类型与所用格式说明符不一致。例如,若 a已定义为整型, b已定义为实型。a=3;b=4 5;printf(“%f %dn“ , a, b);编译时不给出出错信息,但运行结果将与原意不符,输出为0 000000 16402它们并不是按照赋值的规则进行转换 (如把 4 5转换成 4),而是将数据在存储单元中的形式按格式符的要求组织输出 (如 b占 4个字节,只把最后两个字节中的数据按 % d, 作为整数输出 )。(3) 未注意 int型数据的数值范围。一般微型计算机上使用的 C编译系统,对

4、一个整型数据分配两个字节。因此一个整数的范围为-215 215-1,即 -32768 32767。常见这样的程序段:int num;num=89101;printf(“%d“ , num);得到的却是 23565,原因是 89101已超过 32767。两个字节容纳不下 89101,则将高位截去。见图 16.1。即将超过低 16位的数截去。即将89101减去 216(即 16位二进制所形成的模 )。89101-65536=23565。图 16.1有时还会出现负数。例如num=196607;输出得 -1。因为 196607的二进制形式为00 00 00 00 00 00 00 1011 11 11

5、 11 11 11 11 11去掉高位 10,低 16位的值是 -1(-1的补码是:1111111111111111)。对于超过整个范围的数,要用 long型,即改为long int num;num=89101;printf(“%ld“ , num);请注意,如果只定义 num为 long型,而在输出时仍用 “% d”说明符,仍会出现以上错误。(4) 输入变量时忘记使用地址符。如:scanf(“%d%d“ , a, b);这是许多初学者刚学习 C语言时一个常见的疏忽,或者说是习惯性的错误,因为在其他语言中在输入时只需写出变量名即可,而 C语言要求指明 “向哪个地址标识的单元送值 ”。应写成 s

6、canf(“%d%d“ , (5) 输入时数据的组织与要求不符。用 scanf函数输入数据,应注意如何组织输入数据。假如有以下 scanf函数:scanf(“%d%d“ , 有人按下面的方法输入数据:3, 4这是错的。数据间应该用空格来分隔。读者可以用printf(“%d%d“ , a, b);来验证一下。应该用以下方法输入:34如果 scanf函数为scanf(“%d , %d“ , 对 scanf函数中格式字符串中除了格式说明符外,对其他字符必须按原样输入。因此,应按以下方法输入:3, 4此时如果用 “34”反而错了。还应注意,不能企图用scanf(“input a 想在屏幕上显示一行信息:input a

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。