二级C语言上机改错题技巧总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级C上机改错题技巧总结
一、改错题之方法步骤
1.上机考试中改错题占30分,一般有两个地方有错误,题型简单
2.做改错题时先看出错的地方,分析语法错误,如果能用C语言的语法判断出错误,改之即可
3.没有语法错误即分析逻辑错误,逻辑错误可以从几个方面分析:
(1)从题目的要求中找到错误,例如:题目要求计算s=1+1/2+1/3+…+1/n,那么循环的范围就应该是for(i=0;i<=n;i++),但是考试中经常将其写为:for(i=0;i (3)重点注意函数的调用、函数的返回值类型,函数的形参,这个是上机考试中的重点 (4)注意细节,请参考以下为考生总结的知识 (5)多练习,多思考,多总结 二、改错题之语法错误 1.关键字出错 (1)关键字出错,指的是C语言中的关键字出错。C语言的关键字都是小写字母,并且在VC++中以蓝色字体显示,如果常见的关键字是黑色字体,可以断定关键字出错; (2) if关键字出错 1)举例:上机题库P79第6题 /************found************/ If(substr[k+1]=='\0') 2)类似题目:12、35题 (3) double关键字出错 1)举例:上机题库P86第23题 /**********found**********/ double fun(double a, dounle x0) 2)类似题目:36、51 (4) while关键字出错 1)举例:上机题库P77第2题 /**********found**********/ wihle( q>p ) 2)类似题目: (5) return关键字出错 1)举例:上机题库P101第54题 /************found************/ Return(Value); 2)类似题目:86 2.格式出错 (1) C语言中的语句、基本结构、函数等都有相应的规范格式,程序中将这些格式书写错误,将导致编译器无法识别程序,因此导致出错; (2)语句末尾少分号 1)分号是语句结束的标志,每个语句都必须以分号结尾 2)举例:上机题库P77第2题第一个出错点 /**********found**********/ q=p+i 3)类似的题目:28题第一空、29题第1空、34题第2空、37题第2空、48题第2空,49第1空,59第2空、70、79、97 (3) for结构格式出错 1)for结构的格式:for(表达式1;表达式2;表达式3){ 循环体语句 },for结构体中表达式必须以分号隔开,改错题中经常出现将for结构中分号错写为逗号的情 况; 2)举例:上机题库P77第3题第2个出错点 /************found************/ for( i = 100, i <= m, i += 100 ) 3)类似的题目:6题第一空、14题第二空、53第1空、73、86第1空(4) if结构格式出错 1)if结构的格式:if(表达式),if后面必须加上小括号 2)举例:P93第37第1个出错点 /************found************/ if n = = 0 3)类似题目:59题第1空 (5)数组格式出错 1)一维数组的定义形式:类型名数组名[常量表达式],谨记[]是数组的独有特征 2)举例:P89第28题第2个出错点 /**********found**********/ t(k)=b(j); 3)举例2:P97第1个出错点(二维数组不能省略列下标) /************found************/ int fun(int n, int xx[][]) 4)类似题目:95题第1空 (6)函数格式出错 1)记住函数名后面一定是花括号,不能是方括号,方括号只有在数组下标中用到 2)举例:P86第22题第1出错点 /**********found**********/ n=strlen[ aa ]; 3)scanf(输入控制,输入数据列表),scanf函数中输入数据列表要求为变量的地址 4)举例2:P95第41题第2出错点 /*********found**********/ scanf("%d",a[i][j]); 5)类似题目:第80题第1空 (7)命令行格式错误 1)#include “”,include和define前面都必须有# 2)举例:P84第17题第1出错点 /************found************/ include 3.使用了未定义的变量:变量必须先定义后执行 (1)0(零)和o(字母欧)的区别 1)区别:零像鸡蛋,字母欧像乒乓球 2)举例:上机题库P85第19题第一个出错点 /************found************/ a2=k/1o; 3)类似题目:19题第一空、23题第二空、43题第二空、51题第二空、77、98、(2)P(大)和p(小)的区别 1)区别:一般在定义时候p为小写,但是在使用的时候变为大写P,做题时候一定要细心 2)举例:上机题库P91第33题第一出错点 fun(int *a,int n,int x) { int p=0,i; a[n]=x; while( x!=a[p] ) p=p+1; /**********found**********/ if(P==n) return -1; 3)类似题目:33题第一空、82 (3)普通变量大小写的区别 1)定义时候和使用时候变量的大小写不一致,违背了变量必须“先定义后执行”的原则 2)举例:18题第2空 int fun ( float *s, int n, float *aver ) { float ave, t = ; int count = 0, k, i ; for ( k = 0 ; k < n ; k++ ) /**************found**************/ t = s[k] ; ave = t / n ; for ( i = 0 ; i < n ; i++ ) if ( s[ i ] < ave ) count++ ; /**************found**************/ *aver = Ave ;/*分析:定义时候float ave, t = ;ave为小写,但是此时使用时候却是Ave大写,因此出错*/ return count ; } 3)类似题目:18题第2空、22题第2空、38题第1空、54题第2空