Java菜題

編程語言:Javajava

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

1、選擇題(共15題,每題3分,共45分)編程

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

A、一個子類能夠有多個父類,一個父類也能夠有多個子類app

B、一個子類能夠有多個父類,但一個父類只能夠有一個子類jvm

C 一個子類能夠有一個父類,但一個父類能夠有多個子類編程語言

D、上述說法都不對ide

 

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、程序編譯錯誤,不能運行;

 

 

2、程序設計題(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();
    }
}
相關文章
相關標籤/搜索