• 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 FilesJavajdk1.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();
        }
    }
  • 相关阅读:
    [Codeforces 933A]A Twisty Movement
    [Codeforces 100633J]Ceizenpok’s formula
    [HAOI 2011]向量
    [JSOI 2008]最大数
    [Codeforces 750E]New Year and Old Subsequence
    [BZOJ 3439]Kpm的MC密码
    [TJOI 2013]单词
    [SCOI 2011]糖果
    [BZOJ 2160]拉拉队排练
    [AtCoder arc090F]Number of Digits
  • 原文地址:https://www.cnblogs.com/dgwblog/p/11724997.html
Copyright © 2020-2023  润新知