最新JAVA編程題全集(50題及答案)(1)_第1頁
最新JAVA編程題全集(50題及答案)(1)_第2頁
最新JAVA編程題全集(50題及答案)(1)_第3頁
最新JAVA編程題全集(50題及答案)(1)_第4頁
最新JAVA編程題全集(50題及答案)(1)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、【程序1】   題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?   /這是一個菲波拉契數(shù)列問題public class lianxi01 public static void main(String args) System.out.println("第1個月的兔子對數(shù):    1");System.out.println("第2個月的兔子對數(shù):  

2、60; 1");int f1 = 1, f2 = 1, f, M=24;     for(int i=3; i<=M; i+)       f = f2;      f2 = f1 + f2;      f1 = f;      System.out.println("第" + i +"個月的兔子對數(shù): &quo

3、t;+f2);         【程序2】   題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。 程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除, 則表明此數(shù)不是素數(shù),反之是素數(shù)。   public class lianxi02 public static void main(String args)     int count = 0;    for(i

4、nt i=101; i<200; i+=2)      boolean b = false;     for(int j=2; j<=Math.sqrt(i); j+)              if(i % j = 0) b = false; break;          else  

5、0;        b = true;              if(b = true) count +;System.out.println(i );                      &

6、#160;               System.out.println( "素數(shù)個數(shù)是: " + count);【程序3】   題目:打印出所有的 "水仙花數(shù) ",所謂 "水仙花數(shù) "是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個 "水仙花數(shù) ",因?yàn)?53=1的三次方5的三次方3的三次方。public class lianxi03

7、public static void main(String args)      int b1, b2, b3;      for(int m=101; m<1000; m+)       b3 = m / 100;      b2 = m % 100 / 10;      b1 = m %    10;  &

8、#160;   if(b3*b3*b3 + b2*b2*b2 + b1*b1*b1) = m)       System.out.println(m+"是一個水仙花數(shù)");         【程序4】   題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。   程序分析:對n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成: 

9、60; (1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。   (2)如果n <> k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。   (3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。  import java.util.*;public     class     lianxi04     publi

10、c static void main(String args)         Scanner s = new Scanner(System.in);        System.out.print( "請鍵入一個正整數(shù):     ");         int    n  &#

11、160; = s.nextInt();        int k=2;         System.out.print(n + "=" );        while(k <= n)           if(k = n) System.out.println(n);br

12、eak;            else if( n % k = 0) System.out.print(k + "*");n = n / k;                     else    k+;   

13、60;                        【程序5】   題目:利用條件運(yùn)算符的嵌套來完成此題:學(xué)習(xí)成績> =90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。   import java.util.*;public class lianxi05 public static void ma

14、in(String args)      int x;     char grade;     Scanner s = new Scanner(System.in);     System.out.print( "請輸入一個成績: ");      x = s.nextInt();       grade = x &g

15、t;= 90 ? 'A'           : x >= 60 ? 'B'           :'C'    System.out.println("等級為:"+grade);   【程序6】   題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和

16、最小公倍數(shù)。   /*在循環(huán)中,只要除數(shù)不等于0,用較大數(shù)除以較小的數(shù),將小的一個數(shù)作為下一輪循環(huán)的大數(shù),取得的余數(shù)作為下一輪循環(huán)的較小的數(shù),如此循環(huán)直到較小的數(shù)的值為0,返回較大的數(shù),此數(shù)即為最大公約數(shù),最小公倍數(shù)為兩數(shù)之積除以最大公約數(shù)。* /import java.util.*;public    class     lianxi06     public static void main(String args) int  &#

17、160;  a ,b,m;Scanner s = new Scanner(System.in);System.out.print( "鍵入一個整數(shù): "); a = s.nextInt();System.out.print( "再鍵入一個整數(shù): "); b = s.nextInt();      deff cd = new deff();      m = cd.deff(a,b);      i

18、nt n = a * b / m;      System.out.println("最大公約數(shù): " + m);      System.out.println("最小公倍數(shù): " + n); class deffpublic int deff(int x, int y)      int t;     if(x < y)     

19、;  t = x;      x = y;      y = t;            while(y != 0)       if(x = y) return x;      else        int k = x % y

20、;       x = y;       y = k;                return x; 【程序7】   題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。   import java.util.*;public class lianxi07 publ

21、ic static void main(String args) int digital = 0;int character = 0;int other = 0;int blank = 0;     char ch = null;     Scanner sc = new Scanner(System.in);     String s = sc.nextLine();     ch = s.toCharArray(); &#

22、160;   for(int i=0; i<ch.length; i+)       if(ch >= '0' && ch <= '9')        digital +;      else if(ch >= 'a' && ch <= 'z') | ch > 'A'

23、&& ch <= 'Z')        character +;      else if(ch = ' ')        blank +;      else        other +;      

24、0;          System.out.println("數(shù)字個數(shù): " + digital);     System.out.println("英文字母個數(shù): " + character);     System.out.println("空格個數(shù): " + blank);     System.out.println("

25、;其他字符個數(shù):" + other );【程序8】   題目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。   import java.util.*;public class lianxi08 public static void main(String args)      long a , b = 0, sum = 0;     Sc

26、anner s = new Scanner(System.in);     System.out.print("輸入數(shù)字a的值: ");     a = s.nextInt();     System.out.print("輸入相加的項數(shù):");     int n = s.nextInt();     int i = 0;   

27、;  while(i < n)       b = b + a;      sum = sum + b;      a = a * 10;      + i;           System.out.println(sum); 【程序9】   題目:一個數(shù)如果恰

28、好等于它的因子之和,這個數(shù)就稱為 "完數(shù) "。例如6=123.編程     找出1000以內(nèi)的所有完數(shù)。   public class lianxi09 public static void main(String args)      System.out.println("1到1000的完數(shù)有: ");     for(int i=1; i<1000; i+)    

29、   int t = 0;      for(int j=1; j<= i/2; j+)        if(i % j = 0)         t = t + j;                   if(t = i) 

30、0;      System.out.print(i + "     ");           【程序10】   題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在     第10次落地時,共經(jīng)過多少米?第10次反彈多高? public class lianxi10 public static vo

31、id main(String args)       double h = 100,s = 100;      for(int i=1; i<10; i+)       s = s + h;      h = h / 2;          System.out.println("經(jīng)過路程:"

32、 + s);     System.out.println("反彈高度:" + h / 2); 【程序11】   題目:有1、2、3、4四個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?   public class lianxi11 public static void main(String args)      int count = 0;     for(int x=1; x&

33、lt;5; x+)       for(int y=1; y<5; y+)        for(int z=1; z<5; z+)         if(x != y && y != z && x != z)          count +;    &

34、#160;    System.out.println(x*100 + y*10 + z );                               System.out.println("共有" + count + "個三位數(shù)"); 【程序12】 &#

35、160; 題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(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%提成,從鍵盤輸入當(dāng)月利潤,求應(yīng)發(fā)放獎金總數(shù)?   import java.util.*;public class lianxi12 public stat

36、ic void main(String args)      double x = 0,y = 0;     System.out.print("輸入當(dāng)月利潤(萬):");     Scanner s = new Scanner(System.in);     x = s.nextInt();     if(x > 0 && x <= 10) 

37、60;    y = x * 0.1;     else if(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

38、.05;     else if(x > 40 && x <= 60)       y = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (x - 40) * 0.03;     else if(x > 60 && x <= 100)       y = 20 * 0.175 + 20 * 0.05 + 20 * 0.03 + (x -

39、 60) * 0.015;      else if(x > 100)       y = 20 * 0.175 + 40 * 0.08 + 40 * 0.015 + (x - 100) * 0.01;          System.out.println("應(yīng)該提取的獎金是 " + y + "萬");【程序13】   題目:一個整數(shù),它加上100后

40、是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?   public class lianxi13 public static void main(String args)      for(int x =1; x<100000; x+)       if(Math.sqrt(x+100) % 1 = 0)        if(Math.sqrt(x+268) % 1 = 0)  &#

41、160;      System.out.println(x + "加100是一個完全平方數(shù),再加168又是一個完全平方數(shù)");                  /*按題意循環(huán)應(yīng)該從-100開始(整數(shù)包括正整數(shù)、負(fù)整數(shù)、零),這樣會多一個滿足條件的數(shù)-99。但是我看到大部分人解這道題目時都把題中的“整數(shù)”理解成正整數(shù),我也就隨大流了。*/【程序14】  題

42、目:輸入某年某月某日,判斷這一天是這一年的第幾天?   import java.util.*;public class lianxi14 public static void main(String args)      int year, month, day;     int days = 0;     int d = 0;     int e;     inpu

43、t fymd = new input();     do      e = 0;     System.out.print("輸入年:");     year =fymd.input();     System.out.print("輸入月:");     month = fymd.input(); 

44、0;   System.out.print("輸入天:");     day = fymd.input();     if (year < 0 | month < 0 | month > 12 | day < 0 | day > 31)      System.out.println("輸入錯誤,請重新輸入!");     e=1 ;  

45、         while( e=1);      for (int i=1; i <month; i+)       switch (i)       case 1:      case 3:      case 5:    &#

46、160; case 7:      case 8:      case 10:      case 12:       days = 31;      break;      case 4:      case 6:  

47、    case 9:      case 11:       days = 30;      break;      case 2:       if (year % 400 = 0) | (year % 4 = 0 && year % 100 != 0)   

48、      days = 29;       else         days = 28;              break;            d += days;  

49、         System.out.println(year + "-" + month + "-" + day + "是這年的第" + (d+day) + "天。");class inputpublic int input()      int value = 0;     Scanner s = new Scanner(System.in); 

50、60;   value = s.nextInt();     return value;【程序15】   題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。   import java.util.*;public class lianxi15 public static void main(String args)      input fnc = new input();     int

51、x=0, y=0, z=0;     System.out.print("輸入第一個數(shù)字:");      x = fnc.input();     System.out.print("輸入第二個數(shù)字:");      y = fnc.input();     System.out.print("輸入第三個數(shù)字:");

52、      z = fnc.input();       if(x > y)       int t = x;      x = y;      y = t;         if(x > z)      

53、int t = x;      x = z;      z = t;         if(y > z)       int t = y;      y = z;      z = t;        

54、System.out.println( "三個數(shù)字由小到大排列為: "+x + " " + y + " " + z);class inputpublic int input()      int value = 0;     Scanner s = new Scanner(System.in);     value = s.nextInt();     return value

55、; 【程序16】題目:輸出9*9口訣。     public class lianxi16 public static void main(String args)      for(int i=1; i<10; i+)       for(int j=1; j<=i; j+)        System.out.print(j + "*" + i + "

56、=" + j*i + "    " );         if(j*i<10)System.out.print(" ");          System.out.println();     【程序17】   題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還

57、不癮,又多吃了一個     第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下     的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。   public class lianxi17 public static void main(String args)      int x = 1;     for(int i=2; i<=10; i+)

58、      x = (x+1)*2;          System.out.println("猴子第一天摘了 " + x + " 個桃子");【程序18】   題目:兩個乒乓球隊進(jìn)行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。   publi

59、c class lianxi18 static char m = 'a', 'b', 'c' ;static char n = 'x', 'y', 'z' ;public static void main(String args)    for (int i = 0; i < m.length; i+)     for (int j = 0; j < n.length; j+)      if (m

60、i = 'a' && nj = 'x')       continue; else if (mi = 'a' && nj = 'y')       continue;     else if (mi = 'c' && nj = 'x')       | (

61、mi = 'c' && nj = 'z')       continue;     else if (mi = 'b' && nj = 'z')       | (mi = 'b' && nj = 'y')       continue; 

62、60;   else      System.out.println(mi + " vs " + nj);       【程序19】   題目:打印出如下圖案(菱形)        *      *    *   *   

63、; *      *       *   public class lianxi19 public static void main(String args)     int H = 7, W = 7;/高和寬必須是相等的奇數(shù)    for(int i=0; i<(H+1) / 2; i+)      for(int j=0; j<W/2-i;

64、j+)       System.out.print(" ");          for(int k=1; k<(i+1)*2; k+)       System.out.print('*');          System.out.println();    &

65、#160;   for(int i=1; i<=H/2; i+)      for(int j=1; j<=i; j+)       System.out.print(" ");          for(int k=1; k<=W-2*i; k+)       System.out.print('*')

66、;          System.out.println();    【程序20】   題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13.求出這個數(shù)列的前20項之和。 public class lianxi20 public static void main(String args)     int x = 2, y = 1, t;    double sum

67、= 0;    for(int i=1; i<=20; i+)      sum = sum + (double)x / y;     t = y;     y = x;     x = y + t;     System.out.println("前20項相加之和是: " + sum);【程序21】   題目:

68、求1+2!+3!+.+20!的和   public class lianxi21 public static void main(String args)     long sum = 0;     long fac = 1;    for(int i=1; i<=20; i+)      fac = fac * i;     sum += fac;    &#

69、160;   System.out.println(sum);【程序22】   題目:利用遞歸方法求5!。   public class lianxi22 public static void main(String args)        int n = 5;    rec fr = new rec();    System.out.println(n+"! = "+fr.

70、rec(n);class recpublic long rec(int n)     long value = 0 ;    if(n =1 )      value = 1;    else        value = n * rec(n-1);        return value; 【程序23】   題目:有

71、5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?   public class lianxi23 public static void main(String args)     int age = 10;     for(int i=2; i<=5; i+)      age =age+2;&

72、#160;       System.out.println(age); 【程序24】   題目:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。   /使用了長整型最多輸入18位import java.util.*;public class lianxi24 public static void main(String args)    Scanner s = new Scanner(System.in);   Sys

73、tem.out.print("請輸入一個正整數(shù):");   long a = s.nextLong();   String ss = Long.toString(a);    char ch = ss.toCharArray();    int j=ch.length;    System.out.println(a + "是一個"+ j +"位數(shù)。");    System.

74、out.print("按逆序輸出是:");    for(int i=j-1; i>=0; i-)     System.out.print(chi);         【程序25】   題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同。   import java.util.*;public class lianxi25 public static

75、 void main(String args)     Scanner s = new Scanner(System.in);    int a;    do     System.out.print("請輸入一個5位正整數(shù):");      a = s.nextInt();      while(a<10000|a>99999);&#

76、160;    String ss =String.valueOf(a);     char ch = ss.toCharArray();     if(ch0=ch4&&ch1=ch3)     System.out.println("這是一個回文數(shù)");     else System.out.println("這不是一個回文數(shù)"); &

77、#160;      /這個更好,不限位數(shù)import java.util.*;public class lianxi25a public static void main(String args)    Scanner s = new Scanner(System.in);   boolean is =true;   System.out.print("請輸入一個正整數(shù):");   long a = s.nextLong();   S

78、tring ss = Long.toString(a);   char ch = ss.toCharArray();   int j=ch.length;   for(int i=0; i<j/2; i+)    if(chi!=chj-i-1)is=false;      if(is=true)System.out.println("這是一個回文數(shù)");     else System.out.println

79、("這不是一個回文數(shù)");       【程序26】   題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù)   判斷第二個字母。   import java.util.*;public class lianxi26 public static void main(String args)     getChar tw = new getChar();    S

80、ystem.out.println("請輸入星期的第一個大寫字母:");    char ch = tw.getChar();    switch(ch)      case 'M':       System.out.println("Monday");      break;     case &#

81、39;W':       System.out.println("Wednesday");      break;     case 'F':      System.out.println("Friday");      break;     case

82、'T':       System.out.println("請輸入星期的第二個字母:");      char ch2 = tw.getChar();      if(ch2 = 'U') System.out.println("Tuesday");       else if(ch2 = 'H') Syst

83、em.out.println("Thursday");       else System.out.println("無此寫法!");            ;       break;     case 'S':        System.

84、out.println("請輸入星期的第二個字母:");      char ch2 = tw.getChar();      if(ch2 = 'U') System.out.println("Sunday");        else if(ch2 = 'A') System.out.println("Saturday");  &#

85、160;     else System.out.println("無此寫法!");            ;      break;default:System.out.println("無此寫法!");   class getCharpublic char getChar()     Scanner s = new

86、 Scanner(System.in);    String str = s.nextLine();    char ch = str.charAt(0);    if(ch<'A' | ch>'Z')      System.out.println("輸入錯誤,請重新輸入");     ch=getChar();     

87、   return ch;  【程序27】   題目:求100之內(nèi)的素數(shù)   /使用除sqrt(n)的方法求出的素數(shù)不包括2和3public class lianxi27 public static void main(String args)     boolean b =false;    System.out.print(2 + " ");    System.out.print(

88、3 + " ");    for(int i=3; i<100; i+=2)      for(int j=2; j<=Math.sqrt(i); j+)       if(i % j = 0) b = false;                   &#

89、160;  break;       elseb = true;        if(b = true) System.out.print(i + " ");       /該程序使用除1位素數(shù)得2位方法,運(yùn)行效率高通用性差。public class lianxi27a public static void main(String args)     int a =

90、new int2, 3, 5, 7;   for(int j=0; j<4; j+)System.out.print(aj + " ");    boolean b =false;    for(int i=11; i<100; i+=2)      for(int j=0; j<4; j+)       if(i % aj = 0) b = false;   

91、;                   break;       elseb = true;        if(b = true) System.out.print(i + " ");       【程序28】 

92、60; 題目:對10個數(shù)進(jìn)行排序   import java.util.*;public class lianxi28 public static void main(String args) Scanner s = new Scanner(System.in);   int a = new int10;   System.out.println("請輸入10個整數(shù):");   for(int i=0; i<10; i+)     ai =

93、 s.nextInt();      for(int i=0; i<10; i+)     for(int j=i+1; j<10; j+)      if(ai > aj)       int t = ai;      ai = aj;      aj = t;     

94、0;         for(int i=0; i<10; i+)     System.out.print(ai + " ");   【程序29】   題目:求一個3*3矩陣對角線元素之和     import java.util.*;public class lianxi29 public static void main(String args)    S

95、canner s = new Scanner(System.in);   int a = new int33;System.out.println("請輸入9個整數(shù):");   for(int i=0; i<3; i+)     for(int j=0; j<3; j+)      aij = s.nextInt();          System.out.println("

96、;輸入的3 * 3 矩陣是:");   for(int i=0; i<3; i+)     for(int j=0; j<3; j+)      System.out.print(aij + " ");        System.out.println();      int sum = 0;   for(int i=0; i<3; i+

97、)     for(int j=0; j<3; j+)      if(i = j)       sum += aij;               System.out.println("對角線之和是:" + sum);【程序30】   題目:有一個已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中

98、。    /此程序不好,沒有使用折半查找插入import java.util.*;public class lianxi30 public static void main(String args)    int a = new int1, 2, 6, 14, 25, 36, 37,55;   int b = new inta.length+1;   int t1 =0, t2 = 0;            

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論