您的位置:

二级c语言机试100改错,c语言二级考试改错题

本文目录一览:

计算机二级C语言考试总分多少??几分能过?

计算机二级C语言总分100分,60分合格。

1、C语言:选择题40分,程序填空题 18分,程序修改题 18分,程序设计题24分;

2、VB、VFP、Java、Access、C++语言:选择题40分,基本操作题18分,简单应用题24分,综合应用题18分。

计算机二级计分模式:

1、报考二级科目考试的新生,全部采用无纸化考试(即全部上机考试),取代传统的考试模式(笔试加上机)。无纸化考试中,传统考试的笔试部分被移植到计算机上完成,考核内容和要求不变。

2、无纸化考试时间为120分钟,满分100分,总分达到60分可以获得合格证书。没有获得合格证书的考生,无补考,下一次需重新以新考生身份报名参加考试。

以上内容参考 百度百科-计算机二级考试

全国二级C语言考试大题,是不是答案对了就能得满分?

嗯,是的,判分先根据答案是否正确,如果正确就是满分,如果不正确才会查看代码是否有得分点,所以如果你刚刚考完二级,而又运行出来答案了,那么恭喜你二级过了

计算机二级C语言考试总分多少?多少分能过?

计算机二级C语言考60分才算过。

计算机二级考试实行百分制计分,但以等级分数通知考生成绩。等级分数分为“不及格”、“及格”、“优秀”三等,划线分数为60和90。考试成绩在“及格”,即60~89分者,由教育部考试中心发合格证书,考试成绩在“优秀”,即90~100分者,由教育部考试中心发优秀证书。

自2018年3月起,NCRE考试以等第形式通知考生成绩。成绩等第分为“优秀”、“良好”、“及格”、“不及格”四等。100-90分为“优秀”,89-80分为“良好”,79-60分为“及格”,59-0分为“不及格”。

考试成绩优秀者,在证书上注明“优秀”字样;考试成绩良好者,在证书上注明“良好”字样;考试成绩及格者,在证书上注明“合格”字样。

扩展资料

一、报考要求:考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习和使用计算机的实际情况报考。每次考试报名的具体时间由各省(自治区、直辖市)级承办机构规定。考生按照有关规定到就近考点报名。

二、其他报名注意:NCRE 考试一般不安排专门的补报。考生如果错过报名点的报名时间,可以直接咨询当地考试院或自考办报名。

三、报名须知:需带上身份证以及相关的报名费。考生报考一定要亲自到场,不能由任何单位、个人代劳,逐一核实个人信息:姓名、身份证号、照片、报考科目、报考类别(是否补考)等,信息不一致要立刻更改,报名费72元。

参考资料来源:百度百科—计算机二级考试

计算机二级c语言考试 机试 有程序填空题 改错题 编程题 请问各有几题?

二级C语言机试考试只有三道题:第一:填空(一般为三个空);第二:改错题(一般有两个或三个错);第三:编程题(一般是给出主程序,让你自己编子程序)。

上机操作题一般都比较简单,你买一本上机题库100道,基本上做完就肯定没问题,绝对可以过。

计算机二级C语言100套上机填空题和改错题

南开二级C语言上机100题

1、 改错题1

下列给定程序的功能是:读入一个整数(2=k《=10000》,打印它的所有质因子(即所有为素数的因子)。例如,若输入整数2310,则应输出2、3、5、7、11。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include conio.h

#include stdio.h

*******************************

IsPrime(int n); ——————去掉分号

{int i,m;

m=1;

for ( i=2; in; i++)

******************************

if !(n%i) ——————if (!(n%i))

{ m=0; break; }

return (m);

}

main()

{ int j,k;

clrscr();

printf("nPlease enter an integer number between 2 and 10000:");scanf("%d",k);

printf("nnThe prime factor(s) of %d is (are):",k);

for (j=2;j=k;j++)

if ((!(k%j))(IsPrime(j)) printf("n %4d",j);

printf("n");

)

2、 编程题1

m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值行会,将低于平均分的分数放在below所指的数组中。

例如,但score数组的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该时4,below中的数据应为10、20、30、40。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include conio.h

#include stdio.h

#include string.h

int fun (int score[],int m, int below[])

{

——————int i,k=0;float aver=0;

for(i=0;im;i++)

aver+=(score[i]);

aver/=m;

for (i=0;im;i++)

if (score[i]aver)

{below[k]=score[i];

k++;

retern(k);}

}

main()

{int i, n, below[9];

int score [9]={10,20,30,40,50,60,70,80,90};

clrscr();

n=fun(score,9,below);

printf("nBelow the average score are:");

for (i=0;in;i++) printf ("%d",below[i]);

}

3、 改错2

下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include studio.h

#include string.h

****************************************

void; fun(char *p,char *q,char *c)——去分号

***************************************

{int k=1; ——1改为0

***************************************

while(*p!=*q) —— != 改为 ||

***************************************

{if (*p*q) c[k]=*q; ——小于号改为小于等于

else c[k]=*p;

if (*p) p++;

if (*q) q++;

k++;

}

}

main()

{char a[10]="aBCDeFgh",b[10]="ABcd",c[80]={''};

fun(a,b,c);

printf("The string a:"); puts(a);

printf("The string b:"); puts (b);

printf("The result:"); puts(c);

}

4、 改错3

下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include stdio.h

#include conio.h

void fun (char *s)

{ int i,j;

for (i=0,j=0;s[i]!='\0';i++)

****************************************

if (s[i]='0' s[i]='9')

s[j]=s[i]; ——————j改为j++

***************************************

s[j]="\0"; ——————s[j]='\0'

}

main()

{char item[80];

clrscr();

printf("\nEnter a string:");gets(item);

printf("\n\nThe string is :\%s\n",item);

fun (item);

printf("\n\nThe string of changing is :\%s\n",item);

}

5、 改错4

下列给定程序中,函数fun的功能是:分别铜级字符串中大写字母和小写字母的个数。例如,给字符串s输入:AAaaBBb123CCccccd,则应该输出结果:upper=6,lower=8。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

**********************************

void fun (char *s,int a, int b) ————a应为*a,b应为*b

{ while(*s)

{ if (*s='A' *s='Z')

***********************************

a++; ————(*a)++;

if (*s='a' *s='z')

************************************

b++; ————(*b)++;

s++;

}

}

main()

{ char s[100];int upper=0,lower=0;

clrscr();

printf("nPlease a string:");gets(s);

fun(s,upper, lower);

printf("n upper=%d lower=%dn",upper,lower);

}

6、 改错5

假定整数数列中的数不重复,并存放在数组中。下列给定程序中,函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include stdio.h

#define N 20

fun (int *a,int n, int x)

{int p=0,i;

a[n]=x;

while (x!=a[p])

p=p+1;

if (p==n) return -1;

else

{for (i=p;in;i++)

******************************************

a[i+1]=a[i]; ————a[i]=a[i+1];

return n-1;

}

}

main()

{int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;

n=10;

printf("The original data:n");

for (i=0;in;i++) printf("%5d",w[i]);

printf("nInput x (to delete):");scanf("%d",x);

printf("Delete:%dn",x);

n=fun(w,n,x);

if (n==-1) printf("***Nor be found!***nn");

else

{printf("The data after deleted:n");

for (i=0,in;i++) printf("%5d",w[i]);printf("nn");

}

}

7、 改错6

下列给定程序中,函数fun的功能是:根据整型形参m的值,计算如下公式的值。t=1-1/2×2-1/3×3-…-1/m×m

例如,若m中的值为5,则应输出:0.536389。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include conio.h

#include stdio.h

double fun (int m)

{ double y=1.0;

int i;

***************************************

for (i=2;im;i++) ———— “”改为“=”

***************************************

y-=1/(i*i); ————“1”改为“1.0”

return(y);

}

main ()

{int n=5;

clrscr();

printf("\nRhe result is %1f\n",fun(n));

}

8、 改错7

下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include stdio.h

#define N 20

void fun(int a[],int n)

{ int i,j,t,p;

for (j=0;jn-1;j++)

***************************

{p=j ——加上“;”

for (i=j;i,n;i++) ——j改为j+1

if (a[i]a[p])

*********************************

p=j; ——j改为i

t=a[p];a[p]=a[j];a[j]=t;

}

}

main()

{

int a[N]={9,6,8,3,-1},i,m=5;

printf("排序前的数据:");

for (i=0;im;i++) printf("%d",a[i]);printf("\n");

fun(a,m);

printf("排序后的数据:");

for (i=0;im;i++) printf("%d",a[i]);printf("\n");

}

9、 改错8(2004.7.27)

下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include stdio.h

fun(char *p)

{ char max,*q;int i=0;

max=p[i];

while(p[i]!=0)

{ if(maxp[i])

{max=p[i];

*******************************

p=q+i; ——改为q=p+i;

}

i++;

}

******************************

while(qp) ——qp改为qp

{*q=*(q-1);

q--;

}

p[0]=max;

}

main()

{char str[80];

printf("Enter a string:");gets(Str);

printf("\nThe original string: ");puts(Str);

fun(str);

printf("\nThe string agter moving:");puts (str);ptintf("\n\n");

}

10、 改错9(2004.7.27)

下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:

80.5 60 72 90.5 98 51.5 88 64

则低于平均分的学生人数为4(平均分为:75.5625)。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include conio.h

#include stdio.h

#define N 20

int fun (float *s,int n,float *aver)

{float ave,t=0.0;

int count=0,k,i;

for (k=0;kn;k++)

*******************************

t=s[k]; ——t+=s[k];

ave=t/n;

for (i=0;in;i++)

if (s[i]ave) count++;

******************************

*aver=ave; ——去掉

return count;

}

main()

{float s[30],aver;

int m,i;

clrscr();

printf("nPlease enter m:";scanf("%d",m);

printf("nPlease enter %d mark:n",m);

for (i=0;im;i++) scanf("%f",s+i);

printf("nThe number of students:%dn",fun(s,m,aver));

printf("Ave=%fn",aver);

)

11、 改错10(2004.8.1)

下列给定程序中,函数fun的功能是:将s所指字符串中出现的t1所指子串全部替换成t2所指子字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。例如,当s所指字符产中的内容为abcdabfab,t1所指子串中的内容为ab,t2所指子串中的内容为99时,结果,在2

所指的数组中内容应为99cd99f99。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#includeconio.h

#includestdio.h

#includestring.h

int fun (char *s, char *t1,char*t2,char*w)

{

int i; char *p,*r,*a;

strcpy(w,s);

while(*w)

{p=w;r=t1;

********************************************

while(r) ——r改为*r

if(*r==*p) {r++;p++}

else break;

if(*r=='')

{a=w;r=t2;

*******************************************

while(*r){*a=*r;a++;r++} ——改为while(*r){*a=*r;a++;r++;}

w+=strlen(t2);

}

else w++;

}

}

main()

{

char s[100],t1[100],t2[100],w[100];

clrscr();

printf("nPlease enter string S:");scanf("%s",s);

printf("nPlease enter string t1:");scanf("%s",t1);

printf("nPlease enter string t2:");scanf("%s",t2);

if (strlen(t1)==strlen(t2))

{

printf("nThe result is :%sn",w);

}

else printf("Error:strlen(t1)!=strlen(t2)n");

}

12、 改错11(2004.8.1)

给定程序MODI1.C中,fun函数的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之积。

请改正程序中的错误,或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include stdio.h

int fun ()

{

int a [3] [3], sum;

int i, j;

***********************************

_____; ——sum = 1;

for (i=0;i3;i++)

{ for (j=0;j3;j++)

*****************************************

scanf (〃%d〃 a [i] [j]); ——scanf("%d", a[i][j]);

}

for (i=0; i3; i++)

sum=sum*a[i] [i];

printf (〃Sum=%dn〃, sum);

}

main ()

{ fun (); }

13、 改错12(8.1)

下列程序的功能是:读入一个整数 k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。例如,若输入整数:2310,则应输出:2、3、5、7、11。

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include 〃conio.h〃

#include 〃stdio.h〃

************************************************

IsPrime ( int n ); ——IsPrime(int n)

{ int i, m;

m = 1;

for ( i = 2; i n/ i++ )

*********************************************

if !( n%i ) ——if(!(n%i))

{ m=0; break ; }

return ( m );

}

main ()

{ int j, k;

clrscr ();

printf (〃nPease enter an integer number between 2 and 10000:〃); scanf ( 〃%d〃,k );

printf ( 〃nn The prime factor (s) of % d is ( are ):〃, k );

for ( j = 2; j = k; j++ )

if ( ( ! k%j ) ) ( IsPrime ( j ) ) } printf ( 〃n % 4d〃, j );

printf (〃n〃);

}

14、 改错13(8.4)

下列程序中,fun函数的功能是:根据形参m,计算如下公式的值。

t=1+ 1/2 + 1/3 + 1/4 + … + 1/m

例如,若输入5,则应输出2.283333。

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#includeconio.h

#includestdio.h

double fun(int m)

{

double t=1.0;

int i;

for(i=2;i=m;i++)

*******************************************

t+=1.0/k; ——k改为i

*********************************************

____________; ——填return t;

}

main()

{

int m;

clrscr();

printf(“nPlease enter 1 integer number:”);

scanf(“%d”,m);

printf(“nThe result is %1fn”,fun(m));

}

15、 改错14(8.4)

下列程序中,fun和funx函数的功能是:

用二分法求方程2x×x×x-4x×x+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若给m输入-100,给n输入90,则函数求得的一个根为2.000。

请改正程序中的语法错误,使程序能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#includestdio.h

#includemath.h

double funx(double x)

{

return(2*x*x*x-4*x*x+3*x-6);

}

double fun(double m, double n)

{

**************************************

int r;——改为double r;

r=(m+n)/2;

**********************************

while(fabs(n-m)0.001) —— "" 改为" = "

{if(funx(r)*funx(n)0 m=r;

else n=r;

r=(m+n)/2;

)

return r;

)

main()

{

double m,n,root;

printf("Enter m n:n");scanf("%1f%1f",m,n);

root=fun(m,n);

printf("root=%6.3fn",root);

}

16、 改错15(8.5)

下列给定程序中,函数fun的功能是:判断字符ch是否与str所指串中的某个字符相同;若相同,则什么也不做,若不同,则将器插在串的最后。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

#include string.h

**********************************

void fun(char str, char ch)------------------------1

{ while(*str *str!=ch) str++;

**********************************

if (*str==ch)------------------------------------2

{ str[0]=ch;

*********************************

str[1]='0';------------------------------------3

}

}

main()

{char s[81],c;

clrscr();

printf("nPlease enter a string:n");gets(s)

printf("nPlease enter the character to search:");

c=getchar();

fun(s,c);

printf("nThe result is %sn",s);

}

15 题Answer:

1. void fun(char *str, char ch)

2. if (*str=='

17、 改错16(8.5)

下列给定程序中,函数Creatlink的功能是:创建带头结点的单项链表,并为各结点数据域赋0到m-1的值。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

#include stdlib.h

typedef struct aa

{ int data;

struct aa *next;

}NODE;

NODE *Creatlink(int n, int m)

{NODE *h=Null, *p,*s;

int i;

s=(NODE *)malloc(sizeof(NODE));

********************************************

h=p;-------------------------------------1

p-next=NULL;

for (i=1;i=n;i++)

{s=(NODE *)malloc(sizeof(NODE));

********************************************

s-data=rand()%m;-----------------------2

s-next=p-next;

p-next=s;

p=p-next;

}

********************************************

return p;--------------------------------3

}

outlink(NODE *h)

{NODE *p;

p=h-next;

printf("nnTHE LIST:nn HEAD");

while(p)

{printf("-%d",p-data);

p=p-next;

}

printf("n");

}

main()

{ NODE *head;

clrscr();

head=Creatlink(8,22);

outlink(head);

}

16 题Answer:

1. h=p=s;

2. s-data=rand()%(m-1);

3. return h;

18、 改错17(8.5)

下列给定程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

int fun(int k)

{int m=0, mc=0,j;

while ((k=2)(mc10))

*********************************

{if ((k%13=0)||(k%17=0))-------------------1

{m=m+k;mc++;}

k--;

}

return m;

**********************************

_____________-------------------------------2

main()

{clrscr();

printf("%dn",fun(500));

}

17 题Answer:

1. if ((k%13==0)||(k%17==0))

2. }

19、 改错18(8.5)

下列给定程序中,函数fun的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

********************************

void fun (int a,b)--------------------------1

{int t;

*******************************

t=b;b=a;a=t;-------------------------------2

}

main()

{int a,b;

clrscr();

printf("Enter a,b:");scanf("%d%d",a,b);

fun(a,b);

printf("a=%d b=%dn",a,b);

}

18 题Answer:

1. void fun (int *a,int *b)

2. t=*b;*b=*a;*a=t;

20、 改错19(8.5)

下列给定程序中,函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,一次构成一个新数放在t中。例如,当s中的数为7654321时,t是的数为642。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include conio.h

#include stdio.h

********************************

void fun (long s, long t)--------------------------1

{long sl=10;

s/=10;

*t=s%10;

****************************

while (s0)--------------------------------------2

{s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}

main()

{long s,t;

clrscr();

printf("nPlease enter s:");scanf("%ld",s);

fun(s,t);

printf("The result is : %ldn",t);

}

19 题Answer:

1. void fun (long s, long *t)

2. while (s0)

21、 改错20(8.5)

N个有序整数数列已放在一堆数组中,下列给定程序中,函数fun的功能是:利用折半查找算法找整数m再数组中的位置。若找到,则返回其下标值;反之,则返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到lowhigh,查找结束。

请改正程序中的错误,使程序能得出正确的结果。

注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!

试题程序

#include stdio.h

#define N 10

************************************

void fun(int a[],int m)--------------------------1

{int low=0,high=N-1,mid;

while(low=high)

{mid=(low+high)/2;

if (ma[mid])

high=mid-1;

***************************************

else if (m=a[mid])----------------------------2

low=mid+1;

else return(mid);

}

return(-1);

}

main()

{int i,a[N]={-3,4,7,9,13,45,67,89,100,180},k,m;

printf("a数组中的数据如下:");

for(i=0;iN;i++) printf("%d",a[i]);

printf("Enter m:");scanf("%d",m);

k=fun(a,m);

if(k=0) printf("m=%d,index=%d\n",m,k);

else printf("Not be found!\n");

}

20 题Answer:

1. int fun(int a[],int m)

2. else if (ma[mid])

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

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

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.书写错误问题:

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