二级C语言上机考试改错题总结

上传人:鲁** 文档编号:508284879 上传时间:2022-10-25 格式:DOC 页数:64 大小:122KB
返回 下载 相关 举报
二级C语言上机考试改错题总结_第1页
第1页 / 共64页
二级C语言上机考试改错题总结_第2页
第2页 / 共64页
二级C语言上机考试改错题总结_第3页
第3页 / 共64页
二级C语言上机考试改错题总结_第4页
第4页 / 共64页
二级C语言上机考试改错题总结_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《二级C语言上机考试改错题总结》由会员分享,可在线阅读,更多相关《二级C语言上机考试改错题总结(64页珍藏版)》请在金锄头文库上搜索。

1、二级C语言上机考试改错题总结 张官祥根据本人多年研究全国计算机等级考试二级C语言,发现很多考生对上机考试存在很大的问题。现将本人在教学当中对二级C语言上机考试题库总结的经验和大家分享,希望能对我们考生的考试有所帮助,顺利通过考试!以下是对上机考试改错题的做题方法和总结,改错题的错误主要分为以下几类:1、if或while语句若错误行是if或者while语句,则要注意以下点:1)首先判断是否正确书写if或while关键字;2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号;3)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符;4)若if条件表达式中只有一个等于号即数学等号

2、(=),则要改写成两个等于号即逻辑等号(= =);5)若if条件表达式为其他的比较运算符,则一般是进行逆转或加一个等于号;2、for语句若错误行是for语句,则要注意以下几点:1)首先判断for有没有书写正确;2)然后看for中的表达式是不是用分号(;)隔开,若不是则改为分号。记住是分号(;),不是逗号(,)!3)再者,分析for中的三个表达式,是否符合题意;第一个表达式表示起始条件,第二个表达式表示终止条件,第三个表达式表示循环变量的变化。3、 return语句若错误行为return语句,则要注意以下几点:1)首先看是不是正确书写return关键字;2)然后看是不是缺少分号,若是则加上分号即

3、可;3)再者判断return后的变量或表达式是否正确;这种错误需要根据题意来分析,分析返回变量或表达式的值和类型。 4、 赋值语句若错误行是赋值语句,则要看赋值是否正确,然后看赋值运算符是否写正确。5、 定义语句若错误行是定义语句,则要注意:1)首先分析变量类型名是否写对;2)然后分析给变量赋初值是否正确;3)若以上均不是,则看是不是少定义了某个变量或少了花括号;6、 表达式错误问题:若错误行中有整数1除以某个表达式或变量时,必须把整数1改为1.0;若变量或表达式是整型时,则只能进行强制类型转换。 7、 字符串类问题若错误行中有字符串结束符,则特别要要注意结束符有没有写错。但是要区分清楚字符o

4、和数字0。8、 指针类问题若错误行中有指针变量,并且该变量名之前没有指针运算符,则一般都是加上指针运算符;9、 函数首部类问题:若错误行是函数首部,则要注意:1)首先看该行最后有没有分号,若有则删掉分号;若中间有分号则要改为逗号;2)形参和实参类型不一致问题 若实参是个地址或数组名或指针变量名,则对应的形参肯定是指针或数组; 若实参是二维数组名,则对应的形参应该是指针数组或是二维数组; 若后面用到某形参的时候有指针运算符,则该形参比为指针类型; 若形参是二维数组或指向M 个元素的指针变量,则该二维的长度必须与main中对于数组的第二维的长度相同。3)函数类型不一致问题若函数中没有return语

5、句,则函数类型为void;若函数中有return语句,则函数的类型必须与rerun后的变量类型一致;记住,调用函数的类型与main中的该函数的类型一致!10. 语法错误问题:1)语句缺少分号。若错误号中语句没有以分号结束则加上分号;2)变量名不一致。C语言是区分大小写的,若错误行中有大写字母一般都改为小写字母;11. 逻辑错误问题:这种题型主要是表达式错误,占的题量比较多而且我们没有统一的做题方法,需要我们具体问题具体分析。12. 书写错误问题:特别注意我们的注释部分,注释是以/*开始,以*/结尾,不能有多余的,有也只能在/*和*/里面。注意,比如“/*注释部分*/*/”是错误的!模拟试题(一

6、)1.填空题请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。例如:str1=“How do”,str2=“ you do?”,结果输出:How do you do?注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 40void fun(char *str1,char *str2) int i=0; char *p1=str1; char *p2=str2; while(【1】) i+; for( ;【2】;i+)

7、 *(p1+i)=【3】; *(p1+i)=0; main() char str1N,str2N; clrscr(); printf(*Input the string str1 & str2*n); printf( nstr1:); gets(str1); printf( nstr2:); gets(str2); printf(*The string str1 & str2*n); puts(str1); puts(str2); fun(str1,str2); printf(*The new string *n); puts(str1);答案及评析:【1】*(p1+i) 【2】*p2 【3】

8、*p2+【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符0时,while循环结束,变量i停止累加。填空2:指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符0。填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在str1后面的功能。 2. 改错题下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入edS,dAd,则输出EDS,DAD。请改正程

9、序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include /*found*/char fun(char tt) int i; for(i=0;tti;i+) /*found*/ if(tti=A)&(tti=A)&(tti=a)&(tti= z)【解析】错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加*号。错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。 3. 编程题请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,

10、要求把下标从p到n-1(pn-1)的数组元素平移到数组的前面。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为6。移动后,一维数组中的内容应为7,8,9,10,10,11,12,13,14,15,1,2,3,4,5,6。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include #define N 80void fun(int *w, int p, int n) main() int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,

11、14,15; int i, p, n=15; printf(The original data:n); for(i=0;in;i+) printf(%3d,ai); printf(nnEnter p: ); scanf(%d,&p); fun(a,p,n); printf(nThe data after moving:n); for(i=0;in;i+) printf(%3d,ai); printf(nn); 答案及评析:void fun(int *w, int p, int n) int i,j,t; for(i=p;i=0;j-) /*实现循环右移*/ wj+1=wj; w0=t; 【解析】本题采用循环右移的算法。和我们在前面分析的稍有不同的是,一个是整型数组,一个是字符型数组。 模拟试题(二)1.填空题请补充函数fun(),该函数的功能是求一维数组xN

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

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号