C语言程序改错.docx

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

C语言程序改错.docx

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

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*********

(5分)(题号:

414)

aver=average(score[10]);printf("averagescoreis%5}答案:

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

2)、floatscore[10],aver;

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

4)、aver=average(score);〖第2题〗『程序改错』

、2f",aver);

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

或floataver,score[10];

或scanf("%f",score+i)

/*

【程序改错】

题目:

输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数。

注意:

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

得结构。

*/#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++;

elseothers++;

}

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;j

、for(j=0;jj;j++)+i);j++)或for(j=0;n-(1+i)>j;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"

#defineN1000main(){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)、

2)、

inti,sum=0;

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得阶乘得与。

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

注意:

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

*/

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;

3)、

s=s+t;

或s+=t;

4)、

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

或t=j*t;或s=t+s;

}

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

412)

/*

【程序改错】

90,打印出

题目:

将一个正整数分解质因数。

例如:

输入

90=2*3*3*5

注意:

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

得结构。

*/#include"stdio、h"main()

{

intn,i;

printf("\npleaseinputanumber:

\n");

scanf("%d",&n);

printf("%d=",n);

for(i=2;i<=n;i++)n=n%i;

{

********FOUND********

while(n==i)

{

********FOUND********

if(n%i==1)

{printf("%d*",i);

********FOUND********

}

elsebreak;

}

}printf("%d",n);

}

答案:

1)、while(n!

=i)

2)、if(n%i==0)或if(!

(n%i))

3)、n=n/i;

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

449)/*

【程序改错】题目:

编写函数fun计算下列分段函数得值:

x*20x<0且x工-3

f(x)=sin(x)0wx<10且xm2及xm3

x*x+x-1其它

注意:

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

*/#include"math、h"

#include"stdio、h"

floatfun(floatx){

********FOUND********

floaty

********FOUND********

if(x<0||x!

=-3、0)

y=x*20;

elseif(x>=0&&x<10y=sin(x);

0&&x!

=2、0&&x!

=3

0)

elsey=x*x+x-1;

********FOUND********

returnx;

}

main()

{floatx,f;

printf("Inputx=");scanf("%f",&x);

f=fun(x);printf("x=%f,f(x)=%f\n",x,f);

getch();

}

答案:

1)、

floaty;

2)、

if(x<0&&x!

=-3

、0)

3)、

returny;或

return(y);

〖第1

题〗『程序改错』(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);

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

435)

/*

【程序改错】题目:

编写一个程序计算某年某月有几天

(注意要区分闰年)

注意:

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

以更改程序得结构。

*/#includevoidmain()

{

intyy,mm,len;

printf("year,month=");scanf("%d%d",&yy,&mm);

********FOUND********

switch(yy)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

len=31;

********FOUND********

breakcase4:

case6:

case9:

case11:

len=30;break;

case2:

if(yy%4==0&&yy%100!

=0||yy%400==0)len=29;

else

len=28;break;

********FOUND********

defaultprintf("inputerror!

\n");break;

}

printf("Thelengthof%d%did%d\n",yy,mm,len);

getch();

}

答案:

1)、

switch(mm)

2)、

break;

3)、

default:

〖第3题〗『程序改错』(5

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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