JAVA編程題全集(100題及答案).doc_第1頁
JAVA編程題全集(100題及答案).doc_第2頁
JAVA編程題全集(100題及答案).doc_第3頁
JAVA編程題全集(100題及答案).doc_第4頁
JAVA編程題全集(100題及答案).doc_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java程序設計總復習題1、編寫一個Java程序在屏幕上輸出“你好!”。(p13,例1-1) /programme name Helloworld.java public class Helloworld public static void main(String args) System.out.print (你好! ); 2. 編寫一個Java程序,用if-else語句判斷某年份是否為閏年。/ Programme Name LeapYear.javapublic class LeapYearpublic static void main(String args)int year=2010; if(args.length!=0) year=Integer.parseInt(args0);if(year%4=0 & year%100!=0)|(year%400=0) System.out.println(year+ 年是閏年。);else System.out.println(year+ 年不是閏年。); /if-else語句3、編寫一個Java程序在屏幕上輸出1!+2!+3!+10!的和。(p64,例2-2)/ programme name ForTest.javapublic class ForTest public static void main( String args ) int i,j,mul,sum=0;for(i=1;i=10;i+) mul=1;for(j=1,j=i;j+) mul=mul*j; sum=sum+mul;public class Factorial /下面的這個方法利用遞歸的方法求階乘 public int getFac(int m) if(m=1) return 1; else return m*getFac(m-1); public static void main(String args) Factorial fac=new Factorial(); /System.out.println(fac.getFac(4); int sum=0; for(int i=1;i=10;i+) sum+=fac.getFac(i); System.out.println(1到10的階乘的和是:+sum); System.out.println(“1!+2!+3!+10!= ”+sum);4. (1)編寫一個圓類Circle,該類擁有:一個成員變量Radius(私有,浮點型); / 存放圓的半徑; 兩個構造方法 Circle( ) / 將半徑設為0 Circle(double r ) /創建Circle對象時將半徑初始化為r 三個成員方法 double getArea( ) /獲取圓的面積 double getPerimeter( ) /獲取圓的周長 void show( ) /將圓的半徑、周長、面積輸出到屏幕(2)編寫一個圓柱體類Cylinder,它繼承于上面的Circle類。還擁有:一個成員變量double hight(私有,浮點型); / 圓柱體的高; 構造方法 Cylinder (double r, double h ) /創建Circle對象時將半徑初始化為r 成員方法 double getVolume( ) /獲取圓柱體的體積 void showVolume( ) /將圓柱體的體積輸出到屏幕編寫應用程序,創建類的對象,分別設置圓的半徑、圓柱體的高,計算并分別顯示圓半徑、圓面積、圓周長,圓柱體的體積。/Programme Name TestCylinder.java class Circle /定義父類-圓類private double radius; /成員變量-圓半徑Circle() /構造方法radius=0.0;Circle(double r) /構造方法 radius=r; double getPerimeter() /成員方法-求圓周長return 2*Math.PI*radius;double getArea() /成員方法-求圓面積return Math.PI*radius*radius;void disp() /成員方法-顯示圓半徑、周長、面積System.out.println(圓半徑=+radius);System.out.println(圓周長=+getPerimeter();System.out.println(圓面積=+getArea();class Cylinder extends Circle /定義子類-圓柱類private double hight; /成員變量-園柱高Cylinder(double r,double h) /構造方法 super(r);hight=h;public double getVol() /成員方法-求園柱體積return getArea()*hight;public void dispVol() /成員方法-顯示園柱體積System.out.println(圓柱體積=+getVol();public class TestCylinder /定義主類public static void main(String args) /主程入口 Circle Ci=new Circle(10.0); / 生成園類實例 Ci.disp(); / 調用園類的方法 Cylinder Cyl=new Cylinder(5.0,10.0); /生成圓柱類實例 Cyl.disp(); /調用父類方法 Cyl.dispVol(); /調用子類方法 5、編寫一個Java應用程序,從鍵盤讀取用戶輸入兩個字符串,并重載3個函數分別實現這兩個字符串的拼接、整數相加和浮點數相加。要進行異常處理,對輸入的不符合要求的字符串提示給用戶,不能使程序崩潰。(p39,例2-10,2-11)/programme name Strinput.javaimport java.io.*;public class Strinput public static void main(String args) String s1,s2,ss,si,sf; int i1,i2; float f1,f2; BufferedReader strin=new BufferedReader(new InputStreamReader(System.in); trySystem.out.print (輸入第一個字符串: ); s1= strin.readLine(); System.out.print (輸入第二個字符串: ); s2= strin.readLine(); catch(Exception e) System.out.println(e.getMessage(); i1 = Integer.parseInt(s1); i2 = Integer.parseInt(s2); f1 = Float.parseFloat(s1); f2 = Float.parseFloat(s2); ss = strAdd(s1,s2); si = strAdd(i1,i2); sf = strAdd(f1,f2); System.out.println (輸入的二個字符串相加結果為:+ss ); System.out.println (輸入字符串轉換為整數相加結果為:+si ); System.out.println (輸入字符串轉換為浮點數相加結果為:+sf ); String strAdd(String str1,String str2) return str1+str2;String strAdd(int int1,int int2) return String.valueOf(int1+int2);String strAdd(float flt1,float flt2) return String.valueOf (flt1+flt2); 6. 應用FileInputStream類,編寫應用程序,從磁盤上讀取一個Java程序,并將源程序代碼顯示在屏幕上。(被讀取的文件路徑為:E:/myjava/Hello.java)/ Programme Name FISDemo.javaimport java.io.*; public class FISDemo public static void main(String args) byte buf=new byte2056; try FileInputStream fileIn=new FileInputStream(e:/myjava/Hello.java); int bytes=fileIn.read(buf,0,2056); String str=new String(buf,0,bytes); System.out.println(str);catch(Exception e) e.printStackTrace( );7、編寫一個Java程序將當100,101,102,103,104,105個數以數組的形式寫入到Dest.txt文件中,并以相反的順序讀出顯示在屏幕上。(p190,例7-2) /programme name IODemo.java import java.io.*; public class IODemo public static void main( String args ) int data = 100,101,102,103,104,105;int t;try DataOutputStream out = new DataOutputStream (new FileOutputStream(“dest.txt”); for(int i=0;i= 0;i-) t=in.readInt(datai); System.out.print(“ ”+t); System.out.println( ); in.close();catch(IOException e) System.out.println(e.getMessage(); 8. 利用Applet類和Runnable接口實現滾動字幕,其中字幕文字(“學好Java有工作”)和時間間隔(“200”)需要由頁面文件中標記的子標記傳遞。import java.awt.Color;import java.awt.Graphics;import javax.swing.JApplet;public class MoveMessage extends JApplet implements Runnable String str;int time;private Thread thread;public void init() setBackground(Color.PINK);str = getParameter(message);String timeArg = getParameter(time);time = Integer.parseInt(timeArg);thread = new Thread(this);public void start() thread.start();public void run() int x = 0;Graphics g = getGraphics();while (true) try Thread.sleep(time); catch (Exception e) e.printStackTrace();g.clearRect(0, 0, getWidth(), getHeight();g.drawString(str, x, 30);x += 2;if (x = getWidth()x = 0;9、編寫一個Java程序實現多線程,在線程中輸出線程的名字,隔300毫秒輸出一次,共輸出20次。(p202,例8-1) / programme name TestThread; / 聲明一個子線程類Threaddemo; class ThreadDemo extends Thread public ThreadDemo(String str) super(str); public void run() for(int i=0;i20;i+)System.out.print(“ ”+this.getName();Try Sleep(300);catch(InterruptedException e) System.out.println(e.getMessage(); Return;System.out.println(“ /end”);public class TestThread public static void main( String args ) ThreadDemo thread1=new ThreadDemo(“T1”); ThreadDemo thread2=new ThreadDemo(“T2”); ThreadDemo thread3=new ThreadDemo(“T3”); thread1.start(); thread2.start(); thread3.start(); 10. 編寫程序,在屏幕上顯示帶標題的窗口,并添加一個按鈕。當用戶單擊按鈕時,結束程序。/ Programme Name ButtonEventDemo.javaimport javax.swing.*;import java.awt.event.*;public class ButtonEventDemo extends JPanel implements ActionListenerprotected JButton b1;/聲明一個按鈕對象public ButtonEventDemo() /構造方法ImageIcon ButtonIcon = new ImageIcon(images/green.png); /創建按鈕的圖標對象 b1 = new JButton(退出按鈕, ButtonIcon); /生成按鈕對象b1.setMnemonic(KeyEvent.VK_E); /設置b1的助記符是Alt+E b1.setToolTipText(這是退出按鈕。);/ 設置按鈕提示條 this.add(b1); /往面板對象中加載按鈕 b1.addActionListener(this); /本類對象注冊為按鈕的事件監聽器 public void actionPerformed(ActionEvent e)/按鈕事件響應方法System.exit(0); /按b1則退出主程序 private static void createGUI() /創建窗體 JFrame.setDefaultLookAndFeelDecorated(true); /設置java隱含觀感 JFrame frame = new JFrame(按鈕測試); /生成應用程序主窗體 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /設置關閉時隱含操作 ButtonEventDemo CPane = new ButtonEventDemo(); /生成主類對象-面板 CPane.setOpaque(true); /面板要求不透明 frame.setContentPane(CPane); /設置主類對象為主窗體的內容面板 frame.pack(); /主窗體緊縮顯示 frame.setVisible(true); /設置主窗體可見 public static void main(String args) /將createGUI()列入線程 javax.swing.SwingUtilities.invokeLater(new Runnable() public void run() createGUI(); ); 11. 利用線程方法編寫JApplet程序,實現在瀏覽器端實時動態顯示本地系統時鐘/ Programme Name Watch.javaimport java.applet.Applet;import java.awt.*;import java.text.DateFormat;import java.util.*;public class Watch extends Applet public void paint(Graphics g) Date d= new Date(); DateFormat ldf = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); /System.out.println(現在系統時間是(long):+ ldf.format(d); String time = ldf.format(d).toString(); g.drawString(time, 100, 100); try Thread.sleep(1000); catch (InterruptedException e) repaint(); JavaAppletDemo / 保存為Watch.html 文件12、定義一個表示學生信息的類Student,要求如下:(1)類Student的成員變量:sNO表示學號;sName表示姓名;sSex表示性別;sAge表示年齡;sJava:表示Java課程成績。(2)類Student帶參數的構造方法: 在構造方法中通過形參完成對成員變量的賦值操作。(3)類Student的方法成員:getNo():獲得學號; getName():獲得姓名; getSex():獲得性別;getAge()獲得年齡;getJava():獲得Java 課程成績(4) 根據類Student的定義,創建五個該類的對象,輸出每個學生的信息,計算并輸出這五個學生Java語言成績的平均值,以及計算并輸出他們Java語言成績的最大值和最小值。/Pragramme name Student;public class Student String sNO,sName,sSex;int sAge,sJava;public Student(String XH,String XM,String XB,int NL,int XF) super(); sNO=XH; sName=XM; sSex=XB; sAge=NL; sJava=XF; public String getNO() return sNO;public String getName() return sName;public String getSex() return sSex;public int getAge() return sAge;public int getJava() return sJava;public static void main(String args) Student st=new Student5;st0=new Student(09zc01,張三,男,19,94);st1=new Student(09zc02,李四,男,20,85);st2=new Student(09zc03,王五,女,18,96);st3=new Student(09zc04,趙六,男,17,90);st4=new Student(09zc05,楊七,女,21,88); int max=0,min=100,sum=0; System.out.println( 學生信息:); for (int i=0;ist.length;i+) if (sti.sJava max) max=sti.sJava; sum=sum+sti.sJava; System.out.println(學生編號:+sti.getNO()+, 姓名:+sti.getName()+, 性別:+sti.getSex()+, 年齡:+sti.getAge()+, Java課學分:+sti.getJava(); System.out.println(); System.out.println( 共有學生:+st.length+, 平均成績:+sum/st.length); System.out.println( 最小學分:+min+, 最大學分:+max);【程序1】題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?/這是一個菲波拉契數列問題public class lianxi01 public static void main(String args) System.out.println(第1個月的兔子對數: 1);System.out.println(第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 +個月的兔子對數: +f2); 【程序2】題目:判斷101-200之間有多少個素數,并輸出所有素數。 程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。public class lianxi02 public static void main(String args) int count = 0; for(int i=101; i200; i+=2) boolean b = false; for(int j=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的三次方。public class lianxi03 public static void main(String args) int b1, b2, b3; for(int m=101; m1000; 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 public static void main(String args) Scanner s = new Scanner(System.in); System.out.print( 請鍵入一個正整數: ); int n = s.nextInt(); int k=2; System.out.print(n + = ); while(k =90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。import java.util.*;public class lianxi05 public static void main(String args) int x; char grade; Scanner s = new Scanner(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,返回較大的數,此數即為最大公約數,最小公倍數為兩數之積除以最大公約數。* /import java.util.*;public class lianxi06 public static void main(String args) int a ,b,m;Scanner s = new Scanner(System.in);System.out.print( 鍵入一個整數: ); a = s.nextInt();System.out.print( 再鍵入一個整數: ); b = s.nextInt(); deff cd = new deff(); m = cd.deff(a,b); int n = a * b / m; System.out.println(最大公約數: + m); System.out.println(最小公倍數: + n); class deffpublic int deff(int x, int y) int t; if(x y) t = x; x = y; y = t; while(y != 0) if(x = y) return x; else int k = x % y; x = y; y = k; return x; 【程序7】題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。import java.util.*;public class lianxi07 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(); for(int i=0; i= 0 & ch = a & 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個數相加),幾個數相加有鍵盤控制。import java.util.*;public class lianxi08 public static void main(String args) long a , b = 0, sum = 0; Scanner s = new Scanner(System.in); System.out.print(輸入數字a的值: ); a = s.nextInt(); System.out.print(輸入相加的項數:); int n = s.nextInt(); int i = 0; while(i n) b = b + a; sum = sum + b; a = a * 10; + i; System.out.println(sum); 【程序9】題目:一個數如果恰好等于它的因子之和,這個數就稱為 完數 。例如6=123.編程 找出1000以內的所有完數。public class lianxi09 public static void main(String args) System.out.println(1到1000的完數有: ); for(int i=1; i1000; i+) int t = 0; for(int j=1; j= i/2; j+) if(i % j = 0) t = t + j; if(t = i) System.out.print(i + ); 【程序10】題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時,共經過多少米?第10次反彈多高? public class lianxi10 public static void main(String args) double h = 100,s = 100; for(int i=1; i10; i+) s = s + h; h = h / 2; System.out.println(經過路程: + s); System.out.println(反彈高度: + h /

溫馨提示

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

評論

0/150

提交評論