/************found************/
if(x[j]=>xa)改为:
if(x[j]>=xa)
c++;
returnc;
}
main()
{floatx[100]={193.199,195.673,195.757,196.051,
196.092,196.596,196.579,196.763};
printf("%d\n",fun(x,8));}
9、给定程序中fun函数的功能是:
将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。
例如:
若输入“Ab,cD”,则输出“AB,CD”
#include
#include
char*fun(chartt[])
{inti;
for(i=0;tt[i];i++)
/**********found***********/
if(('a'<=tt[i])||(tt[i]<='z'))改为:
if((tt[i]>='a')&&(tt[i]<='z'))
/**********found***********/
tt[i]+=32;改为:
tt[i]-=32;
return(tt);
}
main()
{chartt[81];
printf("\nPleaseenterastring:
");
gets(tt);
printf("\nTheresultstringis:
\n%s",fun(tt));}
10、给定程序中fun函数的功能是:
在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。
例如,调用fun函数这前给字符串输入:
ABCDeFGH,调用后字符串中的内容为:
eABCDFGH。
#include
/**********found**********/
fun(char*p)改为:
voidfun(char*p)
{charmax,*q;inti=0;
max=p[i];
while(p[i]!
=0)
{if(max
{max=p[i];
/**********found**********/
q=p+I改为:
q=p+i;
}
i++;}
/**********found**********/
wihle(q>p)改为:
while(q>p)
{*q=*(q-1);
q--;}
p[0]=max;
}
main()
{charstr[80];
printf("Enterastring:
");gets(str);
printf("\nTheoriginalstring:
");puts(str);
fun(str);
printf("\nThestringaftermoving:
");puts(str);printf("\n\n");}
11、给定程序MODI1.CJ是建立一个带头结点的单向链表,并用随机函数为各结点赋值。
给定程序中fun函数的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。
#include
#include
typedefstructaa
{intdata;structaa*next;}NODE;
intfun(NODE*h)
{intsum=0;
NODE*p;
/***********found**********/
p=h;改为:
p=h->next;
/***********found**********/
while(p->next)改为:
while(p)
{if(p->data%2==0)sum+=p->data;
/***********found**********/
p=h->next;改为:
p=p->next;
}
returnsum;
}
NODE*creatlink(intn)
{NODE*h,*p,*s,*q;
inti,x;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=1;i<=n;i++)
{s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%16;s->next=p->next;
p->next=s;p=p->next;}
p->next=NULL;
returnh;
}
outlink(NODE*h,FILE*pf)
{NODE*p;
p=h->next;
fprintf(pf,"\n\nTHELIST:
\n\nHEAD");
while(p)
{fprintf(pf,"->%d",p->data);p=p->next;}
fprintf(pf,"\n");
}
outresult(ints,FILE*pf)
{fprintf(pf,"\nThesumofevennumbers:
%d\n",s);}
main()
{NODE*head;inteven;
head=creatlink(12);
head->data=9000;
outlink(head,stdout);
even=fun(head);
printf("\nTheresult:
\n");outresult(even,stdout);
}
12、给定程序中fun函数的功能是:
求三个数的最小公倍数。
例如,给主函数中的变量x1,x2,x3分别输入15112,则输出结果应当是:
330。
#include
/************found************/
fun(intx,y,z)改为:
fun(intx,inty,intz)
{intj,t,n,m;
/************found************/
j=1;改为:
j=x;
t=j%x;m=j%y;n=j%z;
/************found************/
while(t!
=0&&m!
=0&&n!
=0)改为:
while(t!
=0||m!
=0||n!
=0)
{j=j+1;t=j%x;m=j%y;n=j%z;}
/************found************/
returni;改为:
returnj;
}
main()
{intx1,x2,x3,j;
printf("Inputx1x2x3:
");scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("Theminimalcommonmultipleis:
%d\n",j);}
13、给定程序中fun函数的功能是:
先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。
例如:
当s听字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。
#include
#include
voidfun(char*s,char*t)
{inti,sl;
sl=strlen(s);
/************found************/
for(i=0;i<=s1;i++)改为:
for(i=0;it[i]=s[i];
for(i=0;it[sl+i]=s[sl-i-1];
/************found************/
t[sl]='\0';改为:
t[2*sl]='\0';
}
main()
{chars[100],t[100];
printf("\nPleaseenterstrings:
");scanf("%s",s);
fun(s,t);
printf("Theresultis:
%s\n",t);
}
14、给定程序中fun函数的功能是:
从s所指字符串中删除所有小写字母c。
#include
voidfun(char*s)
{inti,j;
for(i=j=0;s[i]!
='\0';i++)
if(s[i]!
='c')
/************found************/
s[j]=s[i];改为:
s[j++]=s[i];
/************found************/
s[i]='\0';改为:
s[j]='\0';
}
main()
{chars[80];
printf("Enterastring:
");gets(s);
printf("Theoriginalstring:
");puts(s);
fun(s);
printf("Thestringafterdeleted:
");puts(s);printf("\n\n");
}
15、给定程序中fun函数的功能是:
从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。
规定,函数中a1放个位数,a2放十位数。
#include
/************found************/
fun(int*b)改为:
intfun(int*b)
{intk,a1,a2,i=0;
/************found************/
for(k=10;k<=55;k++){改为:
for(k=10;k<55;k++){
/************found************/
a2=k/1O;改为:
a2=k/10;
a1=k-a2*10;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{b[i]=k;i++;}
}
/************found************/
returnk;改为:
returni;
}
main()
{inta[100],k,m;
m=fun(a);
printf("Theresultis:
\n");
for(k=0;k}
16、给定程序中fun函数的功能是:
求S的值。
例如,当k为10时,函数值应为:
1.533852。
#include
#include
/************found************/
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++;
}
/************found************/
returns改为:
returns;
}
main()
{printf("%f\n",fun(10));}
17、给定程序中fun函数的功能是:
将十进制正整数m转换成k(2<=k<=9)进制数,并按高位到低位顺序输出。
例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。
#include
#include
/**********found**********/
fun(intm,intk)改为:
voidfun(intm,intk)
{intaa[20],i;
for(i=0;m;i++)
{
/**********found**********/
aa[i]=m/k;改为:
aa[i]=m%k;
m/=k;
}
for(;i;i--)
/**********found**********/
printf("%d",aa[i]);改为:
printf("%d",aa[i-1]);
}
main()
{intb,n;
printf("\nPleaseenteranumberandabase:
\n");scanf("%d%d",&n,&b);
fun(n,b);printf("\n");}
18、给定程序中fun函数的功能是:
根据整型形参n,计算如下公式的值。
例如:
若n=10,则应输出0.617977.
#include
/************found************/
intfun(intn)改为:
floatfun(intn)
{floatA=1;inti;
/************found************/
for(i=2;ifor(i=2;i<=n;i++)
A=1.0/(1+A);
returnA;}
main()
{intn;
printf("\nPleaseentern:
");
scanf("%d",&n);printf("A%d=%f\n",n,fun(n));}
19、给定程序中fun函数的功能是:
输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
#include
#defineM5
/************found************/
intfun(intn,intxx[][])改为:
intfun(intn,intxx[M][M])
{inti,j,sum=0;
printf("\nThe%dx%dmatrix:
\n",M,M);
for(i=0;i{for(j=0;j