a=1.0/(1+a);
returna;
3、求表达式的前20项之和。
程序的运行结果为1.950000。
111
S=1+——+——+......+————
1*22*3n*(n+1)
#include
floatfun(intn)
{inti;
floats,t;
/**********Program**********/
/**********End**********/
return(s);
}
main()
{floats;
s=fun(20);
printf("%f\n",s);
}
答案
s=0;
t=1;
for(i=1;i<=n;i++)
{s=s+t;
t=1.0/(i*(i+1));
}
4、编写函数fun,函数的功能是:
求一个四位数的各位数字的立方和。
#include"stdio.h"
intfun(intn)
{/**********Program**********/
/**********End**********/
}
main()
{intk;
k=fun(1234);
printf("k=%d\n",k);
}
答案:
intd,k,s=0;
while(n>0)
{d=n%10;
s+=d*d*d;
n/=10;
}
returns;
5、编写函数fun,功能是:
用下面的和式求圆周率的近似值。
直到最后一项的绝对值小于等于eps。
π111
—=1-—+—-—+...
4357
运行结果:
pi=3.141397
#include"math.h"
#include"stdio.h"
floatfun(floateps)
{inti=1;
floats=0,t=1,p=1;
/**********Program**********/
/**********End**********/
}
main()
{printf("pi=%f\n",fun(0.0001));
}
答案:
while(fabs(t)>eps)
{s=s+t;
p=-p;
i=i+2;
t=p/i;
}
returns*4;
6、编写函数fun,功能是求如下表达式:
111
S=1+——+———+......+———————
1+21+2+31+2+3+......+n
如:
n=5运行结果:
1.666667
#include"stdio.h"
floatfun(intn)
{inti,j;
floatt,s=0;
/**********Program**********/
/**********End**********/
}
main()
{intn;
printf("Pleaseinputanumber:
");
scanf("%d",&n);
printf("%10.6f\n",fun(n));
}
--------------------------------------------------
答案
for(i=1;i<=n;i++)
{t=0;
for(j=1;j<=i;j++)
t=t+j;
s=s+1/t;
}
returns;
7、编写函数fun,函数的功能是:
求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。
每一分数的分母是前两项的分母之和
每一分数的分子是前两项的分子之和
例如:
求前20项之和的值为32.660259。
#include"stdio.h"
floatfun(intn)
{/**********Program**********/
/**********End**********/
}
main()
{floaty;
y=fun(20);
printf("y=%f\n",y);
}
答案:
inti;
floatf1=1,f2=1,f3,s=0;
for(i=1;i<=n;i++)
{f3=f1+f2;
f1=f2;
f2=f3;
s=s+f2/f1;
}
returns;
8、编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),其中d为1-9的数字。
例如3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。
#include"stdio.h"
main()
{intd,n;
longsum,fun();
printf("d=");
scanf("%d",&d);
printf("n=");
scanf("%d",&n);
sum=fun(d,n);
printf("sum=%ld\n",sum);
}
longintfun(intd,intn)
{/**********Program**********/
/**********End**********/
}
答案:
longints=0,t=0;
inti;
for(i=1;i<=n;i++)
{t=t+d;
s=s+t;
d=d*10;
}
returns;
9、编写函数fun,函数的功能是:
求1到100之间的偶数之积。
#include"stdio.h"
doublefun(intm)
{/**********Program**********/
/**********End**********/
}
main()
{printf("ji=%f\n",fun(100));
}
答案
doubley=1;
inti;
for(i=1;i<=m;i++)
if(i%2==0)y*=i;
returny;
10、编写函数fun求1!
+2!
+3!
+……+n!
的和,在main函数中由键盘输入n值,并输出运算结果。
例如:
若n值为20,则结果为268040729。
#include
floatfun(intn)
{/**********Program**********/
/**********End**********/
}
main()
{inti,n;
longintresult;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
}
答案
inti;
floatf=1,s=0;
for(i=1;i<=n;i++)
{f=f*i;
s=s+f;}
returns;
11、调用函数fun判断一个三位数是否是"水仙花数"。
在main函数中从键盘输入一个三位数,并输出判断结果。
请编写fun函数。
所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。
例如,153是一个水仙花数,因为153等于1的立方加上5的立方加上3的立方之和。
#include"stdio.h"
intfun(intn)
{/**********Program**********/
/**********End**********/
}
main()
{intn,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d是水仙花数\n",n);
else
printf("%d不是水仙花数\n",n);
}
答案
intbw,sw,gw;
bw=n/100;sw=(n-bw*100)/10;gw=n%10;
if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;
elsereturn0;
12、编写函数fun其功能是:
判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
#include"stdio.h"
#include"conio.h"
intfun(intw)
{/**********Program**********/
/**********End**********/
}
main()
{intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
}
答案
intk,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!
=0);
if(s%5==0)k=1;
elsek=0;
return(k);
13、编写函数fun其功能是:
计算出k以内最大的10个能被13或17整除的自然数之和。
(k〈3000)。
#include"stdio.h"
#include"conio.h"
intfun(intk)
{/**********Program**********/
/**********End**********/
}
main()
{intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
}
答案
inta=0,b=0,j;
while((k>=2)&&(b<10))
{k--;
if((k%13==0)||(k%17==0))
{a=a+k;b++;}
}
returna;
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
14、编写函数fun其功能是:
根据整型形参m,计算如下公式的值:
y=1/2!
+1/4!
+...+1/m!
(m是偶数)
#include"stdio.h"
doublefun(intm)
{/**********Program**********/
/**********End**********/
}
main()
{intn;
clrscr();
printf("Entern:
");
scanf("%d",&n);
printf("\nTheresultis%1f\n",fun(n));
}
答案
doubley=0.0;
inti,j;
doubles=1;
for(i=2;i<=m;i+=2)
{for(j=i-1;j<=i;j++)
s=s*j;
y=y+1.0/s;
}
returny;
15、从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。
例如:
7是素数,8不是素数。
请编写fun函数。
素数是仅能被1和自身整除的数
#include"stdio.h"
main()
{intm,flag;
printf("inputaninteger:
");
scanf("%d",&m);
flag=fun(m);
if(flag)
printf("%disaprime.\n",m);
else
printf("%disnotaprime.\n",m);
}
intfun(intn)
{/**********Program**********/
/**********End**********/
}
答案
inti;
intj;
j=1;
if(i<0)j=0;
for(i=2;i{if(n%i==0)j=0;
}
returnj;
16、请编写函数fun,它的功能是:
判断m是否为素数。
主函数的功能是:
求出100到200之间的素数的个数。
#include"stdio.h"
main()
{intm,k=0;
for(m=100;m<200;m++)
if(fun(m))
{printf("%4d",m);
k++;
if(k%5==0)printf("\n");
}
printf("k=%d\n",k);
}
intfun(intm)
{/**********Program**********/
/**********End**********/
}
答案
inti,k=1;
if(m<=1)k=0;
for(i=2;iif(m%i==0)k=0;
returnk;
17、编写函数fun其功能是:
求给定正整数n以内的素数之积。
(n<28)
#include"stdio.h"
#include"conio.h"
longfun(intn)
{/**********Program**********/
/**********End**********/
}
main()
{intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%ld\n",fun(m));
}
答案
longi,k;
longs=1;
for(i=2;i<=n;i++)
{for(k=2;k
if(i%k==0)break;
if(k==i)s=s*i;
}
returns;
18、编写函数fun,函数的功能是:
计算n门课程的平均值,计算结果作为函数值返回。
例如,若有5门课程的成绩是:
92,76,69,58,88,则函数的值为72.599998。
#include"stdio.h"
floatfun(inta[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{inta[]={92,76,69,58,88};
printf("y=%f\n",fun(a,5));
}
答案
inti;
floaty=0;
for(i=0;iy+=a[i];
y=y/n;
returny;
19、求一批数中小于平均值的数的个数。
#include
intaverage_num(inta[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{intn,a[100],i,num;
clrscr();
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
num=average_num(a,n);
printf("thenumis:
%d\n",num);
}
答案
inti,sum=0,k=0;
floataverage;
for(i=0;isum=sum+a[i];
average=sum*1.0/n;
for(i=0;iif(average>a[i])k++;
return(k);
20、从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
#include"stdio.h"
intfun(intx[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{inta[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
min=fun(a,10);
printf("%d\n",min);
}
答案
intmin,i;
min=x[0];
for(i=1;i{if(x[i]returnmin;
21、编写函数fun,函数的功能是:
找出一批正整数中的最大的偶数。
#include"stdio.h"
intfun(inta[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{inta[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf("max=%d\n",k);
}
答案
inti,amax=-1;
for(i=0;iif(a[i]%2==0)if(a[i]>amax)amax=a[i];
returnamax;
22、程序的功能是:
把20个随机数存入一个数组,然后输出该数组中的最大值。
其中确定最大值的下标的操作在fun函数中实现,请给出该函数的定义。
#include"stdio.h"
#defineVSIZE20
intvector[VSIZE];
intfun(intlist[],intsize)
{/**********Program**********/
/**********End**********/
}
main()
{inti;
clrscr();
for(i=0;i{vector[i]=rand();
printf("Vector[%d]=%6d\n",i,vector[i]);
}
i=fun(vector,VSIZE);
printf("\nMaxnum:
Vector[%d]=%6d\n",i,vector[i]);
}
答案
inti,max=0;
for(i=1;iif(list[max]max=i;
returnmax;
23、求一批数中最大值和最小值的差。
intmax_min(inta[],intn)
{/**********Program**********/
/**********End**********/
}
#defineN30
#include"stdlib.h"
#include"stdio.h"
main()
{inta[N],i,k;
clrscr();
for(i=0;ia[i]=random(51)+10;
for(i=0;i{printf("%5d",a[i]);
if((i+1)%5==0)printf("\n");
}
k=max_min(a,N);
printf("theresultis:
%d\n",k);
}
答案
inti,max,min;
max=min=a[0];
for(i=1;iif(a[i]>max)max=a[i];
elseif(a[i]return(max-min);
24、给定n个数据,求最大值出现的位置(如果最大值出现多次,求出第一次出现的位置即可)。
#include
intstation(ints[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{inta[100],n,i,t;
clrscr();
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
t=station(a,n);
printf("themax_valuepositionis:
%d\n",t);
}
答案
inti,k;
k=0;
for(i=1;i<=n;i++)
if(s[i]>s[k])k=i;
return(k+1);
25、从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。
请编写fun函数。
#include"stdio.h"
intfun(intx[],intn)
{/**********Program**********/
/**********End**********/
}
main()
{inta[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]