计算机二级C语言上机改错题考点总结

Python010

计算机二级C语言上机改错题考点总结,第1张

对上机考试改错题的做题方法和总结,改错题的错误主要分为以下几类:

1、if或while语句

若错误行是if或者while语句,则要注意以下点:

1)首先判断是否正确书写if或while关键字

2)然后看有没有用小括号把整个表达式括起来,若没有则加上小括号

3)若条件表达式中有指针变量而且没有指针运算符时,则加上指针运算符

4)若if条件表达式中只有一个等于号即数学等号(=),则要改写成两个等于号即逻辑等号(= =)

5) 若if条件表达式为其他的比较运算符,则一般是进行逆转或加一个等于号

2、for语句

若错误行是for语句,则要注意以下几点:

1)首先判断for有没有书写正确

2)然后看for中的表达式是不是用分号()隔开,若不是则改为分号。

记住是分号(),不是逗号(,)!

3) 再者,分析for中的三个表达式,是否符合题意

第一个表达式表示起始条件,

第二个表达式表示终止条件,

第三个表达式表示循环变量的变化。

3、return语句

若错误行为return语句,则要注意以下几点:

1)首先看是不是正确书写return关键字

2)然后看是不是缺少分号,若是则加上分号即可

3)再者判断return后的变量或表达式是否正确

这种错误需要根据题意来分析,分析返回变量或表达式的值和类型。

4、赋值语句

若错误行是赋值语句,则要看赋值是否正确,然后看赋值运算符是否写正确。

5、定义语句

若错误行是定义语句,则要注意:

1)首先分析变量类型名是否写对

2)然后分析给变量赋初值是否正确

3)若以上均不是,则看是不是少定义了某个变量或少了花括号

6、表达式错误问题:

若错误行中有整数1除以某个表达式或变量时,必须把整数1改为1.0若变量或表达式是整型时,则只能进行强制类型转换。

7、字符串类问题

若错误行中有字符串结束符,则特别要要注意结束符有没有写错。但是要区分清楚字符‘o’和数字’0’。

8、指针类问题

若错误行中有指针变量,并且该变量名之前没有指针运算符,则一般都是加上指针运算符

9、函数首部类问题:

若错误行是函数首部,则要注意:

1)首先看该行最后有没有分号,若有则删掉分号若中间有分号则要改为逗号

2)形参和实参类型不一致问题

①若实参是个地址或数组名或指针变量名,则对应的形参肯定是指针或数组

②若实参是二维数组名,则对应的形参应该是指针数组或是二维数组

③若后面用到某形参的时候有指针运算符,则该形参比为指针类型

④若形参是二维数组或指向M个元素的`指针变量,则该二维的长度必须与main中对于数组的第二维的长度相同。

3)函数类型不一致问题

①若函数中没有return语句,则函数类型为void

②若函数中有return语句,则函数的类型必须与rerun后的变量类型一致

记住,调用函数的类型与main中的该函数的类型一致!

10.语法错误问题:

1)语句缺少分号。若错误号中语句没有以分号结束则加上分号

2)变量名不一致。C语言是区分大小写的,若错误行中有大写字母一般都改为小写字母

11.逻辑错误问题:

这种题型主要是表达式错误,占的题量比较多而且我们没有统一的做题方法,需要我们具体问题具体分析。

12.书写错误问题:

特别注意我们的注释部分,注释是以/*开始,以*/结尾,不能有多余的,有也只能在/*和*/里面。注意,比如“/***注释部分*****/*/”是错误的!

已经添加注释:

#include <math.h>

#include <string.h>

#include <stdio.h>

题目:将输入的十进制正整数转换为十六进制数,且用字符串存放该十六进制数

void main()

{

int x,b,i,j

char s[5]

printf("Input a number(Dec): ")

scanf("%d",&x)

/**/ i=1 /**/ i=0        //数组一般从下标为0开始存放数据

while(x>0)

{b=x%16

if(b>9)

s[i]=b-10+'A'

else

/**/ s[i]=b /**/s[i]=b+’0’   //数组中存放的是数字的ASCII码,所以+'0'

x=x/16

i++

}

printf("\nHex number is: ")

for(j=i-1j>=0j--)

putchar(/**/ s[i] /**/) s[j]  //循环控制变量是j,从s[i-1]到s[0]输出

getch()

}

能编译,甚至可以运行,你可以看看运行玩所得到的答案是不是和题目给你的答案一样,如果一样,基本就是正确的了。但是,你也不能因为这样就投机取巧,题目给你的答案只是一组数据,如果你投机取巧的话,提交上去的答案会运行4组左右的数据,你一组数据对了是没有用的,需要4组数据都对才有用。

当然,这只是我靠二级时候的样子,听说,现在改版,也不知道有什么变化,不过,编译是没有问题的。