Java菜題


編程語言:Java

 2019年全國高校計算機能力挑戰賽分設大數據算法賽(所謂的內部試題)

一、選擇題(共15題,每題3分,共45分)

1. 在Java中下列說法正確的是(  )

A、一個子類可以有多個父類,一個父類也可以有多個子類

B、一個子類可以有多個父類,但一個父類只可以有一個子類

C 一個子類可以有一個父類,但一個父類可以有多個子類

D、上述說法都不對

 

2. 關於Java垃圾回收機制描述不正確的是(   )

A、垃圾回收機制不須通過程序調用相應方法,也能自動啟動。

B、Java程序用System.gc()方法一定能進行垃圾回收;

C、垃圾回收機制屬於jvm自動操作,java程序可以不進行垃圾回收操作。

D、垃圾回收機制並不是由操作系統自動執行。

 

3. 面向對象技術領域內占主導地位的標准建模語言是(    )

   AC++  BJava    CC#   DUML

 

4. Java語言中,以下(  )不屬於基本數據類型。  

A、 int    B、boolean    C、 String    D、 double

 

5.  Java語言類間的繼承關系是(  )。

A、單繼承 B、多重繼承   C、不能繼承    D、不一定

 

6. 以下關於構造方法的描述正確的是(  )。

A、構造方法的返回類型只能是void型。

B、構造方法是類的一種特殊函數,它的方法名必須與類名相同。

C、構造方法的主要作用是完成對類的對象的初始化工作。

D、一般在創建新對象時,系統會自動調用構造方法。

 

7.  下列關於java的運行環境說法錯誤的是  (    )。

A、CLASSPATH為Java加載類(class or lib)路徑。

B、Java.exe是用來解釋執行Java類文件。

C、 JAVA_HOME的作用是指明JDK的安裝路徑,例如可以設置成C:\Program Files\Java\jdk1.6.0_01。

D、 Java 語言編寫的程序是與平台無關,所以不須要配置java的運行環境。

 

8. 下面的選項中,哪些項不屬於“汽車類”的屬性(  )。

A、品牌      B、剎車       C、價格        D、速度

 

9. 下列兩個物品之間的關系不屬於繼承關系的是( )

    A、卡和銀行卡    B、汽車和輪胎   C、人和學生     D、動物和狗

 

10. 下列兩個名詞之間的關系符合類和對象關系的是(    )

A、交通工具和電動小汽車   B、警犬和牧羊犬

C、樓房和房間             D、圖書館和圖書

 

11.關於字符串,下列代碼書寫不正確的是(  )
A、 String str = new String();

B、 String str = “Hello”+“ACCP”;
C、 String str = “123”+“Hello World!”;
D、 StringBuffer strBuf = new StringBuffer(“Hello World!”);
    String str = strBuf;

 

12. 下列選項中關於Java中super關鍵字的說法錯誤的是(   )。

A、super關鍵字是在子類對象內部指代其父類對象的引用

B、super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類

C、子類可以通過super關鍵字調用父類的方法

D、子類可以通過super關鍵字調用父類的屬性

 

13. 下列Java代碼寫法錯誤的是(  )

   class Pet{      }

   class Dog extends Pet{}

   class Test{

   public static void t(Pet p){}

   }

    A、Pet p = new Pet(); Test.t(p);     B、Pet p = new Dog(); Test.t(p);

    C、Dog p = new Dog(); Test.t(p);     D、Dog p = new Pet(); Test.t(p);

 

 

14. 關於下列代碼說法正確的是(    )。

     public class Test{

     public void a(){}

     public void a(int i){}

     public int  a(){}

     }

     A、上述三個a方法是方法重載  

     B、上述三個a方法是方法重寫

     C、上面代碼編譯通不過

     D、上述三個方法是第一個和第二個a方法是方法的重寫,第三個a方法編譯會有問題。

 

15. 如果一個類的文件名為Student.java,類的代碼為:

public class  Student {

public static void main(String[] args) {

System.out.println(4<<2);

}}

下列說法正確的是:(    

A、程序運行結果為1;    B、程序運行結果為2;

C、程序運行結果為16;   D、程序編譯錯誤,不能運行;

 

 

二、程序設計題(5道題,共55分)

 

1.(10) 統計1N以內質數的個數,並輸出這個數目。

輸入說明:一個整數N

輸出說明:質數的數量

輸入樣例:12

輸出樣例:5

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        System.out.println(getResult1(n));
    }

    private static int getResult1(int n) {
        int cot = 0;
        for (int i = 2; i <= n; i++) {
            if (isPrime(i)) {
                cot++;
            }
        }
        return cot;
    }
    private static boolean isPrime(int n) {
        boolean flag=true;
        for (int i = 2; i < n; i++) {
            if(n%i==0) {
                flag=false;
            }
        }
        return flag;
    }
    private static int getResult(int n) {
        int cot=0;
        boolean [] flag=new boolean[n+1];
        Arrays.fill(flag, true);
        for (int i = 2; i <n; i++) {
            if(flag[i]) {
                cot++;
                for (int j = i*2; j < n; j+=i) {
                    flag[j]=false;
                }
            }
        }
        return cot;
    }
}

2.(10) 某汽車組裝廠主要產品為4輪沙灘越野車(3座)和6輪山地越野車(5座),這兩類車輛的輪胎是通用的,車內安裝的座位也是通用的。這些部件每月初由供貨商送到倉庫,其它所需部件都有足夠多的庫存。組裝廠依據月初倉庫中的合格部件數量決定每類車輛的組裝數量。現有某月初倉庫中的兩類物品數量,請計算本月兩類汽車的產量。

輸入說明:兩種部件的合格品數量;

輸出說明:兩類汽車的生產數量;

輸入樣例:20  16

輸出樣例:2   2

 

public class Main2 {
    /**
     * 4x+6y=m;
     * 3x+5y=n;
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int m,n,x,y;
        m=input.nextInt();
        n=input.nextInt();
        y=(3*m-4*n)/(3*6-4*5);
        x=(n-5*y)/3;
        System.out.println(x+"   "+y);
        input.close();
    }
}

3.(10) 內容檢索是計算機的強項,現有一段英文文字和一個英文關鍵詞,請找出這個關鍵詞在這段英文文字中的位置,如果該關鍵詞出現不止一次,請輸出該關鍵詞第一次出現的位置。

輸入說明:一段英文文字(含有空格和標點符號,以’!’作為結束符)和一個英文關鍵詞;

輸出說明:關鍵詞第一次出現的位置,首位置記為1

輸入樣例:Today is Oct 9. There are seven cats in the house. They are very happy!

          are

輸出樣例:23

 

public class Main3 {
    
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String str = reader.readLine();
        String obj_str = reader.readLine();
        System.out.println(str.indexOf(obj_str)+1);
    }
}

4.(10) 統計二維整數數組中,橫向或縱向連續3個相鄰元素的最大和。

輸入說明:數組行數x列數 y, 二維整數數組中元素;

輸出說明:此數組中橫向或縱向連續3個相鄰元素的最大和。

輸入樣例:4  4

3  6  0  8

          1  0  2  4

          2  0  1  9

          0  1  2  3

輸出樣例:21

 

3 6 0 8 2
3 6 0 8 4 3
3 6 0 8 5 6 4
3 6 0 8 5 6 7 5

package P;

import java.util.Scanner;

public class Main4 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n, m;
        n = in.nextInt();
        m = in.nextInt();
        int[][] matrix = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                matrix[i][j] = in.nextInt();
            }
        }
        int Max = Integer.MIN_VALUE;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m-2; j++) {
                int sum=0;
                for (int k = j; k < 3+j; k++) {
                    sum+=matrix[i][k];
                }
                Max=Math.max(Max, sum);
            }
            for (int j = 0; j < m-2; j++) {
                int sum=0;
                for (int k = j; k < 3+j; k++) {
                    sum+=matrix[k][i];
                }
                Max=Math.max(Max, sum);
            }
        }
        System.out.println(Max);
        in.close();
    }
}

 

5.(15) 請對給出的一系列英文單詞按首字母進行排序,並輸出排序后的結果。

輸入說明:數字N,表明單詞數,接下來是N個英文單詞;

輸出說明:按字母序的排序結果。

輸入樣例:6

Apple  banana  Zebra  Tuesday  moon  CAN

輸出樣例:Apple

  banana

CAN  

moon  

Tuesday  

Zebra

 

public class Main5 {
    public static void main(String[] args) throws IOException {
        Scanner input = new Scanner(System.in);
        TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareToIgnoreCase(o2);
            }
        });
        int n = input.nextInt();
        for (int i = 0; i < n; i++) {
            treeSet.add(input.next());
        }
        treeSet.forEach((v)->{System.out.println(v);});
        input.close();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM