1. 程式人生 > >JAVA入門到精通-第52講-面試題講評

JAVA入門到精通-第52講-面試題講評

賽迪網Java程式設計師筆試題

第一大題:選擇題(20個小題,要求和分值按每題後面的提示,共60)

1、下面哪些是java語言中的關鍵字?  B

Asizeof

Babstract

CNULL

DNative

2、第一個java語言編譯器是在()年推出。  D

A1991

B1992

C2001

D1996

3、以下()JAVA的保留字    C

AJava

BHello

Cclass

DClass

4、下面程式執行之後,變數x的值是() B

//swap方法的宣告

public static void swap(int a,int b){

    int t=a;

    a=b;

    b=t;

}

//main方法

public static void main(String args[]){ A

    int x=2;

    int y=3;

    swap(x,y);//簡單資料型別是不會交換,如果是物件會發生變化

}

A2    B3    C4   

D、6

5、下面變數var的作用域範圍是() C

//....

int x;

swhitch(x){

    case 0:

    {

        int var;

        //process

    }

        break;

   

case 1:

    {

        int var1;

        //process

    }

        break;

}

A116行之間 B48行之間  C68行之間  D614行之間

6、以下的類(介面)定義中正確的是()   B

A

public class a{

    private int x;

    public getX(){

        return x;

    }

}

B

public abstract class a{

    private int x;

    public abstract int getX();

    public int aMethod(){

        return 0;

    }

}

C

public class a{

    private int x;

    public abstract int getX();

}

//如果是抽象函式類必須宣告為抽象

D

public interface interfaceA{

    private int x;

    public int getX(){

        return x;

    }

}

//介面都是抽象的,所有的方法都不能夠被實現


7、已知A類被打包在packageA,B類被打包在packageB,B類被宣告為public,且有一個成員變數x被宣告為protected控制方式。C類也位於packageA包,且繼承了B類。則以下說法正確的是()  C

AA類的例項不能訪問到B類的例項

BA類的例項能夠訪問到B類一個例項的x成員

CC類的例項可以訪問到B類一個例項的x成員

DC類的例項不能訪問到B類的例項



8、以下()類不屬於字元流類   C

AReader   BFileReader   CBufferedInputStream  DStringReader

//BufferedInputStream位元組流


9、以下()類屬於位元組流類 D

AFileWriter

BPushbackReader

CFilterReader

DFileInputStream

//Writer/Reader基本是字元流


10、編譯並執行下面的java程式碼段:

char c='a';

switch(c){

case 'a':

    System.out.println("a");

default:

    System.out.println("default");

}

輸出結果是()  B

A、程式碼無法編譯,因為switch語句沒有一個合法的表示式

Ba Default

Ca

Ddefault

char/int/byte/列舉

都可以匹配switch();


11、分析下面的java程式

public class yy{

    public static void main(String[] args)throws Exception{

        try{

            throw new Exception();

        }catch(Exception e){

            System.out.println("Caught in main()");

        }

        System.out.println("nothing");

    }

}

輸出結果為()    A

ACaught in main() Nothing

BCaught in main()

Cnothing

D、沒有任何輸出

//發生異常,捕獲;


12、在Java中,關於final關鍵字的說法正確的是()AC

A、如果修飾變數,則一旦賦了值,就等同一個常量

B、如果修飾類,則該類只能被一個子類繼承

C、如果修飾方法,則該方法不能在子類中被覆蓋

D、如果修飾方法,則該方法所在的類不能被繼承

13、在java中,要想使只有定義該類所在的包內的類可以訪問該類,應該用()關鍵字。A

A、不需要任何關鍵字

Bprivate

Cfinal

Dprotected 保護的

14、在java中,下面關於包的陳述中正確的是() AD

A、包的宣告必須是原始檔的第一句程式碼

B、包的宣告必須緊跟在import語句的後面

C、只有公共類才能放在包中

D、可以將多個原始檔中的類放在同一個包中

15public static void main方法的引數描述是正確的()AB

AString args[]

BString[] args

CStrings args[]

DString args

16、在java中,關於CLASSPATH環境變數的說法不正確的是() A

ACLASSPATH一旦設定之後不可修改,但可以將目錄到該環境變數中

B、編譯器用它來搜尋各自的類檔案

CCLASSPATH是一個目錄列表

D、直譯器用它來搜尋各自的類檔案

17、編譯並執行下面的java程式

class A{

    int var1=1;

    int var2;

    public static void main(String[] args){

        int var3=3;

        A a=new A();

        System.out.println(a.var1+a.var2+var3);

    }

}

將產生()結果    B

A0

B4

C3

D、程式碼無法編譯,因為var2根本沒有被初始化

18、在單一檔案中importclasspackage的正確出現順序是()  A

Apackage,import,class

Bclass,import,package

Cimport,package,class

Dpackage,class,import

19、編譯,執行下列程式碼後的結果是()  D//類的成員變數可以不賦初值,區域性變數要賦初值

public class Test{

    public static void main(String args[]){

        int age;

        age=age+1;

        System.out.println("The age is"+age);

    }

}

A、編譯,執行後沒有輸出

B、編譯,執行後輸出:The age is1

C、能通過編譯,但執行時產生錯誤

D、不能通過編譯


20、下列哪些表示式返回true()    AB

A"john"=="john"

B"john".equals("john")

C"john"="john"

D"john".equals(new Button("john"))

第二大題:

1、用迴圈控制語句列印輸出:1+3+5+...+99=?結果

答題:

x   1
int sum=0;
2
for(int i=1;i<100;i+=2){
3
    sum+=i;
4
    System.out.println("i="+i+"sum="+sum);
5
}

結果:2500

2、請編寫一個程式,實現從控制檯讀入字元,接收到"e"或者"E"退出程式

答題:

1 21   1
import java.io.BufferedReader;
2
import java.io.InputStreamReader;
3
public class Test {
4
    public static void main(String[] args) {
5
        InputStreamReader isr=new InputStreamReader(System.in);
6
        BufferedReader br=new BufferedReader(isr);
7
        while(true){
8
            System.out.println("請輸入任意字元(輸入e或E退出):");
9
            try {
10
                String chars=br.readLine();
11
                if(chars.equals("e")||chars.equals("E")){
12
                    System.out.println("輸入的字元是e或是E,退出");
13
                    System.exit(0);
14
                }
15
            } catch (Exception e) {
16
                e.printStackTrace();
17
            }
18
           
19
        }
20
    }
21
}

3、編寫兩個方法分別計算合數n!.一個使用遞迴方法實現,另一個不用遞迴方法。

答題:(非遞迴方法)

  1
import java.io.BufferedReader;
2
import java.io.InputStreamReader;
3
public class test {
4
    public static void main(String[] args) {
5
        InputStreamReader isr=new InputStreamReader(System.in);
6
        BufferedReader br=new BufferedReader(isr);
7
        int num=1;
8
        while(true){
9
            System.out.println("請輸入整數:");
10
            try {
11
                int note=Integer.parseInt(br.readLine());
12
                if((note%1==0&&note%2==0)||(note%1==0&&note%3==0)||(note%1==0&&note%5==0)||(note%1==0&&note%7==0)){
13
                    System.out.println("你輸入整數"+note+"是合數!");
14
                    for(int i=1;i<=note;i++){
15
                        num=num*i;
16
                    }
17
                    System.out.println(note+"的階乘結果是:"+num);
18
                    num=1;
19
                }else{
20
                    System.out.println(note+"不是合數");
21
                }
22
                if(note==-1){  
23
                    System.out.println("退出");
24
                    break;
25
                }
26
            } catch (Exception e) {
27
                e.printStackTrace();
28
            }
29
        }
30
    }
31
}

------------------------------------------------------------------------------

答題:(遞迴方法)

1 32   1
import java.io.*;
2
public class Test {
3
    public static void main(String[] args) {
4
        InputStreamReader isr=new InputStreamReader(System.in);
5
        BufferedReader br=new BufferedReader(isr);
6
        while(true){
7
            System.out.println("請輸入一個整數:");
8
            try {
9
                int note=Integer.parseInt(br.readLine());
10
                if((note%1==0&&note%2==0)||(note%1==0&&note%3==0)||(note%1==0&&note%5==0)||(note%1==0&&note%7==0)){
11
                    System.out.println("你輸入整數"+note+"是合數!");
12
                }
13
                Test t = new Test();
14
                int n = t.calc(note);
15
                System.out.println(note+"階乘結果是:"+n);
16
                if(note==0){
17
                    System.out.println("輸入0退出");
18
                    break;
19
                }
20
            } catch (Exception e) {
21
                e.printStackTrace();
22
            }
23
        }
24
    }
25
    public int calc(int n) {
26
        if(n==0){
27
            return 1;
28
        }
29
        return n*calc(n-1);
30
    }
31
}
32
 

4、編寫一個程式,在控制檯接收資料,程式會讓使用者輸入名字,並檢查使用者的輸入:不允許輸入空名字:一旦使用者完成輸入,程式會向該使用者發出問題:“Hello,你輸入的名字”。(提示:如果希望在控制檯中與使用者互動,一種可能的做法就是將System.in包裝成)BufferedReader要做到這一點,必須使用InputStreamReader類將System.in這個InputStream物件轉換成一個ReaderBufferedReader in=new BufferedReader(new InputStreamReader(System.in));

答題:

24   1
import java.io.BufferedReader;
2
import java.io.InputStreamReader;
3
public class Test {
4
    public static void main(String[] args) {
5
        InputStreamReader isr=new InputStreamReader(System.in);
6
        BufferedReader br=new BufferedReader(isr);
7
 
8
        while(true){
9
            System.out.println("請輸入名字:");
10
            try {
11
                String name=br.readLine();
12
                if(name.equals("")){
13
                    System.out.println("你輸入的名字是空,退出!");
14
                    System.exit(0);
15
                }else{
16
                    System.out.println("Hello,"+name+"!");
17
                }
18
            } catch (Exception e) {
19
                e.printStackTrace();
20
            }
21
        }
22
    }
23
}
24



來自為知筆記(Wiz)