改错题Word下载.docx
《改错题Word下载.docx》由会员分享,可在线阅读,更多相关《改错题Word下载.docx(77页珍藏版)》请在冰豆网上搜索。
printf("
\nPleaseenterstringS:
"
);
scanf("
%s"
s);
fun(s,t);
\nTheresultis:
%s\n"
t);
}
3、给定程序中fun函数的功能是:
将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。
例如:
字符串中的数据为:
AABBCCDDEEFF,则应输出ABBCDDEFF。
#defineN80
voidfun(char*s,chart[])
{inti,j=0;
for(i=0;
strlen(s);
/***********found**********/
if(i%2&
&
s[i]%2==0)改为:
if(i%2==0||s[i]%2==0)
t[j++]=s[i];
t[i]='
改为:
t[j]='
{chars[N],t[N];
\nPleaseenterstrings:
"
gets(s);
\nTheresultis:
t);
4、给定程序中fun函数的功能是:
计算n!
。
例如,给n输入5,则输出120.000000。
doublefun(intn)
{doubleresult=1.0;
ifn==0改为:
if(n==0)
return1.0;
while(n>
1&
n<
170)
result*=n--改为:
result*=n--;
returnresult;
main()
{intn;
InputN:
);
%d"
&
n);
\n\n%d!
=%lf\n\n"
n,fun(n));
5、给定程序中fun函数的功能是:
先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。
intfun()
{inta[3][3],sum;
inti,j;
/*********found**********/
______;
sum=0
for(i=0;
i<
3;
i++)
{for(j=0;
j<
j++)
a[i][j]);
改为:
scanf("
&
a[i][j]);
sum=sum+a[i][i];
Sum=%d\n"
sum);
{fun();
6、给定程序中fun函数的功能是:
求
,(此处aa…aa表示n个a,a和n的值在1至9之间)。
例如,a=3,n=6,则以上表达式为:
s=333333-33333-3333-333-33-3,其值是:
296298。
a和n是fun函数的形参。
longfun(inta,intn)
{intj;
longs=0,t=1;
改为:
longs=0,t=0;
/**************found**************/
for(j=0;
j<
=n;
j++)改为:
for(j=0;
n;
j++)
t=t*10+a;
s=t;
for(j=1;
n;
j++){
t=t%10;
t=t/10;
s=s-t;
return(s);
{inta,n;
\nPleaseenteraandn:
scanf("
%d%d"
a,&
n);
Thevalueoffunctionis:
%ld\n"
fun(a,n));
7、给定程序中fun函数的功能是:
求k!
(k<
13),所求阶乘的值作为函数值返回。
若k=10,则应输出3628800。
longfun(intk)
{
ifk>
0改为:
if(k>
0)
return(k*fun(k-1));
elseif(k=0)改为:
elseif(k==0)
return1L;
{intk=10;
%d!
=%ld\n"
k,fun(k));
8、给定程序中fun函数的功能是:
由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。
例如,n=8时,输入:
193.99,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为:
195.838745,在平均值以上的实数个数应为:
5。
intfun(floatx[],intn)
intj,c=0,floatxa=0.0;
intj,c=0;
floatxa=0.0;
for(j=0;
j<
n;
j++)
xa+=x[j]/n;
ave=%f\n"
xa);
if(x[j]=>
xa)改为:
if(x[j]>
=xa)
c++;
returnc;
{floatx[100]={193.199,195.673,195.757,196.051,
196.092,196.596,196.579,196.763};
%d\n"
fun(x,8));
9、给定程序中fun函数的功能是:
将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。
若输入“Ab,cD”,则输出“AB,CD”
char*fun(chartt[])
{inti;
for(i=0;
tt[i];
i++)
/**********found***********/
if(('
a'
<
=tt[i])||(tt[i]<
='
z'
))改为:
if((tt[i]>
)&
(tt[i]<
))
tt[i]+=32;
tt[i]-=32;
return(tt);
{chartt[81];
\nPleaseenterastring:
);
gets(tt);
\nTheresultstringis:
\n%s"
fun(tt));
10、给定程序中fun函数的功能是:
在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;
并将该字符前的原字符向后顺序移动。
例如,调用fun函数这前给字符串输入:
ABCDeFGH,调用后字符串中的内容为:
eABCDFGH。
/**********found**********/
fun(char*p)改为:
voidfun(char*p)
{charmax,*q;
inti=0;
max=p[i];
while(p[i]!
=0)
{if(max<
p[i])
{max=p[i];
q=p+I改为:
q=p+i;
i++;
wihle(q>
p)改为:
while(q>
p)
{*q=*(q-1);
q--;
p[0]=max;
{charstr[80];
Enterastring:
gets(str);
\nTheoriginalstring:
puts(str);
fun(str);
\nThestringaftermoving:
\n\n"
11、给定程序MODI1.CJ是建立一个带头结点的单向链表,并用随机函数为各结点赋值。
给定程序中fun函数的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。
stdlib.h>
typedefstructaa
{intdata;
structaa*next;
}NODE;
intfun(NODE*h)
{intsum=0;
NODE*p;
p=h;
改为:
p=h->
next;
/***********found**********/
while(p->
next)改为:
while(p)
{if(p->
data%2==0)sum+=p->
data;
p=h->
p=p->
returnsum;
NODE*creatlink(intn)
{NODE*h,*p,*s,*q;
inti,x;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=1;
=n;
{s=(NODE*)malloc(sizeof(NODE));
s->
data=rand()%16;
next=p->
p->
next=s;
p=p->
next=NULL;
returnh;
outlink(NODE*h,FILE*pf)
{NODE*p;
p=h->
fprintf(pf,"
\n\nTHELIST:
\n\nHEAD"
while(p)
{fprintf(pf,"
->
%d"
p->
data);
fprintf(pf,"
\n"
outresult(ints,FILE*pf)
{fprintf(pf,"
\nThesumofevennumbers:
%d\n"
s);
{NODE*head;
inteven;
head=creatlink(12);
head->
data=9000;
outlink(head,stdout);
even=fun(head);
\nTheresult:
outresult(even,stdout);
12、给定程序中fun函数的功能是:
求三个数的最小公倍数。
例如,给主函数中的变量x1,x2,x3分别输入15112,则输出结果应当是:
330。
fun(intx,y,z)改为:
fun(intx,inty,intz)
{intj,t,n,m;
j=1;
j=x;
t=j%x;
m=j%y;
n=j%z;
while(t!
=0&
m!
n!
=0)改为:
while(t!
=0||m!
=0||n!
=0)
{j=j+1;
m=j%y;
returni;
returnj;
{intx1,x2,x3,j;
Inputx1x2x3:
%d%d%d"
x1,&
x2,&
x3);
x1=%d,x2=%d,x3=%d\n"
x1,x2,x3);
j=fun(x1,x2,x3);
Theminimalcommonmultipleis:
j);
13、给定程序中fun函数的功能是:
先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
当s听字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。
voidfun(char*s,char*t)
{inti,sl;
sl=strlen(s);
for(i=0;
=s1;
i++)改为:
for(i=0;
sl;
i++)
t[i]=s[i];
sl;
t[sl+i]=s[sl-i-1];
t[sl]='
改为:
t[2*sl]='
\nPleaseenterstrings:
Theresultis:
14、给定程序中fun函数的功能是:
从s所指字符串中删除所有小写字母c。
voidfun(char*s)
{inti,j;
for(i=j=0;
s[i]!
='
if(s[i]!
c'
)
s[j]=s[i];
s[j++]=s[i];
s[i]='
s[j]='
{chars[80];
Theoriginalstring:
puts(s);
fun(s);
Thestringafterdeleted:
printf("
15、给定程序中fun函数的功能是:
从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
规定,函数中a1放个位数,a2放十位数。
fun(int*b)改为:
intfun(int*b)
{intk,a1,a2,i=0;
for(k=10;
k<
=55;
k++){改为:
for(k=10;
55;
k++){
a2=k/1O;
a2=k/10;
a1=k-a2*10;
if((k%3==0&
a2==5)||(k%3==0&
a1==5))
{b[i]=k;
returnk;
returni;
{inta[100],k,m;
m=fun(a);
Theresultis:
for(k=0;
m;
k++)printf("
%4d"
a[k]);
16、给定程序中fun函数的功能是:
求S的值。
例如,当k为10时,函数值应为:
1.533852。
math.h>
voidfun(intk)改为:
floatfun(intk)
{intn;
floats,w,p,q;
n=1;
s=1.0;
while(n<
=k)
{w=2.0*n;
p=w-1.0;
q=w+1.0;
s=s*w*w/p/q;
n++;
returns改为:
returns;
{printf("
%f\n"
fun(10));
17、给定程序中fun函数的功能是:
将十进制正整数m转换成k(2<
=k<
=9)进制数,并按高位到低位顺序输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
conio.h>
fun(intm,intk)改为:
voidfun(intm,intk)
{intaa[20],i;
m;
{
aa[i]=m/k;
aa[i]=m%k;
m/=k;
for(;
i;
i--)
aa[i]);
printf("
aa[i-1]);
{intb,n;
\nPleaseenteranumberandabase:
%d%d"
n,&
b);
fun(n,b);
18、给定程序中fun函数的功能是:
根据整型形参n,计算如下公式的值。
若n=10,则应输出0.617977.
/************found************