C语言改错题分类总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言改错题分类总结 FILENAME C语言改错题分类总结 第 PAGE 3 页 共 NUMPAGES 5 页 计算机等级C语言上机考试改错题分类总结 改错题总的出错分为两大类:语法出错和逻辑出错,此类题目是比较简单的题型,因此也是最容易把握的知识点。 注意:错误都是出现在/**********found**********/下面的这一行。 只是下面的这一行,其他行都没有错误。不能修改其他行。 做题方法: 1.首先拿到题目,先将题目详细看看,看清题目对做题时很有帮助的,特别是一些逻辑性较强的题目很有用。有的同学可能会觉得题目太难了不想去读,其实在做改错题目时即便你不会也能把题目做对。 2.按照以下的步骤解决题目中的错误的内容,对应着修改。修改完之后保存即可。 一、语法错误 1.关键字出错: 在二级C 语言考试中仅仅考查学生对基本的关键字掌握情况,比如:整型就是int 不是Int,知识点简单。 2.格式出错: 在考试中主要考查学生细心的程度,最喜欢考简单的知识点。 (1)少分号:考查的知识点:分号是语句结束的标志。 (2)for 语句的格式:for( ; ; )中间用分号隔开不是用逗号隔开。 (3)if 语句的格式:if(表达式),if 后面必须加上小括号。 (4)命令行格式出错:如 include 命令少了#,正确的形式应该是#include “stdio.h”; 2.运算符号出错: (1)C 语言中除号是“/”不是“\” (2)赋值号(=)和等号(= =)混淆,记住在if 语句中出现赋值号(=)一般是讲它改为等号(= =)。 3.表达式的取值范围出错: 当遇到计算表达式的累加或是累减时,一定用到循环来完成相应的操作。例如:要求计算t=1-1/2*2-1/3*3-….-1/m*m 这个表达式,在这个题目中第一空有这样的for 语句:for(i=2;im;i++)y-=1/(i*i);从题目中不难发现i 是一个变量,它的取值范围从整数2 开始到m-1 结束,最终计算的结果为y=1-1/2*2-1/3*3-….-1/(m-1)*(m-1)和题目要求的不符,因此将im 改为i=m。做这 样的题目看两点:一看题目中的表达式,二看for 语句中变量的取值范围。 4.C 语言中的除法运算: 这个考点同样考查表达式的相关知识。例如:要求计算t=1-1/2*2-1/3*3-….-1/m*m 这个表达式,在这个题目中第一空有这样的for 语句:for(i=2;im;i++)y-=1/(i*i);刚才我们将了表达式的范围,现在我们考虑y-=1/(i*i);是否正确?赋值号左边问题不大,我们看看右边1/(i*i),其中i 是整数,那么i*i也是整数,在C 语言中1 除以比它大的数时值为零。这样和题目的要求就不相符。记住:1/2 的值为零,只有1.0/2 或是1.0/2.0 的值为0.5。 5.找最大值和排序问题: 遇到这种题目在改错题中最容易考查的是大于()、小于()等符号的变化,当你查找出错的地方没有语法错误,也没有使用了未定义的变量时,记住这个口诀:将大于改为小于,将小于改为大于! 6.函数的返回值及其参数:重点 int fun(int x,int y) main() { { if(xy) return x; int a,b,c; else return y; scanf(“%d%d”,a,b); } c=fun(a,b); printf(“最大值为:%d”,c); } (1) 函数的返回类型:在上面的例子中fun 函数的返回值是int,如果将int 改为double,很明显是错误的。从两个地方来看,首先return x;中x 的类型必须和fun 函数中的返回值相同,x 是整型。其次c=fun(a,b);中fun 函数将一个返回值赋值给了变量C,说明函数返回的值一定是整型。记住:函数调用、函数的返回值和ruturn 中数据类型必须一致! (2) return 后面的表达式及其类型: (3) 函数传递的参数: int fun(int *x,int *y) main() { { if(*x*y)return *x; int a,b,c; else return *y; scanf(“%d%d”,a,b); } c=fun(a,b); printf(“最大值为:%d”,c);} 一定注意:传递的是值还是地址。比较上面两个例子大家很容易区别传递的是值还是地址,第一个例子调用函数的时候传递的是值,因此在fun 函数的形参中x和y 仅仅是普通的变量,而第二个例子中调用函数的时候传递的是地址,因此在fun 函数的形参中x 和y 就是两个指针变量。5 (4)指针的使用: int fun(int *x,int *y) { if(*x*y)ret

文档评论(0)

183****9588 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档