C程序填空改错及答案.docx
《C程序填空改错及答案.docx》由会员分享,可在线阅读,更多相关《C程序填空改错及答案.docx(41页珍藏版)》请在冰点文库上搜索。
C程序填空改错及答案
1、结果:
75
#include"stdio.h"
fun(intm,intxx[])
{
inti,j,k=0;
xx[k++]=1;
for(i=2;i<=m;i++)
for(j=2;j
if(_____________)//i%j==0
{
xx[k++]=i;
break;
}
_____________;//returnk
}
main()
{
intzz[100];
printf("%d\n",fun(100,zz));
}
2、结果:
8.640500
#include
#include
doublefun(intn)
{/*下行有错*/
ints=0;inti;//doubles=0.0;inti;
for(i=1;i<=n;i++)
s+=log(1.0*i);
s=sqrt(s);
/*下行有错*/
return;//returns;
}
main()
{
printf("%lf\n",fun(30));
}
3、结果:
3000
#include
voidmain()
{
inti,n=0;
for(i=10006;i<=99996;i++)
if(i%10==6&&i%3==0)
n++;
printf("%d\n",n);
}
4、结果:
208
/*求1到1000之内能被7或11整除、但不能同时被7和11整除的整数个数。
请编写程序。
*/
#include
voidmain()
{
inti,n=0;
for(i=1;i<=1000;i++)
if((i%7==0||i%11==0)&&(!
(i%7==0&&i%11==0)))
{
n=n+1;
}
printf("%d\n",n);
}
5、结果:
1009
#include
intfun(intm)
{
inti,k;
for(i=m+1;;i++)
{
for(k=2;k
/*下行有错*/
if(i%k!
=0)break;//if(i%k==0)break;
if(k==i)
/*下行有错*/
returnk;//returni;
}
}
main()
{
intn;
scanf("%d",&n);
printf("%d\n",fun(n));
}
6、结果:
5
#include
#include
main()
{
inta,b,sum,count=0,i;
/*下行有错*/
for(a=1;a<=700;a--)//for(a=1;a<=700;a++)
{
sum=0;
for(b=1;b<=a;b++)
{
if(a%b==0)
sum=sum+a/b;
}
for(i=2;i<=9;i++)
if(sum==a*i)
/*下行有错*/
count+=i;//count+=1;
}
printf("%d\n",count);
}
7、结果:
495.00
#include
floatfun(intm,intn)
{
inti;
doublep=1.0;
for(i=1;i<=m;i++)p=p*i;
for(i=1;i<=n;i++)__________//p=p/i;
for(i=1;i<=m-n;i++)p=p/i;
__________//returnp;
}
main()
{printf("%.2f\n",fun(12,8));
}
8、结果:
7
#include
main()
{intp,q,r,s,n=0;
for(p=1;p<=100;p++)
for(q=p;q<=100;q++)
for(r=q;r<=100;r++)
for(s=r;s<=100;s++)
if(1.0/p+1.0/q+1.0/r+1.0/s==1)
n++;
printf("%d",n);
}
9、结果:
28
#include
/*下行有错*/
IsPrime(integern)//intIsPrime(intn)
{inti,m;
m=1;
for(i=2;i/*下行有错*/
if(n%i)//if(n%i==0)
{
m=0;
break;
}
return(m);
}
main()
{intj,k=2310,sum=0;
for(j=2;j<=k;j++)
if((!
(k%j))&&(IsPrime(j)))
sum+=j;
printf("%d\n",sum);
}
10、结果;51
#include
main()
{
inti,t=1,s=0;
for(i=1;i<=101;i+=2)
{
s=s+t*i;
__________//t=t*(-1);
}
printf("%d\n",s);
}
11、结果:
60
#include"stdio.h"
intfun(inta,intb)
{
inti,count=0,low,high;
for(i=a;i<=b;i++)
{
low=i%10;
high=i/100;
if(_____________)//if(low==high)
count++;
}
returncount;
}
main()
{
printf("%d\n",_____________);//fun(300,900)
}
12、结果:
6
#include
voidmain()
{
intnum,a,b,c,count=0;
/*下行有错*/
while(num=101;num<1000;num++)//for(num=101;num<1000;num++)
{
a=num/100;
b=num%100/10;
c=num%10;
/*下行有错*/
if(num+c*100+b*10+a=1333)//if(num+c*100+b*10+a==1333)
count++;
}
printf("%d\n",count);
}
13、结果:
23.197745
#include
#include
doublefun(intn)
{doublesum,s0,s1,s2,s;
intk;
sum=1.0;
if(n<=2)
sum=0.0;
s0=0.0;s1=0.0;s2=1.0;
for(k=4;k<=n;k++)
{s=s0+s1+s2;
sum+=__________;//sum+=sqrt(s);
s0=s1;
s1=s2;
s2=s;
}
__________//returnsum;
}
main()
{printf("%f\n",fun(10));
}
14、结果:
5
#include
#include
main()
{inti,ge,shi,bai,n=0;
for(i=1;i<1000;i++)
{ge=i%10;
shi=i/10%10;
bai=i/100;
if(i==pow(ge,3)+pow(shi,3)+pow(bai,3))
n++;
}
printf("%d\n",n);
}
15、结果:
52
#include
intfun(inta,intb)
{intr,t;
if(a
{t=a;a=b;b=t;
}
r=a%b;
while(r!
=0)
{a=b;
b=r;
/*下行有错*/
r=a/b;//r=a%b;
}
/*下行有错*/
returna;//returnb;
}
main()
{inta;
a=fun(780,208);
printf("%d\n",a);
}
16、结果:
12
17、结果:
75025
#include
longfun(intg)
{
switch(g)
{
case0:
return0;
case1:
return1;
case2:
return1;
}
return(__________);//return(fun(g-1)+fun(g-2));
}
main()
{
longfib;
intn=25;
fib=__________;//fun(n);
printf("%ld\n",fib);
}
18、结果:
2310
#include
/*下行有错*/
voidIsPrime(intn)//intIsPrime(intn)
{inti,m;
m=1;
for(i=2;iif(!
(n%i))
{m=0;
/*下行有错*/
continue;//break;
}
return(m);
}
main()
{intj,k=2310,sum=1;
for(j=2;j<=k;j++)
if((!
(k%j))&&(IsPrime(j)))
sum*=j;
printf("%d\n",sum);
}
19、结果;0.1250
#include
doublefun(intn)
{
doubles=1.0;
inti;
for(i=1;__________;i++)//i<=n
s=s-1.0/(i*(i+1));
__________//returns;
}
main()
{
printf("%.4f\n",fun(7));
}
20、结果;28
#include
age(intn)
{intc;
if(n==1)c=10;
else__________//c=age(n-1)+2;
return(c);
}
main()
{intn=10;
printf("%d\n",__________);//age(n)
}
21、结果:
5118372
#include
#include
main()
{longsum;
inti;
sum=0;
for(i=5;i<=80;i++)
{/*下行有错*/
if(fmod(i,2)==0)//if(fmod(i,2)==1)
sum+=i*i*i;
}
printf("%ld\n",sum);
}
22、结果:
49
#include
main()
{inti,a,b,c,d,n=0;
for(i=1000;i<=9999;i++)
{
d=i%10;
c=i/10%10;
b=i/100%10;
a=i/1000;
if(a*a+b*b+c*c+d*d==100)
n++;
}
printf("%d\n",n);
}
23、结果:
#include
intmcf(inta,intb)
{inttemp;
while(b)
{
__________
a=b;
b=temp;
}
returna;
}
main()
{
printf("%d\n",__________);//mcf(234,338)
}
24、结果:
59
#include
#include
intprime(intn)
{intyes,i;
if(n<=1){return0;}
yes=1;
for(i=2;i<=sqrt(n);i++)
/*下行有错*/
if(n%i!
=0)//if(n%i==0)
{yes=0;break;}
returnyes;
}
main()
{
intsum=0,i;
for(i=2;i<500;i++)
if(prime(i))
/*下行有错*/
sum+=1;//sum+=i;
printf("%d\n",sum);
}
25、结果:
38
#include
main()
{inti,a,b,c,n=0;
for(i=101;i<=999;i+=2)
{
c=i%10;
b=i/10%10;
a=i/100;
if((a+b+c)%12==0)
n++;
}
printf("%d\n",n);
}
26、结果:
1534
#include
main()
{inti,s=1;
for(i=9;i>=1;i--)
s=2*(s+1);
printf("%d",s);
}
27结果:
429
#include
#include
intsu(intx)
{intj,k;
k=sqrt(x);
for(j=2;j<=k;j++)
{if(x%j==0)break;
}
if(x>1&&j>k)return
(1);
elsereturn(0);
}
voidmain()
{longsum=0;
inta,i,j;
for(a=11;a<=99;a++)
{i=a%10;j=a/10;
if(su(a)&&su(i*10+j))
{sum=sum+a;printf("%5d",a);}
}
printf("\n%ld",sum);
}
28、结果:
6
#include
#include
#include
main()
{longs;
longk,n,sum=0,count=0;
for(n=2;n<=750;n++)
{if(n<10)k=10;
elseif(n<100)k=100;
elsek=1000;
s=n*n;
if(s%k==n){count++;sum+=n;printf("%4d",n);}
}
printf("\n%5ld,%5ld",count,sum);
}
27
下面的程序中,函数fun的功能是:
根据形参m,计算下面公式的值。
T=1+1/(2*3)+1/(3*4)+……+1/(m*(m+1))
请改正程序中的错误,并运行改正后的程序。
当从键盘输入70时,给出程序运行的正确结果(按四舍五入保留6位小数)。
程序:
#include
#include
doublefun(intm)
{doublet=1.0;
inti=2;
for(i=2;i<=m;i++)
t+=1.0/i*(i+1);
return;//returnt;
}
main()
{intm;
clrscr();
printf("\n请输入一个整数:
");
scanf("%d",&m);
printf("%lf\n",fun(m));
}
1.求【1,1500】之间能被3和7整除的数的个数
#include"stdio.h"
voidmain()
{
intx,n=0;
for(x=1;x<=1500;x++)
{
if(x%3==0&&x%7==0)
n++;
}
printf("%d",n);
}
2.编写程序,求共有几组I,j,k,符合算式ijk+kji=1534,其中i,j,k是{0.9}之间的整数。
#include"stdio.h"
voidmain()
{
inti,j,k,n=0;
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)
for(k=1;k<=9;k++)
if(i*100+j*10+k+k*100+j*10+i==1534)
n++;
printf("%d",n);
}
3.设某四位数的各位数字的平方和等于100,问共有多少个这种四位数?
#include"stdio.h"
voidmain()
{
inti,a1,a2,a3,a4,n=0;
for(i=1000;i<10000;i++)
{
a1=i%10;
a2=i/10%10;
a3=i/100%10;
a4=i/1000;
if(a1*a1+a2*a2+a3*a3+a4*a4==100)
n++;
}
printf("%d",n);
}(49)
4.把10元分成1,2,5元,有几种分法
,#include"stdio.h"
voidmain()
{
inti,j,k,n=0;
for(i=0;i<=10;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i*1+j*2+k*5==10)
n++;
printf("%d",n);
}(10)
水仙花数是一个三位整数,它等于它的各位数字的立方和,例如153是水仙花数,求400以内最大的水仙花数与最小的水仙花数。
#include"stdio.h"
voidmain()
{
inti,a1,a2,a3,max=0,min=500;
for(i=100;i<400;i++)
{
a1=i%10;
a2=i/10%10;
a3=i/100;
if(a1*a1*a1+a2*a2*a2+a3*a3*a3==i)
{
if(i>max)max=i;
if(i}
}
printf("%d%d%d\n",max,min);
}
求3-100之间的所有素数的和
#include"stdio.h"
voidmain()
{
intx,i,sum=0;
for(i=3;i<100;i++)
{
for(x=2;x
if(x%i==0)break;
if(x==i)sum=sum+i;
}
printf("%d\n",sum);
}()4937
P155.2
#include"stdio.h"
voidmain()
{
intn,t,number=20;
floata=2,b=1,s=0;
for(n=1;n{
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("%9.6f\n",s);
}
P35.2
#include"stdio.h"
voidmain()
{
inti,a,n,b=0,max=0;
for(i=1;i<=100;i++)
{
n=0;
for(a=1;a<=i;a++)
{
if(i%a==0)
{
n++;
}
}
if(n%2==1)
{
b++;
if(i>max)max=i;
}
}
printf("%d%d\n",b,max);
}
P121.16
#include"stdio.h"
voidmain()
{
intx,y,n=0;
for(x=0;x<10000;x++)
for(y=0;y<10000;y++)
if(x*x+y*y==10000&&x<=y)
n++;
printf("%d",n);
}
已知24有8个整数因子()1,2,3,4,6,8,12,24),而且正好被其因子个数整数整除。
问[100.300]之间有多少这种数
#include"stdio.h"
voidmain()
{
inta,b,c,n=0;
for(a=100;a<=300;a++)
{
c=0;
for(b=1;b<=a;b++)
if(a%b==0)
{
c++;
}
if(a%c==0)
n++;
}
printf("%d\n",n);
}
求1000以内的完数