省二的C语言程序填空题.docx
《省二的C语言程序填空题.docx》由会员分享,可在线阅读,更多相关《省二的C语言程序填空题.docx(21页珍藏版)》请在冰豆网上搜索。
省二的C语言程序填空题
湖南省计算机二级C语言程序填空题精选
31、以下程序求[10,1000]之间能被3或5或8整除的数之和。
请将程序补充完整,把程序运行的正确结果填入相应窗口。
#include
#include
#include
main()
{
__________//inti;
longsum;
sum=0;
for(i=10;i<=1000;i++)
{if(__________)//i%3==0||i%5==0||i%8==0
sum+=i;
}
printf("%ld",sum);
}
答案:
267793
32、下面程序是求[2,60]之间的所有偶数的立方和。
请将程序补充完整,把程序运行的正确结果填入相应窗口。
#include
#include
#include
main()
{
longsum;
________//inti;
sum=0;
for(i=2;i<=60;i++)
{
if(fmod(i,2)==0)
___________//sum+=i*i*i;
}
printf("%ld\n",sum);
}
答案:
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
#include
doublefun(intn)
{doubles,t;inti;
________//s=1.0;
t=1.0;
for(i=1;i<=n;i++)
{t=t*i/(2*i+1);
___________//s+=t;
}
returns;
}
main()
{printf("%12.10lf",fun(40));
}
答案:
34、已知fibonacci数列:
1,1,2,3,5,8,......,它可由下面公式表述:
F
(1)=1ifn=1
F
(2)=1ifn=2
F(n)=F(n-1)+F(n-2)ifn>2
以下程序是求F(21),请将程序补充完整,把程序运行的正确结果填入相应窗口。
#include
#include
#include
main()
{
doublef1,f2;
inti;
_________//f1=1;
f2=1;
for(i=1;i<=10;i++)
{
f1=f1+f2;
_______________//f2=f1+f2;
}
printf("%12.0lf",f1);
}
答案:
10946
35、下面的程序是求如下表达式的值。
S=sqrt(ln
(1)+ln
(2)+ln(3)+……+ln(n))
将程序补充完整,当n=50时,把程序运行的正确结果填入相应窗口。
(按四舍五入保留6位小数)。
#include
#include
#include
doublefun(intn)
{doubles=0.0;
___________//inti;
for(i=1;i<=n;i++)
s+=log(1.0*i);
s=sqrt(s);
returns;
}
main()
{
printf(_____________);//printf("%.6lf\n",fun(50));
}
答案:
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"stdio.h"
main(){
inti;
longints=0;
intn;
for(n=1;n<=50;n++)
for(i=1;________;i++)//i<=n
_______________;//s+=i;
printf("%ld\n",s);
}
答案:
22100
37、有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
要求:
按四舍五入的方式精确到小数点后第二位。
将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{intn;
floata=2,b=1,t,s=0;
for(n=1;n<=20;n++)
{_____________;//s+=a/b;
t=a;_____________;b=t;//a=a+b
}
printf("%.2f\n",s);
}
答案:
32.66
38、求[1,100]中的非素数的个数,采用函数fun(intm,intxx[])实现,函数fun的功能是:
将[1,m]中的非素数存入xx数组中,返回非素数的个数。
将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#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));
}
答案:
75
39、求1+2!
+3!
+…+10!
。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{
floatn,s=0,t=1;
for(n=1;n<=10;n++)
{
_____________;//t=t*n
s+=t;
}
_____________;//printf("%f\n",s);
}
答案:
4037913
40、设S=1+(1+3)+(1+3+5)+(1+3+5+7)+…,求S<=20000的最大值S。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{
intk,s=0,sum=0;
for(k=1;;k++)
{
_____________;//s+=k*2-1;
sum=sum+s;
if(sum>20000)break;
}
_____________;//sum-=s;
printf("%d\n",sum);
}
答案:
19019
41、设s=1*2+2*3+3*4+…+n*(n+1),求s<=100000时的最大n值。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{
intn;
longintsum=0;
for(n=1;;n++)
{
_____________;//sum+=n*(n+1);
if(sum>100000)break;
}
_____________;//n--
printf("%d\n",n);
}
答案:
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"stdio.h"
main()
{
intn;
floatx=1;
for(_____________)//n=2;n<=10;n++
_____________;//x=1/(1+x)
printf("%.3f\n",x);
}
答案:
0.618
43、百钱百鸡问题。
用100钱买100只鸡,公鸡一只四钱,母鸡一只三钱,雏鸡二只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
voidmain()
{
intmoney=100,n1,n2,n3,count=0;
for(n1=1;n1for(n2=1;n2<(money-n1*4)/3;n2++)
{
n3=_____________;//100-n1-n2
if(_____________)//n1*4+n2*3+n3/2.0==100
count++;
}
printf("%d\n",count);
}
答案:
2
44、求所有的千位数字与十位数字之和等于百位数字与个位数字之积的四位正整数的个数,例如,3136,3+3=1*6故3136是所求的四位数。
将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main(){
inta,b,c,d,n;
inti=0;
for(_______________){//n=1000;n<=9999;n++
a=n/1000;
b=(n-a*1000)/100;
c=(n-a*1000-b*100)/10;
d=n%10;
if(_______________)//a+c==b*d
i++;
}
printf("%d\n",i);
}
答案:
207
45、设某四位正整数的各位数字的平方和为100。
求满足条件的四位正整数的和。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{intn,a,b,c,d;
longints=0;
for(n=1000;n<=9999;n++)
{a=n/1000;
b=(n-a*1000)/100;
c=(n-a*1000-b*100)/10;
_____________;//d=n%10
if(_____________)//a*a+b*b+c*c+d*d==100
s=s+n;
}
printf("%ld\n",s);
}
答案:
249089
46、当m=20时计算下列公式之值:
t=1-1/(2*2)-1/(3*3)-…-1/(m*m)。
要求:
按四舍五入的方式精确到小数点后面两位。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include
main()
{
floatm,t,s=1;
for(m=2;m<=20;m++)
_____________;//s=s-1/(m*m);
printf(_____________);//printf("%.2f\n",s);
}
答案:
0.40
47、已知:
x
(1)=1,x
(2)=1/(1+x
(1)),x(3)=1/(1+x
(2)),…,x(n)=1/(1+x(n-1)),求x
(1)+x
(2)+x(3)+…+x(8)。
按四舍五入的方式精确到小数点后四位。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{
intn;
floatx=1,s=1;
for(n=2;n<=8;n++)
{_____________;//x=1/(x+1)
s=s+x;
}
_____________;//printf("%.4f",s);
}
答案:
5.2437
48、求在正整数[1,500]中,能满足用3除余2或用5除余3或用7除余2的正整数的个数。
将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{inti,n=0;
for(i=1;i<=500;i++)
if(_____________)//i%3==2||i%5==3||i%7==2
_____________;//n++;
printf("%d\n",n);
}
答案:
273
49、设某四位正整数的各位数字的平方和为50。
求满足条件的四位正整数的和。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
main()
{intn,a,b,c,d;
longints=0;
for(n=1000;n<=9999;n++)
{_____________;//a=n/1000;
b=(n-a*1000)/100;
c=(n-a*1000-b*100)/10;
d=n%10;
if(_____________)//a*a+b*b+c*c+d*d==50
s=s+n;
}
printf("%ld\n",s);
}
答案:
221094
50、所谓回文数是从左至右与从右至左读起来都是一样的数字,如:
121。
编一个程序,计算在100—200的范围内回文数的累加和。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include"stdio.h"
intfun(inta,intb)
{
inti,count=0,low,high;
for(i=a;i<=b;i++)
{
low=i%10;
high=i/100;
if(low==high)
_____________;//count+=i;
}
returncount;
}
main()
{
printf("%d\n",___________);//%d\n",fun(100,200)
}
答案:
1460
51、求符合下列条件的四位数,它的千位数字与十位数字之和等于百位数字与个位数字之积,例如,3136,3+3=1*6故3136是所求的四位数.求其中最大的一个数。
请将下列程序补充完整,把程序运行的正确结果填入相应窗口。
#include
main()
{
inti,a,b,c,d,n;
for(i=9999;i>=1000;i--)
{
a=i/1000;
b=(i-a*1000)/100;
c=(i-a*1000-b*100)/10;
d=i%10;
if_______________//(a+c==b*d)
{printf("%d",i);
_________________//break;
}
}
}
答案:
9992
52、函数fun的功能是:
根据形参m,计算如下公式的值。
T=1+1/(2^0.5)+1/(3^0.5)+…+1/(m^0.5),k^n表示k的n次方。
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
#include
doublefun(intm)
{
double__________,x;//doublet=1
inti;
for(i=2;i<=m;i++)
{
x=sqrt(i);
t+=__________;//t+=1/x
}
returnt;
}
main()
{
intm=10;
printf("%lf\n",fun(m));
}
答案:
5.020998
53、输出100以内的个位数为6、且能被3整除的数的个数。
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
main()
{
inti,j,count=0;
for(i=0;i<=9;i++)
{
__________
if(__________)
count++;
}
printf("%d\n",count);
}
答案:
4
54、函数fun的功能是:
用递归算法计算斐波那契数列中第n项的值。
从第1项起,斐波那契数列为:
1、1、2、3、5、8、13、21、……请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
longfun(intg)
{
switch(g)
{
case0:
return0;
case1:
return1;
case2:
return1;
}
return(__________);//fun(g-1)+fun(g-2)
}
main()
{
longfib;
intn=25;
fib=__________;//fun(n)
printf("%ld\n",fib);
}
答案:
75025
55、下面程序的功能是:
求出300以内能被7或17整除的偶数的和。
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
main()
{
inti,sum;
sum=0;
for(i=1;i<=300;i++)
if(__________)//i%7==0||i%17==0
if(i%2==0)
__________//sum+=i;
printf("%d\n",sum);
}
答案:
3234//答案应该是4220.
56、函数fun的功能时:
计算并输出下列多项式的值:
sn=1-1/1!
-1/2!
-1/3!
-1/4!
-…-1/n!
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
doublefun(intn)
{
doublet,sn=1.0;
inti,j;
for(i=1;i{
__________//t=1.0;
for(j=1;j<=i;j++)
t*=j;
sn-=__________;//sn-=1/t;
}
returnsn;
}
main()
{
printf("%f\n",fun(5));
}
答案:
-0.708333
57、函数fun的功能是:
计算并输出3到n之间所有素数之和。
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
#include
intfun(intn)
{
intm,k,i;
ints=0;
for(m=3;m<=n;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)__________//break;
if(i>=k+1)
s+=m;
}
__________//returns;
}
main()
{
printf("%d\n",fun(100));
}
答案:
1058
58、求S=a+aa+aaa+...+aa...a(共n个a)的值,其中a是一个数字。
例如:
a=1时,S=1+11+111+1111(此时n=4),a和n由键盘输入。
请将程序补充完整,并运行程序,当输入a=3,n=5时,把正确结果填入相应窗口。
#include
main()
{
inta,n,i=1;
longsn=0,tn=0;
printf("a,n=:
");
scanf("%d,%d",&a,&n);
while(i<=n)
{
__________//tn=tn*10+a;
sn=sn+tn;
++i;
}
printf("%ld\n",__________);//sn
}
答案:
37035
59、3025这个数具有一种独特的性质:
将它平分为两段,即30和25,使之相加后求平方,即(30+25)*(30+25),恰好等于3025本身。
求出具有这种性质,即abcd=(ab+cd)*(ab+cd)的全部四位数之和的平方根。
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
#include
main()
{
intn,a,b;
doublesum=0;
for(n=1000;n<10000;n++)
{
a=n/100;
b=__________;//n%100
if(__________)//(a+b)*(a+b)==n
sum=sum+n;
}
sum=sqrt(sum);
printf("%.4f\n",sum);
}
答案:
121.8647
60、下面程序的功能是:
求S=1+2^0.5+...+30^0.5,其中k^n表示k的n次方。
请将程序补充完整,并运行程序,把正确结果填入相应窗口。
#include
#include
main()
{
intk,n;
double__________;//doubles=0;
n=30;
for(k=1;k<=n;__________)//k++
s=s+sqrt(k);
printf("%.4f\n",s);
}
答案:
112.0828