自考04747《Java語言程序設(shè)計(一)》編程題全集(50題及答案)_第1頁
自考04747《Java語言程序設(shè)計(一)》編程題全集(50題及答案)_第2頁
自考04747《Java語言程序設(shè)計(一)》編程題全集(50題及答案)_第3頁
自考04747《Java語言程序設(shè)計(一)》編程題全集(50題及答案)_第4頁
自考04747《Java語言程序設(shè)計(一)》編程題全集(50題及答案)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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、;  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ù):

3、"+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;    f

4、or(int 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、         b = true;              if(b = true) count +;System.out.println(i );                     

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

7、i03 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、60;    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進行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成: 

9、;  (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     p

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

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

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

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

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

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

16、公約數(shù)和最小公倍數(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、0;   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);    

18、0; int 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、#160;  t = x;      x = y;      y = t;            while(y != 0)       if(x = y) return x;      else        int k = x

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

21、public 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、0;    for(int i=0; i<ch.length; i+)       if(ch >= '0' && ch <= '9')        digital +;      else if(ch >= 'a' && ch <= 'z') | ch > 'A&#

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

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

25、quot;其他字符個數(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;    

26、; Scanner 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、#160;  while(i < n)       b = b + a;      sum = sum + b;      a = a * 10;      + i;           System.out.println(sum); 【程序9】   題目:一個

28、數(shù)如果恰好等于它的因子之和,這個數(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、160;   int t = 0;      for(int j=1; j<= i/2; j+)        if(i % j = 0)         t = t + j;                   if(t = i)

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

31、c void 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)過路程:&q

32、uot; + 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

33、; x<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、60;     System.out.println(x*100 + y*10 + z );                               System.out.println("共有" + count + "個三位數(shù)"); 【程序12】

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

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

37、      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)

38、 * 0.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 +

39、(x - 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ù),它加上

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

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

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

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

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

46、0;  case 7:      case 8:      case 10:      case 12:       days = 31;      break;      case 4:      case 6: &#

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

48、160;      days = 29;       else         days = 28;              break;            d += days; &#

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

50、;    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();    

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

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

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

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

55、alue; 【程序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 + &q

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

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

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

59、ublic 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+)      i

60、f (mi = '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、;    else      System.out.println(mi + " vs " + nj);       【程序19】   題目:打印出如下圖案(菱形)        *      *    *   *  &

63、#160; *      *       *   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

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

65、0;     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、39;);          System.out.println();    【程序20】   題目:有一分數(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

67、sum = 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、;     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+"! = "

70、+fr.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

72、+2;        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);  

73、 System.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ù)。");    Sys

74、tem.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 st

75、atic 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、);     String ss =String.valueOf(a);     char ch = ss.toCharArray();     if(ch0=ch4&&ch1=ch3)     System.out.println("這是一個回文數(shù)");     else System.out.println("這不是一個回文數(shù)");

77、60;       /這個更好,不限位數(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(); 

78、0; String 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.pri

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

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

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

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

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

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

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

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

87、160;   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.pr

88、int(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、0;   break;       elseb = true;        if(b = true) System.out.print(i + " ");       /該程序使用除1位素數(shù)得2位方法,運行效率高通用性差。public class lianxi27a public static void main(String args)     int

90、a = 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、#160;                   break;       elseb = true;        if(b = true) System.out.print(i + " ");       【程序28】 

92、;  題目:對10個數(shù)進行排序   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+)    

93、ai = 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、          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)  

95、0; Scanner 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、quot;輸入的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

97、; i+)     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ī)律將它插

98、入數(shù)組中。    /此程序不好,沒有使用折半查找插入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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論