java基础练习题及参考答案.docx

上传人:b****5 文档编号:2939855 上传时间:2022-11-16 格式:DOCX 页数:15 大小:46.92KB
下载 相关 举报
java基础练习题及参考答案.docx_第1页
第1页 / 共15页
java基础练习题及参考答案.docx_第2页
第2页 / 共15页
java基础练习题及参考答案.docx_第3页
第3页 / 共15页
java基础练习题及参考答案.docx_第4页
第4页 / 共15页
java基础练习题及参考答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

java基础练习题及参考答案.docx

《java基础练习题及参考答案.docx》由会员分享,可在线阅读,更多相关《java基础练习题及参考答案.docx(15页珍藏版)》请在冰豆网上搜索。

java基础练习题及参考答案.docx

java基础练习题及参考答案

【程序1】

題目:

古典问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一

对兔子,假如兔子都不死,问每个月的兔子总数为多少?

刚开始真的无从下手,这么难的,怎么可以说是基础呢,感觉这些应该是逻辑分析很强的,第一个月只有一对兔子,第二个月还是只有一对兔子,第三个月,就有两对了,第四个月3对,第五个月5对,第六个月8对,第七个月是13对。

规律出来了,你们发了没?

[java] viewplain copy

1.public class Example1{  

2.    public static void main(String args[]){   

3.    //i是表示月份的,这里计算了36个月,也就是三年,兔子的数量  

4.      int i;  

5.      long arr[]=new long[36];   //这个数组时用来计算每月有兔子的对数  

6.      arr[0]=arr[1]=1;  

7.      System.out.println("第1个月有兔子1对"+", "+"总数是"+2);  

8.      System.out.println("第2个月有兔子1对"+", "+"总数是"+2);  

9.      for(i=2;i<=35;i++){  

10.         arr[i]=arr[i-1]+arr[i-2];  

11.         System.out.println("第"+i+"个月有兔子"+arr[i]+"对"+", "+"总数是"+2*arr[i]);  

12.             //规律是 每个数字都是前面两个数字之和  

13.         }  

14.   }  

15.          

16.}  

OK,用时45分钟。

 

【程序2】 

题目:

判断101-200之间有多少个素数,并输出所有素数。

 

素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。

也就是素数只有两个因子。

[java] viewplain copy

1.public class Example2 {  

2.public static void main(String args[]){  

3.    int i,j,n,m,x;      //n是用来存储余数的;m是用来统计具体一个数的因子;  

4.    n=0;m=0;x=0;        //x是用来统计101~200之前素数的个数  

5.    for(i=101;i<=200;i++){             //两重循环  

6.        for(j=1;j<=i;j++){         

7.            n=i%j;                    //去余数,如果余数为零,就是该数的因子  

8.            if(n==0)  { m=m+1; }      //统计某数有多少个因子  

9.            }   

10.     if(m==2){System.out.print(i+" "); x=x+1;} //如果某数的因子只有两个,那它就一定是素数,那这个数就应该输出  

11.          m=0;            //一定要清零,不然会继续累加  

12.        }  

13.       System.out.println();  

14.       System.out.println("在101~200之間一共有素數:

"+x+"個");  

15.        }  

16.   }  

我好笨啊,这题我做了两个钟头,最终还是解决了。

加油

【程序3】

题目:

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

想当年,做这些题都是网上找答案,如今事过境迁,不会也得会。

[java] viewplain copy

1.public class Example3 {  

2.    public static void main(String args[]){   

3.       int a,sum;     //表示100~999  

4.       int i,j,k;//分别表示百位、十位、各位  

5.       for(a=100;a<=999;a++){  

6.           i=a/100;  

7.           j=(a-i*100)/10;  

8.           k=a-i*100-j*10;  

9.           sum=i*i*i+j*j*j+k*k*k;   

10.           //java的运算符,立方要这样写,写成i^3这样,竟然运算不出来  

11.           //如果遇到高次的话可以使用循环算出来  

12.           if(sum==a)  

13.           { System.out.println(sum);  

14.            }  

15.             

16.       }  

还是有学到点东西,应该还有别的方法。

那我就试试吧。

[java] viewplain copy

1.public class Example4 {  

2.    public static void main(String args[]){   

3.       int sum;      

4.       int i,j,k;//分别表示百位、十位、各位  

5.      for(i=1;i<=9;i++){  

6.          for(j=0;j<=9;j++){  

7.              for(k=0;k<=9;k++){  

8.                  sum=i*i*i+j*j*j+k*k*k;  

9.                  if(i*100+j*10+k==sum){  

10.                      System.out.println(sum);  

11.                  }  

12.              }  

13.          }  

14.      }  

15.         

16.   }          

17.}  

【程序4】 

题目:

将一个正整数分解质因数。

例如:

输入90,打印出90=2*3*3*5。

 

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

 

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

 

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

 

[java] viewplain copy

1.import java.util.*;   

2.public class Example4{   

3.  public static void main(String[] args){   

4.    int x;  

5.    Scanner in = new Scanner(System.in);//定义从键盘输入   

6.    System.out.print("请输入一个正整数:

");//提示   

7.    x = in.nextInt(); //将从键盘输入的数赋值给x   

8.    new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数   

9.  }   

10.}   

11.class PrimeSplit{   

12.  int k = 2; //将最小的质数赋值给k   

13.  public PrimeSplit(int x){  //小于等于1的数不可以分解   

14.    if(x<=1){   

15.      System.out.println(x+"是无效的被分解数");   

16.    }   

17.    else if(x==2){   

18.      System.out.println(x+"分解后的质因数为:

 1*"+x);   //如果输入的是最小质数2,   

19.    }else {   

20.      System.out.print(x+"分解后的质因数为:

 1"); //1是所有的正整数的质数   

21.      while(k<=x){   //输入的数可以被k整除   

22.        if(x%k==0){   

23.          System.out.print("*"+k);           //将k添加到结果中   

24.          x = x/k;//除以最小质数后重新循环   

25.          }   

26.         else{   

27.          k++;   

28.          }   

29.        }   

30.      }   

31.    }      

32.  }  

【程序5】 

题目:

利用条件运算符的嵌套来完成此题:

学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下

的用C表示。

 

[java] viewplain copy

1.public class Example5 {  

2.    public static void main(String args[]){   

3.       int score=90;         //分数的值可以随便修改  

4.       if(score>=90){  

5.           System.out.println("A");  

6.       }  

7.       else if(score>=60){  

8.           System.out.println("B");  

9.       }  

10.       else{  

11.           System.out.println("C");  

12.       }  

13.              

14.    }  

15.}  

 

【程序6】 

题目:

输入两个正整数m和n,求其最大公约数和最小公倍数。

 

[java] viewplain copy

1.public class Example6 {  

2.    public static void main(String args[]){   

3.       gcdlcm a =new gcdlcm();  

4.       System.out.println("兩數的最大公約數是:

"+a.gcd(10, 16));  

5.       System.out.println("兩數的最小公倍數是:

"+a.lcm(16, 10));  

6.   }          

7.}  

8.class gcdlcm{  

9.    int gcd(in

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

当前位置:首页 > 成人教育 > 成考

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

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