ProProblem ProSource ProAnswer
下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。
程序:#include
#include
#include
int prime(int n)
{ int yes, i;
if(n<=1) {return 1;}
yes=1;
for(i=2; i<=sqrt(n); i++)
if(n%i==0){ yes=0; break;}
/*下行程序有错*/
return 1;
}
main()
{ int sum=0, i;
for(i=2;i<=500; i++)
if(prime(i)) sum+=i;
printf("%d\n", sum);
}21536
下面的程序是求下式的和:
s=1+1/(1+2)+1/(1+2+ 3)+
......+1/(1+2+3+... ...+n)
请改正程序中的错误,并运行修改后的程序, 当n=80时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include
#include
float fun(int n)
{ int i;
float s=1.0, t=1.0;
/*下行有错*/
for(i=2; i<=n;i--)
{ t=t+i;
s=s+1/t;
}
return s;
}
main()
{ printf("\n %f", fun(80));
}
1.975309
下面的程序是求下式的和:
s=1+1/(1+2)+1/(1+2+ 3)+
......+1/(1+2+3+... ...+n)
请改正程序中的错误,并运行修改后的程序, 当n=90时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include
#include
float fun(int n)
{ int i;
/*下行有错*/
float s=0.0, t=1.0;
for(i=2; i<=n;i++)
{ t=t+i;
s=s+1/t;
}
return s;
}
main()
{ printf("\n %f", fun(90));
}
1.978023
下面的程序是求如下表达式的值。
S=sqrt(ln(1)+ln(2)+ ln(3)+......+ln(n))请改正程序中的错误,并运行修改后的程序, 当n=20时,给出程序运行结果(保留6位小数)。
程序:#include
#include
/*下行有错*/
int fun(int n)
{ double s=0.0; int i;
for(i=1;i<=n;i++)
s+=log(1.0*i);
s=sqrt(s);
return s;
}
main()
{
/*下行有错*/
printf("%ld\n",fun(20));
}
6.506383
下面的程序是求如下表达式的值。
S=sqrt(ln(1)+ln(2)+ ln(3)+......+ln(n))请改正程序中的错误, 并运行修改后的程序, 当n=30时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include
#include
#include
double fun(int n)
{/*下行有错*/
int s=0; int i;
for(i=1;i<=n;i++)
s+=log(1.0*i);
s=sqrt(s);
/*下行有错*/
return ;
}
main()
{
printf("%lf\n",fun(30));
}
8.640500
下面的程序是求如下表达式的值。
S=sqrt(ln(1)+ln(2)+ ln(3)+......+ln(n))请改正程序中的错误, 并运行修改后的程序, 当n=40时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include
#include
#include
double fun(int n)
{ double s=0.0; int i;
/*下行有错*/
for(i=1;i<=n;i--)
s+=log(1.0*i);
s=sqrt(s);
return s;
}
main()
{
/*下行有错*/
printf("%ld\n",fun(40));
}
10.503363
下面的程序是求如下表达式的值。
S=sqrt(ln(1)+ln(2)+ ln(3)+......+ln(n))请改正程序中的错误,并运行修改后的程序, 当n=60时,给出程序运行结果(按四舍五入保留6位小数)。
程序:#include
#include
double fun(int n)
{ double s=0.0; int i;
/*下行有错*/
for(i=1;i s+=log(1.0*i); s=sqrt(s); return s; } main() { /*下行有错*/ printf("%ld\n",fun(60)); } 13.734197 以下程序求1000以内的所有的完全数之和,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。"完全数"是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。程序:#include #include #include main() { int sum; int n,m,s,k; sum=0; for (n=3;n<=1000;n++) { s=1; k=n/2+1; for (m=2;m if (n%m==0) /*下行有错*/ s=s+1; if (s==n) { sum+=s; } } printf("%d",sum); }530 以下程序求10000以内的所有完全数的个数,请修改程序中的错误, 使它能得出正确的结果,并给出正确结果,填入相应窗口。"完全数"是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。程序:#include #include main() { int count,n,m,s,k; count=0; for (n=3;n<=10000;n++) { /*下行有错*/ s=1; k=n/2+1; for (m=1;m if (n%m==0) /*下行有错*/ s+=1; if (s==n) { count+=1; } } printf("%d",count); } 4 以下程序求1000以内最大的完全数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。"完全数"是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。 程序:#include #include #include main() { int n,m,s,k,big; for (n=3;n<=1000;n++) { /*下行有错*/ s=1; k=n/2+1; for (m=1;m if (n%m==0) /*下行有错*/ s+=1; if (s==n) { big=n; } } printf("%d",big); } 496 以下程序求10000以内最大的完全数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。"完全数"是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。 程序:#include #include main() { int n,m,s,k,big; for (n=3;n<=10000;n++) { /*下行有错*/ s=1; k=n/2+1; for (m=1;m if (n%m==0) s+=m; if (s==n) { big=n; } } printf("%d\n",big); } 8128 以下程序求1000以内的所有的完全数的个数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 "完全数"是指:一个数如果刚好与它所有的真因子 (不包括该数本身)之和相等,如: 6=1+2+3,则6就是一个完全数。 程序:#include #include #include main() { int count,n,m,s,k; count=0; for (n=3;n<=10000;n++) { /*下行有错*/ s=1; k=n/2+1; for (m=1;m if (n%m==0) s+=m; if (s==n) { count+=1; } } printf("%d",count); } 4 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28 *2 ,下面程序求[1,500]间最大的多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include main() { int a,b,c,n,big,count=0; for (a=1; a<=500; a++) { b=0; for (c=1;c<=a;c++) if (a%c ==0) b=b+c; if (b%a==0) { /*下行有错*/ big=b; } } printf("%d\n ",big); } 496 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28 *2 ,下面程序求[10,600]间最大的多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include main() { int a,b,c,n,big,count=0; for (a=10; a<=600; a++) { b=0; for (c=1;c<=a;c++) if (a%c ==0) /*下行有错*/ b++; if (b%a==0) { big=a; } } printf("%d\n ",big); } 496 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28 *2 ,下面程序求[150,1000]间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #include main() { int a,b,c,n,count=0; for (a=150; a<=1000; a++) { /*下行有错*/ b=a; for (c=2;c<=a;c++) if (a%c ==0) b=b+c; if (b%a==0) { count=count+1; } } printf("%d",count); } 2 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28 *2 ,下面程序求[100,1000]间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #include #include main() { int a,b,c,n,count=0; for (a=100; a<=1000; a++) { b=0; /*下行有错*/ for (c=2;c<=a;c++) if (a%c ==0) b=b+c; if (b%a==0) { /*下行有错*/ count=count+a; } } printf("%d",count); } 3 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28 *2 ,下面程序求[10,800]间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #include main() { int a,b,c,n,count=0; for (a=10; a<=800; a++) { b=0; /*下行有错*/ for (c=2;c<=a;c++) if (a%c ==0) b=b+c; if (b%a==0) { /*下行有错*/ count=count+b; } } printf("%d",count); } 4 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28 *2 ,下面程序[1,700]间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include main() { int a,b,c,n,count=0; for (a=1; a<=700; a++) { b=0; for (c=1;c<=a;c++) if (a%c ==0) /*下行有错*/ b=b+1; if (b%a==0) { count++; } } printf("%d",count); } 6 已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 以下程序是求F (50),请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include main() { double f1,f2; int i; f1=1;f2=1; for (i=1;i<=24;i++) { f1=f1+f2; f2=f2+f1; } /*下行有错*/ printf("%12.0lf",f1); } 12586269025 已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 以下程序是求F (35),请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include main() { double f1,f2; int i; f1=1;f2=1; /*下行有错*/ for (i=1;i<=35;i++) { f1=f1+f2; f2=f2+f1; } printf("%12.0lf",f1); } 9227465 已知fibonacci数列:1,1,2,3,5,8,......,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 以下程序是求F (40),请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include main() { double f1,f2; int i; /*下行有错*/ f1=2;f2=3; for (i=1;i<=19;i++) { f1=f1+f2; f2=f2+f1; } printf("%12.0lf",f2); } 102334155 下面的程序是求下式的和: s=1+1/(1+2)+1/(1+2+ 3)+ ......+1/(1+2+3+... ...+n) 请改正程序中的错误,并运行修改后的程序, 当n=70时,给出程序运行结果(按四舍五入保留6位小数)。 程序:#include #include float fun(int n) { int i; float s=1.0, t=1.0; /*下行有错*/ for(i=2; i { t=t+i; s=s+1/t; } /*下行有错*/ return ; } main() { printf("\n %f", fun(70)); } 1.971832 下面的程序是求1000以内的最大的25个素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 程序: #include #include int fun(int high) { int sum=0, n=0, j, yes; /*下行有错*/ while((high>=2) ||(n<25)) {yes=1 ; for(j=2; j<=sqrt(high); j++) if(high%j==0) /*下行有错*/ yes=0; break; if(yes) {sum+=high;n++;} high--; } return sum; } main() { printf("%d \n",fun(1000)); } 22785 下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 程序:#include #include #include int prime(int n) { int yes, i; if(n<=1) {return 1;} yes=1; for(i=2; i<=sqrt(n); i++) if(n%i==0){ yes=0; break;} /*下行有错*/ return 1; } main() { int sum=0, i; for(i=2;i<=500; i++) if(prime(i)) sum+=i; printf("%d\n", sum); } 21536 下面的程序是求下式的和: s=1+1/(1+2)+1/(1+2+ 3)+ ......+1/(1+2+3+... ...+n) 请改正程序中的错误,并运行修改后的程序, 当n=80时,给出程序运行结果(按四舍五入保留6位小数)。 程序:#include float fun(int n) { int i; float s=1.0, t=1.0; /*下行有错*/ for(i=2; i<=n;i--) { t=t+i; /*下行有错*/ s+=s+1/t; } return s; } main() { printf("\n %f", fun(80)); } 1.975309 已知24有8个因子,而24正好被8整除。下面程序求[1,100]之间所有能被其因子的个数整除的整数中最大的数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include main() { int a,b,c,n,big; for (a=1; a<=100; a++) { b=0; /*下行有错*/ for (c=2;c<=a;c++) if (a%c ==0) b++; if (a%b==0) {/*下行有错*/ big=b; } } printf("%d\n ",big); } 96 下面的程序中,函数fun的功能是:根据形参m,计算下面公式的值。 T=1+1/(2*3)+1/(3*4) +......+1/(m*(m+1))请改正程序中的错误,并运行改正后的程序。当从键盘输入70时,给出程序运行的正确结果(按四舍五入保留6位小数)。程序:#include double fun(int m) { double t=1.0; int i=2; for(i=2; i<=m; i++) /*下行有错*/ t+=1.0/i*(i+1); /*下行有错*/ return ; } main() { int m; printf("\n 请输入一个整数: "); scanf("%d",&m); printf("%lf\n", fun(m)); } 1.485915 下面的程序中,函数fun的功能是:根据形参m,计算下面公式的值。 T=1+1/(1*2)+1/(2*3) +......+1/(m-1)*m 请改正程序中的错误,并运行改正后的程序。当从键盘输入70时,给出程序运行的正确结果(按四舍五入保留6位小数)。程序:#include #include double fun(int m) { double t=1.0; int i; /*下行有错*/ for(i=1;i<=m; i++) t+=1.0/(i*(i+1)); /*下行有错*/ return ; } main() { int m; printf("\n 输入整数: "); scanf("%d", &m); printf("%lf \n",fun(m)); } 1.985714 下列程序中,函数fun的功能是:计算并输出k以内的最大的10个能被13和17整除的自然数之和。请改正程序中的错误,并运行正确的程序。当从键盘输入2500时,给出程序运行的正确结果#include int fun(int k) { int m=0, mc=0, j; while((k>=2) && mc<10) /*下行有错*/ { if ((k%13==0) || (k%17==0)) { m=m+k; mc++; } k--; } /*下行有错*/ return ; } main() { int k; printf("\n 请输入整数:"); scanf("%d", &k); printf("%d\n",fun(k)); } 14365 下面的程序是求1000以内的最大的30个素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。 程序:#include #include #include int fun(int high) { int sum=0, n=0, j, yes; /*下行有错*/ while((high>=2) ||(n<10)) {yes=1 ; for(j=2; j<=sqrt(high); j++) if(high%j==0) /*下行有错*/ yes=0; break; if(yes) {sum+=high;n++;} high--; } return sum; } main() { printf("%d \n",fun(1000)); } 26846 下面程序是求[20,400]之间的能被9整除的数的平方和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include main() { long sum; int i; /*下行有错*/ sum=1; for (i=20;i<=400;i++) { if (fmod(i,9)==0) sum+=i*i; } printf("%ld\n",sum); } 2378565 下面的程序是求[100,999]之间所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include int prime(int n) { int yes, i; if(n<=1) {return 0;} yes=1; for(i=2; i<=sqrt(n); i++) /*下行有错*/ if(n%i!=0) { yes=0; break;} return yes; } main() { int count=0, i; for(i=100;i<999; i++) if(prime(i)) count+=1; printf("%d\n", count); } 143 下面的程序是求[20,700]之间所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include int prime(int n) { int yes, i; if(n<=1) {return 0;} /*下行有错*/ yes=0; for(i=2; i<=sqrt(n); i++) if(n%i==0){ yes=0; break;} return yes; } main() { int count=0, i; for(i=20;i<=700; i++) if(prime(i)) count+=1; printf("%d\n", count); } 117 下面的程序是求400以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结 果,并给出正确结果。 程序:#include #include #include int prime(int n) { int yes, i; if(n<=1) {return 0;} yes=1; for(i=2; i<=sqrt(n); i++) /*下行有错*/ if(n%i==0){ yes=1; break;} return yes; } main() { int sum=0, i; for(i=2;i<=400; i++) if(prime(i)) sum+=i; printf("%d\n", sum); } 13887 以下程序求[1,650]之间能被5或6整除的数的个数。请改正程序中的错误,并运行修改后的程序,给出正确程序运行结果,填入相应窗口。#include #include main() { int i; int count; count=1; for ( i=1;i<=650;i++) { /*下行有错*/ if (( fmod(i,5)==1)&&(fmod(i,6)==1)) /*下行有错*/ count=count+i; } printf("%d\n",count); } 217 下面的程序是求500以内的所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include int prime(int n) { int yes, i; if(n<=1) {return 1;} yes=1; for(i=2; i<=sqrt(n); i++) if(n%i==0){ yes=0; break;} return yes; } main() { int count=0, i; for(i=2;i<=500; i++) /*下行有错*/ if(prime(i)) count+=i; printf("%d\n", count); } 95 下面程序是求 [5,145]之间的所有奇数的平方和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include main() { long sum; int i; sum=0; /*下行有错*/ for (i=5;i<145;i++) { if (fmod(i,2)!=0) sum+=i*i; } printf("%ld\n",sum); } 518655 下面的程序是求表达式的值: s=1+1/3+(1*2)/(3*5) +(1*2*3)/(3*5*7)+.. ....+(1*2*3*....*n) /(3*5*7*.....(2*n+1 )) 请修改程序中的错误,并运行修改后的程序。当n=20时,程序的运行结果(按四舍五入保留10位小数)。程序:#include #include double fun(int n) { double s, t; int i; /*下行有错*/ s=0.0; t=1.0; for(i=1;i<=n; i--) { t=t*i/(2*i+1); s+=t; } return s; } main() { printf("\n %12.10lf", fun(20)); } 1.5707961494 下面的程序是求表达式的值: s=1+1/3+(1*2)/(3*5) +(1*2*3)/(3*5*7)+.. ....+(1*2*3*....*n) /(3*5*7*.....(2*n+1 )) 请修改程序中的错误,并运行修改后的程序。当n=30时,程序的运行结果(按四舍五入保留10位小数)。程序:#include #include #include double fun(int n) { double s, t; int i; s=1.0; t=1.0; for(i=1;i<=n; i++) { /*下行有错*/ t=t*n/(2*n+1); /*下行有错*/ s=t; } return s; } main() {printf("\n %12.10lf", fun(30)); } 1.5707963267 下面的程序是求[100,999]之间所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include int prime(int n) { int yes, i; if(n<=1) {return 0;} yes=1; for(i=2; i<=sqrt(n); i++) /*下行有错*/ if(n%i!=0){ yes=0; break;} return yes; } main() { int count=0, i; for(i=100;i<999; i++) if(prime(i)) count+=1; printf("%d\n", count); } 143 下面程序是求[50,300]之间的所有偶数的平方和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #include main() { long sum; int i; sum=0; for (i=50;i<=300;i++) {/*下行有错*/ if (fmod(i,2)!=0) sum+=i*i; } printf("%ld\n",sum); } 4525500 下面程序是求[1,550]之间同时满足除3余2和除5余3条件的数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include #include main() { int sum; int i; sum=0; for (i=1;i<=550;i++) { if (fmod(i,3)==2 && fmod(i,5)==3) /*下行有错*/ sum+=1; } printf("%d\n",sum); }10286 下面的程序是求如下表达式的值。 S=sqrt(ln(1)+ln(2)+ ln(3)+……+ln(n)) 请改正程序中的错误,并运行修改后的程序, 当n=40时,给出程序运行结果(按四舍五入保留6位小数)。 程序:#include #include #include double fun(int n) { /*下行有错*/ double s; int i; for(i=1;i s+=log(1.0*i); s=sqrt(s); return s; } main() { /*下行有错*/ printf("%d\n",fun(40)); } 10.326266 下面的程序是求640以内的所有的素数的个数。请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 程序:#include #include int prime(int n) { int yes, i; if(n<=1) { /*下行有错*/ return 1; } yes=1; for(i=2; i<=sqrt(n); i++) if(n%i==0) { yes=0; break; } return yes; } main() { int count=0, i; /*下行有错*/ for(i=2;i<=640; i--) { if(prime(i)==1) count+=1; } printf("%d\n",count); } 115