程序错误和编程风格

程序错误和编程风格

ID:38552819

大小:561.50 KB

页数:41页

时间:2019-06-14

程序错误和编程风格_第1页
程序错误和编程风格_第2页
程序错误和编程风格_第3页
程序错误和编程风格_第4页
程序错误和编程风格_第5页
资源描述:

《程序错误和编程风格》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计(ProgramminginC)程序错误和编程风格程序错误编程风格程序错误一个编程大师说:“任何一个程序,无论它多么小,总存在着错误。”初学者不相信大师的话,他问:“如果一个程序小得只能执行一个简单的功能,那会怎样?”“这样的程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统最后将失效,产生一个错误。”初学者不满足,他问:“如果操作系统不失效,那么会怎么样?”“没有不失效的操作系统,”大师说,“但如果这样的操作系统存在的话,硬件最后将失效,产生一个错误。”初学者仍不满足,再问:“如果硬件不失效,那么会怎样?”大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在

2、的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。”没有错误的程序世间难求。【James1999】C程序错误程序中的错误可分为语法错误逻辑错误(语义错误)运行错误C程序错误语法错误逻辑错误(语义错误)语法错误指编程时违背了C语法的规定,对这类错误,编译程序一般都能够给出“出错信息”,并且告诉在哪一行出错及出错的类型。只要仔细检查,可以很快发现并排除这类错误。程序并没有违背语法规则,但程序的执行结果与预期不符。这是由于程序与设计人员的本意不相符,即出现逻辑错误(或语义错误)。运行错误运行时发生的、与运行状态或环境有关的错误。C程序中常见错误使用的变量没有定义变量没有赋值初就直接

3、使用输入输出的数据类型与所用格式说明符不一致超出数据范围输入变量时忘记使用地址符号输入时数据的组织方式与要求不符“=”与“==”混淆语句的分号缺少或放置错误缺少“{}”符号引用错误,(、)、[、]括号不配对引用数组元素越界......C程序中常见错误使用的变量没有定义(语法错)例如:正确:main(){intx,y;x=3;y=x+5;}错误:x、y没有定义main(){x=3;y=x+5;}C/C++规定:任何变量都必须在使用前定义,否则编译时会出错。C程序中常见错误(续)变量没有赋初值就直接使用(逻辑错)例如:错误:sum没有赋初值intaddition(intn) {inti;in

4、tsum; for(i=0;i

5、k=1;k<=8;k++)fact=fact*k;C程序中常见错误(续)输入输出的数据类型与所用格式说明符不一致(逻辑错)例如:错误:数据输出时的格式错误main() {inta=3;floatb=4.5;printf("%f%d",a,b); }正确:main() {inta=3;floatb=4.5;printf("%d%f",a,b); }TC2.0C程序中常见错误(续)超出数据范围(逻辑错)例如:错误:x的有效范围在-128~127之间main() { charx; x=300; }30010=1001011002C程序中常见错误(续)输入变量时忘记使用地址符号(本来是语

6、法错,表现为逻辑错)例如:错误:scanf函数的实参格式main() {inta,b;scanf("%d%d",a,b);printf("%d%d",a,b);}正确:main() {inta,b;scanf("%d%d",&a,&b);printf("%d%d",a,b); }C程序中常见错误(续)输入时数据的组织方式与要求不符例如:main() {inta,b;scanf("%d,%d",&a,&b);printf("%d%d",a,b); }运行时输入:3512C程序中常见错误(续)误把“=”作为关系运算符“==”例如:错误:关系运算与赋值运算混淆if(a=b) c=0; else

7、 c=1;正确:if(a==b) c=0; else c=1;1.为何if语句中的条件总是成立或不成立?在排除可能出现的逻辑错误外,有可能与条件表达式书写不正确有关。例如:if(x=3)x=x+8;这时的条件x=3始终成立,语句x=x+8也总是执行。要判断x是否等于3就必须写成x==3。又如:if(x=0)x=x+8;这时条件x=0总是不成立,语句x=x+8永远不执行。要判断x是否等于0就必须写成x==0或!x。同样,在其它使用条件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。