湖南省计算机二级考试程序设计题目精选.docx

上传人:b****5 文档编号:6340174 上传时间:2023-01-05 格式:DOCX 页数:74 大小:42.58KB
下载 相关 举报
湖南省计算机二级考试程序设计题目精选.docx_第1页
第1页 / 共74页
湖南省计算机二级考试程序设计题目精选.docx_第2页
第2页 / 共74页
湖南省计算机二级考试程序设计题目精选.docx_第3页
第3页 / 共74页
湖南省计算机二级考试程序设计题目精选.docx_第4页
第4页 / 共74页
湖南省计算机二级考试程序设计题目精选.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

湖南省计算机二级考试程序设计题目精选.docx

《湖南省计算机二级考试程序设计题目精选.docx》由会员分享,可在线阅读,更多相关《湖南省计算机二级考试程序设计题目精选.docx(74页珍藏版)》请在冰豆网上搜索。

湖南省计算机二级考试程序设计题目精选.docx

湖南省计算机二级考试程序设计题目精选

TubroCprogrammingforHNCRE2005

1题:

100个学生一起买小吃,共花钱100元,其中每个大学生花5元,每个中学生花3元,每3个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生为0的解)?

程序:

main()

{inta,b,c;

for(a=1;a<=20;a++)

for(b=1;b<=33;b++)

{c=100—a—b;

if((20*a+33*b+c/3)==100)

printf(“%d,%d,%d\n”,a,b,c);

}

getch();

}

答案:

6种:

3,20,77;

4,18,78;

8,11,81;

11,6,83;

12,4,84.

2题:

50个小学生按1至50序号顺时针围成一圈,做出局游戏,老师站在圈外逆时针从最后一个人数起,每数到5时,这人从圈里出来,继续数1,2,3,4,5,数到第5个学生时,他就出局,已出局的位置不再参加记数,直至所有的学生出局为止,问最后一个出局的学生序号是多少号?

程序:

main()

{

inti,k,sum,l,t=0;

inta[50];

clrscr();

for(i=1;i<=50;i++)

a[i]=1;

for(k=1,sum=0,l=0;k<=50;k++)

{

for(i=50;i>0;i--)

{

sum+=a[i];

if(sum==5){sum=0;l++;a[i]=0;}

if(l==49){t=1;break;}

}

if(t==1)break;

}

for(i=1;i<=50;i++){

if(a[i]==1)printf("%d",i);}

getch();

}

答案:

32号

3题:

50元兑换成5元,2元和1元的计算方法有多少种?

程序:

main()

{intx,f,t,n;

x=0;f=0;

while(f<=10)

{t=0;while(t<=25)

{n=50—f*5—T*2;

if(n>=o)x++;

t++:

}

f++;}

printf(“%d”,x);

}

答案:

146

4题:

A、B、C三个正整数,当满足1/A*A+1/B*B=1/C*C关系时,称为倒勾股数。

求职130〈A+B+C〈150的倒勾股数有多少组。

程序:

main()

{

inta,b,c,k;

intcount=0;

clrscr();

for(a=1;a<150;a++)

for(b=1;b<150;b++)

for(c=1;c<150;c++)

{

k=a+b+c;

if((float)1/(a*a)+(float)1/(b*b)==(float)1/(c*c))

if(k>130)

if(k<150)

count++;

}

printf("%d",count);

getch();

}

答案:

0

题目:

5题:

S1=1,S2=1+3,S3=1+3+5,S4=1+3+5+7,……,SN=1+3+5+7+……+(2N-1),N为正整数。

编程求S1+S2+S3+S4+……+SN的值〈20000时的N的最大值。

程序:

func(intn)

{

inti,sum;

sum=0;

for(i=1;i<=n;i++)

sum=sum+2*i-1;

return(sum);

}

main()

{

intsum,a,b,c,i;

i=1;

sum=0;

clrscr();

while(sum<20000)

{

sum=sum+func(i);

if(sum>20000)

break;

i++;

}

printf("%d",i-1);

getch();

}

答案:

38

题目:

6题:

自然数对是指两个自然数的和与差都是平方数,如果8和17的和8+17=25与其差17-8=9都是平方数,则称8和17是自然数对(8,17)。

假定(A,B)与(B,A)是同一个自然数对且假定A〉=B,求所有小于或等于100(即:

A〈=100,B〈=100〉的自然数对中B之和。

程序:

main()

{

inta,b,i,j;

intc=0;

clrscr();

for(a=1;a<=100;a++)

for(b=1;b<=100;b++)

{

if((i*i)==(a+b)&&(j*j)==(a-b)&&(a>=b))

c=c+b;

}

printf("%d",c);

getch();

}

答案:

1440

7题:

把18元钱分成1元、2元禾元的纸币且纸币数共为10张的分法有多少种(注:

在兑换中1元、2元、5元的纸币数可以为0)?

解:

main()

{inta,b,c,n;

n=0;

for(a=0;a<=18;a++)

for(b=0;b<=9;b++)

for(c=0;c<=3;c++)

if(a+b+c==10&&a+2*b+5*c==18)

n++;

printf(“%d”,n);

}

结果:

3

8题:

把一张1元钞票,换成1分、2分和5分硬币,每种至少11枚,问有多少种方法?

解:

main()

{intx,y,z,n;

n=0;

for(x=11;x<=33;x++)

for(y=11;y<=22;y++)

for(z=11;z<=15;z++)

if(x+2*y+5*z==100)

n++;

printf(“%d”,n);

}

结果:

13

9题:

找满足以下条件:

X^2+Y^2+Z^2=25^2且X+Y+Z之值最大的三个正整数X,Y,Z,求X+Y+Z之值。

程序:

#include

main()

{intx,y,z,ssum,max=0;

for(x=1;x<=24;x++)

for(y=1;y<=24;y++)

for(z=1;z<=24;z++)

if(x*x+y*y+z*z==25*25)

{sum=x+y+z;

if(max

printf(“max=%d\n”,max);

}

答案:

43

10题:

编程求区间[500,2500]中按递增顺序第25个素数。

程序:

main()

{

intx,y,t,n;

n=0;

for(x=500;x<=2500;x++)

{

t=0;

for(y=2;y<=x/2;y++)

if(x%y==0)t=1;

if(t==0)n++

}

if(n>=25)

break;

printf(“x=%d”,x);

getch;

}

Key:

659

11题:

编程求取:

[121,140]之间的弦数的个数(若某正数的平方等于另两个正整数平方之各,则称该数为弦数。

例如:

3^2+4^2=5^2,因此5是弦数)。

程序:

main()

{

intx,y,z,n;

n=0;

for(x=121;x<=140;x++)

for(y=121;y<=140;y++)

for(z=121;z<=140;z++)

{

if(x*x==y*y+z*z)

n++;

}

printf(“n=%d”,n);

getch();

}

Key:

n=0

12题:

编程求取:

S=1/2+2/3+3/5+5/8+……的前30项的和(注:

该级数从第二项开始,其分子是前一项的分母,其分母是前一项的分子与分母的和)。

要求:

按四舍五入的方式精确到小数点后第二位。

程序:

main()

{

inta,b,c,n,s;

for(n=1;n<=30;n++)

{

s=s+a/b;

c=a;b=b+a;b=c;

}

printf(“s=%f”,s);

getch();

}

Key:

18.46;

13题:

编程求取:

从6开始的前6个同构数的各(若某数与本身平方数的低位部分分别相等,则称之为同构数,如6,其平方数为36,则6为一个同构数)。

程序:

main()

{

longn,m,k,s,sum;

sum=0;

m=0;

for(n=6;;n++)

{

if(n<10)k=10;

elseif(n<100)k=100;

elseif(n<1000)k=1000;

elsek=10000;

s=n*n;

s=s–n;

if(s%k==0)

{

sum+=n;

m++;

}

if(m<5)break;

}

printf(“%ld”,sum);

getch();

}

答案:

10484。

14题:

编程序求1~108所有整数的平方和并输出结果。

程序:

main()

{

longn,sum;

sum=0;

for(n=1;n<=108;n++)

sum+=n*n;

printf(“1^2+2^2+3^2+…+108^2=%ld”,sum);

getch();

}

答案:

435754。

15题:

编程序求1~115的平方根的和并输出结果(保留小数点两位)。

程序:

#include“math.h”

main()

{

intn;

doublesum;

sum=0.0;

for(n=1;n<=115;n++)

sum+=sqrt(n);

printf(“Thissumis:

%.2f”,sum);

getch();

}

答案:

827.32

16.题:

编程序求1~600能被11整除的个数。

程序:

main()

{

inta,n;

n=0;

for(a=1;a<=600;a++)

if(a%11==0)n++;

printf(“n=%d\n”,n);

getch();

}

答案:

n=54

17题:

编程序求1+3+5+7+9+…这样的数的和。

如果累加数大于1000是,则程序终止并输出结果。

程序:

main()

{

inti=1,sum=0;

while(sum<=1000)

{

sum=sum+(2*i-1);

i++;

}

printf(“sum=%d\n”,sum);

getch();

}

答案:

sum=1024

18题:

编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数。

程序:

main()

{

inta,n;

n=0;

for(a=100;a<=200;a++)

if(a%3==2&&a%5==3)n++;

printf(“n=%d\n”,n);

getch();

}

答案:

n=6

19题:

编程求出1~100以内能被3整除的数的平方和。

程序:

main()

{

intn,m;

longs=0;

for(n=1;n<=100;n++)

{

if(n%3==0)

m=n*n;

elsem=0;

s=s+m;

}

printf(“s=%d”,s);

getch();

}

答案:

112761

20题:

编程求出1~6000以内能被3或被5整除数的个数。

程序:

main()

{

intx;

inta=0,b=0,c=0,d;

for(x=1;x<=6000;x++)

{

if(x%3==0)

a++;

if(x%5==0)

b++;

if(x%3==0&&x%5==0)

c++;

{

d=a+b-c;

}

}

printf(“d=%d”,d);

getch();

}

答案:

2800

21题:

编程求出1~300之间同时满足除3余2和除5余3条件的个数。

程序:

main()

{

intx;

inta=0;

for(x=1;x<=300;x++)

{

if(x%3==2&&x%5==3)

a++;

}

printf(“a=%d”,a);

getch();;

}

答案:

20

22题:

编程序求出S=1~130所有整数的立方和并输出结果。

程序:

main()

{

unsignedlonginta,j,sum=0;

for(a=1;a<=130;a++)

{

j=a*a*a;

sum=sum+j;

}

printf(“%lu\n”,sum);

getch();

}

输出结果:

77505255

23题:

编程序求在3000以内被17或者23整除的正整数数的个数。

程序:

main()

{

inta,sum=0;

for(a=1;a<=3000;a++)

{

if(a%17==0||a%23==0)

sum++;

}

printf(“%d\n”,sum);

getch();

}

输出结果:

299

24题:

编写程序,计算1000以内有多少个这样的数,该数既能被6整除又能被8整除。

程序:

main()

{

inta,sum=0;

for(a=1;a<=1000;a++)

{

if(a%6==0&&a%8==0)

sum++;

}

printf(“%d\n”,sum);

getch();

}

输出结果:

41

25题:

编写程序,计算1000以内有多少个这样的数,其十位是6且能被8整除。

程序:

main()

{

inta,b,k,n;

n=0;

for(k=0;k<=1000;k++)

{a=k/100;

if((k-a*100)/10==6&&k%8==0)

n=n+1;}

printf("n=%d",n);

}

答案:

15

26题:

编写程序,计算在0至50的范围内有多少个娄和,其每位数的乘积大于每位的和。

程序:

main()

{

inta,b,k,n;

n=0;

for(k=0;k<=1000;k++)

{a=k/100;

if((k-a*100)/10==6&&k%8==0)

n=n+1;}

printf("n=%d",n);

}

答案:

23

27题:

编写程序,求共有几组i,j,k符合算式ijk+kji=1534,其中i,j,k是[0,9]之间的一个整数。

#include

main()

{

inti,j,k,n=0;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=1;k<=9;k++)

if(101*i+20*j+101*k==1534)n++;

printf(“n=%d”,n);

}

答案:

n=5

28题:

编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是11的倍数,且A=B+C,即第二位数加上第三位数等于第一位数。

#include

main()

{

inti,j,k,l,n=0;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

for(l=0;l<=9;l++)

if((1000*i+100*j+10*k+l)%11==0&&j+k==i)n++;

printf(“n=%d”,n);

}

答案:

n=49

29题:

编写程序,求四位数的奇数中,每位数字之和是15的倍数的数的和。

程序:

main()

{inta,b,c,d,e,f,m;

longsum=0;

for(m=1000;m<10000;m=m+2)

{d=m%10;

e=(m-d)/10;

c=e%10;

f=(e-c)/10;

b=f%10;

a=((f-b)/10)%10;

if((a+b+c+d)%15==0)

sum=sum+m;

}

printf(“sum=%d”,sum);

getch();

}

答案:

1533459

30题:

编写程序,求四位数的奇数中,所有各位数字之积(且不为0)是125的倍数的数的和。

程序:

main()

{inta,b,c,d,e,f,m;

longsum=0;

for(m=1000;m<10000;m=m+2)

{d=m%10;

e=(m-d)/10;

c=e%10;

f=(e-c)/10;

b=f%10;

a=((f-b)/10)%10;

if(a*b*c*d!

=0&&(a*b*c*d)%125==0)

sum=sum+m;

}

printf(“sum=%d”,sum);

getch();

}

答案:

161095

31题:

编写程序,求所有符合算式ij*ji=1300d最大数ij(既i*10+j)。

其中i,j是1~9之间的一位整数。

程序main()

{intI=1,j=1;

for(I=1;I<=9;I++)

for(j=1;j<=9;j++)

{if((I*10+j)*(j*10+i)==1300&&I>j)

printf(“%d\n”,(I*10+j));

}

getch();

}

答案(52)

32题:

编写程序,求一正整数等差数列的前6项的和,该数列前4项之和是26,4项之积是880。

程序main()

{intx=1,y=-4;

for(x=1;x<10;x++)

for(y=-4;y<4;y++)

{if((x*4+6*y)==24&&x*(x+y)*(x+2*y)*(x+3*y)==880)

printf(“%d\n”,(x*6+15*y));

}getch();

}

答案(57)

33题:

编写程序,求一正整数等差数列的前3项的平方和,该数列的前4项之和是26,4项之积是880。

程序main()

{intx=1,y=-4;

for(x=1;x<10;x++)

for(y=-4;y<4;y++)

{if(x*4+6*y==24&&x*(x*+y)*(x+2*y)*(x+3*y)==880)

printf(“%d\n”,(x*x+(x+2*y)*(2*y+x)*(y+x)*(y+x)));

}getch();

}

答案(93)

34题:

编写程序,求在100~1000之间所有能被4除余2,被7除余3,被9除余5的数之和。

main()

{

inta,i,sum=0;

for(a=10;a<=1000;a++)

if(a%4==2&&a%7==3&&a%9==5)

sum=sum+a;

printf("sum=%d\n",sum);

}

答案:

sum=2000

35题:

编写程序,求在四位数的偶数中,所有各位数字之和是30倍数的数的和。

程序:

main()

{

inti,j,k,l,m,s;

s=0;

for(m=1000;m<10000;m++)

{i=m/1000;j=(m%1000)/100;k=(m%100)/10;l=m%10;

if(m%2==0&&(i*j*k*l)%18==0)

s=s+m;

}

printf("%d\n",s);

}

答案:

26696

36题:

编写程序,求在四位数的的偶数中,所有各位数字之积(且不为0)是18的倍数的数的和。

程序:

main()

{

inti,j,k,l,m,s;

s=0;

for(m=1000;m<10000;m++)

{i=m/1000;j=(m%1000)/100;k=(m%100)/10;l=m%10;

if(m%2==0&&(i*j*k*l)%18==0)

s=s+m;

}

printf("%d\n",s);

}

答案:

15284

37题:

求四位的奇数中,所有各位数之和是25倍数的数的和;

main()

{inta;

longb=0;

for(a=1001;a<=9999;a+=2)

if(a/1000%10+a/100%10+a/10%10+a%10==25)

b=b+a;

printf("b=%ld\n",b);

}

答案是1298515

38题:

统计1000到9999之间的所有足以下条件的四为数的个数。

该数是一完全平方数,第1,第2位数之和是10,第3,第4位数之积为18。

Main()

{inta,b,c=0;

for(a=1000;a<=9999;a++)

for(b=33;b<=100;b++)

if(a%10+a/10%10==10&&a/100%10*a/1000%10==18&&b*b==a)

c=c+1;

printf(“c=%d|n”,c);

}

答案是:

0

39题:

篇写程序,统计200~400之间的所有满足三个数字之积42,三个数字之和为12的数的个数。

程序:

main()

{intI,j,k,m,n;

m=0;

for(n=200;n<=400;n++)

{I=n/100;j=(n/10)%10;k=n%10;

if(I+j+k==12&&I*j*k==42)m++;

}

pintf(“%d”,m);

}

结果:

4

40题:

程序,统计1000~9999之间的所有满足以下条件的四位数个数。

该四位数是一个完全平方数,其第1,第3位数字之和为6,第2第4位数之积为24。

程序:

main{}

{intI,j,k,L;

longm,n,p;

m=0;

for(n=1000;n<10000;n++)

for(p=33;p<100;p++)

{I=n/1000;j=(n/100)%10;k=(n/10)%10;L=n%10;

if(I+k==6&&j*L==24&&p*p==m)m++;

}

printf(“%d\n”,m);

}

结果:

1

41题:

当k值为20时,求s的值.

(1^2/(1*3))*(4^2/(3*5))*(6^2/(5*7))…*(2k)^2/((2k-1)(2k+1))(按四舍五入的方式精确到小数点后面第四位)。

程序如下:

main()

{floats;

intm;

s=1.0/(1.0*3);

for(m=2;m<=20;m++)

s=s*4*m*m/((2*m-1)*(2*m+1))

printf(“s=%8.3f”,s);

}

运行结果:

1.388

42题:

当m的值为50时,计算下列公式之值:

1-1/2-1/3-1/4-┄-1/m(求按四舍五入的方式精确到小数点后面第四位)。

程序如下:

makn()

{floatt;

intK;

t=1.0;

for(K=2;K<=50;K++)

t=t–1.0/K;

prkntf(“%8.4f”,t);

}

运行结果:

–2.4992

43题:

求m的值为50时,计算下列公式之值:

t=1+1/(2^2)+1/(3^2)+……+1/(m^2).(按四舍五入的方式精确到小数点后面第四位)

程序:

main()

{

inti;

floatx,y;

for(i=1;i<=50;i++)

{

x=1/(fl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1