省二计算机部分试题答案.docx

上传人:b****5 文档编号:11674954 上传时间:2023-03-30 格式:DOCX 页数:31 大小:21.74KB
下载 相关 举报
省二计算机部分试题答案.docx_第1页
第1页 / 共31页
省二计算机部分试题答案.docx_第2页
第2页 / 共31页
省二计算机部分试题答案.docx_第3页
第3页 / 共31页
省二计算机部分试题答案.docx_第4页
第4页 / 共31页
省二计算机部分试题答案.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

省二计算机部分试题答案.docx

《省二计算机部分试题答案.docx》由会员分享,可在线阅读,更多相关《省二计算机部分试题答案.docx(31页珍藏版)》请在冰豆网上搜索。

省二计算机部分试题答案.docx

省二计算机部分试题答案

<一>链表

【1】在链表的中间第k个位置插入节点,k从键盘输

#include

usingnamespacestd;

structstudent

{

intnum;

student*next;

};

intmain()

{

intk,n=0;

cin>>k;

studenta,b,c,*p,*head;

a.num=12;

b.num=13;

c.num=14;

head=&a;

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;

while(p!

=NULL)

{

cout<num<

p=p->next;

n++;

if(n==k)

{

studentm;

m.num=15;

m.next=p;

p=&m;

}

}

return0;

}

【2】链表的生成,求取链表的长度,打印每个节点的内容

#include

usingnamespacestd;

structstudent

{

intnum;

student*next;

};

intmain()

{

intn=0;

studenta,b,c,d,*p,*head;

a.num=11;

b.num=12;

c.num=13;

d.num=14;

head=&a;

a.next=&b;

b.next=&c;

c.next=&d;

d.next=NULL;

p=head;

while(p!

=NULL)

{

cout<num<

p=p->next;

n++;

}

cout<

return0;

}

【3】在中间第k个位置删除节点,k从键盘输入

#include

usingnamespacestd;

structstudent

{

intnum;

student*next;

};

intmain()

{

intk,n=0;

cin>>k;

studenta,b,c,d,*p,*head;

a.num=11;

b.num=12;

c.num=13;

d.num=14;

head=&a;

a.next=&b;

b.next=&c;

c.next=&d;

d.next=NULL;

p=head;

while(p!

=NULL)

{

if(k==n)

{

p=p->next;

}

cout<num<

p=p->next;

n++;

}

return0;

}

<二>计算机二级考试试题

1.编程序求出1-200以内的能被7整除的数的平方和。

377986

#include

usingnamespacestd;

intmain()

{

intn,s=0;

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

{

if(n%7==0)

{

s=s+n*n;

}

}

cout<

return0;

}

2.编写程序,求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是0~9之间的一位整数.6

#include

usingnamespacestd;

intmain()

{

inti,j,k,n=0;

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

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

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

if((i*100+j*10+k)+(k*100+j*10+i)==1333)

{

n++;

}

cout<

return0;

}

3.编程序求1~99的平方根的和并输出结果。

(保留小数点两位)661.46

#include

#include

#include

usingnamespacestd;

intmain()

{

floatn,i,s=0;

for(n=1.0;n<=99.0;n++)

{

i=sqrt(n);

s=s+i;

}

cout<

:

fixed)<

(2)<

return0;

}

4.编写程序,求所有符合算式ij*ji=1300的最小数ij(即i*10+j)。

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

25

#include

usingnamespacestd;

intmain()

{

inti,j,min=99;

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

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

if((i*10+j)*(j*10+i)==1300)

if((i*10+j)

{

min=i*10+j;

}

cout<

return0;

}

5.一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:

6=1+2+3,则6就是一个完数。

求出200到500之间所有的完数之和。

496

#include

usingnamespacestd;

intmain()

{

intn,i,sum=0;

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

{

ints=0;

for(i=1;i

{

if(n%i==0)

{

s=s+i;

}

}

if(s==n)

{

sum=sum+s;

}

}

cout<

return0;

}

6.已知a>b>c,且a+b+c<100,求满足条件1/(a^2)+1/(b^2)=1/(c^2)的共有多少组。

2

#include

usingnamespacestd;

intmain()

{

inta,b,c,n=0;

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

for(b=1;b

for(c=1;c

if(a+b+c<100&&(b*b)*(c*c)+(a*a)*(c*c)==(a*a)*(b*b))

n++;

cout<

return0;

}

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

338350

#include

usingnamespacestd;

intmain()

{

inti,n=0;

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

{

n=n+i*i;

}

cout<

return0;

}

8.编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。

1298515

#include

usingnamespacestd;

intmain()

{

intn,i,a,b,c,d,s=0;

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

if(n%2!

=0)

{

a=n/1000;

b=n/100%10;

c=n/10%10;

d=n%10;

i=a+b+c+d;

if(i%25==0)

s=s+n;

}

cout<

return0;

}

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

299

#include

usingnamespacestd;

intmain()

{

intn=0,i;

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

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

n++;

cout<

return0;

}

10.一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:

6=1+2+3,则6就是一个完数。

求出1000以内的完数的个数。

3

#include

usingnamespacestd;

intmain()

{

intn,i,sum=0;

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

{

ints=0;

for(i=1;i

{

if(n%i==0)

{

s=s+i;

}

}

if(s==n)

{

sum++;

}

}

cout<

return0;

}

11.已知一个数列的前3个数为0,0,1,以后每个数为前3个数的和,编程序求此数列的第36个数。

334745777

#include

usingnamespacestd;

intmain()

{

intn,f1=0,f2=0,f3=1,f4;

for(n=4;n<=36;n++)

{

f4=f1+f2+f3;

f1=f2;

f2=f3;

f3=f4;

}

cout<

return0;

}

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

23

#include

usingnamespacestd;

intmain()

{

intn,i,j,s=0;

for(n=0;n<=50;n++)

{

i=n/10;

j=n%10;

if(i*j>i+j)

s++;

}

cout<

return0;

}

13.用一元纸币兑换一分、两分和五分的硬币,要求兑换硬币的总数为50枚,问共有多少种换法?

(注:

在兑换中一分、两分或五分的硬币数可以为0枚)13

#include

usingnamespacestd;

intmain()

{

intx,y,z,s=0;

for(x=0;x<=50;x++)

for(y=0;y<=50;y++)

for(z=0;z<=50;z++)

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

s++;

cout<

return0;

}

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

3456254

#include

usingnamespacestd;

intmain()

{

intn,i,a,b,c,d,s=0;

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

if(n%2!

=0)

{

a=n/1000;

b=n/100%10;

c=n/10%10;

d=n%10;

i=a*b*c*d;

if(i%60==0&&i!

=0)

s=s+n;

}

cout<

return0;

}

15.所谓回文数是从左至右与从右至左读起来都是一样的数字,如:

121是一个回文数。

编写程序,求出100—900之间的所有回文数的个数。

80

#include

usingnamespacestd;

intmain()

{

intn=0,i,a,b;

for(i=100;i<=900;i++)

{

a=i/100;

b=i%10;

if(a==b)

n++;

}

cout<

return0;

}

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

6

#include

usingnamespacestd;

intmain()

{

intn=0,i;

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

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

n++;

cout<

return0;

}

17.百钱百鸡问题。

用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。

3

#include

usingnamespacestd;

intmain()

{

intn=0,m,x,y,z;

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

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

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

if(z%3==0)

{

m=z/3;

if(x+y+z==100&&5*x+3*y+m==100)

{

n++;

}

}

cout<

return0;

}

18.若有三个正整数a、b、c满足a^2+b^2=c^2,则a,b,c称为勾股数组,编一程序,问有多少个三个数均小于100的勾股数组(注意:

a,b,c不能为0)。

100

#include

usingnamespacestd;

intmain()

{

intn=0,a,b,c;

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

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

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

if(a*a+b*b==c*c)

{

n++;

}

cout<

return0;

}

19.今有5羊4犬3鸡2兔值钱1496,4羊2犬6鸡3兔值钱1175,3羊1犬7鸡5兔值钱958,2羊3犬5鸡1兔值钱861,求兔值多少钱?

29

#include

usingnamespacestd;

intmain()

{

intn=0,x,y,z,k;

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

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

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

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

if(5*x+4*y+3*z+2*k==1496

&&4*x+2*y+6*z+3*k==1175

&&3*x+1*y+7*z+5*k==958

&&2*x+3*y+5*z+1*k==861)

cout<

return0;

}

20.“水仙花数”是指这样的数,其各位数字的立方和等于该数本身,如:

153=1^3+5^3+3^3。

编写程序求100至400的范围内有多少个水仙花数。

3

#include

usingnamespacestd;

intmain()

{

intn,a,b,c,s=0;

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

{

a=n/100;

b=n/10%10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)

s++;

}

cout<

return0;

}

21.编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+C=B,即第1位数加上第3位数等于第2位数。

57

#include

usingnamespacestd;

intmain()

{

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

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

{

a=n/1000;

b=n/100%10;

c=n/10%10;

d=n%10;

if(n%8==0&&a+c==b)

s++;

}

cout<

return0;

}

22编写程序,求出3到100之间的所有非偶数非素数的数之和。

1441

#include

usingnamespacestd;

intmain()

{

intn,i,s=0;

boolflag;

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

if(n%2!

=0)

{

for(i=2;i

if(n%i==0)

{

flag=1;

break;

}

else

flag=0;

if(flag)

s=s+n;

}

cout<

return0;

}

23.编程序求2+4+8+16+32+…这样的数之和。

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

2046

#include

usingnamespacestd;

intmain()

{

intn=2,i,s;

for(s=0;s<1500;n=2*n)

s=s+n;

cout<

return0;

}

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

161095

#include

usingnamespacestd;

intmain()

{

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

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

if(n%2!

=0)

{

a=n/1000;

b=n/100%10;

c=n/10%10;

d=n%10;

if(a*b*c*d!

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

s=s+n;

}

cout<

return0;

}.

25.已知Fibonacci数列:

1,1,2,3,5,8,……,它可由下面公式表述:

F

(1)=1ifn=1F

(2)=1ifn=2F(n)=F(n-1)+F(n-2)ifn>2试求F(45)值。

提示:

最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。

1134903170

#include

usingnamespacestd;

intf(inti);

intmain()

{

cout<

return0;

}

intf(inti)

{

if(i<=2)

return1;

else

returnf(i-1)+f(i-2);

}

26.编写程序,统计200~300之间的所有满足三个数字之积为24,三个数字之和为10的数的个数。

2

#include

usingnamespacestd;

intmain()

{

intn,a,b,c,s=0;

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

{

a=n/100;

b=n/10%10;

c=n%10;

if(a*b*c==24&&a+b+c==10)

s++;

}

cout<

return0;

}

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

3

#include

usingnamespacestd;

intmain()

{

inta,b,c,s=0;

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

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

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

{

if(a+b+c==36&&4*a+2*b+c==120)

s++;

}

cout<

return0;

}

28.已知A

563

#include

usingnamespacestd;

intmain()

{

inta,b,s,min_a,min_s=716699;

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

for(b=a+1;b<=716699;b++)

if(a*b==716699)

{

s=a+b;

if(s<=min_s)

{

min_s=s;

min_a=a;

}

}

cout<

return0;

}

29.有一个分数序列:

2/1,3/2,5/3,8/5,13/8,21/13....(注:

该数列从第二项开始,其分子是前一项的分子与分母的和,而其分母是前一项的分子),求出这个序列前24项的和。

要求:

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

39.13

#include

#include

usingnamespacestd;

intmain()

{

doublen,m,f1=1,f2=2,f3,s=0;

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

{

f3=f2/f1;

s=s+f3;

m=f2;

f2=f1+f2;

f1=m;

}

cout<

return0;

}

30.设有6个十进制数字a,b,c,d,f,e,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。

2

#include

usingnamespacestd;

intmain()

{

inta,b,c,d,e,f,s=0;

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

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

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

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

for(e=2;e<=9;e++)

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

if((10000*a+1000*b+100*c+10*d+f)*e==10000*f+1000*d+100*c+10*b+a)

{

s++;

}

cout<

return0;

}

31.若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28是多因子完备数。

求[1,500]之间有多少个多因子完备数。

5

#include

usingnamespacestd;

intmain()

{

intn,i,s,sum=0;

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

{

s=0;

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

{

if(n

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

当前位置:首页 > 工作范文 > 行政公文

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

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