第三章 程序改错.doc

上传人:sk****8 文档编号:3159700 上传时间:2019-05-23 格式:DOC 页数:21 大小:109KB
下载 相关 举报
第三章 程序改错.doc_第1页
第1页 / 共21页
第三章 程序改错.doc_第2页
第2页 / 共21页
第三章 程序改错.doc_第3页
第3页 / 共21页
第三章 程序改错.doc_第4页
第4页 / 共21页
第三章 程序改错.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、第三章 程序改错本章的目的是纠正编程中的常见错误。我们重点分析了编程中常见错误产生的原因,同时还提供了一些改错专项练习题,希望能够通过本章的学习提高大家的辨错和纠错能力。31 要点分析编程中的常见错误主要有两种,一种是语法错误,一种是逻辑错误。语法错误的产生主要是基本概念问题,逻辑错误的产生主要是基本概念和算法问题。语法问题主要出现在输入输出、变量和函数的定义、条件的表达等方面。例如,用 scanf()函数给整型变量 b 赋值,函数会写成如下一些形式:scanf(“%d”,b);或scanf(“%f”,b);或 scanf(“%f”,。而正确的语句是:scanf(“%d”, 。用 scanf(

2、)函数给字符数组 a 赋值一串字符,将函数错写成 scanf(“%s”,,而正确的写法是:scanf(“%s”,a);,因为数组名是数组的地址,所以不需要在数组名 a 前加。正确的写法应该是:printf(“%d”,*(a+i )); 。数组名的值是不允许改变的。如,定义整型函数 ax 形式参数为整型 a,b。正确的定义是 int ax(int a,int b);,而错误的写为:int ax(int a, b);,将形式参数的定义与变量定义混淆。如,在条件表达式中将条件运算符“= =”写成赋值运算符 “=”。将诸如,a 大于 b 并且 a 小于 d 的表达式写成 bd。类似的例子很多,我们将不

3、一一列举。下面我们列举几个逻辑错误。例:程序用二分法在一个按单调不减次序排列的数组中查找某个数。若存在,输出该数及它的下标位置;若不存在,输出表示找不到该数的信息。下面程序中有两个逻辑错误,请指出。#1 main( )#2 #3 int a10=2,5,6,8,11,15,18,22,60,88;#4 int low,high,m,i,x;#5 scanf(“%d”,#6 low=0;#7 high=9;#8 while(lowam) high=m+1;#13 else low=m-1;#14 #15 if(lowam时应该在 am之后继续查找,所以应该调整 low 的值为 m+1,而不是调整

4、 high 的值为 m+1。当 xai) min=ai;常见的错误写法为:if(max0#32 else low=m-1;#33 #34 if(lowmaxf)#10 maxf=aji;#11 maxi=maxf;#12 #13 #14 void main()#15 int p =2,4,6,8,9,1,3,5,7,2,4,6,1,3,5,4,5,0,9,9; #16 int maxY,i;#17 fun(p,max);#18 printf(“nthe max value sum is:n“);#19 for(i=0;i0)#15 (*p1)+ ;#16 else#17 (*p2)+;#18

5、#19 return sum/n;#20 (11) 16 进制数可以由数字 0 到 9 和大写字母 A 至 F 组成的字符串表示,函数hexvalue()的功能是将用字符串表示的 16 进制数转化为十进制数,如将 2A 转化为 42,若字符串中出现其它符号则返回-1。#1 int hexvalue(char *str)#2 #3 int data,i,n;#4 for(i=0;stri!=0;i+)#5 #6 if(stri=A#4 double s=0.0;#5 for(k=1;k#2. void main()#3. #4. int i ;char line81;#5. scanf(“%s”,#6. for(i=0;linei!=n;i+) #7. if(linei=a)#8. printf(“shu”);#9. else#10. printf(“%s”,linei); #11. (15) 程序读入四十名学生三门课的成绩,分别计算并输出全班这三门课的平均成绩。#1.main()#2.float mark403,x; int i,j;#3.for(i=0;i#2 #include #3 void fun(char *p,char *q,char *c)#4 int k;#5 while(*p|*q)#6 if (*p=*q)

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

当前位置:首页 > 重点行业资料库 > 建筑建材

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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