C语言程序改错.docx

上传人:b****5 文档编号:3978123 上传时间:2022-11-26 格式:DOCX 页数:57 大小:25.84KB
下载 相关 举报
C语言程序改错.docx_第1页
第1页 / 共57页
C语言程序改错.docx_第2页
第2页 / 共57页
C语言程序改错.docx_第3页
第3页 / 共57页
C语言程序改错.docx_第4页
第4页 / 共57页
C语言程序改错.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

C语言程序改错.docx

《C语言程序改错.docx》由会员分享,可在线阅读,更多相关《C语言程序改错.docx(57页珍藏版)》请在冰豆网上搜索。

C语言程序改错.docx

C语言程序改错

〖第1题〗『程序改错』(5分)(题号:

422)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

给一个不多于5位得正整数,要求:

一、求它就是

几位数,二、逆序打印出各位数字。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序

得结构。

------------------------------------------------------*/

#include"stdio、h"

main()

{

/**********FOUND**********/

longa,b,c,d,e,x,

scanf("%ld",&x);

a=x/10000;

/**********FOUND**********/

b=x/10000/1000;

c=x%1000/100;

d=x%100/10;

e=x%10;

/**********FOUND**********/

if(a==0)

printf("thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a);

elseif(b!

=0)printf("thereare4,%ld%ld%ld%ld\n",e,d,c,b);

elseif(c!

=0)printf("thereare3,%ld%ld%ld\n",e,d,c);

elseif(d!

=0)printf("thereare2,%ld%ld\n",e,d);

elseif(e!

=0)printf("thereare1,%ld\n",e);

getch();

}

答案:

1)、longa,b,c,d,e,x;

2)、b=x%10000/1000;或b=x/1000%10;

3)、if(a!

=0)或if(!

a)

〖第2题〗『程序改错』(5分)(题号:

411)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

整数,在传递过程中就是加密得,加密规则如下:

每位数字都加上5,然后除以10得余数代替该位数

字。

再将新生成数据得第一位与第四位交换,第

二位与第三位交换。

举例:

输入一个四位整数1234,则结果为:

9876。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序

得结构。

------------------------------------------------------*/

#include"stdio、h"

main()

{inta,i,aa[4],t;

printf("输入一个四位整数:

");

/**********FOUND**********/

scanf("%d",&a);

aa[0]=a%10;

/**********FOUND**********/

aa[1]=a%100%10;

aa[2]=a%1000/100;

aa[3]=a/1000;

/**********FOUND**********/

for(i=0;i<=3;i++)

{aa[i]+=5;

aa[i]%=10;

}

for(i=0;i<=3/2;i++)

{t=aa[i];

aa[i]=aa[3-i];

aa[3-i]=t;

}

for(i=3;i>=0;i--)

printf("%d",aa[i]);

getch();

}

〖第1题〗『程序改错』(5分)(题号:

253)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

输入10个数,要求输出这10个数得平均值

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

floataverage(floatarray[10])

{

inti;

floataver,sum=array[0];

/***********FOUND***********/

for(i=0;i<10;i++)

sum=sum+array[i];

aver=sum/10、0;

return(aver);

}

main()

{

/***********FOUND***********/

intscore[10],aver;

inti;

printf("input10scores:

\n");

for(i=0;i<10;i++)

/***********FOUND***********/

scanf("%f",score);

printf("\n");

/***********FOUND***********/

aver=average(score[10]);

printf("averagescoreis%5、2f",aver);

}

答案:

1)、for(i=1;i<10;i++)或for(i=1;i<=9;i++)

2)、floatscore[10],aver;或floataver,score[10];

3)、scanf("%f",&score[i]);或scanf("%f",score+i);

4)、aver=average(score);

〖第2题〗『程序改错』(5分)(题号:

414)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

输入一行字符,分别统计出其中英文字母、空

格、数字与其它字符得个数。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序

得结构。

------------------------------------------------------*/

#include"stdio、h"

main()

{charc;

intletters=0,space=0,digit=0,others=0;

printf("pleaseinputsomecharacters\n");

/**********FOUND**********/

while((c=getchar())=='\n')

{

/**********FOUND**********/

if(c>='a'&&c<='z'&&c>='A'&&c<='Z')

letters++;

/**********FOUND**********/

elseif(c=!

'')

space++;

elseif(c>='0'&&c<='9')

digit++;

else

others++;

}

printf("allinall:

char=%dspace=%ddigit=%dothers=%d\n",letters,

space,digit,others);

}

答案:

1)、while((c=getchar())!

='\n')

2)、if(c>='a'&&c<='z'||c>='A'&&c<='Z')或if(c<='z'&&c>='a'||c>='A'&&c<='Z')或if(c<='z'&&c>='a'||

3)、elseif(c=='')

〖第3题〗『程序改错』(5分)(题号:

250)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

以下程序输出前六行杨辉三角形,即

1

11

121

1331

14641

…………

…………

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

main()

{

staticinta[6][6];

inti,j,k;

/***********FOUND***********/

for(i=1;i<=6;i++)

{for(k=0;k<10-2*i;k++)

printf("");

for(j=0;j<=i;j++)

{

/***********FOUND***********/

if(j==0&&j==i)

a[i][j]=1;

else

/***********FOUND***********/

a[i][j]=a[i-1][j-1]+a[i][j-1];

printf("");

printf("%-3d",a[i][j]);

}

/***********FOUND***********/

printf("\t");

}

}

答案:

1)、for(i=0;i<6;i++)或for(i=0;i<=5;i++)

2)、if(j==0||j==i)

3)、a[i][j]=a[i-1][j]+a[i-1][j-1];或a[i][j]=a[i-1][j-1]+a[i-1][j];

4)、printf("\n");

答案:

1)、scanf("%d",&a);

2)、aa[1]=a%100/10;或aa[1]=a/10%10;

3)、for(i=0;i<=3;i++)或for(i=0;i<4;i++)

〖第1题〗『程序改错』(5分)(题号:

3)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

用起泡法对10个整数从小到大排序。

程序中共有4条错误语句,请改正错误。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

voidsort(intx[],intn)

{

inti,j,k,t;

for(i=0;i

/**********FOUND**********/

for(j=0;j

/**********FOUND**********/

if(x[i]>x[i+1])

{t=x[j];x[j]=x[j+1];x[j+1]=t;}

}

main()

{

inti,n,a[100];

printf("pleaseinputthelengthofthearray:

\n");

scanf("%d",&n);

for(i=0;i

/**********FOUND**********/

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

/**********FOUND**********/

sort(n,a);

printf("outputthesortedarray:

\n");

for(i=0;i<=n-1;i++)

printf("%5d",a[i]);

printf("\n");

}

答案:

1)、for(j=0;jj;j++)或for(j=0;jj;j++)或for(j=0;j<=n-2-i;j++)

2)、if(x[j]>x[j+1])或if(x[j+1]

3)、scanf("%d",&a[i]);或scanf("%d",a+i);

4)、sort(a,n);或sort(&a[0],n);

〖第2题〗『程序改错』(5分)(题号:

431)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

编写函数fun求1000以内所有8得倍数之与。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程

序得结构。

------------------------------------------------------*/

#include"stdio、h"

#defineN1000

main()

{intsum;

sum=fun(8);

printf("%d以内所有%d得倍数之与为:

%d\n",N,8,sum);

getch();

}

intfun(intm)

{

/**********FOUND**********/

ints=0;i;

/**********FOUND**********/

for(i=1;i>N;i++)

/**********FOUND**********/

if(i/m==0)

s+=i;

returns;}

答案:

1)、ints=0,i;

2)、for(i=1;i

3)、if(i%m==0)

〖第3题〗『程序改错』(5分)(题号:

444)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

求100以内(包括100)得偶数之与、

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

#include"stdio、h"

main()

{

/**********FOUND**********/

inti,sum=1;

/**********FOUND**********/

for(i=2;i<=100;i+=1)

sum+=i;

/**********FOUND**********/

printf("Sum=%d\n";sum);

getch();

}

答案:

1)、inti,sum=0;

2)、for(i=2;i<=100;i+=2)

3)、printf("Sum=%d\n",sum);

〖第1题〗『程序改错』(5分)(题号:

14)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

函数fun得功能就是:

求1到20得阶乘得与。

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

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

fun()

{

intn,j;

floats=0、0,t=1、0;

for(n=1;n<=20;n++)

{

/**********FOUND**********/

s=1;

for(j=1;j<=n;j++)

/**********FOUND**********/

t=t*n;

/**********FOUND**********/

s+t=s;

}

/**********FOUND**********/

printf("jiecheng=%d\n",s);

}

main()

{

fun();

}

答案:

1)、t=1;或t=1、0;

2)、t=t*j;或t*=j;或t=j*t;

3)、s=s+t;或s+=t;或s=t+s;

4)、printf("jiecheng=%f\n",s);

〖第2题〗『程序改错』(5分)(题号:

396)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

请编写一个函数fun,函数得功能就是:

统计出若干

个学生得平均成绩,最低分以及得最低分得人数。

例如,输入10名学生得成绩分别为92,87,68,56,

92,84,67,75,92,66,则输出平均成绩为77、9,

最高分为56,得最高分得人数为1人。

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

#include"stdio、h"

floatMin=0;

intJ=0;

floatfun(floatarray[],intn)

{

inti;floatsum=0,ave;

Min=array[0];

for(i=0;i

{if(Min>array[i])Min=array[i];

/**********FOUND**********/

sum=+array[i];}

/**********FOUND**********/

ave=sum\n;

for(i=0;i

/**********FOUND**********/

if(array[i]=Min)J++;

return(ave);

}

main()

{

floata[10],ave;

inti=0;

for(i=0;i<10;i++)

scanf("%f",&a[i]);

ave=fun(a,10);

printf("ave=%f\n",ave);

printf("min=%f\n",Min);

printf("Total:

%d\n",J);

getch();

}

答案:

1)、sum+=array[i];}或sum=sum+array[i];}

2)、ave=sum/n;

3)、if(array[i]==Min)J++;或if(Min==array[i])J++;

〖第3题〗『程序改错』(5分)(题号:

444)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

求100以内(包括100)得偶数之与、

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

#include"stdio、h"

main()

{

/**********FOUND**********/

inti,sum=1;

/**********FOUND**********/

for(i=2;i<=100;i+=1)

sum+=i;

/**********FOUND**********/

printf("Sum=%d\n";sum);

getch();

}

答案:

1)、inti,sum=0;

2)、for(i=2;i<=100;i+=2)

3)、printf("Sum=%d\n",sum);

〖第1题〗『程序改错』(5分)(题号:

14)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:

函数fun得功能就是:

求1到20得阶乘得与。

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

--------------------------------------------------------

注意:

不可以增加或删除程序行,也不可以更改程序得结构。

------------------------------------------------------*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1