JAVA初級練習(xí)題_第1頁
JAVA初級練習(xí)題_第2頁
JAVA初級練習(xí)題_第3頁
JAVA初級練習(xí)題_第4頁
JAVA初級練習(xí)題_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 JAVA初級練習(xí)題一、單選題(本大題15小題,每小題2分,共30分) 1.下列語句執(zhí)行后,變量a、c的值分別是(A)。 int x=182; int a,c; c=x/100; a=x%10; A) 1,2 B) 2,1 C) 1.82, 2 D) 100,82 2.下面哪個表達(dá)式可用得到x和y的最大值(D)? A) x>y?y:x B) x<y?y:x C) x>y?(x+y):(x-y) D) x=y?y:x; 3.以下是應(yīng)用程序中定義的靜態(tài)方法printBinary,若在其main方法中有方法調(diào)用語句printBinary(2),則輸出的結(jié)果是 ( )。 static

2、 void printBinary(int i) System.out.print(i + "的2進(jìn)制數(shù)表示為:t"); for(int j = 31; j >=0; j-) if(1 << j) & i) != 0) System.out.print("1"); else System.out.print("0"); System.out.println();/換行 A) 00000000000000000000000000000001 B) 00000000000000000000000000000010

3、 C) 00000000000000000000000000001111 D) 00000000000000000000000000000000 4. 應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。 String s1="0.5",s2="12" double x=Double.parseDouble(s1); int y=Integer.parseInt(s2); System.out.println(x+y); A) 12.5 B) 120.5 C) 12 D) “12.5” 5. 應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 (

4、 )。 double x=1234.1234567; DecimalFormat form1 = new DecimalFormat("0000.0"); System.out.println("PI="+form1.format(x); A) PI=1234.1 B) PI=1234 C) PI=1234.1235 D) PI=1234.0 6.下列程序段執(zhí)行后的結(jié)果是( )。 String s=new String("abcdefg"); for(int i=0;i<s.length();i+=2) System.out.p

5、rint(s.charAt(i); A) aceg B) ACEG C) abcdefg D) abcd 7. 應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。 int x=122,33,55,678,-987; int max=x0; for(int i=1;i<x.length;i+) if(xi>max) max=xi; System.out.println(max); A) 678 B) 122 C) -987 D) 33 8.下列語句序列執(zhí)行后,k 的值是( )。 int x=2, y=5, k=0; switch( x%y ) case 0: k=x+y;

6、break; case 1: k=x-y; break; case 2: k=x*y; break; default: k=x/y; break; System.out.println(k); A) 2 B) 5 C) 10 D) 0 9. 下面的程序輸出的結(jié)果是( ) public class A implements B public static void main(String args) int i; A c1 = new A(); i= c1.k; System.out.println("i="+i); interface B int k = 10; A) i=

7、0 B) i=10 C) 程序有編譯錯誤 D) i=true 10應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( )。 int b=1, 2, 3, 4,5, 6,7; int sum=0; for(int i=0;i<b.length;i+) for(int j=0;j<bi.length;j+) sum+=bij; System.out.println("sum="+sum); A) 28 B)6 C) 9 D) 13 11. 有整型數(shù)組:int x=12,35,8,7,2;,則調(diào)用方法Arrays.sort(x)后,數(shù)組x中的元素值依次是( ).

8、A) 2 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 2 12.編譯和運行下面的應(yīng)用程序,并在命令行界面輸入12345,則回車后屏幕輸出的結(jié)果是( ). public class A public static void main(String args) throws IOException BufferedReader buf=new BufferedReader( new InputStreamReader(System.in); String str=buf.readLine(); int x=Integer.parseIn

9、t(str); System.out.println(x/100); A) 45 B)5 C) 123 D) 12345 13.下面的程序段執(zhí)行后輸出的結(jié)果是( )。 StringBuffer buf=new StringBuffer("Beijing2008"); buf.insert(7,""); System.out.println(buf.toString(); A) Beijing2008 B) Beijing2008 C) Beijing2008 D) Beijing#2008 14. 下面的程序編譯運行后輸出的結(jié)果是( )。 public

10、class A implements Runnable public static void main(String argv) A a = new A(); Thread t = new Thread(a); t.start(); public void run() while(true) try Thread.currentThread().sleep(1000); catch(InterruptedException e) System.out.println(e.toString(); System.out.println("looping while"); A)

11、在屏幕上重復(fù)輸出"looping while"。 B) 在屏幕上輸出一次"looping while"。 C) 沒有結(jié)果輸出。 D) 以上說法都錯誤。 15.下面的程序段創(chuàng)建了BufferedReader類的對象in,以便讀取本機(jī)d盤my文件夾下的文件1.txt。File構(gòu)造函數(shù)中正確的路徑和文件名的表示是( )。 File f=new File(填代碼處); file=new FileReader(f); in=new BufferedReader(file); A) "1.txt" B) "d:my1" C)

12、"d:my1.txt" D) "d: my1.txt" 二、多選題(本大題10小題,每小題2分,共20分) 1.下面的說法正確的是( )。 A) Java 語言是面向?qū)ο蟮摹⒔忉寛?zhí)行的網(wǎng)絡(luò)編程語言。B) Java 語言具有可移植性,是與平臺無關(guān)的編程語言。 C) Java 語言可對內(nèi)存垃圾自動收集。D) Java 語言編寫的程序雖然是“一次編譯,到處運行”,但必須要java的運行環(huán)境。 2.下面main()方法的定義哪些是正確的( )? A)public static void main(String args) B)public static void

13、 main(String) C)public static void main(String args) D)public static void main(String x) 3.定義變量如下: char c='w' int i=8; long L=15; float f=8.9f; 以下賦值語句正確的是( )。 A) i=c+i; B) c=c+i; C) L=f+L; D) f=i+L+f; 4.下面哪些關(guān)鍵字能用來控制對類成員的訪問( )? A)public B)protected C)private D)default 5.面向?qū)ο蟪绦蛟O(shè)計的基本特征是( )。 A)抽

14、象 B)封裝 C)繼承 D)多態(tài) 6.下面關(guān)于類的說法正確的是( )。 A)類是 Java 語言中的一種復(fù)合數(shù)據(jù)類型。 B)類中包含數(shù)據(jù)變量和方法。 C)類是對所有具有一定共性的對象的抽象。 D) Java 語言的類只支持單繼承。 7. 編譯并運行下面的程序,運行結(jié)果為( ). public class T1 public static void main (String args) T1 a=new T1(); a.method(8); a.method(1.2f); void method(float i) System.out.println("float: "+i)

15、; void method(long i) System.out.println("long: "+i); A)程序有編譯錯誤,因為兩個method()方法必須定義為靜態(tài)(static)的。 B)程序可以編譯運行,輸出結(jié)果為: long: 8 float: 1.2 C)程序可以編譯運行,輸出結(jié)果為: float: 1.2 long: 8 D) 程序中定義的兩個參數(shù)不同的method方法稱為方法重栽。 8.下面是在命令行運行Java應(yīng)用程序A,怎樣才能在main(String args)方法中訪問單詞"first" ( )? java A the firs

16、t snow , the first snow came. A)args0 B)args1 C)args2 D)args5 9.編譯并運行下面的程序,運行結(jié)果為( ). public class A public static void main (String args) A a=new B( ); a.test(); void test() System.out.print ("A"); class B extends A void test() super.test(); System.out.println("B"); A)子類B定義了與父類A中

17、同名的方法test,java中稱為方法的覆蓋。 B)代碼可以編譯運行,并輸出結(jié)果:AB。 C)代碼可以編譯運行,并輸出結(jié)果:A。 D)子類B定義了與父類A中同名的方法test,java中稱為方法的重載。 10.下面哪個說法正確( )? A)如果某公共的接口被聲明在一個源文件中,則接口必須與源文件具有相同的名字。 B)如果源文件包含import語句,則該語句必須是除空行和注釋行外的第一個語句行。 C)如果某源文件包含package語句,則該語句必須是第一個非空、非注釋行。 D)接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abstract修飾。 三、填空題(本大題10小題,每小題1分,共10分)

18、1. 創(chuàng)建類的對象時,使用運算符_給對象分配內(nèi)存空間。 2. 定義類的構(gòu)造方法不能有返回值類型,其名稱與_名相同。 3. Java語言中關(guān)鍵字_表示雙精度類型。 4. 若有定義:float b=1.1f, 3.5f, 6.8f;,則b.length()的值是_。 5若有類定義: class B extends A 則類B是類A的_。 6接口中的成員只有靜態(tài)常量和_。 7. 在子類中使用關(guān)鍵字_做前綴可調(diào)用被子類覆蓋的父類中的方法。 8. 關(guān)鍵字_用于導(dǎo)入包中的類到程序中,供程序中使用。 9. Java語言中, 通常把可能發(fā)生異常的方法調(diào)用語句放到try塊中,并用緊跟其后的_塊來捕獲和處理異常。

19、 10. 程序中實現(xiàn)多線程的方法有兩種:繼承_類和實現(xiàn)Runnable接口。 四、閱讀程序,回答問題(本大題5小題,每小題5分,共25分) 1. (5分) 1: public class Output1 2: public static void main(String arge) 3: int i=0; 4: for ( char ch = 97; ch<113; ch+,i+) 5: if( i % 8 = 0 ) 6: System.out.println(" "); 7: System.out.print("t" +ch); 8: 9: 1

20、0: (1)程序第5、6行的if語句的功能是什么? (2分) (2)程序輸出的結(jié)果有幾行?(3分) 2. (5分) 1: import java.util.Arrays; 2: 3: public class SortArray 4: public static void main(String args) 5: String str = "size", "abs","length","class" 6: Arrays.sort(str); 7: for (int i=0; i<str.length; i+)

21、 8: System.out.print(stri+" "); 9: 10: (1)寫出程序運行后的結(jié)果。(2分) (2)方法調(diào)用str0.length()的返回結(jié)果是多少?(3分) 3. (5分) 1: /TestKeyListener.java 2: import java.applet.Applet; 3: import java.awt.*; 4: import java.awt.event.*; 5: 6: public class TestKeyListener extends Applet 7: 8: Color clr; 9: 10: public void

22、 init() 11: 12: addKeyListener( 13: new KeyAdapter() 14: public void keyTyped( KeyEvent e ) 15: if(e.getKeyChar()='r'|e.getKeyChar()='R') 16: clr=Color.red; 17: else if(e.getKeyChar()='g'|e.getKeyChar()='G') 18: clr=Color.green; 19: else if(e.getKeyChar()='b'|

23、e.getKeyChar()='B') 20: clr=Color.blue; 21: else 22: clr=Color.black; 23: setBackground(clr); 24: 25: ); 26: 27: (1)程序第15、16行實現(xiàn)的功能是什么?(2分) (2)編譯該程序,并編寫嵌入該程序字節(jié)碼文件的網(wǎng)頁后,通過支持java的瀏覽器打開網(wǎng)頁。如果敲擊鍵盤的b鍵,有什么結(jié)果?(3分) 4.定義類A和類B如下. (5分) class A int a=1; double d=2.0; void show( ) System.out.println("C

24、lass A: a="+a +"td="+d); class B extends A float a=3.0f; String d="Java program." void show( ) super.show( ); System.out.println("Class B: a="+a +"td="+d); (1) 若在應(yīng)用程序的main方法中有以下語句: A a=new A(); a.show(); 則輸出的結(jié)果如何?(2分) (2) 若在應(yīng)用程序的main方法中定義類B的對象b: A b=new B

25、(); b.show(); 則輸出的結(jié)果如何?(3分) 5. (5分) import java.util.*; public class W static String s="甲","乙","丙","丁" public static void main(String args) Stack stk=new Stack(); for(int i=0;i<s.length;i+) stk.push(si+" "); int k=0; while(k<3) System.out.print

26、(stk.pop(); k+; (1)堆棧的操作規(guī)則如何?(2分) (2)寫出程序運行后的結(jié)果。(3分) 五、根據(jù)題目要求編寫程序(本大題2小題,第1小題5分,第2小題10分,共15分) 1.請定義一個名為Card的撲克牌類,該類有兩個private訪問權(quán)限的字符串變量face和suit:分別描述一張牌的牌面值(如:A、K、Q、J、10、9、3、2等)和花色(如:“黑桃”、“紅桃”、“梅花”和“方塊”)。定義Card類中的public訪問權(quán)限的構(gòu)造方法,為類中的變量賦值;定義protected訪問權(quán)限的方法getFace(),得到撲克牌的牌面值; 定義protected訪問權(quán)限的方法getSu

27、it(),得到撲克牌的花色; 定義方法toString(),返回表示撲克牌的花色和牌面值字符串(如“紅桃A”、“梅花10”等)。 2.若應(yīng)用程序的main方法中,定義字符串?dāng)?shù)組f和s: 分別表示撲克牌的牌面值和花色;定義52個元素的Card類型數(shù)組deck,用來存放4個花色的52張牌。如下所示。 String f = "A", "2", "3", "4", "5", "6", "7", "8", "9", "

28、;10", "J", "Q", "K" ; String s = "黑桃", "紅桃", "梅花", "方塊" ; Card deck = new Card 52 ; (1)使用Card類的構(gòu)造方法給deck數(shù)組的52張牌賦值,要求數(shù)組中先存放黑桃花色的A、2、3、K;然后是紅桃花色的A、2、3、K;梅花花色的A、2、3、K;方塊花色的A、2、3、K。請寫出實現(xiàn)上述功能的程序段。 (2)請編寫模擬洗牌的程序段,即把數(shù)組deck中的撲克牌隨機(jī)打亂存

29、放順序。 程序設(shè)計基礎(chǔ)練習(xí)題1參考答案 一、 單選題(本大題15小題,每小題2分,共30分) 1B, 2B 3B 4A 5A 6A 7A 8C 9B 10A 11A 12C 13A 14A 15C 二、多選題(本大題10小題,每小題2分,共20分) 1ABCD 2ACD 3AD 4ABC 5ABCD 6ABCD 7BD 8BD 9AB 10ABCD 三、填空題(本大題10小題,每小題1分,共10分) 1.new 2.類 3.double 4. 3 5.子類 6. 抽象方法 7.super 8. import 9. catch 10. Thread 四、閱讀程序,回答問題(本大題5小題,每小題5

30、分,共25分) 1【答案】 (1)每打印8個字符,則換行。(2)輸出的結(jié)果有2行 2【答案】(1) abs class length size (2) 4 3【答案】(1) 如果敲擊鍵盤的r鍵,則將顏色對象的值賦為紅色。(2) 小程序的背景顏色變?yōu)樘m色。 4【答案】 (1) Class A: a=1 d=2.0 (2) Class A: a=1 d=2.0 Class B: a=3.0 d=Java program. 5【答案】 (1) 先進(jìn)后出 (2) 丁 丙 乙 五、根據(jù)題目要求編寫程序(本大題2小題,第1小題5分,第2小題10分,共15分) 1【答案】15分 class Card pri

31、vate String face; private String suit; public Card( String f, String s ) face = f; suit = s; protected String getSuit() return suit; protected String getFace() return face; public String toString() return face + " of " + suit; 2【答案】 (1)5分 for ( int i = 0; i < deck.length; i+ ) deck i =

32、new Card( faces i % 13 , suits i / 13 ); 【答案】(2)5分 for ( int first= 0; first< deck.length; first+ ) int second = ( int ) ( Math.random() * 52 ); Card temp = deck first; deck first = deck second ; deck second = temp; 其他回答    共 18 條【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個

33、月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少? 1.程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21. 【程序2】 題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。 1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除, 則表明此數(shù)不是素數(shù),反之是素數(shù)。 【程序3】 題目:打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個"水仙花數(shù)",因為153=1的三次方5的三次方3的三次方。 1.程序分析:利用for循

34、環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。 【程序4】 題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。 程序分析:對n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成: (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í)行第一步。 【程序5】 題目:利用條件運算符的嵌套來完成此題:學(xué)習(xí)成績>=90分的同學(xué)用A表示,60-89分之間的用B表

35、示,60分以下的用C表示。 1.程序分析:(a>b)?a:b這是條件運算符的基本例子。 【程序6】 題目:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。 1.程序分析:利用輾除法。 【程序8】 題目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。 1.程序分析:關(guān)鍵是計算出每一項的值。 【程序9】 題目:一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為"完數(shù)"。例如6=123.編程 找出1000以內(nèi)的所有完數(shù)。 【程序10】 題目:一球從100米高度自由落下,每

36、次落地后反跳回原高度的一半;再落下,求它在 第10次落地時,共經(jīng)過多少米?第10次反彈多高? 【程序11】 題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? 1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。 【程序13】 題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少? 1.程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果 【程序14】 題目:輸入某年某月某日,判斷這一天是這一年的第幾

37、天? 1.程序分析:以3月5日為例,應(yīng)該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。 【程序15】 題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。 1.程序分析:我們想辦法把最小的數(shù)放到x上,先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最小。 【程序17】 題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下 的一半零一個。到第10天早

38、上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思維的方法,從后往前推斷。 【程序18】 題目:兩個乒乓球隊進(jìn)行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。 1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除, 則表明此數(shù)不是素數(shù),反之是素數(shù)。 【程序19】 題目:打印出如下圖案(菱形) * * * * * * * 1.程序分析:先把圖形分成兩部分來看待,前四行一個規(guī)律,后三行一個規(guī)律,利用雙重 for循環(huán),第一層控制行,第二層控制列。 【程序20】 題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13.求出這個數(shù)列的前20項之和。 1.程序分析:請抓住分子與分母的變化規(guī)律。 【程序21】 題目:求1+2!+3!+.+20!的和 1.程序分析:此程序只是把累加變成了累乘。 【程序23】 題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大? 1.程序分

溫馨提示

  • 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

提交評論