编程语言:Java

 2019年全国高校计算机能力挑战赛分设大数据算法赛(所谓的内部试题)

一、选择题(共15题,每题3分,共45分)

1. 在Java中下列说法正确的是(  )

A、一个子类可以有多个父类,一个父类也可以有多个子类

B、一个子类可以有多个父类,但一个父类只可以有一个子类

C、 一个子类可以有一个父类,但一个父类可以有多个子类

D、上述说法都不对

2. 关于Java垃圾回收机制描述不正确的是(   )

A、垃圾回收机制不须通过程序调用相应方法,也能自动启动。

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

C、垃圾回收机制属于jvm自动操作,java程序可以不进行垃圾回收操作。

D、垃圾回收机制并不是由操作系统自动执行。

3. 面向对象技术领域内占主导地位的标准建模语言是(    )

A、C++  B、Java    C、C#   D、UML

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分) 统计1到N以内质数的个数,并输出这个数目。

输入说明:一个整数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();
}
}

Java菜题的更多相关文章

  1. 50道经典的JAVA编程题(汇总)

    这是一次不可思议的编程历程.从2013年的最后一天开始做这份题,中间连续好几天的考试,包括java考试(今天考试的JAVA编程题),直到今天完成了.挺有成就感的...废话不多说了,来电实质性的吧. 全 ...

  2. 50道经典的JAVA编程题(46-50)

    50道经典的JAVA编程题(46-50),最后五道题了,这是一个美妙的过程,编程真的能让我忘掉一切投入其中,感觉很棒.今天下午考完微机原理了,大三上学期就这样度过了,这学期算是解放了,可是感觉我还是没 ...

  3. 50道经典的JAVA编程题(41-45)

    50道经典的JAVA编程题(41-45),苦逼的程序猿,晚上睡不着了编程吧~今天坚持做10道题!发现编程能是我快乐...O(∩_∩)O哈哈~能平静我烦乱的心,剩下5道题留到考试完了再做吧!该睡觉了.. ...

  4. 今天考试的JAVA编程题

    今天早上考了java, 题目感觉还不错, 共四道题,有一道定义类的没啥意思就没列出来. 这三道题目还是不错的,特别是第一道,大一上学期学linux的时候,那时还没学C语言呢,准确的来说,还不知道什么是 ...

  5. 50道经典的JAVA编程题(36-40)

    50道经典的JAVA编程题(36-40),今天晚上心情压抑,不爽,继续做题,管它明天考试,我继续我的java,一个周末都在看微机原理看得的很头疼啊~明天该挂科就挂吧,不在乎了~~~ [程序36] Ar ...

  6. 50道经典的JAVA编程题(31-35)

    50道经典的JAVA编程题(31-35),今天考完了java,在前篇博客里面贴出了题了,见:<今天考试的JAVA编程题>.考完了也轻松了,下个星期一还考微机原理呢,啥都不会,估计今天就做到 ...

  7. 50道经典的JAVA编程题(26-30)

    50道经典的JAVA编程题(26-30),这么晚了,早点睡了要,明早8点考java祝我好运吧!!!晚安~ [程序26]Ex26.java(跳过了,好没意思的题啊)题目:请输入星期几的第一个字母来判断一 ...

  8. 50道经典的JAVA编程题(21-25)

    50道经典的JAVA编程题(21-25),明天早上java考试了,还是坚持做题吧...这题比老师的题好多了! [程序21]TestJieCheng.java题目:求1+2!+3!+...+20!的和1 ...

  9. 50道经典的JAVA编程题 (16-20)

    50道经典的JAVA编程题 (16-20),用了快一个下午来做这10道题了,整理博客的时间貌似大于编程的时间啊..哈哈 [程序16]Nine.java 题目:输出9*9口诀. 1.程序分析:分行与列考 ...

随机推荐

  1. WPF 中 Path 使用虚线

    效果如下: 上图由两个圆弧组成,代码如下: <!--红色的实线圆弧,旋转200度,顺时针,获取大圆弧--> <Path Data="M 50,200 A 100,100 2 ...

  2. pyenv环境部署

    pyenv环境部署pyenv安装使用git[root@kang ~]# yum install git -y python安装依赖yum -y install gcc make patch gdbm- ...

  3. PHPStorm 初遇 Xdebug (xdebug代码调试及性能分析)

    centos 7 下PHP7安装xdebug # 下载xdebug wget https://xdebug.org/files/xdebug-2.7.2.tgz # 解压 tar -xf xdebug ...

  4. 你真的会用搜索吗?—— google 搜索技巧

    鄙人用了那么多年 google ,却只会简单的空格. 虽然空格已经很强大了.google 对此做了非常多的优化,原则是让你只用最基础的输入搭配空格就能达到跟下面介绍的方法几乎一样的效果,但是还有知道一 ...

  5. 洛谷P3128 [USACO15DEC]最大流Max Flow (树上差分)

    ###题目链接### 题目大意: 给你一棵树,k 次操作,每次操作中有 a  b 两点,这两点路上的所有点都被标记一次.问你 k 次操作之后,整棵树上的点中被标记的最大次数是多少. 分析: 1.由于数 ...

  6. Sqlite-net 修改版 支持中文和CodeFirst技术

    最近, 做的一个windows 桌面WPF程序, 需要数据库支持.尝试了 sql server 的开发版,使用EF , 效率太低.后来采用sqlite数据库,中间踩坑无数.但最终完美的解决了这些问题. ...

  7. ASP.NET Core 2.2 WebApi 系列【八】统一返回格式(返回值、模型验证、异常)

    现阶段,基本上都是前后端分离项目,这样一来,就需要前后端配合,没有统一返回格式,那么对接起来会很麻烦,浪费时间.我们需要把所有接口及异常错误信息都返回一定的Json格式,有利于前端处理,从而提高了工作 ...

  8. Slickflow.NET 开源工作流引擎快速入门之二: 简单并行分支流程代码编写示例

    前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试.本文试图从一个最简单的并行分支流程来示例说明,如何快速了解引擎代码的编写. 版本:.NET Core2 ...

  9. 常用类-excel转csv

    public class ExcelFileHelper { public static bool SaveAsCsv(string excelFilePath, string destination ...

  10. 【课件】git零基础快速入门实战--重点讲解,在实际生产中整合idea对版本、分支的管理等

    1.git简单描述 git是重要的版本管理工具,几乎每个码农都有自己的git账号管理自己的代码,同时很多公司也是用git管理公司的代码, 因此掌握git在实际生产中的常规使用非常重要. 2.git学习 ...