java基礎(chǔ)考試題及答案_第1頁
java基礎(chǔ)考試題及答案_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余23頁可下載查看

下載本文檔

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

文檔簡介

1、新員工考試一、 選擇題(共30題,每題2分)1. 下面哪些是合法的標(biāo)識符?(多選題)A. $personsB. TwoUsersC. *pointD. thisE. _endline答案 A,B,E分析 Java的標(biāo)識符可以以一個(gè)Unicode開始,后續(xù)字符可以是前面的符號和數(shù)字,沒有長度限制,大小寫敏感,不能是保留字(this2. 哪些是將一個(gè)十六進(jìn)制值賦值給一個(gè)long型變量?(單選題)A. long number = 345L;B. long number = 0345;C. long number = 0345L;D. long number = 0 x345L答案 D分析 十六進(jìn)制數(shù)

2、以0 x型數(shù)以因?yàn)樾懙膌和數(shù)字13. 下面的哪些程序片斷可能導(dǎo)致錯(cuò)誤? (多選題)A. String s = Gone with the wind;String t = good ;String k = s + t;B. String s = Gone with the wind;String t;t = s3 + one;C. String s = Gone with the wind;String standard = s.toUpperCase();D. String s = home directory;String t = s - directory;答案 B,D分析A:Strin

3、g類型可以直接使用+進(jìn)行連接運(yùn)算。是一種其值的某個(gè)元素,錯(cuò)誤。C:toUpperCase()方法是String對象的一個(gè)方法,作用是將字符串的內(nèi)容全部轉(zhuǎn)換為大寫并返回轉(zhuǎn)換后的結(jié)果(StringD:String類型不能進(jìn)行減(-)運(yùn)算,錯(cuò)誤。4. point x處的哪些聲明是句法上合法的? (多選題)class Person private int a;public int change(int m) return m; public class Teacher extends Person public int b;public static void main(String arg)Pers

4、on p = new Person();Teacher t = new Teacher();int i;/ point xA. i = m;B. i = b;C. i = p.a;D. i = p.change(30);E. i = t.b.答案 D,E分析A:m沒有被聲明過,不能使用。B:雖然b是類Teacher的public成員變量,但是在靜態(tài)方法中不能使用類中的非靜態(tài)成員。C:a是類Person的private成員,在類外不能直接引用。D:change(int m)方法是public方法,并且返回一個(gè)int型值,可以通過類的實(shí)例變量p引用并賦值給一個(gè)int型變量。E:b是類Teacher

5、的public成員變量,且是int型,可以通過類的實(shí)例變量t引用并賦值給一個(gè)int型變量。5. 下面的代碼片斷(多選題):1) public void create() 2) Vector myVect;3) myVect = new Vector();4) 下面的哪些陳述正確?A. 第二行的聲明不會為變量myVect分配內(nèi)存空間。B. 第二行的聲明分配一個(gè)到Vector對象的引用的內(nèi)存空間。C. 第二行語句創(chuàng)建一個(gè)Vector類對象。D. 第三行語句創(chuàng)建一個(gè)Vector類對象。E. 第三行語句為一個(gè)Vector類對象分配內(nèi)存空間。答案 A,D,E分析要為一個(gè)新對象分配空間必須執(zhí)行new Xx

6、x()調(diào)用,new調(diào)用執(zhí)行以下的操作:1為新對象分配空間并將其成員初始化為0或者null。int a=10;在第一步后a=0 ,執(zhí)行到第二步后a=10)3執(zhí)行構(gòu)造函數(shù)。4變量被分配為一個(gè)到內(nèi)存堆中的新對象的引用。6. 下面的哪些答案可以用以表示八進(jìn)制值8? (單選題)A. 010B. 0 x10C. 08D. 0 x8答案 A分析八進(jìn)制值以0開頭,以0 x開頭的為十六進(jìn)制值,八進(jìn)制中不能出現(xiàn)數(shù)字8,最大只有7。7.1) class Person 2)3)public void printValue(int i, int j) /*/ public void printValue(int i)/

7、*.*/ 4) 5) public class Teacher extends Person 6)public void printValue() /*.*/ public void printValue(int i) /*.*/public static void main(String args)Person t = new Teacher();t.printValue(10);7)8)9)10)11)12) 第十行的聲明將調(diào)用哪些方法? (單選題)A. on line 2B. on line 3C. on line 6D. on line 7答案 D分析 變量t是一個(gè)Person對象,但

8、是它是用Teacher實(shí)例化的,這個(gè)問題涉及到 java 的編譯時(shí)多態(tài)和運(yùn)行時(shí)多態(tài)的問題,就編譯時(shí)多態(tài)來說,t實(shí)際上是一個(gè)Person類,這涉及到類型的自動轉(zhuǎn)換(將一個(gè)子類的實(shí)例賦值給一個(gè)父類的變量是不用進(jìn)行強(qiáng)制類型轉(zhuǎn)換,反之則需要果對 t 調(diào)用了子類中新增的方法則造成編譯時(shí)錯(cuò)誤編譯將不能通過,而在運(yùn)行時(shí),運(yùn)行時(shí)系統(tǒng)將根據(jù) t 實(shí)際指向的類型調(diào)用對應(yīng)的方法,對于本例來說,t.print(10)將調(diào)用t實(shí)際指向的Teacherjava時(shí)可能是一個(gè)子類實(shí)例。8. if (x0) System.out.println(first); else if (x-3) System.out.println(

9、second); else System.out.println(third); x的取值在什么范圍內(nèi)時(shí)將打印字符串second。A. x 0B. x -3C. x = -3D. x -3答案 D分析 x0時(shí)打印third。這個(gè)題目沒有什么難的,只要理解if語句的語法就可以了。9. 下面的哪些賦值語句是不正確的(單選題)A. float f = 11.1;B. double d = 5.3E12;C. double d = 3.14159;D. double d = 3.14D.答案 A浮點(diǎn)數(shù)的賦值是帶有小數(shù)點(diǎn)的數(shù)字缺省是double型的,如果在浮點(diǎn)數(shù)后面加f或者F則是d或者D則是點(diǎn)數(shù)也是do

10、uble型的,而double的精度比float高,將一個(gè)高精度的double賦值給一個(gè)低精度的float時(shí)需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,反之則不需要。10.給出下面的不完整的類代碼: (單選題)class Person String name, department;int age;public Person(String n) name = n; public Person(String n, int a) name = n; age = a; public Person(String n, String d, int a) / doing the same as two arguments ver

11、sion of constructor/ including assignment name=n,age=adepartment = d;下面的哪些表達(dá)式可以加到構(gòu)造方法中的doing the same A. Person(n,a);B. this(Person(n,a);C. this(n,a);D. this(name,age).答案 C分析:在同一個(gè)類的不同構(gòu)造方法中調(diào)用該類的其它構(gòu)造方法需要使用this()因此答案A是不行的,B的語法就是錯(cuò)誤的,D的錯(cuò)誤在于在父類型的構(gòu)造函數(shù)法中不能將成員作為參數(shù)引用。11.public void test() / (多選題)try oneMethod

12、();System.out.println(condition 1); catch (ArrayIndexOutOfBoundsException e) System.out.println(condition 2); catch(Exception e) System.out.println(condition 3); finally System.out.println(finally);在oneMethod()方法運(yùn)行正常的情況下將顯示什么?A. condition 1B. condition 2C. condition 3D. finally答案 ad分析:如果 try 塊中的語句在執(zhí)

13、行時(shí)發(fā)生異常,則執(zhí)行從該處中斷而進(jìn)入catch塊,根據(jù)異常的類型進(jìn)行匹配,最前面的優(yōu)先進(jìn)行匹配比較,只要該異常是catch中指定的異常的子類就匹配成功進(jìn)而執(zhí)行相應(yīng)的catch中的內(nèi)容,而finally塊中的內(nèi)容無論是否發(fā)生異常都將被執(zhí)行。12.public class Test void printValue(int m)do System.out.println(The value is+m);while( -m 10 )public static void main(String arg) int i=10;Test t= new Test();t.printValue(i);輸出將是什么

14、?A. The value is 8B. The value is 9C. The value is 10D. The value is 11答案:c此題考察的是do while循環(huán)和 - 最少被執(zhí)do中的內(nèi)容后判斷while中的條件是否為true的話就再執(zhí)行 do 中的內(nèi)容,然后再進(jìn)行判斷,以此類推直到 while 的判斷為false 時(shí)退出循環(huán)執(zhí)行循環(huán)后面的內(nèi)容,而操作符的規(guī)則是在變量右邊的 -再運(yùn)算。13.1) public void modify() 2) int i, j, k;3) i = 100;4) while ( i 0 ) 5) j = i * 2;6) System.ou

15、t.println ( The value of j is + j );7) k = k + 1;8) i-;9) 10) 哪些行在編譯時(shí)可能產(chǎn)生錯(cuò)誤。A. line 4B. line 6C. line 7D. line 8答案 c在使用前必須顯式初始化,而代碼中的變量k在使用前沒有。14.1) String str = null;2) if (str != null) & (str.length() 10) 3)4) System.out.println(more than 10);5) else if (str != null) & (str.length() 5) 6)System.ou

16、t.println(less than 5);7) 8) else System.out.println(end); 哪些行將導(dǎo)致錯(cuò)誤?A. line 1B. line 2C. line 5D. line 8答案 c此題需要將代碼仔細(xì)看清楚,查詢沒有邏輯錯(cuò)誤,if else的使用沒有問題,也沒有拼寫錯(cuò)誤,錯(cuò)誤在于第5行的“與”操作符的使用,邏輯操作符(logicallogicalboolan)的值,而位邏輯操作符的左右操作數(shù)都是整型(integral)值。15.public class Personstatic int arr = new int10;public static void ma

17、in(String a) System.out.println(arr1;)那個(gè)敘述是對的。A. 編譯時(shí)將發(fā)生錯(cuò)誤。B. 編譯時(shí)正確但是運(yùn)行時(shí)出錯(cuò)。C. 輸出為0。D. 輸出為null答案 cint型數(shù)組是類對象,它在類被加載時(shí)完成初始化,在前面題目中已經(jīng)有敘述,由于是原始數(shù)據(jù)類型int,其初始值為0。16.public class Parent /(多選題)public int addValue( int a, int b) int s;s = a+b;return s;class Child extends Parent 哪些方法可以加入類Child中?A. int addValue( i

18、nt a, int b )/ do something.B. public void addValue ()/ do something.C. public int addValue( int a )/ do something.D. public int addValue( int a, int b )throws MyException /dosomething.答案 bc此題涉及方法重載(override)以及類派生時(shí)方法重寫的規(guī)則。方法重載的規(guī)則是:一、參數(shù)列表必須不同,個(gè)數(shù)的不同完全可以,如果個(gè)數(shù)相同則參數(shù)類型的不同不能引起歧意,例如int 和long,float和double就不能

19、作為唯一的類型不同;二、返回值可以不同,但是不能是重載時(shí)唯一的不同點(diǎn)(這點(diǎn)和一樣時(shí)才能說是重寫,否則就是重載,java 中方法重寫的一個(gè)重要而且容易被a的錯(cuò)誤就是重寫的訪問權(quán)限比被重寫的方法的低,而b,c的錯(cuò)誤在于比被重寫的方法拋棄了更多種類的異常。17.共有成員變量MAX_LENGTH是一個(gè)intA. public int MAX_LENGTH=100;B. final int MAX_LENGTH=100;C. final public int MAX_LENGTH=100;D. public final int MAX_LENGTH=100。答案 dJava中共有變量使用public定義

20、,常量變量使用final,另外注意的publicstaticfinalintvarial_a=100;這個(gè)順序不能錯(cuò),這和c+中也是不同的。而答案c恰恰錯(cuò)在修飾符的順序上。18.下面的那個(gè)java源文件代碼片斷是對的? (多選題)A. package testpackage;public class Test/do something.B. import java.io.*;package testpackage;public class Test/ do something.C. import java.io.*;class Person/ do something.public class

21、 Test/ do something.D. import java.io.*;import java.awt.*;public class Test/ do something.答案 acdjava中的packagepackage源文件中可以有幾個(gè)類,但最多只能有一個(gè)是public的,如果有,則源文件的文件名必須和該類的類名相同。19.下面的哪些聲明是合法的? (多選題)A. long l = 4990;B. int i = 4L;C. float f = 1.1;D. double d = 34.4;E. double t = .答案 ade的數(shù)字被認(rèn)為是int型數(shù),帶有小數(shù)點(diǎn)的數(shù)被認(rèn)為是

22、double型的數(shù),其它的使用在數(shù)字后面加一個(gè)字母表示數(shù)據(jù)類型,加l或者L是long型,加d或者D是double,加f或者F是float,可以將低精度的數(shù)字賦值給高精度的變量,反之int,short,byte賦值給long型時(shí)不需要顯式long型數(shù)賦值給byte,short,int20.public class Parent int change() class Child extends Parent 哪些方法可被加入類Child?A. public int change()B. int chang(int i)C. private int change()D. abstract int c

23、hang()答案 ab這個(gè)題目的問題在第 35 題中有詳盡的敘述。需要注意的是答案 D的內(nèi)容,子類可以重寫父類的方法并將之聲明為抽象方法,但是這引發(fā)的問D都不能滿足。21.1) class Parent 2)private String name;3)4)public Parent()5) public class Child extends Parent 6)7)8)private String department;public Child() public String getValue() return name; public static void main(String arg)

24、 Parent p = new Parent();9)10)11)12) 哪些行將導(dǎo)致錯(cuò)誤?A. line 3B. line 6C. line 7D. line 8E. line 10答案 d第8行的量類型及其作用域的敘述22.變量result是一個(gè)boolean型的值,下面的哪些表達(dá)式是合法的?(多選題)A. result = true;B. if ( result ) / do something. C. if ( result!= 0 ) / so something. D. result = 1答案 abJava的boolean不同于c或者c+中的布爾值,在java中boolean值就

25、是boolean值,不能將其它類型的值當(dāng)作boolean處理。23.類Teacher和Student都是類Person的子類(單選題)Person p;Teacher t;Student s;P,t和s都是非空值。if(t instanceof Person) s = (Student)t; 這個(gè)if語句導(dǎo)致的結(jié)果是什么A. 將構(gòu)造一個(gè)Student對象。B. 表達(dá)式合法。C. 編譯時(shí)非法。D. 編譯時(shí)合法而在運(yùn)行時(shí)可能非法。答案 cinstanceof 操作符的作用是判斷一個(gè)變量是否是右操作數(shù)指出的類的一個(gè)對象,由于java語言的多態(tài)性使得可以用一個(gè)子類的實(shí)例賦值給一個(gè)父類使用instanc

26、eof了。當(dāng)左操作數(shù)是右操作數(shù)指出的類的實(shí)例或者是子類的實(shí)例時(shí)都返回真,如果是將一個(gè)子類的實(shí)例賦值給一個(gè)父類的變量,用 instanceof判斷該變量是否是子類的一個(gè)實(shí)例時(shí)也將返回真。此題中的if語句的判斷沒有問題,而且將返回真,但是后面的類型轉(zhuǎn)換是非法的,因?yàn)?t 是一個(gè) TeacherStudent果是將t轉(zhuǎn)換為一個(gè)Person對象則可以,而且不需要強(qiáng)制轉(zhuǎn)換。這個(gè)錯(cuò)誤在編譯時(shí)就可以發(fā)現(xiàn),因此編譯不能通過。24.public class Samplelong length;public Sample(long l) length = l; public static void main(St

27、ring arg)Sample s1, s2, s3;s1 = new Sample(21L);s2 = new Sample(21L);s3 = s2;long m = 21L;哪個(gè)表達(dá)式返回true。A. s1 = s2;B. s2 = s3;C. m = s1;D. s1.equals(m).答案 b前面已經(jīng)敘述過=操作符和String的equals()方法的特點(diǎn),另外=操作符兩邊的操作數(shù)必須是同一類型的(可以是父子類之間)才能編譯通過。25.給出下面有關(guān)ListList l = new List(6,true); 6 6 答案 acList該值為0則顯示4行,第二個(gè)參數(shù)是指定該組件是否

28、可以多選,如果值為true則是可以多選,如果不指定則缺省是不能多選。26.class Person String name,department;public void printValue()System.out.println(name is +name);System.out.println(department is +department);public class Teacher extends Person int salary;public void printValue()/ doing the same as in the parent method printValue(

29、)/ including print the value of name and department.System.out.println(salary is +salary);下面的哪些表達(dá)式可以加入 printValue()方法的doing the sameas.部分?A. printValue();B. this.printValue();C. person.printValue();D. super.printValue().答案 d的方法,則不需要加上 super.進(jìn)行調(diào)用,而直接寫方法就可以。這里要指出的是java支持方法的遞歸調(diào)用,因此答案a和b在語法上是沒有錯(cuò)誤的,但是不門,

30、嚴(yán)格來說也可以選a和b。27.1) switch(m)2) case 0: System.out.println(case 0);3)case 1: System.out.println(case 1); break;case 2:4)5)default: System.out.println(default);6) m為哪些值將導(dǎo)致default輸出?A. 0B. 1C. 2D. 3答案 cd此題考察switch語句的用法,switch的判斷的條件必須是一個(gè)int型值,也可以是中需要注意的是一個(gè)case后面一般要接一個(gè)break語句才能結(jié)束判斷,否則將繼續(xù)執(zhí)行其它c(diǎn)ase而不進(jìn)行任cased

31、efault是可選的,可以沒有,如果沒有default而又沒有任何值匹配case中列出的值則switch不執(zhí)行任何語句。28.1)2) success = connect();3) if (success=-1) 4)throw new TimedOutException();5) 6)TimedOutException 不是一個(gè)被加入第一行完成此方法的聲明。?A. public void method()B. public void method() throws ExceptionC. public void method() throws TimedOutExceptionD. publ

32、ic void method() throw TimedOutExceptionE. public throw TimedOutException void method()答案 b、cRuntimeException或者常,捕獲異常可以使用 trycatch()語句,而拋棄異常在方法聲明是聲明,在方法的聲明后面加上 throws XxxxException,拋棄多個(gè)異常時(shí)在各異常間使用逗號(,)分隔,題目中的程序在運(yùn)行時(shí)拋出的不是一個(gè)RuntimeException,所有必須捕獲或者拋棄,而程序又沒有捕獲,所有應(yīng)該在方法聲明中聲明拋棄。由于ExceptionRuntimeException了

33、。29.下面的哪些答案可以正確表示一個(gè)十六進(jìn)制數(shù)字10?(單選題)A. 0 xAB. 0 x16C. 0AD. 016答案 a十六進(jìn)制數(shù)以0 x開頭,以0開頭的是八進(jìn)制數(shù)。十六進(jìn)制表示中的a,b,c,d,e,f依次為10,11,12,13,14,15。30.1) public class Test 2345int m, n;public Test() public Test(int a) m=a; public static void main(String arg) 6Test t1,t2;int j,k;789j=0; k=0;t1=new Test();t2=new Test(j,k);

34、101112 在編譯時(shí)哪行將導(dǎo)致一個(gè)錯(cuò)誤?A. line 3B. line 5C. line 6D. line 10答案 d第10行的聲明調(diào)用一個(gè)帶兩個(gè)參數(shù)的Test樣的構(gòu)造方法。二、 簡答題1. 讀如下程序,說出結(jié)果,并說明得出結(jié)果原因(10 public class BreakContinue public static void main(Stringargs) for (int i =0; i 10; i+) if(i = 3 | i = 5)continue;for (int j =0; j 5)break;System.out.println(i +j);if(i = 6)brea

35、k;答案:1,2,3,4,52. 讀程序,說出 j 值,并說明得出結(jié)果原因(10 public class Test private static int j =0;public static void main(Stringargs) methodA(0);System.out.println(j);private static boolean methodB(int k)j += k;return true;public static void methodA(int i)boolean b;b=i 10 | methodB(4);b = i 10 | methodB(8); / 此處短路method不進(jìn)行計(jì)算答案:三、 編程題1. 請輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)字母(20 答案:1.程序分析:用情況語句比較好,如果第一個(gè)字母一樣,則判斷用情況語句或 if 語句判斷第二個(gè)字母。 / /Scanner類示例化為input= Scanner(System./out.print(請輸入星期值英文的第一個(gè)字母,我來幫您判斷是星期幾:=/ /利用取第一個(gè)索引位的字符來實(shí)現(xiàn)讓

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論