第一次月考詳細解析_第1頁
第一次月考詳細解析_第2頁
第一次月考詳細解析_第3頁
第一次月考詳細解析_第4頁
第一次月考詳細解析_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1.(單選題)下列數(shù)組聲明語句中,錯誤的是:()。 A.int arr = new int; B.int arr = new int;/缺少數(shù)組長度 C.int arr = ; D.int arr = new int2;正確答案:B2.(單選)class Card下列不屬于Card類構造方法的是:() A.Card() B.public Card() C.public void Card()/構造方法沒有返回值,但也不能寫void D.private Card()正確答案:C3.(單選)下面不屬于Java語言特點的是: A.平臺無關 B.面向?qū)ο?C.支持指針類型/不是java的特點,是c語言

2、的 D.垃圾回收機制正確答案:C4.(單選)下列選項中的類,能正確實現(xiàn)接口和java.lang.Clonable接口的是()。 A.public class Session implements Runnable, Clonable public void run(); /實現(xiàn)接口,要重寫接口的抽象方法public Object clone(); B.public class Session implements Runnable, implements Clonable /寫一個implements即可 public void run() / do something */ public O

3、bject clone() / make a copy */ C.public class Session implements Runnable, Clonable public void run() / do something */ public Object clone() /* make a copy */ D.public class Session extends Runnable, Clonable /接口不是用來繼承的 public void run() ; public Object clone(); 正確答案:C5.(單選)下列屬于不合法Java標識符的是()。/ jav

4、a 標識符命名規(guī)范: 字母、數(shù)字、$、_(下劃線),不可用數(shù)字開頭,不能是java 的關鍵字 A._mem B.12a/不能以數(shù)字開頭 C.M12 D.$12正確答案:B6.(單選)下列Java標識符,錯誤的是() A._sys_varl B.$change C.User_name D.1_file/不能以數(shù)字開頭正確答案:D7.(單選)Java程序的執(zhí)行過程中用到一套JDK工具,其中javac.exe是指()。 A.Java語言編譯器 B.Java字節(jié)碼解釋器 C.Java文檔生成器 D.Java類分解器正確答案:A8.(單選)運行下列代碼: int oneArr = 2, 11, 26,

5、27, 37, 44, 48, 60 ; int twoArr = 19, 35, 49, 55, 58, 75, 83, 84, 91, 93 ; int threeArr = new intoneArr.length + twoArr.length; int p = 0, q = 0; while (p oneArr.length & q twoArr.length) threeArrp + q = oneArrp twoArrq ? oneArrp+ : twoArrq+; if (p oneArr.length) System.arraycopy(oneArr, p, threeArr

6、, p + q, oneArr.length - p); else if (q 1;/需要強轉(zhuǎn)byte b=(byte)(b11); D.byte b1 = 10; byte b=+b1;正確答案:D12.(單選)類Super及Sub定義如下: public class Super private void f() System.out.println(Super.f(); public void g() f(); public void k() f(); public class Sub extends Super private void f() System.out.println(Su

7、b.f(); public void k() f(); 運行下列語句: Super obj = new Sub();/創(chuàng)建了一個obj的引用變量指向Sub對象,類型為Superobj.g();/能點出來什么看類型,所以這時調(diào)的g方法應該是訪問Super的g()方法,g方法里調(diào)f()方法,父類的f()方法為private為不可重寫。雖然子類中看上去重寫了,其實是兩個無關f()方法,只是方法名而已。在多態(tài)調(diào)用的時候,只會直接找父類的f()方法.所以調(diào)用f()方法時,實際是調(diào)用父類的private。輸出:Super.f() obj.k(); /調(diào)k()方法,子類重寫后的版本,它為一個公共方法,該公共

8、方法再調(diào)用本類的私有方法.輸出:Sub.f() 輸出的結果是:()。 A.Sub.f() Sub.f() B.Sub.f() Super.f() C.Super.f() Sub.f() D.Super.f() Super.f()正確答案:C13.(單選)關于下列代碼說法正確的是: class ClassA public int numberOfinstances; protected ClassA(int numberOfinstances) this.numberOfinstances = numberOfinstances; public class ExtendedA extends C

9、lassA private ExtendedA(int numberOfinstances) super(numberOfinstances); public static void main(String args) ExtendedA ext = new ExtendedA(420); /new對象,走進子類構造方法,執(zhí)行代碼前先調(diào)用父類的有參構造方法System.out.print(ext.numberOfinstances); A.運行后,輸出420 B.運行時拋出異常 C.編譯錯誤,所有的構造器必須是public的 D.編譯錯誤,構造器不能是private的正確答案:A/子類(Sub

10、 class)可以繼承父類(Super class)的成員變量及成員方法。屆時,子類將具有父類的成員注意補充:java構造方法的修飾符:public,protected,默認,private四種都可以使用public修飾構造方法,那么所有的類都可以實例化這個類。使用private修飾構造方法,那么所有的類都不可以實例化使用這個類。14.(單選)關于下列代碼說法正確的是: public class A private int counter = 0; public static int getInstanceCount() return counter; public A() counter+;

11、 public static void main(String args) A a1 = new A(); A a2 = new A(); A a3 = new A(); System.out.println(A.getInstanceCount(); A.該類編譯失敗 B.輸出:1 C.輸出:3 D.輸出:0正確答案:A/在static方法中無法返回非static的變量由于static在調(diào)用時沒有具體的對象,因此在static方法中不能對非static成員(對象成員)進行訪問。15.(單選)下面for語句,存在編譯錯誤的是()。 A.for( ; ; )/相當于while(true),死循環(huán)

12、 B.for(int i=0; i 100;i+) C.for(int i = 0, j=0; ;i+,j+)/相當于while(true),死循環(huán) D.for(int i = 0; i 10)/缺循環(huán)變量的變化正確答案:D16.(單選)請看下列代碼: interface Foo int bar(); public class Sprite public int fubar(Foo foo) return foo.bar(); public void testFoo() fubar( ); 使類Sprite編譯通過,在處應填入的代碼是: A.Foo public int bar() retur

13、n 1; B.new Foo public int bar() return 1; C.new Foo() public int bar()return 1; D.new class Foo public int bar() return 1; 正確答案:C/ 接口無法實例化:fubar方法中需要傳入一個Foo類型的參數(shù),但是Foo只是一個接口,無法直接實例化對象,因此在這里我們選擇了匿名內(nèi)部類進行實例化17.(單選)請看下列代碼: public class Plant private String name; public Plant(String name) = nam

14、e; /Plant中的有參的構造方法 public String getName() return name; class Tree extends Plant public void growFruit() public void dropLeaves() 下列說法正確的是:A. 在Tree類中添加代碼:public Tree() Plant(); ,編譯將通過/子類構造方法中調(diào)用父類的構造方法,寫法是:super();不寫的話系統(tǒng)會默認有 B.在Plant類中添加代碼:public Plant() Tree(); ,編譯將通過 C.在Plant類中添加代碼:public Plant() t

15、his(”fern”); ,編譯將通/無參構造方法中調(diào)用有參的構造方法,可以。格子類的時候,有類似的例子 D.在Plant類中添加代碼:public Plant() Plant(”fern”); ,編譯將通過正確答案:C18.(單選)請看下列代碼編譯和運行的結果是()。 interface DeclareStuff public static final int EASY = 3; void doStuff(int t); public class TestDeclare implements DeclareStuff public static void main(String args)

16、int x = 5; new TestDeclare().doStuff(+x); /調(diào)用方法,把+x(為6)傳給了形參s,這時s為6s = 6 + 3 + 7 void doStuff(int s) /編譯錯誤,方法缺public 修飾,接口的方法默認都是由public abstract 修飾的 s += EASY + +s; /等同于s = s + EASY + (+s)/用debug調(diào)試,非常容易看到結果的變化System.out.println(s= + s); A.s=14 B.s=16 C.s=10 D.編譯失敗正確答案:D/如果沒有編譯錯誤,能輸出s=1619.(單選)下列關于I

17、DE開發(fā)環(huán)境Eclipse,說法錯誤的是:()。 A.Eclipse可以通過插件(plugin)的方式擴展其功能。 B.Eclipse聯(lián)盟是由IBM公司捐資組建的。 C.Eclipse使用了SWT圖形界面技術。 D.Eclipse的運行不需要有JRE的支持。正確答案:D/這題都要講解的話,是在侮辱你的智商20.(單選)下列代碼的輸出結果是: public class Blip protected int blipvert(int x) return 0; class Vert extends Blip 在處填入選項中的代碼,使Vert類沒有編譯錯誤的是()。/繼承,可以對方法進行重寫,兩同兩小

18、一大原則: A.public int blipvert(int x) return 0; B.private int blipvert(int x) return 0; /權限要比父類大或相等 C.private void blipvert(int x) return 0; /權限和返回類型都錯了 D.protected long blipvert(int x) return 0; /如果返回值是基本類型要保持一致正確答案:A21.(單選)下列表達式中,可以得到精確結果的是()。 A.double d1 = 3.0 - 2.6; B.double d4 = 2.5 * 1.5; C.doubl

19、e d2 = 30/300; D.double d3 = 1/2 + 0.5;/1/2是取整,為0,沒法得到0.5正確答案:B22.(單選)下列代碼的輸出結果是()。 public static void main(String args) int one=new int4,6,8; int two=new int1,3,5,7,9; System.arraycopy(one, 1, two, 2, 2); System.out.println(Arrays.toString(two); A.1, 3, 7, 4, 6 B.1, 3, 5, 7, 8 C.1, 3, 5, 6, 9 D.1,

20、3, 6, 8, 9正確答案:Dsrc:源數(shù)組srcPos:源數(shù)組中的起始位置dest:目標數(shù)組destPos: 目標數(shù)組中的起始位置length:要復制的數(shù)組元素的數(shù)量arraycopy(Object src, int srcPos,Object dest, int destPos, int length)23.(單選)下列數(shù)組聲明語句中,錯誤的是:()。 A.int arr = new int8; B.int arr = new int8; C.int arr = ; D.int arr = new int;正確答案:B24.(單選)下列代碼編譯和運行的結果是: public static

21、 void main(String args) String elements = for, tea, too ; String first = (elements.length 0) ? elements0 : null;true System.out.println(first); A.編譯出錯 B.輸出:tea C.輸出:for D.輸出:null正確答案:C25.(單選)運行下面的程序: int a = 100; int b = 200; a = a + b; /a = 100+200 = 300;b = a - b; /b = 300-200 = 100;a = a - b; /a

22、= 300 100 = 200;System.out.println(a= + a + , b= + b); 輸出的結果是:()。 A.a=100, b=300 B.a=100, b=200 C.a=200, b=100 D.a=300, b=200正確答案:C26.(單選)下列關于JVM說法,錯誤的是()。 A.JVM通過專門的線程實現(xiàn)內(nèi)存的回收。 B.使用java命令時,可以通過參數(shù)來設置分配JVM的內(nèi)存大小。 C.JRE包括JVM及Java核心類庫。 D.目前主流版本JVM通過純解釋的方式運行Java字節(jié)碼。正確答案:D JVM先通過javac進行編譯,再將編譯后的字節(jié)碼文件通過java

23、指令進行解釋運行,如果純解釋的話根本無法識別源碼27.(單選)請看下列代碼: interface Data public void load(); abstract class Info public abstract void load(); 下列選項中,能正確使用Data接口和Info類的是()。 A.public class Employee extends Info implements Data public void load() /*do something*/ B.public class Employee implements Info extends Data public

24、 void load() /*do something*/ /要先繼承后實現(xiàn) C.public class Employee implements Info extends Data public void Data.load() /*d something */ public void load() /*do something */ D.public class Employee extends Info implements Data public void load() /*do something */ public void Info.load() /*do something*/

25、 正確答案:A先繼承后實現(xiàn),排除BC,D中Info.load()錯誤,靜態(tài)方法才可以通過類名點方法注意:接口中的load和Info中的load的簽名完全一致,同時沒有父子繼承關系,所以load方法既不構成重載,也不構成重寫。28.(單選)類A,B的定義如下: class A private int a = 100; A() System.out.print(A(); System.out.println(a); class B extends A private int a = 200; B() System.out.print(B(); System.out.println(a); 運行下面

26、的代碼: new B(); 實例化B類對象,程序調(diào)用B類無參構造器,執(zhí)行代碼前先隱式調(diào)用父類無參構造輸出的結果是:()。 A.A() 100 B() 200 B.A() 200 B() 200 C.B() 200 A() 100 D.B() 200 A() 200正確答案:A29.(單選)如下方法聲明中,錯誤的是()。 A.public void say() System.out.print(“Hi”); B.public void say() System.out.print(“Hi”); return; C.public int say() System.out.print(“Hi”);

27、return; 缺返回值 D.public int say() System.out.print(“Hi”); return 0; 正確答案:C30.(單選)下列代碼編譯和運行的結果是()。 public class A public void start() System.out.println(TestA); public class B extends A public void start() System.out.println(TestB); public static void main(String args) (A) new B().start(); (父類)new 子類()

28、,實例化B類對象然后被強轉(zhuǎn)為父類類型,再調(diào)用start的方法,但是當子類重寫了父類的方法后,該重寫方法被調(diào)用時(無論是通過子類的引用調(diào)用還是通過父類的引用調(diào)用),運行的都是子類重寫后的版本 A.輸出:TestA B.輸出:TestB C.輸出:TestA TestB D.編譯錯誤正確答案:B31.(單選)下列代碼的運行結果是: public class GoTest public static void main(String args) Sente a = new Sente();a.go();Goban b = new Goban(); b.go();調(diào)子類重寫的版本Stone c = n

29、ew Stone();c.go(); 繼承父類的方法,沒有重寫,調(diào)父類中的go方法 爺爺 class Sente implements Go 實現(xiàn)了Go接口,重寫了go方法public void go() System.out.println(go in Sente); 父親 class Goban extends Sente public void go() System.out.println(go in Goban); 兒子 class Stone extends Goban implements Go interface Go public void go(); A.go in Gob

30、an go in Sente go in Sente B.go in Sente go in Sente go in Goban C.go in Sente go in Goban go in Goban D.go in Goban go in Goban go in Sente正確答案:C32.(單選)程序的執(zhí)行結果是()。 public class Test int x; public static void main(String args) Test t = new Test(); t.x=5; change(t); System.out.println(t.x); public st

31、atic void change(Test t) t.x=3; A.5 B.3 C.0 D.4正確答案:B x為成員變量,作用域為整個Test類33.(單選)分析如下語句,說法錯誤的是()。 A.break可用于跳出循環(huán),當多層嵌套時,只用于跳出一層循環(huán) B.break即可以出現(xiàn)在循環(huán)語句中也可以出現(xiàn)在switch語句中 C.continue可以用于跳出循環(huán) D.continue不能出現(xiàn)在switch語句中正確答案:Cbreak”語句用來結束循環(huán),即不再執(zhí)行后邊的所有循環(huán)?!癱ontinue”語句用來結束當前循環(huán),并進入下一次循環(huán),即僅僅這一次循環(huán)結束了,不是所有循環(huán)結束了,后邊的循環(huán)依舊進行

32、。34.(單選)請看下列代碼編譯和運行的結果是: package packagea; public class Message String getText() return text; package packageb; public class XMLMessage extends packagea.Message String getText() return text; public static void main(String args) System.out.println(new XMLMessage().getText(); 直接new對象了 A.text B.text C.

33、拋出運行時異常 D.代碼public class XMLMessage extends packagea.Message行,編譯錯誤正確答案:B這題中XMLMessage繼承Message是一個幌子,在println方法中我們new出來得是XMLMessage對象,直接調(diào)用XMLMessage的getText方法35.(單選)程序執(zhí)行的結果是()。 public class Test String name=Tom; public Test(String name) =name; /沒有this public static void main(String args) Tes

34、t t = new Test(Jack); System.out.println(); /直接訪問成員變量 A.null B.Tom C.Jack D. 正確答案:B36.(單選)請看下列代碼的輸出結果是: public class Bootchy int bootch; String snootch; public Bootchy() 構造方法的重載this(snootchy); 第一先進來這里System.out.print(first );最后輸出 public Bootchy(String snootch) this(420, snootchy);第二進這里 System.

35、out.print(second );其次輸出 public Bootchy(int bootch, String snootch) this.bootch = bootch; 第三進這里this.snootch = snootch; System.out.print(third ); 首先輸出 public static void main(String args) Bootchy b = new Bootchy(); System.out.print(b.snootch + + b.bootch); A.first second third snootchy 420 B.third sec

36、ond first snootchy 420 C.third first second snootchy 420 D.first second first third snootchy 420正確答案:B37.(單選)下列代碼的輸出結果是:()。 public class StaticFoo int num; static int x; public static void main(String args) StaticFoo foo1 = new StaticFoo (); foo1.num+; foo1.x+; StaticFoo foo2 = new StaticFoo (); foo

37、2.num+; foo2.x+; StaticFoo foo3 = new StaticFoo (); foo3.num+; foo3.x+; StaticFoo.x+; System.out.print(foo3.num+,); System.out.println(foo3.x); A.3,3 B.1,3 C.3,4 D.1,4正確答案:D靜態(tài)變量,也就是在變量前加了static 的變量;也叫類變量,只有一份,存在方法區(qū)實例變量也叫對象變量,即沒加static 的變量;區(qū)別在于:靜態(tài)變量和實例變量的區(qū)別在于:靜態(tài)變量是所有對象共有,其中一個對象將它值改變,其他對象得到的就是改變后的結果;而

38、實例變量則屬對象私有,某一個對象將其值改變,不影響其他對象38.(單選)請看下列程序的輸出結果是: public class Item private String desc; public String getDescription() return desc; public void setDescription(String d) desc = d; public static void modifyDesc(Item item, String desc) item = new Item(); item.setDescription(desc); public static void m

39、ain(String args) Item it = new Item();it.setDescription(Gobstopper); /desc = GobstopperItem it2 = new Item(); it2.setDescription(Fizzylifting);/desc = FizzyliftingmodifyDesc(it, Scrumdiddlyumptious); /desc = ScrumdiddlyumptiousSystem.out.println(it.getDescription(); System.out.println(it2.getDescrip

40、tion();/set方法是為對象中的屬性賦值;get方法是從對象中獲取屬性值A.Scrumdiddlyumptious Scrumdiddlyumptious B.Scrumdiddlyumptious Fizzylifltng C.Gobstopper Scrumdiddlyumptious D.Gobstopper Fizzylifting正確答案:Ditem=new Item();之后更改的變量內(nèi)存地址不會對外部那個item的地址進行修改,在modifyDesc()自然就不會更改外部那個變量的值。傳遞對象一般是引用,即地址,如果在里面重新new了后的變量地址是相當另外一個變量不會影響外

41、面那個變量地址,這樣那個內(nèi)存地址的值就不會被改變了,外面變量地址沒改變,指向的仍是開始所指向的對象39.(單選)下面的代碼用于對數(shù)組arr實現(xiàn)冒泡排序: for (int i = 0; i i; j-) if (arrj 0; j-) if (arrj arrj - 1) int temp = arrj; arrj = arrj - 1; arrj - 1 = temp; isSwap = true; C.for (int j = i + 1; j arr.length; j+) if (arrj arrj - 1) int temp = arrj; arrj = arrj - 1; arrj

42、 - 1 = temp; isSwap = true; D.for (int j = i; j arr.length; j+) if (arrj arrj - 1) int temp = arrj; arrj = arrj - 1; arrj - 1 = temp; isSwap = true; 正確答案:A太恐怖了,這代碼,自己放eclipse運行一下吧40.(單選)請看下列代碼: class Payload private int weight; public Payload(int wt) weight = wt; public Payload() public void setWeig

43、ht(int w) weight = w; public String toString() return Integer.toString(weight); public class TestPayload static void changePayload(Payload p) public static void main(String args) Payload p = new Payload(); p.setWeight(1024);weight = 1024 changePayload(p);把引用的地址傳進去,然后再通過調(diào)用set的方法改變這個地址指向的對象的內(nèi)容,把weight

44、值由1024改為420 System.out.println(The value of p is + p); /這里直接輸出p指向的對象,會自動調(diào)用toString的方法假設運行后輸出“The value of p is 420”,那么處應填入代碼是: A.p.setWeight(420); B.Payload.setWeight(420); C.p = new Payload(420); D.p = new Payload(); p.setWeight(420);正確答案:A41.(單選)下列代碼的輸出結果是()。 abstract class Vehicle public int spee

45、d() return 0; class Car extends Vehicle public int speed() return 60; class RaceCar extends Car public int speed() return 150; public class TestCar public static void main(String args) RaceCar racer = new RaceCar(); Car car = new RaceCar(); Vehicle vehicle = new RaceCar(); System.out.println(racer.s

46、peed() + , + car.speed() + , + vehicle.speed(); A.0, 0, 0 B.150, 60, 0 C.150, 150, 150 D.拋出運行時異常正確答案:C當子類重寫了父類的方法后,該重寫方法被調(diào)用時(無論是通過子類的引用調(diào)用還是通過父類的引用調(diào)用),運行的都是子類重寫后的版本42.(單選)題目: 下列代碼的輸出結果是: ()。 public class A public void info() System.out.println(A info); public class B extends A public void info() Syst

47、em.out.println(B info); public static void main(String args) B b=new B(); A a=b;a. info(); A.B info A info B.A info B info C.A info D.B info正確答案:D當子類重寫了父類的方法后,該重寫方法被調(diào)用時(無論是通過子類的引用調(diào)用還是通過父類的引用調(diào)用),運行的都是子類重寫后的版本43.(單選)請看下列代碼: class ClassA class ClassB extends ClassA class ClassC extends ClassA public class Test public static void main(String args) ClassA p0 = new ClassA(); ClassB p1 = new ClassB(); ClassC p2 = new ClassC(); ClassA p3 = new ClassB();ClassA p4 = new ClassC(); 可以在處,填入的代碼正確的是() A.p0 = p1;A類和B類有繼承關系 B

溫馨提示

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

評論

0/150

提交評論