C++编程练习题及答案.docx

上传人:b****4 文档编号:24099278 上传时间:2023-05-24 格式:DOCX 页数:32 大小:22.99KB
下载 相关 举报
C++编程练习题及答案.docx_第1页
第1页 / 共32页
C++编程练习题及答案.docx_第2页
第2页 / 共32页
C++编程练习题及答案.docx_第3页
第3页 / 共32页
C++编程练习题及答案.docx_第4页
第4页 / 共32页
C++编程练习题及答案.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C++编程练习题及答案.docx

《C++编程练习题及答案.docx》由会员分享,可在线阅读,更多相关《C++编程练习题及答案.docx(32页珍藏版)》请在冰豆网上搜索。

C++编程练习题及答案.docx

C++编程练习题及答案

一、简单问题:

1.编程求下列式子的值,

y=1-1/2+1/3-1/4+…+1/99-1/100

并将结果输出,格式为:

1-1/2+1/3-1/4+…+1/99-1/100=表达式的值

publicclassPorg{

publicstaticvoidmain(String[]args){

doublesum=0;

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

{

sum=sum+(-1,i-1)*(1/i);

}

"1-1/2+1/3-1/4+…+1/99-1/100="+sum);

}

}

2.请编程实现:

由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。

importclassProg2{

publicstaticvoidmain(String[]args){

intm=0,n=0;

Scannercin=newScanner;

Stringstr=();

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

{

if(i)>'A'&&(i)<='Z')

m++;

else

n++;

}

if(m>n)

{

}

else

}

}

3.编程,求全部水仙花数。

所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。

如:

153=13+53+33。

publicclassProg3{

publicstaticvoidmain(String[]args){

inta,b,c;

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

{

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

{

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

{

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

}

}

}

}

4.请编制程序判断输入的正整数是否既是5又是7的整倍数。

若是,则输出yes;否则输出no。

importclassProg4{

publicstaticvoidmain(String[]args){

Scannercin=newScanner;

inti=();

if(i%5==0&&i%7==0)

"yes");

else

"no");

}

}

5.请编程实现:

对于给定的一个百分制成绩,输出相应的五分制成绩。

设:

90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’。

importclassProg5{

publicstaticvoidmain(String[]args){

Scannercin=newScanner;

intm=();

if(m>=60&&m<=69)

"D");

else

if(m>=70&&m<=79)

"C");

else

if(m>=80&&m<=89)

"B");

else

if(m>=90)

"A");

else

"E");

}

}

6.输入一行字符,将其中的字母变成其后续的第3个字母,输出。

例:

a→d,x→a;y→b;编程实现。

importclassProg6{

publicstaticvoidmain(String[]args){

char[]zimu=newchar[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c'};

Scannercin=newScanner;

Stringstr=();

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

{

for(inti=0;i<29;i++)

{

if(j)==zimu[i])

{

break;

}

}

}

7.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词.例如:

1转换成Monday,7转换成Sunday.

importclassProg7{

publicstaticvoidmain(String[]args){

"请输入任意一个1~7之间的整数\n");

Scannercin=newScanner;

intm=();

if(m==1)

"Monday");

else

if(m==2)

"Tuesday");

else

if(m==3)

"Wensday");

else

if(m==4)

"Thuesday");

else

if(m==5)

"Friday");

else

if(m==6)

"Saturday");

else

"Sunday");

}

}

8.输入三角形的三边a,b,c,判断能否构成三角形.若能,计算面积.

importclassProg8{

publicstaticvoidmain(String[]args){

"请输入三个整数\n");

Scannercin=newScanner;

inta=();

intb=();

intc=();

if(a+b

{

"不能构成三角形\n");

}

else

{

intl=a+b+c;

}

}

}

9.编程序,输入a,b,c,求方程ax2+bx+c=0的解。

importclassProg9{

publicstaticvoidmain(String[]args){

"请输入三个整数\n");

Scannercin=newScanner;

inta=();

intb=();

intc=();

if(a==0)

{

}

elseif(b*b-4*a*c>=0)

{

doublex1=(-b+(1/2,b*b-4*a*c))/(2*a);

doublex2=(1/2,b*b-4*a*c))/(2*a);

}

else"无解");

}

}

10.计算出前20项fibonacci数列,要求一行打印5个数.

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。

如果所有兔都不死,那么一年以后可以繁殖多少对兔子?

  我们不妨拿新出生的一对小兔子分析一下:

  第一个月小兔子没有繁殖能力,所以还是一对;

  两个月后,生下一对小兔总数共有两对;

  三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;

  …… 

  依次类推可以列出下表:

  

经过月数

0

1

2

3

4

5

6

7

8

9

10

11

12

幼仔对数

0

1

1

2

3

5

8

13

21

34

55

89

144

成兔对数

1

1

2

3

5

8

13

21

34

55

89

144

233

总体对数

1

2

3

5

8

13

21

34

55

89

144

233

377

importclassProg10{

publicstaticvoidmain(String[]args){

Scannercin=newScanner;

intn=();

inta=0,b=1,c=1;

if(n==1){);

);

);}

else

{

for(inti=2;i<=n;i++)

{

a=b;

b=c;

c=a+b;

}

"幼崽数"+a+"成年兔子书"+b+"总数"+c);

}

}

}

11.输出100~10000之间个位数为3的所有素数。

publicclassProg11{

publicstaticvoidmain(String[]args){

for(inti=103;i<10000;i=i+10)

{

booleanflag=true;

for(intj=2;j

{

if(i%j==0)

{flag=false;break;}

}

if(flag==true){

}

}

}

12.百钱买百鸡问题:

公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法.

publicclassProg12{

publicstaticvoidmain(String[]args){

intm=0;

for(inta=0;a<100;a++)

{

for(intb=0;b<100;b++)

{

for(intc=0;c<100;c++)

if(5*a+3*b+1/3*c==100&&a+b+c==100)

m++;

}

}

"一百元买一百只鸡有"+m+"种买法");

}

}

13.请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。

importclassProg13{

publicstaticvoidmain(String[]args){

"请输入两个整数\n");

Scannercin=newScanner;

inta=();

intb=();

if(a*a+b*b>100)

{

}

else

}

}

14.编程实现:

对键盘输入的任意一个四位正整数,计算各位数字平方和。

如:

2345,则:

计算22+32+42+52

importclassProg14{

publicstaticvoidmain(String[]args){

"请输入任意一个四位正整数\n");

intsum=0;

Scannercin=newScanner;

inta=();

sum=(a/1000*a/1000)+((a/100)%10*(a/100)%10)+((a/10%100%10)*(a/10%100%10))+((a%10)*(a%10));

}

}

15.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.

publicclassProg15{

publicstaticvoidmain(String[]args){

intm=0,sum=1020;

do{

sum=sum/2-2;

m++;

}while(sum>=0);

"天以后能卖完");

 

}

}

16.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数.

publicclassProg16{

publicstaticvoidmain(String[]args){

intm=0;

for(intC=1;C<200;C++)

{

for(intA=1;A<=200;A++)

{

for(intB=1;B<=200;B++)

{

if(A*A+B*B==C*C)

{A=201;

B=201;

m++;}

}

}

}

"个数为:

"+m);

}

}

17.设N是一个四位数,它的9倍恰好是其反序数(例如:

123的反序数是321),编程,输出所有满足条件的N。

packageeasy;

publicclassThe17{

staticlongs,M;

publicstaticvoidmain(String[]args){

for(longN=1009;N<=1109;N=N+10){

M=9*N;

s=0;

while(M>0){

s=s*10+M%10;

M=M/10;

}

if(N==s)

}

}

}

18.编程,输出555555的约数中最大的三位数。

packageeasy;

publicclassThe18th{

publicstaticvoidmain(String[]args){

doublea=555555;

longb=0;

编程,输出所有个位数为6且能被31整除的五位数及其个数。

packageeasy;

publicclassThe19th{

publicstaticvoidmain(String[]args){

for(longi=10006;i<=99996;i=i+10){

if(i%31==0){

}

}

}

}

20.编写程序,输入两个整数,和+、-、*、/、%之中的任意一个运算符,输出计算结果.

packageeasy;

计算:

1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n),n由键盘输入。

packageeasy;

importclassThe21th{

publicstaticvoidmain(String[]args){

doublesum=0,div=0;

Scannercin=newScanner;

intn=();

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

div=div+i;

"1/"+div);

sum=sum+1/div;

}

}

}

22.编程计算:

1*2*3+3*4*5+…+99*100*101的值.

packageeasy;

publicclassThe22th{

publicstaticvoidmain(String[]args){

longsum=0;

for(inti=1;i+2<=101;i=i+2){

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

}

}

}

 

二、比较简单问题:

1.编一个函数GCD,求两个无符号整数的最大公约数。

主函数输入两个正整数m和n,调用GCD,求出m和n的最大公约数和最小公倍数.并输出。

packagemoreEasy;

importclassThe1th{

publicstaticvoidmain(String[]args){

Scannercin=newScanner;

intm=();

intn=();

"和"+n+"的最大公约数为:

"+GCD(m,n));

"和"+n+"的最小公倍数为:

"+m*n/GCD(m,n));

}

publicstaticintGCD(inta,intb){

intr=0;

for(inti=1;i<=a&&i<=b;i++){

if(a%i==0&&b%i==0&&r

r=i;

}

}

请编程实现:

建立一个4*4的二维整型数组,求对角线元素的和。

packagemoreEasy;

importclassThe2th{

publicstaticvoidmain(String[]args){

intewsz[][]=newint[4][4];

Scannercin=newScanner;

for(inti=0;i<;i++){

for(intj=0;j

ewsz[i][j]=();

}

}

/*for(inti=0;i<;i++){

for(intj=0;j

if(j==3){

"");

}

}

}*/

intsum=0;

for(inti=0;i<;i++){

sum=sum+ewsz[i][i];

}

}

}

3.写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这10个整数中的素数的累加和。

packagemoreEasy;

importclassThe3th{

publicstaticvoidmain(String[]args){

int[]shu=newint[10];

intsum=0;

Scannercin=newScanner;

for(inti=0;i<;i++){

shu[i]=();

}

for(inti=0;i<;i++){

if(prime(shu[i]))

sum=sum+shu[i];

}

}

publicstaticbooleanprime(inta){

输出最高成绩和最低成绩及相应的序号。

packagemoreEasy;

importclassThe4th{

publicstaticvoidmain(String[]args){

intn,n1=0,max,min;

Scannercin=newScanner;

"学生人数");

n=();

int[]chengJi=newint[n];

for(inti=0;i

chengJi[i]=();

}

max=chengJi[0];

min=chengJi[0];

for(intj=0;j<;j++){

if(max

max=chengJi[j];

n=j;

}

if(min>chengJi[j]){

min=chengJi[j];

n1=j;

}

}

"max="+max+""+n);

"min="+min+""+n1);

}

}

5.编程计算:

1!

+2!

+3!

+…+20!

,并将结果输出.输出格式:

1!

+2!

+3!

+…+20!

=表达式的值

packagemoreEasy;

publicclassThe5th{

publicstaticvoidmain(String[]args){

longsum=0;

for(inti=1;i<=20;i++){

longr=1;

for(intj=1;j<=i;j++){

r*=j;

}

sum=sum+r;

有一个3*4的矩阵,编程实现:

找出该矩阵中每行元素的最大值,存入一个一维数组中。

输出原始矩阵和结果矩阵。

7.将若干个整数放到一维数组中,找出该数组中的最大值和它的下标。

然后将它和数组中的最前面的元素对换。

不明白

packagemoreEasy;

importclassThe7th{

publicstaticvoidmain(String[]args){

int[]array=newint[10];

Scannercin=newScanner;

"数组长度:

");

intn=();

for(inti=0;i

array[i]=();

}

intmin=array[0];

intmax=array[0];

编写一个函数converse,将一维数组中的数逆序存放,不允许使用辅助数组。

主函数输入原始数据,调用converse,实现逆置。

并将原数组和逆置后的数组输出

packagemoreEasy;

importclassThe8th{

publicstaticvoidmain(String[]args){

converse();

}

publicstaticvoidconverse(){

int[]ar=newint[10];

Scannercin=newScanner;

for(inti=0;i<;i++){

ar[i]=();

编写函数,将给定的字符串的大写字母转变成小写字母;其它字符不变。

主函数输入一个字符串,调用该函数对其进行转换,分别输出原串和转换之后的串。

packagemoreEasy;

importclassThe9th{

staticStringstr="";

publicstaticvoidmain(String[]args){

Stringstr="";

Scannercin=newScanner;

str=();

zhuanHuan(str);

}

publicstaticvoidzhuanHuan(Stringstr1){

str=str1;

str=();

}

}

10.编写一个函数,将字符数组a中的全部字符复制到字符数组b中.不要使用strcpy函数.主函数输入任意一个字符串,调该函数,复制出另一个字符串。

将两个串输出。

packagemoreEasy;

importclassThe10th{

publicstaticvoidmain(String[]args){

Scannercin=newScanner

展开阅读全文
相关搜索

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

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

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