计算机二级考试程序设计题目精选.docx
- 文档编号:30226972
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:88
- 大小:38.11KB
计算机二级考试程序设计题目精选.docx
《计算机二级考试程序设计题目精选.docx》由会员分享,可在线阅读,更多相关《计算机二级考试程序设计题目精选.docx(88页珍藏版)》请在冰豆网上搜索。
计算机二级考试程序设计题目精选
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/(float)(i*i); y+=x; } printf(“y=%f”,y);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 考试 程序设计 题目 精选
![提示](https://static.bdocx.com/images/bang_tan.gif)