JavaSE綜合測試題

1. 在JAVA中,下列哪些說法是正確的( AB  

Ajava源文件的擴展名爲.java

B.寫好的java源程序可以直接運行

C.編寫的源程序必須先編譯後才能運行

D.程序員可以讀懂擴展名爲.class的文件

2. 下列標識符哪個是合法的(BD)

Aclass 

B$abc

C1234

D_name

3. 下面哪些賦值語句是正確的?(A)

A. long test = 012;

B. int other = (int) true;

C. double d = 0x12345678;

D. byte b = 128;

4. Java中,下列語句不能通過編譯的有( BD)

A. String s= “join”+ 3;                

B. int a= “join”+3;

C. int a= ‘a’+5;

D. float f=5+5.5;

 

5. 下列代碼運行的結果是( C)

public static void main(String[] args) {

int x = 4;

int y = 5;

if(x++>4 & ++y>5) {   //X=5,Y=6

x++;

}

System.out.println("x=" + x + ",y=" + y);

}

A. x=4,y=5

B. x=4,y=6

C. x=5,y=6

D. x=6,y=6

 

6. 嘗試運行下面的代碼會發生什麼?( B)

public class Test {

public static void main(String[] args) {

boolean m = true;

if (m = false) {

System.out.println("true");

} else {

System.out.println("false");

}

}

}

A. 輸出字符串”true”

B. 輸出字符串”false”

C. 編譯時錯誤

D. 運行時錯誤

 

7. 編譯並運行以下代碼將發生什麼?

public static void main(String args[]){

     char digit = 'a';

     for (int i = 0; i < 10; i++){

       switch (digit)

       {

         case 'x' :

         {

         int j = 0;

System.out.println(j);

         }

         default :

         {

         int j = 100;

System.out.println(j);

         }

       }

    }

int i = j;

    System.out.println(i);

}

A. 輸出11100

B. 輸出10100,然後拋出運行期異常

C. 編譯錯誤,因爲變量i不能在main() 方法中被聲明2

D. 編譯錯誤,因爲變量j不能在main() 方法中被聲明2

E. 以上都不對

 

8. class Demo        

{

public static int fun(int c)

{

return  c+=2;

}

public static void main(String[] args)

{

int temp = fun(2);

System.out.println(temp);B

}

}

A.  2

B.  4

C.  6

D.  8

9. 下面哪些函數是public void aMethod(){...}的重載函數?( BCD)

A. void aMethod( ){...}

B. public int aMethod(int a, float b){...}

C. public void aMethod (){...}

D. public float aMethod (int m){…}

10. 在java中,關於數組描述正確的是(B D)

A.數組中的索引下標從1開始

B.存儲在數組當中的數據都屬於同一數據類型

C.通過數組名.length()能獲得數組的長度

D.數組的最大索引下標是數組的長度減1

11. 下面程序的輸出結果是什麼(D )

int[] arr = new int[10];

System.out.println(arr[0]);

A.編譯不通過

B.運行時出錯

C.輸出null

D.輸出0

 

12. 下面哪個語句正確地聲明一個整型的二維數組( C)

A. int a[][] = new int[][];

B. int b[10][10] = new int[][];

C. int c[][] = new int[10][10];

 

13. 以下代碼輸出是(

class Demo {

public static void main(String[] args) {

int i = 0;

int sum = 0;

while (i <= 10) {

i++;

if (i % 2 != 0)

continue;

sum += i;

 

}

System.out.println(sum);

}

}

A.  55

B.  45

C.  35

D.  30

14. 和下面代碼能完成相同的選項是(B

class Demo {

public static void main(String[] args) {

int i = 1;

int sum = 0;

while (i <= 100) {

if (i % 2 == 0) {

sum = sum + i;

}

i++;

}

System.out.println(sum);

}

}

A.  for (int x =1; x<=100;x++){ sum=sum+x;}

B.  for (int x =0; x<=100;x+=2){ sum=sum+x;}

C.  for (int x =1; x<=100;x+=2){ sum=sum+x;}

D.上述全對

15. 下列有關類、對象和實例的敘述,正確的是哪一項?(D)

A.類就是對象,對象就是類,實例是對象的另一個名稱,三者沒有差別

B.對象是類的抽象,類是對象的具體化,實例是對象的另一個名稱

C.類是對象的抽象,對象是類的具體化,實例是類的另一個名稱

D.類是對象的抽象,對象是類的具體化,實例是對象的另一個名稱

16. 下面關於java中包的說法正確的是( A)

A. java中可以使用import語句導入包

B. java中可以使用package語句導入包

C. 位於同一個包中的類,不需要導包就可以直接訪問

D. 不同的包中可以出現類名相同的類

17. 下列有關抽象類的敘述正確的是哪項?(C)

A.抽象類中一定含有抽象方法

B.抽象類既能被實例化也能被繼承

C.抽象類的聲明必須包含abstract關鍵字

D.抽象類中不能有構造方法

18. 下列有關接口的敘述錯誤的是哪項?(D)

A.接口中只能包含抽象方法和常量

B.一個類可以實現多個接口

C.類實現接口時必須實現其中的方法

D.接口不能被繼承

 

19. 下列關於類的繼承的描述,正確的有( CD 

A. 一個類可以同時繼承多個父類

B. 一個類可以具有多個子類

C. 子類會自動擁有父類所有的方法

D. 一個類繼承另一個類需要使用 extends 關鍵字

20. 下列選項中關於java中this關鍵字的說法錯誤的有( B )  

A. this關鍵字是一個對象的引用

B. this可用於構造函數中,調用類本身重載的構造函數,但是必須寫在首行

C. this可用於靜態方法中

 

21. 下列關於構造函數的說法正確的是( B )

A. 方法名必須與類名相同

B. 使用new關鍵字創建對象時,java虛擬機會自動調用構造函數

C. 我們在定義一個類時,必須要聲明至少一個構造函數

D. 構造函數中不能使用return語句(這個是錯的,可以rutrun;)

22. 編譯並運行以下代碼將發生什麼?(D  )

class MyClass {

int x;

MyClass(int i) {

x = i;

}

public static void main(String args[]) {

MyClass m1 = new MyClass(100);

MyClass m2 = new MyClass(100);

if (m1.equals(m2)) {

System.out.println("Both are equal");

} else {

System.out.println("Both are not equal");

}

}

}

A. 代碼編譯時報出錯誤提示信息“equals() 方法未定義

B. 編譯通過,拋出運行期異常.

C. 輸出Both are equal.

D. 輸出Both are not equal

 

23. 運行以下的main()方法,結果是?(  C)

1   public static void main(String[] args)

2   {

3      String myString;

4      int x = 100;

5     

6      if (x < 100) myString = "x is less than 100";

7      if (x > 100) myString = "x is greater than 100";

8      System.out.println(myString.length());

9   }

A. 編譯時報出錯誤提示信息“變量myString沒有被初始化

B. 編譯通過

C. 編譯未能通過。但如果變量myString在第8行前的代碼中被初始化,代碼可以編譯通過,運行時可以輸出字符串myString的長度

D. 以上都不對

 

 

24. 關於繼承, 以下說法正確的是: (C)

AJava中只支持單繼承, 一個類只能繼承一個類, 但是可以有多個子類

B.一個類如果沒有自己寫無參構造方法, 那麼子類將無法繼承

C.子類可以當父類用, 父類不可以當子類用

D. 子類重寫父類方法時訪問權限不能更低

 

 

25. 在Java中,如果要在字符串類型對象s="java"中,得到字符 'v' 出現的位置,可使用下面的那個方法?

A. s.matches('v');

B. s.charAt('v');

C. s.indexOf('v');

D. s.substring('v');

 

26. 下列關於ArrayListLinkedList集合的說法正確是有( ABC )

A. ArrayList集合底層是數組實現,該集合線程不安全

B. LinkedList集合底層是鏈表結構,適合做元素的增刪操作

C. 這三個集合都是List接口的實現類

 

27. 下面程序的輸出結果是什麼( C )

Set set= new HashSet();

set.add("aaa");

set.add("bbb");

set.add("aaa");

System.out.println(set.size());

A. 編譯不通過

B. 運行時出錯

C. 輸出3

D. 輸出2

 

28. 下列哪些方法是ArrayListLinkedList集合中都定義的(  AC)

A. add(Object o)

B. removeFirst()

C. remove(Object o)

D. add(int index,Object o)

 

29. 下列哪些集合屬於Collection體系的子類(  D)

A. TreeMap

B. ArrayList

C. Hashtable

D. HashSet

 

30. 下列關鍵字能和try語句一起使用的是(  CD)

A. final

B. finalize

C. finally

D. catch

 

31. 下面程序的運行結果是(   A )

  FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”);

  fos.write(“abc”);

  fos.close();

A.在C盤創建文件demo.txt,但文件是空的

B.在C盤創建文件demo.txt,並寫入數據abc

C.將C盤已有的文件demo.txt中追加寫入abc

D.編譯失敗

 

32. 下列關於Java中文件輸入輸出的說法正確的是(  BD)

A. 在Java中,文件的輸入輸出功能是通過流來實現的

B. 如果要把數據寫入到一個文件中,需要創建一個輸入流對象

C. 字符流在某些方面比如漢字的處理,比字節流更方便

D. 可以通過Reader r = new Reader("c:\\pet.txt")創建一個輸入流對象

 

33. 請看如下代碼:

BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));

BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\b.txt"));

String line = null;

while ((line = br.readLine()) != null) {

bw.write(line);

bw.newLine();

bw.flush();

}

bw.close();

br.close();

它表達的意思是?(  A)

A. c盤目錄下的a.txt文件內容複製到d盤目錄下的b.txt

B. d盤目錄下的b.txt文件內容複製到c盤目錄下的a.txt

C. 讀取c盤目錄下a.txt文件,輸出在控制檯

D. 把控制檯的內容寫入到d盤目錄下的b.txt文件中

 

 

34. 下列哪個關鍵字可以用於實現同步?( C )

A. native

B. static

C. synchronized

D. abstract

 

35. 下列哪些方法可以讓線程中斷? (AD  )

A. sleep

B. start

C. notify

D. wait

 

36. 啓動線程調用哪個方法? ( B )

A. run()

B. start()

C. play()

D. go()

 

 

37. 下面哪項不是TCP的特點? (  D)

A.面向連接

B.數據不可靠

C.傳輸速度慢

D.對數據大小無限制

 

38. TCP協議的服務器的Socket對象是下面哪一個類? (C  )

ASocket

BInputStream

CServerSocket

DOutputStream

 

39. 正則表達式中可以表示所有的單詞字符信息的是下面哪個規則:(  C)

A\W

B\w

C[a-zA-Z]

D[a-zA-Z_0-9]

 

40. 獲取Class類型的對象的三種方式是:(  ABD)

B. class靜態屬性

A. Object類的getClass()

D. Class類的forName()靜態方法

C. 自己創建Class對象


1. 把c:\a.jpg複製到d:\b.jpg(任意一種方式實現即可)

package wbb;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class test1 {
    public static void main(String[] args) throws Exception {
        BufferedInputStream bi = new BufferedInputStream(new FileInputStream(
                "c:\\a.jpg"));
        BufferedOutputStream bo = new BufferedOutputStream(
                new FileOutputStream("d:\\b.jpg"));

        byte[] b = new byte[1024];
        int len = 0;
        while ((len = bi.read(b)) != -1) {
            bo.write(b, 0, len);
            bo.flush();
            bo.close();
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  1. HashMap的鍵是Integer,值是String,存儲三對元素,並遍歷。(根據鍵找值的方式遍歷)
package wbb;

import java.util.HashMap;
import java.util.Set;
public class test2 {
    public static void main(String[] args) {
        HashMap<Integer, String> hm = new HashMap<Integer, String>();
        hm.put(1, "AWM");
        hm.put(2, "M24");
        hm.put(3, "毛瑟");

        Set<Integer> keySet = hm.keySet();
        for (Integer key : keySet) {
            System.out.println(key + "......." + hm.get(key));
        }

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

3.鍵盤錄入5個數字,使用冒泡排序進行排序

package wbb;

import java.util.Scanner;
public class test3 {

    public static void main(String[] args) {
        System.out.println("輸入五個數字:");
        int[] arr = new int[5];
        for (int i = 0; i < 5; i++) {
            Scanner sc = new Scanner(System.in);
            arr[i] = sc.nextInt();
        }
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        System.out.println("排序後爲:");
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

4.請在main方法裏面實現統計一個字符串的英文大寫字符,英文小寫字符及數字字符分別有多少個的程序代碼,並輸出統計結果

package wbb;
public class Prac04 {
    public static void main(String[] args) {
        String s = "awMCKN232";
        char[] c = s.toCharArray();
        int x = 0;//
        int y = 0;
        int z = 0;
        for (int i = 0; i < c.length; i++) {
            if (Character.isLowerCase(c[i])) {
                x++;
            }
            if (Character.isUpperCase(c[i])) {
                y++;
            }
            if (Character.isDigit(c[i])) {
                z++;
            }
        }
        System.out.println("小寫字母有:" + x + "個");
        System.out.println("大寫字母有:" + y + "個");
        System.out.println("數字有:" + z + "個");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章