1、C语言国家计算机二级考试真题训练下面的程序是求如下表达式的值。 S=sqrt(ln(1)+ln(2)+ln(3)+.+ln(n)请改正程序中的错误,并运行修改后的程序, 当n=60时, 给出程序运行结果(按四舍五入保留6位小数)。程序:#include #include #include double fun(int n) double s=0.0; int i; /*下行有错*/ for(i=1;in;i+) s+=log(1.0*i); s=sqrt(s); return s;main() /*下行有错*/ printf(%ldn,fun(60); 以下程序求1000以内的所有的完全数之和
2、,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。完全数是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如: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;mk;m+) if (n%m=0) /*下行有错*/ s=s+1; if (s=n) sum+=s; printf(%d,sum);以下程序求10000以内的所有完全数的个数,请修改程序中的错误,
3、 使它能得出正确的结果,并给出正确结果,填入相应窗口。完全数是指: 一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如: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;mk;m+) if (n%m=0) /*下行有错*/ s+=1; if (s=n) count+=1; printf(%d,count); 以下程序求1000以内最大的完全数,请修改程序中的错误,使
4、它能得出正确的结果,并给出正确结果,填入相应窗口。完全数是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如: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;mk;m+) if (n%m=0) /*下行有错*/ s+=1; if (s=n) big=n; printf(%d,big); 以下程序求10000以内最大的完全数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填
5、入相应窗口。完全数是指:一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:6=1+2+3,则6就是一个完全数。程序:#include #include #include main() int n,m,s,k,big; for (n=3;n=10000;n+) /*下行有错*/ s=1; k=n/2+1; for (m=1;mk;m+) if (n%m=0) s+=m; if (s=n) big=n; printf(%dn,big); 以下程序求1000以内的所有的完全数的个数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。 完全数是指:一个数如果刚好与它所
6、有的真因子(不包括该数本身)之和相等,如: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;mk;m+) if (n%m=0) s+=m; if (s=n) count+=1; printf(%d,count); 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2 ,下面程序求1,500间最
7、大的多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #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(%dn ,big); 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2 ,下面程序求10,600间最大的多
8、因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#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(%dn ,big); 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2 ,下面程序求150,1000间有多少个多因子
9、完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #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); 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2 ,下面程序求100,1000间
10、有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#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); 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+14+28=56=28*2
11、 ,下面程序求10,800间有多少个多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #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); 若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。例如,28是多因子完备数。因为:1+2+4+7+1
12、4+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;c2 以下程序是求F(50),请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #include main() double f1,f2; int i; f1=1;f2=1; for (i=1;i2 以下程序是求F(35),请
13、修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。程序:#include #include main() double f1,f2; int i; f1=1;f2=1; /*下行有错*/ for (i=1;i2 以下程序是求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; clrscr(); printf(%12.0lf,f2);
14、 下面的程序是求下式的和: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; in;i+) t=t+i; s=s+1/t; /*下行有错*/ return ;main() printf(n %f, fun(70); 下面的程序是求1000以内的最大的25个素数之和。请修改程序中的错误,使它能得出正确的结果
15、,并给出正确结果。程序:#include #include #include int fun(int high) int sum=0, n=0, j, yes; /*下行有错*/ while(high=2) |(n25) 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); 下面的程序是求500以内的所有的素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确
16、结果。程序:#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(%dn, sum); 下面的程序是求下式的和:s=1+1/(1+2)+1/(1+2+3)+ .+1/(1+2+3+.+n)请改正程序中的错误,并运行修改后的程序
17、, 当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); 已知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(%dn ,big);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2