湖南省计算机二级C语言程序填空题精选
31、 以下程序求[10,1000]之间能被3或5或8整除的数之和。请将程序补充完整,把程序运行的正确结果填入相应窗口。 #include
__________ //int i; long sum; sum=0;
for ( i=10;i<=1000;i++)
{ if ( __________ ) //i%3==0||i%5==0||i%8==0 sum+=i; }
printf(\}
答案:267793
32、 下面程序是求[2,60]之间的所有偶数的立方和。请将程序补充完整,把程序运行的正确结果填入相应窗口。 #include
long sum;
________ //int i; sum=0;
for (i=2;i<=60;i++) {
if (fmod(i,2)==0)
___________ //sum+=i*i*i; }
printf(\}
答案:1729800
33、下面的程序是求表达式的值:
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=40时,将程序的运行结果填入相应窗口(按四舍五入保留10位小数)
#include
#include
for(i=1;i<=n; i++) { t=t*i/(2*i+1);
___________ // s+=t; }
return s; }
main()
{printf(\}
答案:1.5707963268
34、 已知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(21),请将程序补充完整,把程序运行的正确结果填入相应窗口。 #include
double f1,f2; int i;
_________ //f1=1; f2=1;
for (i=1;i<=10;i++) {
f1=f1+f2;
_______________ //f2=f1+f2; }
printf(\}
答案:10946
35、 下面的程序是求如下表达式的值。 S=sqrt(ln(1)+ln(2)+ln(3)+……+ln(n))
将程序补充完整, 当n=50时,把程序运行的正确结果填入相应窗口。(按四舍五入保留6位小数)。
#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(_____________); // printf(\ }
答案:12.185145 36、已知S1=1,S2=1+2,S3=1+2+3,S4=1+2+3+4;……;Sn=1+2+3+…+n,求S=S1+S2+S3+…S50。将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \main(){ int i;
long int s=0; int n;
for(n=1;n<=50;n++)
for(i=1;________;i++) //i<=n _______________; //s+=i; printf(\}
答案:22100
37、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。要求:按四舍五入的方式精确到小数点后第二位。将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include \main() {int n;
float a=2,b=1,t,s=0; for(n=1;n<=20;n++)
{_____________; //s+=a/b;
t=a; _____________; b=t; //a=a+b }
printf(\}
答案:32.66
38、求[1,100]中的非素数的个数,采用函数fun( int m, int xx[] )实现,函数fun的功能是:将[1,m]中的非素数存入xx数组中,返回非素数的个数。将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \
fun( int m, int xx[] ) {
int i,j,k=0; xx[k++]=1;
for( i=2; i<=m; i++) for( j=2; j
if( _____________) //i%j==0 {
xx[k++]=i; break; }
_____________; //return k; }
main() {
int zz[100];
printf(\}
答案:75
39、求1+2!+3!+…+10!。请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \main() {
float n,s=0,t=1; for(n=1;n<=10;n++) {
_____________; //t=t*n s+=t; }
_____________; //printf(\ }
答案:4037913
40、 设S=1+(1+3)+(1+3+5)+(1+3+5+7)+…,求S<=20000的最大值S。请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \main() {
int k,s=0,sum=0; for(k=1;;k++) {
_____________; //s+=k*2-1; sum=sum+s;
if(sum>20000) break; }
_____________; //sum-=s; printf(\}
答案:19019
41、设s=1*2+2*3+3*4+…+n*(n+1),求s<=100000时的最大n值。请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \main() {
int n;
long int sum=0; for(n=1;;n++) {
_____________; //sum+=n*(n+1); if(sum>100000) break; }
_____________; //n-- printf(\}
答案:65 42、已知:
x(1)=1,x(2)=1/(1+x(1)),x(3)=1/(1+x(2)), …,x(n)=1/(1+x(n-1)),求x(10)。按四舍五入的方式精确到小数点后三位。请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \main() {
int n; float x=1;
for(_____________) //n=2;n<=10;n++ _____________; //x=1/(1+x) printf(\}
答案:0.618
43、百钱百鸡问题。用100钱买100只鸡,公鸡一只四钱,母鸡一只三钱,雏鸡二只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。请将下列程序补充完整,把程序运行的正确结果填入相应窗口。 #include \void main() {
int money=100,n1,n2,n3,count=0; for( n1=1;n1 for(n2=1;n2<(money-n1*4)/3;n2++) { n3=_____________; //100-n1-n2