1. 程式人生 > 實用技巧 >javase:習題

javase:習題

1、下來說法正確的是?

A、JAVA程式的main方法必須寫在類裡面

B、JAVA程式中可以有多個main方法

C、JAVA程式中類名必須與檔名一樣

public class Mytest {
    public class Animal{
        
    }
    public class Plants{
        
    }
}

D、JAVA程式的main方法中如果只有一條語句,可以不用{}(大括號)括起來

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

2、變數命名規範說法正確的是?

A、變數由字母、下劃線、數字、$符號隨意組成;(不能以數字開頭)

B、變數不能以數字作為開頭;

C、A和a在java中是同一個變數;

D、不同型別的變數,可以起相同的名字;(即使是不同型別的變數,呼叫的時候也會起衝突)

3、為一個布林型別變數賦值正確的是?(多選)

A、Boolean =1;

B、Boolean a = (9>10);

C、Boolean a = “真”;

D、Boolean a = true;

4、以下哪個表示式不可以作為迴圈條件?

A、i++;

B、i>5;

C、bEqual = str.equals(“q”);

D、Count == i;

5、以下程式執行的結果是

   public
static void main(String args[]) { int a; a = 6; System.out.print(a); System.out.print(a++); System.out.print(a); }

A、666

B、667 https://www.cnblogs.com/zhai1997/p/13334838.html

C、677

D、676

6、下列值不為true的是?

A、"john" = = "john" (都在堆記憶體,且為同一物件)

B、"john".equals("john") (比較的是字串,String類已經對equals方法進行了重寫,比較的是值)

C、"john" = "john"(語法錯誤)

D、"john".equals(new String("john")) (雖然一個在堆記憶體一個在常量池不是同一個物件,但是Strinfg類的equals方法比較的是字串的值)

7、下列輸出結果是

      int a = 0 ;
            while ( a < 5 ) {
                switch(a){
                    case 0:
                    case 3 : a = a + 2;
                    case 1 :
                    case 2 : a = a + 3;
                    default : a = a + 5;
                }
            }
            System.out.println(a);
        }

A、0

B、5

C、10

D、其他

8、下列程式碼輸出結果是

  int i = 10;
        while (i > 0) {
            i = i + 1;
            if (i ==10){
                break;
            }
        }

A.while迴圈執行10次

B.死迴圈

C.迴圈一次都不執行

D.迴圈執行一次

9、在java中下列關於自動型別轉換說法正確的是

A、基本資料型別和String相加結果一定是字串型

B、char型別和int型別相加結果一定是字元

C、double型別可以自動轉換為int

D、char + int + double +"" 結果一定是double;

10、在JAVA中,LinkedList類和ArrayList類同屬於集合框架類,下列()選項中的方法是LinkedList類有而ArrayList類沒有的。

A、add(Object o)

B、add(int index,Object o)

C、remove(Object o)

D、removeLast()

11、在JAVA中ArrayList類實現了可變大小的陣列,便於遍歷元素和隨機訪問元素,已知獲得了ArrayList類的物件bookTypeList,則下列語句中能夠實現判斷列表中是否存在字串“小說”的是()。

A、bookTypeList.add("小說");

B、bookTypeList.get("小說");

C、bookTypeList.contains("小說");

D、bookTypeList.remove("小說");

12、給定如下Java程式碼,其中第( )行程式碼有錯誤。

import java.util.ArrayList;
import java.util.List;
public  class Test{
    public static void main(String[] args){
        List pList = new ArrayList();
        pList.add("A");
        pList.add("B");
        for(int i = 0;i<pList.size();i++){
            String str = pList.get(i).toString();
            System.out.print(str);
        }
    }
}

A、4

B、5

C、6

D、7

E、8

F、9

G、沒有錯誤

13、以下關於抽象類和介面的說法錯誤的是

A、抽象類在Java語言中表示的是一種繼承關係,一個類只能使用一次繼承。但是一個類卻可以實現多個介面。

B、在抽象類中可以沒有抽象方法

C、實現抽象類和介面的類必須實現其中的所有方法,除非它也是抽象類。介面中的方法都不能被實現 (必須實現的是所有的抽象方法)

D、介面中定義的變數預設是public static final 型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。

E、介面中的方法都必須加上public關鍵字。(預設public,可以省略不寫)

14、下列哪一種敘述是正確的
A、abstract修飾符可修飾字段、方法和類(不能修飾字段)

B、 抽象方法的body部分必須用一對大括號{ }包住

C、 宣告抽象方法,大括號可有可無

D、宣告抽象方法不可寫出大括號

15、下列哪種說法是正確的

A、 例項方法可直接呼叫超類的例項方法

B、 例項方法可直接呼叫超類的類方法

C、 例項方法可直接呼叫其他類的例項方法(需要建立物件)

D、例項方法可直接呼叫本類的類方法

16、如下程式碼:

class Base {
    Base() { System.out.print("Base"); }
}
public class Alpha extends Base {
    public static void main( String[] args ) {
        new Alpha();
        new Base();
    }
}

結果是什麼
A、Base
B、BaseBase
C、編譯失敗.
D、程式碼執行但沒有輸出.
E、執行時丟擲異常

17、下列關於構造方法的敘述中,錯誤的是
A. Java語言規定構造方法名與類名必須相同
B. Java語言規定構造方法沒有返回值,但不用vold宣告
C. Java語言規定構造方法不可以過載
D. Java語言規定構造方法只能通過new自動呼叫

18、Java語言中下面哪個可以用作正確的變數名稱
A、3D B、name C、extends D、implements

19、下面哪一項不是Java類訪問控制關鍵字
A、 public B、 protected
C、 this D、 private

20下面哪個語句正確地宣告一個整型的二維陣列(多選)
A、int a[][] = new int[][];
B、int a[10][10] = new int[][];
C、int a[][] = new int[10][10];
D、int [][]a = new int[10][10];
E、int []a[] = new int[10][10];

行數不可省略,列數可以省略

21下面哪些不是java的簡單資料型別
A、 short B、 Boolean C、 Double D、 float

22. 下面哪些語句能夠正確地生成5個空字串(多選)
A.String a[]=new String[5];for(int i=0;i<5;a[i++]=“”);
B.String a[]={“”,“”,“”,“”,“”};
C.String a[5];
D.String [5] a;
E.String []a=new String[5];for(int i=0;i<5;a[i++]=null);

23、不能用來修飾interface的有(多選)
A、privateB、publicC、protectedD.static

24、在介面中以下哪條定義是正確的(多選)

A、 void methoda();
B、public double methoda();
C、public final double methoda();
D、static void methoda(double d1);
E、protected void methoda(double d1);

25、以下哪四個能使用throw丟擲
A. Error
B. Event
C. Object
D. Throwable
E. Exception
F. RuntimeException

程式設計題

1、寫一個演算法對5,8,15,2,24,49,7進行升序順序排列

public static void main(String[] args) {
        int[] num = {5, 8, 15, 2, 24, 49, 7};
        int temp = 0;
        for (int i = 0; i < num.length - 1; i++) {
            for (int j = 0; j < num.length - 1 - i; j++) {
                if (num[j] > num[j + 1]) {
                    temp = num[j + 1];
                    num[j + 1] = num[j];
                    num[j] = temp;
                }
            }
        }
        for (int count : num) {
            System.out.print(count+"  ");
        }
    }
2  5  7  8  15  24  49  

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

 public static void main(String[] args) {
        int i=1;
        int sum=0;
        while(i<100){
            System.out.println(i+"  ");
            sum=i+sum;
            i=i+2;
        }
        System.out.println(sum);
    }
1  
3  
5  
7  
.
.
. 93 95 97 99 2500

3、輸入兩個正整數m和n,求其最大公約數和最小公倍數。

 public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("請輸入兩個整數:");
        int m = in.nextInt();
        int n = in.nextInt();
        int max = 0, min = 0;
        if (m > n)//保證m是mn中的較小值 
        {
            int t = m;
            m = n;
            n = t;
        }
        for (int i = 1; i <= m; i++) {//求最大公約數,即該數字能夠被兩個數同時整除且最大
            if (m % i == 0 & n % i == 0)
                max = i;
        }
        min = m * n / max;//兩數字的乘積除以最大公約數
        System.out.println("最大公約數為:" + max + ",最小公倍數為:" + min);
    }
請輸入兩個整數:4
8
最大公約數為:4,最小公倍數為:8

4、輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。

public static void main(String[] args) {
        int ch=0 ,numb=0,spac=0,other=0;
            System.out.println("請輸入:");
            Scanner scanner=new Scanner(System.in);
            String s = scanner.nextLine();
            for(int i=0;i<s.length();i++){
                if(('A'<=s.charAt(i)&&s.charAt(i)<='Z')||'a'<=s.charAt(i)&&s.charAt(i)<='z')
                    ch++;
                else if('0'<=s.charAt(i)&&s.charAt(i)<='9')
                    numb++;
                else if(s.charAt(i)==' ')
                    spac++;
                else
                    other++;
            }
            System.out.println("字元個數為:"+ch+"數字個數為: "+numb+"空格為: "+spac+"其它字元為: "+other);

    }
請輸入:
123 qwe !!!
字元個數為:3數字個數為: 3空格為: 2其它字元為: 3

5、一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?

 public static void main(String[] args) {
        float height = 100;
        float sum=100;
        int i = 0;
        while (i < 9) {
            i++;
           height=height/2;
           sum=height*2+sum;
        }
        System.out.println("長度:"+sum);
        System.out.println("高度:"+height/2);

    }
長度:299.60938
高度:0.09765625