printf("Enterm:
");scanf("%d",&m);
k=fun(a,m);
if(k>=0)printf("m=%d,index=%d\n",m,k);
elseprintf("Notbefound!
\n");
}
9:
给定程序MODI1.C中函数fun的功能是:
按以下递归公式求函数值。
┌10(n=1)
fun(n)=┥
└fun(n-1)+2(n>1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
/************found************/
fun(intn)
{intc;
/************found************/
if(n==1)
c=10;
else
c=fun(n-1)+2;
return(c);
}
main()
{intn;
printf("Entern:
");scanf("%d",&n);
printf("Theresult:
%d\n\n",fun(n));
}
10:
给定程序MODI1.C中函数fun的功能是:
求出两个非零正整数的最大公约数,并作为函数值返回。
例如,若给num1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
intfun(inta,intb)
{intr,t;
if(a
/************found************/
t=a;a=b;b=t;
}
r=a%b;
while(r!
=0)
{a=b;b=r;r=a%b;}
/************found************/
return(b);
}
main()
{intnum1,num2,a;
printf("Inputnum1num2:
");scanf("%d%d",&num1,&num2);
printf("num1=%dnum2=%d\n\n",num1,num2);
a=fun(num1,num2);
printf("Themaximuncommondivisoris%d\n\n",a);
}
11:
给定程序MODI1.C中函数fun的功能是:
通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。
例如变量a中的值原为8,b中的值原为3,程序运
行后a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
intfun(int*x,inty)
{
intt;
/**************found**************/
t=*x;*x=y;
/**************found**************/
returnt;
}
main()
{
inta=3,b=8;
printf("%d%d\n",a,b);
b=fun(&a,b);
printf("%d%d\n",a,b);
}
12:
给定程序MODI1.C中函数fun的功能是:
从s所指字符串中,找出与t所指字符
串相同的子串的个数作为函数值返回。
例如,当s所指字符串中的内容为:
"abcdabfab",t所指字符串的内容为:
"ab",则函数返回整数3。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
intfun(char*s,char*t)
{
intn;char*p,*r;
n=0;
while(*s)
{p=s;r=t;
while(*r)
if(*r==*p){
/************found************/
r++;p++;
}
elsebreak;
/************found************/
if(*r==0)
n++;
s++;
}
returnn;
}
main()
{
chars[100],t[100];intm;
printf("\nPleaseenterstringS:
");scanf("%s",s);
printf("\nPleaseentersubstringt:
");scanf("%s",t);
m=fun(s,t);
printf("\nTheresultis:
m=%d\n",m);
}
13:
给定程序MODI1.C中函数fun的功能是:
从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。
高位仍在高位,低位仍在低位。
例如,当s中的数为:
7654321时,t中的数为:
7531。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/************found************/
voidfun(longs,long*t)
{longsl=10;
*t=s%10;
while(s>0)
{s=s/100;
*t=s%10*sl+*t;
/************found************/
sl=sl*10;
}
}
main()
{longs,t;
printf("\nPleaseenters:
");scanf("%ld",&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
14:
给定程序MODI1.C中函数fun的功能是:
计算并输出high以内最大的10个素数之和。
high的值由主函数传给fun函数。
若high的值为:
100,则函数的值为:
732。
请改正程序中的错误,使程序能输出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
intfun(inthigh)
{intsum=0,n=0,j,yes;
/************found************/
while((2<=high)&&(n<10))
{yes=1;
for(j=2;j<=high/2;j++)
if(high%j==0){
/************found************/
yes=0;break;
}
if(yes){sum+=high;n++;}
high--;
}
returnsum;
}
main()
{
printf("%d\n",fun(100));
}
15:
给定程序MODI1.C中函数fun的功能是:
从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。
在每组中,可以没有黑球,但必须要有红球和白球。
组合数作为函数值返回。
正确的组合数应该是15。
程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
intfun()
{inti,j,k,sum=0;
printf("\nTheresult:
\n\n");
/**************found**************/
for(i=1;i<=3;i++)
{k=8-i-j;
/**************found**************/
if(k>=0&&k<=6)
{sum=sum+1;
printf("red:
%4dwhite:
%4dblack:
%4d\n",i,j,k);
}
}
}
returnsum;
}
main()
{intsum;
sum=fun();
printf("sum=%4d\n\n",sum);
}
16:
给定程序MODI1.C中函数fun的功能是:
把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。
例如,输入的数为:
551234,
输出结果应当是:
a=55.0,b=34.0,c=12.0。
请改正程序中的错误,使它能得出正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
voidfun(float*a,float*b,float*c)
{
/**********found**********/
floatk;
if(*a<*b)
{k=*a;*a=*b;*b=k;}
/**********found**********/
if(*c>*a)
{k=*c;*c=*a;*a=k;}
if(*b<*c)
{k=*b;*b=*c;*c=k;}
}
main()
{floata,b,c;
printf("Inputabc:
");scanf("%f%f%f",&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
fun(&a,&b,&c);
printf("a=%4.1f,b=%4.1f,c=%4.1f\n\n",a,b,c);
}
17:
给定程序MODI1.C中函数fun的功能是:
将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。
例如:
把3个串:
"abc","CD","EF"连接起来,结果是"abcCDEF"。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
intfun(charstr[][10],intm,char*pt)
{
/************found************/
intk,q,i;
for(k=0;k{q=strlen(str[k]);
for(i=0;i/************found************/
pt[i]=str[k][i];
pt+=q;
pt[0]=0;