JAVA编程题全集50题及答案.docx

上传人:b****6 文档编号:6507408 上传时间:2023-01-07 格式:DOCX 页数:21 大小:41.59KB
下载 相关 举报
JAVA编程题全集50题及答案.docx_第1页
第1页 / 共21页
JAVA编程题全集50题及答案.docx_第2页
第2页 / 共21页
JAVA编程题全集50题及答案.docx_第3页
第3页 / 共21页
JAVA编程题全集50题及答案.docx_第4页
第4页 / 共21页
JAVA编程题全集50题及答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

JAVA编程题全集50题及答案.docx

《JAVA编程题全集50题及答案.docx》由会员分享,可在线阅读,更多相关《JAVA编程题全集50题及答案.docx(21页珍藏版)》请在冰豆网上搜索。

JAVA编程题全集50题及答案.docx

JAVA编程题全集50题及答案

【程序1】   ﻫ题目:

古典问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月得兔子总数为多少?

   

//这就是一个菲波拉契数列问题ﻫpublicclass lianxi01{ﻫpublicstaticvoidmain(String[] args){

System、out、println("第1个月得兔子对数:

    1”);

System、out、println("第2个月得兔子对数:

   1");ﻫintf1 =1,f2 = 1,f, M=24;ﻫ    for(inti=3;i〈=M; i++){

     f = f2;

     f2=f1 +f2;ﻫ     f1=f;

      System、out、println(”第"+ i+"个月得兔子对数:

 ”+f2);

        }ﻫ}

}

【程序2】   ﻫ题目:

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

程序分析:

判断素数得方法:

用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不就是素数,反之就是素数。

   

publicclass lianxi02{

publicstaticvoidmain(String[] args) {

   intcount=0;

   for(inti=101;i〈200;i+=2){

    booleanb = false;

    for(intj=2;j〈=Math、sqrt(i);j++)

    {

       if(i % j== 0){ b=false;break;}ﻫ         else           {b= true;}

    }

       if(b==true){count++;System、out、println(i);}

                                 }

   System、out、println("素数个数就是:

 " + count);

}ﻫ}

【程序3】   

题目:

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

例如:

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

publicclasslianxi03{ﻫpublicstaticvoid main(String[]args){

    intb1,b2, b3;ﻫ     for(intm=101;m<1000;m++){

     b3= m/100;ﻫ      b2 = m %100 /10;ﻫ     b1= m %   10;ﻫ     if((b3*b3*b3+ b2*b2*b2+b1*b1*b1)==m){ﻫ      System、out、println(m+"就是一个水仙花数”);}ﻫ     }

}ﻫ}   

【程序4】   

题目:

将一个正整数分解质因数.例如:

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

   

程序分析:

对n进行分解质因数,应先找到一个最小得质数k,然后按下述步骤完成:

   ﻫ

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

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

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

  ﻫimport java、util、*;

public    class     lianxi04{ﻫ   publicstaticvoid main(String[]args){ﻫ       Scanners=newScanner(System、in);

        System、out、print(”请键入一个正整数:

    ”);

       int   n    =s、nextInt();

       intk=2;ﻫ       System、out、print(n+”=");

       while(k <=n) {

          if(k ==n) {System、out、println(n);break;}ﻫ            elseif(n% k ==0){System、out、print(k+”*”);n =n/k;} ﻫ                   else   k++;ﻫ                   }

     }

   }ﻫ【程序5】   ﻫ题目:

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

学习成绩〉=90分得同学用A表示,60—89分之间得用B表示,60分以下得用C表示。

   

importjava、util、*;ﻫpublicclasslianxi05{

public staticvoidmain(String[]args){ﻫ    int x;

    chargrade;

    Scanner s=newScanner(System、in);ﻫ    System、out、print( ”请输入一个成绩:

 "); 

    x= s、nextInt();  

    grade = x〉=90?

'A’

           :

x >=60?

’B'

           :

'C';ﻫ   System、out、println("等级为:

"+grade);ﻫ  ﻫ}ﻫ} 

【程序6】   ﻫ题目:

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

   

/**在循环中,只要除数不等于0,用较大数除以较小得数,将小得一个数作为下一轮循环得大数,取得得余数作为下一轮循环得较小得数,如此循环直到较小得数得值为0,返回较大得数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。

* /ﻫimportjava、util、*;ﻫpublic   class    lianxi06    {

public staticvoid main(String[]args){ﻫint     a,b,m;

Scanners= new Scanner(System、in);ﻫSystem、out、print( ”键入一个整数:

");

a= s、nextInt();

System、out、print("再键入一个整数:

");

b=s、nextInt();

     deffcd=newdeff();

     m=cd、deff(a,b);ﻫ      intn= a * b/m;ﻫ     System、out、println(”最大公约数:

”+ m);

      System、out、println(”最小公倍数:

"+n);

}

classdeff{

public intdeff(int x,inty){

    intt;ﻫ    if(x〈y){ﻫ     t =x;ﻫ     x=y;

     y =t;

     }  ﻫ     while(y!

= 0){

      if(x ==y)returnx;ﻫ     else{

      intk=x%y;ﻫ      x =y;

       y = k;ﻫ     }ﻫ    }

    returnx;

}ﻫ}ﻫ【程序7】   

题目:

输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数.   

importjava、util、*;

public classlianxi07{ﻫpublicstaticvoidmain(String[] args){

int digital= 0;ﻫintcharacter=0;

int other= 0;ﻫintblank = 0;

    char[]ch = null;

     Scannersc =newScanner(System、in);

    Strings=sc、nextLine();

    ch= s、toCharArray();ﻫ    for(inti=0; i〈ch、length;i++){

     if(ch>= '0’&& ch<='9’) {ﻫ      digital ++;ﻫ     }elseif((ch〉='a'&& ch〈='z') ||ch>'A'&&ch<=’Z’){ﻫ      character++;ﻫ     } else if(ch ==' ') {

      blank++;

     } else{ﻫ      other ++;

     }ﻫ     }ﻫ     System、out、println("数字个数:

”+ digital);ﻫ    System、out、println("英文字母个数:

 ”+character);

     System、out、println(”空格个数:

 "+blank);ﻫ     System、out、println("其她字符个数:

"+ other);

}

【程序8】   

题目:

求s=a+aa+aaa+aaaa+aa、、、a得值,其中a就是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

   ﻫimportjava、util、*;ﻫpublicclass lianxi08{

publicstaticvoidmain(String[]args){ﻫ     longa,b=0, sum =0;

    Scanners=new Scanner(System、in);ﻫ    System、out、print(”输入数字a得值:

”);

     a=s、nextInt();ﻫ     System、out、print(”输入相加得项数:

");ﻫ    intn = s、nextInt();

     inti =0;ﻫ    while(i 〈n){

     b=b+ a;ﻫ     sum =sum+b;

     a=a *10;

      ++ i;

    }

     System、out、println(sum);ﻫ}

} 

【程序9】   ﻫ题目:

一个数如果恰好等于它得因子之与,这个数就称为 "完数".例如6=1+2+3、编程    找出1000以内得所有完数。

   ﻫpublicclasslianxi09{

publicstaticvoid main(String[]args){

     System、out、println("1到1000得完数有:

");ﻫ    for(inti=1;i<1000;i++) {

     intt=0;ﻫ     for(intj=1;j<= i/2;j++) {ﻫ      if(i%j==0) {ﻫ       t=t+j;ﻫ       }

     }

      if(t== i) {

       System、out、print(i+"    ");ﻫ     }ﻫ    }

【程序10】   ﻫ题目:

一球从100米高度自由落下,每次落地后反跳回原高度得一半;再落下,求它在    第10次落地时,共经过多少米?

第10次反弹多高?

 ﻫpublicclass lianxi10{ﻫpublic staticvoidmain(String[]args){

     doubleh= 100,s = 100;ﻫ     for(inti=1;i<10;i++) {ﻫ     s= s + h;

     h=h/2;ﻫ    }ﻫ    System、out、println("经过路程:

" +s);

    System、out、println("反弹高度:

”+ h/2);

}

}ﻫ【程序11】   

题目:

有1、2、3、4四个数字,能组成多少个互不相同且无重复数字得三位数?

都就是多少?

   ﻫpublic classlianxi11{ﻫpublicstaticvoidmain(String[]args){ﻫ    int count=0;

    for(intx=1;x〈5;x++){ﻫ     for(inty=1;y<5; y++) {

      for(int z=1;z<5;z++){

       if(x !

=y &&y !

=z&&x!

=z){

         count ++;ﻫ        System、out、println(x*100 +y*10+z);

       }ﻫ      }ﻫ     }ﻫ    }ﻫ     System、out、println(”共有” +count+"个三位数");

}ﻫ} ﻫ【程序12】   ﻫ题目:

企业发放得奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元得部分按10%提成,高于10万元得部分,可可提成7、5%;20万到40万之间时,高于20万元得部分,可提成5%;40万到60万之间时高于40万元得部分,可提成3%;60万到100万之间时,高于60万元得部分,可提成1、5%,高于100万元时,超过100万元得部分按1%提成,从键盘输入当月利润,求应发放奖金总数?

   

importjava、util、*;ﻫpublic classlianxi12{ﻫpublicstaticvoid main(String[]args){ﻫ    doublex= 0,y = 0;

    System、out、print(”输入当月利润(万):

");

    Scanners=newScanner(System、in);

     x=s、nextInt();ﻫ    if(x〉 0 && x〈=10){

    y=x * 0、1;

    }elseif(x>10&&x<=20) {ﻫ      y =10 * 0、1+(x—10)*0、075;

     }else if(x>20 &&x<=40){

      y =10*0、1 + 10*0、075+(x—20)*0、05;ﻫ    }elseif(x>40 &&x <=60){

     y=10*0、1+ 10*0、075+20*0、05+ (x — 40)* 0、03;ﻫ    }elseif(x〉60&& x <=100){

     y= 20 *0、175 + 20* 0、05 +20*0、03+(x— 60)*0、015;ﻫ    }elseif(x 〉100){ﻫ     y =20* 0、175+ 40*0、08+40*0、015 +(x-100)* 0、01;ﻫ    }

     System、out、println(”应该提取得奖金就是 ” +y+”万");ﻫ}ﻫ}

【程序13】   ﻫ题目:

一个整数,它加上100后就是一个完全平方数,再加上168又就是一个完全平方数,请问该数就是多少?

   ﻫpublicclass lianxi13{

publicstaticvoid main(String[]args){ﻫ    for(intx=1;x<100000;x++){ﻫ     if(Math、sqrt(x+100) %1==0){

      if(Math、sqrt(x+268) %1==0){

       System、out、println(x +”加100就是一个完全平方数,再加168又就是一个完全平方数”);ﻫ      }

     }

    }ﻫ}

}ﻫﻫ/*按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多一个满足条件得数-99.

但就是我瞧到大部分人解这道题目时都把题中得“整数”理解成正整数,我也就随大流了。

*/

【程序14】  

题目:

输入某年某月某日,判断这一天就是这一年得第几天?

   

importjava、util、*;

publicclasslianxi14 {ﻫpublic static voidmain(String[] args){

     intyear,month, day;

    intdays=0;ﻫ    int d= 0;

     int e;

     inputfymd=newinput();

    do {ﻫ    e=0;

     System、out、print("输入年:

”);ﻫ    year=fymd、input();

     System、out、print("输入月:

”);ﻫ     month=fymd、input();

     System、out、print("输入天:

”);ﻫ    day=fymd、input();

    if(year< 0|| month<0|| month> 12 ||day 〈0 ||day>31){ﻫ     System、out、println("输入错误,请重新输入!

");ﻫ    e=1; 

    }

    }while(e==1);ﻫ     for (inti=1; i 

     switch(i){

     case 1:

     case3:

ﻫ      case5:

ﻫ      case7:

ﻫ     case8:

      case10:

     case12:

ﻫ      days=31;

      break;ﻫ      case 4:

ﻫ     case6:

     case9:

      case11:

ﻫ      days=30;ﻫ     break;

     case2:

      if((year% 400 ==0)|| (year %4== 0&&year %100!

=0)){

        days=29;ﻫ      } else{

       days=28;ﻫ      }ﻫ      break;

     }ﻫ      d +=days;

     }ﻫ    System、out、println(year+ "—"+ month + ”-"+ day+"就是这年得第" +(d+day)+"天。

”);ﻫ}ﻫ}ﻫclass input{ﻫpublicintinput(){ﻫ     intvalue=0;ﻫ    Scanners=new Scanner(System、in);

    value = s、nextInt();

    return value;ﻫ}

}

【程序15】   ﻫ题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

   

importjava、util、*;

publicclass lianxi15{ﻫpublicstaticvoidmain(String[] args){ﻫ    input fnc= newinput();

    intx=0,y=0, z=0;

    System、out、print("输入第一个数字:

");

     x =fnc、input();ﻫ    System、out、print("输入第二个数字:

");

     y=fnc、input();ﻫ     System、out、print(”输入第三个数字:

");

     z=fnc、input();   ﻫ    if(x >y) {

     intt=x;

     x =y;ﻫ     y =t;ﻫ    }ﻫ    if(x〉 z){ﻫ     intt=x;

     x =z;

     z =t;

    }

   if(y〉z) {ﻫ      intt=y;ﻫ     y=z;

      z= t;

    }ﻫ   System、out、println( "三个数字由小到大排列为:

 "+x+””+y +”"+z);

}ﻫ}ﻫclassinput{

publicintinput(){

    intvalue=0;

     Scanner s=newScanner(System、in);

    value=s、nextInt();

     returnvalue;

}

【程序16】ﻫ题目:

输出9*9口诀。

     ﻫpublicclasslianxi16{

publicstaticvoidmain(String[]args){

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

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

      System、out、print(j+"*"+i+"=”+ j*i+"   ” );ﻫ        if(j*i〈10){System、out、print("");}

          System、out、println();

     }

}ﻫ}

【程序17】   ﻫ题目:

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个     第二天早上又将剩下得桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下     得一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

   

publicclass lianxi17{ﻫpublic staticvoidmain(String[] args){

    int x

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

当前位置:首页 > 工程科技 > 纺织轻工业

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

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