C语言程序改错Word格式文档下载.docx
《C语言程序改错Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序改错Word格式文档下载.docx(55页珍藏版)》请在冰豆网上搜索。
2)、
b=x%10000/1000;
或b=x/1000%10
3)、
if(a!
=0)或
if(!
a)
〖第2题〗『程序改错』(5分)(题号:
411)
整数,在传递过程中就是加密得,加密规则如下:
每位数字都加上5,然后除以10得余数代替该位数字。
再将新生成数据得第一位与第四位交换,第二位与第三位交换。
举例:
输入一个四位整数1234,则结果为:
9876。
不可以增加或删除程序行,也不可以更改程序得结构。
#include"
main()
{inta,i,aa[4],t;
printf("
输入一个四位整数:
"
);
scanf("
%d"
&
a);
aa[0]=a%10;
aa[1]=a%100%10;
aa[2]=a%1000/100;
aa[3]=a/1000;
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("
aa[i]);
253)/*
【程序改错】题目:
输入10个数,要求输出这10个数得平均值注意:
不可以增加或删除程序行,也不可以更改程序得结构。
*/floataverage(floatarray[10]){
inti;
floataver,sum=array[0];
*********FOUND*********
10;
sum=sum+array[i];
aver=sum/10、0;
return(aver);
intscore[10],aver;
input10scores:
\n"
for(i=0;
%f"
score);
printf("
(5分)(题号:
414)
aver=average(score[10]);
averagescoreis%5}答案:
1)、for(i=1;
2)、floatscore[10],aver;
3)、scanf("
score[i]);
4)、aver=average(score);
〖第2题〗『程序改错』
、2f"
aver);
或for(i=1;
=9;
或floataver,score[10];
或scanf("
score+i)
输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数。
*/#include"
{charc;
intletters=0,space=0,digit=0,others=0;
pleaseinputsomecharacters\n"
while((c=getchar())=='
\n'
)
if(c>
='
a'
&
c<
z'
c>
A'
Z'
letters++;
elseif(c=!
'
'
)space++;
elseif(c>
0'
9'
)digit++;
elseothers++;
allinall:
char=%dspace=%ddigit=%dothers=%d\n"
letters,space,digit,others);
1)、while((c=getchar())!
2)
||
、if(c>
||c>
)或if(c<
c>
3)、elseif(c=='
〖第3题〗『程序改错』(5分)(题号:
250)
以下程序输出前六行杨辉三角形,即
1
11
121
1331
14641
*/main()
staticinta[6][6];
inti,j,k;
for(i=1;
=6;
i++){for(k=0;
k<
10-2*i;
k++)printf("
for(j=0;
j<
=i;
j++){
if(j==0&
j==i)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i][j-1];
%-3d"
a[i][j]);
}
\t"
6;
或for(i=0;
=5;
if(j==0||j==i)
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)、
aa[1]=a%100/10;
或aa[1]=a/10%10;
4;
〖第1
题〗『程序改错』(5
分)(题号:
3)
用起泡法对10个整数从小到大排序。
程序中共有4条错误语句,请改正错误。
*/voidsort(intx[],intn)
inti,j,k,t;
n-1;
for(j=0;
n-i;
j++)
if(x[i]>
x[i+1])
{t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}}
main()
inti,n,a[100];
pleaseinputthelengthofthearray:
scanf("
n);
n;
a[i]);
sort(n,a);
outputthesortedarray:
=n-1;
i++)printf("
%5d"
1)
或for(j=0;
n-(1
、for(j=0;
n-1-i;
j++)或for(j=0;
n-1-i>
j;
j++)+i);
n-(1+i)>
=n-2-i;
2)、if(x[j]>
x[j+1])或if(x[j+1]<
x[j])
a[i]);
或scanf("
a+i);
4)、sort(a,n);
或sort(&
a[0],n);
〖第2题〗『程序改错』(5分)(题号:
431)/*
编写函数fun求1000以内所有8得倍数之与。
不可以增加或删除程序行,也不可以更改程序得结构。
*/#include"
#defineN1000main(){intsum;
sum=fun(8);
%d以内所有%d得倍数之与为:
%d\n"
N,8,sum);
intfun(intm)
ints=0;
i;
/**********FOUND**********/for(i=1;
N;
i++)/**********FOUND**********/
if(i/m==0)s+=i;
returns;
ints=0,i;
if(i%m==0)
444)
求100以内(包括100)得偶数之与、
inti,sum=1;
for(i=2;
=100;
i+=1)
sum+=i;
Sum=%d\n"
;
sum);
inti,sum=0;
i+=2)
3)、printf("
sum);
第1题〗『程序改错』(5分)(题号:
14)
函数fun得功能就是:
求1到20得阶乘得与。
请改正程序中得错误,使它能得出正确得结果。
*/fun()
intn,j;
floats=0、0,t=1、0;
for(n=1;
n<
=20;
n++)
s=1;
for(j=1;
=n;
t=t*n;
s+t=s;
jiecheng=%d\n"
s);
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"
396)
程序改错】题目:
请编写一个函数fun,函数得功能就是:
统计出若干个学生得平均成绩,最低分以及得最低分得人数。
例如,输入10名学生得成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77、9,最高分为56,得最高分得人数为1人。
floatMin=0;
intJ=0;
floatfun(floatarray[],intn)
floatsum=0,ave;
Min=array[0];
{if(Min>
array[i])Min=array[i];
sum=+array[i];
ave=sum\n;
if(array[i]=Min)J++;
return(ave);
floata[10],ave;
inti=0;
ave=fun(a,10);
ave=%f\n"
ave);
min=%f\n"
Min);
Total:
%d\n"
J);
}答案:
sum+=array[i];
或sum=sum+array[i];
ave=sum/n;
if(array[i]==Min)J++;
或if(Min==array[i])J++;
1)、inti,sum=0;
2)、for(i=2;
3)、printf("
14)/*
*/
fun()
/**********FOUND**********/s=1;
j++)/**********FOUND**********/
/**********FOUND**********/
/**********FOUND**********/printf("
t=1;
或t=1
、0;
t=t*j;
或t*=j;
s=s+t;
或s+=t;
或t=j*t;
412)
90,打印出
将一个正整数分解质因数。
例如:
输入
90=2*3*3*5
intn,i;
\npleaseinputanumber:
%d="
n);
i++)n=n%i;
while(n==i)
if(n%i==1)
{printf("
%d*"
i);
elsebreak;
}printf("
1)、while(n!
=i)
2)、if(n%i==0)或if(!
(n%i))
3)、n=n/i;
449)/*
编写函数fun计算下列分段函数得值:
x*20x<
0且x工-3
f(x)=sin(x)0wx<
10且xm2及xm3
x*x+x-1其它
math、h"
floatfun(floatx){
floaty
if(x<
0||x!
=-3、0)
y=x*20;
elseif(x>
=0&
x<
10y=sin(x);
0&
x!
=2、0&
=3
0)
elsey=x*x+x-1;
returnx;
{floatx,f;
Inputx="
f=fun(x);
x=%f,f(x)=%f\n"
x,f);
getch();
floaty;
=-3
、0)
returny;
或
return(y);
程序改错】
435)
编写一个程序计算某年某月有几天
。
(注意要区分闰年)
不可以增加或删除程序行,也不可
以更改程序得结构。
*/#include<
stdio、h>
voidmain()
intyy,mm,len;
year,month="
%d%d"
yy,&
mm);
switch(yy)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
len=31;
breakcase4:
case6:
case9:
case11:
len=30;
break;
case2:
if(yy%4==0&
yy%100!
=0||yy%400==0)len=29;
len=28;
defaultprintf("
inputerror!
Thelengthof%d%did%d\n"
yy,mm,len);
switch(mm)
break;
default:
〖第3题〗『程序改错』(5