计算机二级C语言程序修改题解题思路
                                                          12通信3班盛伟
上次计算机二级缺几分及格,所以只能参加今年3月份的二级考试了。我认认真真的做了50套程序改错题,这里我总结了一些对于此题解题的经验与想法,过级的略过,没过级的大家不妨看看,希望对大家有用哦!
首先大家有没有注意到每套程序改错题中到底哪里错了,在哪里改,这是个关键,也是我们需要思考的驻点。我可是真的发现了规律,当然这个规律我去年9月份备考二级的时候就已经发现了。请看下面。(每套题都是这样)
例如: /***************found***************/
        d=d\10;(这就是错误的所在处,改错就在此处改) 改为d=d/10;
在这里我们将/***************found***************/称为错误栏,那么每道题的错误处就在这个错误栏的下面,改正就好了。当然到底怎么改,改的过程我们需要注意什么问题,我想这是我们大家都很关心的问题,那就由我为大家说说解题思路吧。
我觉得第一步大家还是得锁定错误所在处,接着就应该看是否出现那些不易发现的“低级错误”,其实往往就是这些错误却很容易被我们忽略。这点我为大家总结了一些,供大家复习所用。我以例子的形式给大家展现出来:(1)符号错误:1.if(t==0)被写成if(t=0)  2.d=d/10;被写成 d=d\10;(2)大小写混乱:3.if(*a)被写成If(*a)  4. s=s+(double)a/b;被写成 s=s+(Double)a/b;  5.前文定义了int y,而下文却写成了Y=1;(3)漏加标点符号:6.printf(%c *a);错误在于没有加上逗号,应该改为printf(%c,*a);
7.do while语句怎么用for语句中有两个分号,但是题目往往会写成两个逗号,这是大家需要注意的地方。8.漏加分号如:result *=n-- 错误就在于末尾没有加上分号,应该改为result *=n--; 9.多加分号如在if语句后面加上分号也是错误的。在此也提醒大家if语句一定要在if的后面加上括号,在括号里面写上内容也就是合法的表达式。(PS:大家发现了没有,这些小问题小细节如果我们不仔细观察,真的很难发现其中的“奥秘”哦,所以我给大家提炼整理了出来,大家一起共勉,补缺补差)
接着来谈谈for语句,说说for语句括号中的“猫腻”。例如for(i=2;i<n;i++),答案是for(i=1;i<n;i++),所以如果for语句出现在错误栏下,即错误就在for语句中,那就真的需要我们
将题目弄懂,知道是哪里有问题,是i=2有问题,还是i<n需要改成i<=n呢?所以遇到for语句错误我们需要好好审题。顺便说一句,for语句后面不加分号,或许这也是设题的“陷阱”哦。下文中还有关于for语句的例子,我待会再说。说到for语句,我又不得不说说while语句。在新思路题库书中的第27套中错误栏下为while(i>j),通过题目的分析可以得知应该改为while(i<j),所以关于两变量之间大小关系的判断,我觉得还是得审题,仔细分析两变量,掌握题意。但是我们不妨这么想一想,既然错误是i>j,那么修改就必然是i<j,你说呢?在这里我还有一个知识点提醒大家,以防大家忘了,或许很容易被大家忽略。那就是单独的while语句后不加分号,而do...while语句中的while在句尾加上分号。如新思路题库中的第37套卷中do......while(*p++)应该改为do......while(*p++);。
我们得注意这样一个问题,那就是返回值。我们得看清题目中需要我们返回什么值,例如新思路题库书中的第1套中要求返回π值,而错误栏下却写成了return(s),很明显的一个错误。对于形参函数中变量定义的类型以及函数返回值的类型,需要我们回归到主函数main函数中,在main函数中到变量的类型,从而确定形参函数中变量的定义类型。例如新思路题库书中的第25套中错误栏下为void fun(char *s,int a,int b),而主函数中却为fun(s,&upper,&lower),可知形参函数中的a,b在主函数中实质上是指地址,故改为void fun(char *s,int *a,int *b)。而对
于函数返回值的类型,我们需要通过对形参函数中的返回值类型进行判断,从而确定函数返回值的类型,比如没有返回值return,则函数返回值的类型为void。说到变量,我们不妨研究一下变量的常见错误。引用变量错误,很容易被我们忽略。意思是前面定义了一个变量,然而后面却引用了此变量的不同类型。例如新思路题库书中的第20套中定义了long *t,而在错误栏下却引用了t=0;很明显的错误吧,改为*t=0;同样这样的问题也可以反过来出题,即通过下文发现某一个变量的“广泛”引用,也可以推测出一开始定义此变量的类型出现了问题。例如新思路题库书中的第7套中下文的*t多次使用,而定义变量中却为long t,故将错误处改为long *t。
特别提醒大家一个知识点就是字符串。例如新思路题库书中的第17套中有for(i=strlen(t);i;i--)。题意是将字符串中的字符按ASCII码排序,应排除尾符号,而字符串中的长度包括尾符,故考虑去除尾符号,改为for(i=strlen(t)-1;i;i--)。又如新思路题库书中的第36套中题意是对字符位置加1,而错误栏下却为(*s)++(此意思是指对字符内容加1),不符合题意,故改为s++;类似的还有新思路题库书中的第40套卷。
希望对大家程序修改题能有所帮助,祝大家二级考试顺利!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。