java基础训练题(2)

2024-02-20 16:20
文章标签 java 基础训练

本文主要是介绍java基础训练题(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、题目

1. 以下程序输出(D)

public static void main(String[] args) {int num = 2;switch (num) {case 1:++num;case 2:++num;case 3:++num;default:++num;break;}System.out.println(num);}
}

A:2

B:3

C:4

D:5

2.将类的成员的访问权限设置为默认的,则成员变量(A)

A:同一包中的类访问

B:其他包中的类访问

C:所有的类访问

D:所有的子类访问

3.对于下面这段代码,以下说法正确的是(C)

public class Test02{public int x;public static void main(String []args){  System. out. println("Value is" + x);}
}

A:程序会打出 "Value is 0"

B:程序会抛出 NullPointerException

C:非静态变量不能够被静态方法引用 

D:编译器会抛出 "possible reference before assignment"的错误

4.关于下列代码,说法正确的是(C)

public class Test02{static int arr[] = new int[5];//int数组默认值为0public static void main(String a[]){System.out.println(arr[0]); }
}

A:编译时产生错误

B:编译时正确,运行时将产生错误

C:输出零

D:输出 

5.假设score 是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是?(B)

temp = score[0];
for (int index = 1;index < 5;index++) {if (score[index] < temp) {temp = score[index];}
}

A:求最大值

B:求最小值

C:找到数组最后一个元素

D: 编译出错

6.下列代码执行后,输出结果是什么(B)


int i=0,s=0;
do{if (i%2 == 0){i++;continue;}i++;s = s + i;
} while (i<7);
System.out.println(s);

A:16

B:12

C:28

D:21

7.在 System.out.printf() 格式化输出语句中,不可以用于浮点数格式化输出的占位符是(D)

A:%f

B:%s

C:%e

D:%d

8.下面关于数组的声明语句中,有语法编译错误的是(B)

A:  int[] arr = new int[]{1,'A',3};

B : int[] arr;

        arr = {1,2,3,4,5};

C: int[] arr = new int[]{'X','A','S'};

D: int[][] arr = new int[3][];

9.switch的表达式可以是什么数据类型?(B)

A: Object

B:  char 

C:  double 

D:  float

10.下列代码执行后,输出结果是什么(D)

public static void main(String[] args) {int x = 1, y = 1, z = 1;if (x-- == 1 || y++ == 1 && z++ == 1) {System.out.println("x=" + x + ",y=" + y + ",z=" + z);}}

A:  x=0,y=2,z=1

B:  x=1,y=2,z=1 

C:  没有输出  

D:  x=0,y=1,z=1 

11.下列代码中,ABCD注释标注的哪行代码有错误?(D)

public class Test05 {public static void main(String[] args) {byte b = 'a'; //A int n =100; char c = 65; //B b = b; //C b = b+1; //D}
}

A: A

B: B

C: C

D: D

12.下列代码中,ABCD注释标注的哪行代码有错误?(B)

public class Test05 {public static void main(String[] args) {char ch = '花'; //A byte m = -100; ch = ch-ch; //B m = m; //C m = 127; //D }
}

A: A

B: B

C: C

D: D

13.下列选项中,那个选项中的表达式替换程序标注的【代码】会使得程序输出hello(C)

   public class Test { public static void main (String args[ ]) { int m = 0; if(【代码】){ System.out.println("您好");} else {System.out.println("hello");} } 
}

A: m-- <= 0

B: ++m > 0

C: m++ > 0

D: --m < 0

14.String字符串的replace()方法的作用是?(C)

A: 根据下标,获取字符串中的指定位置字符

B:  截取字符串

C:  替换字符串 

D:  查找子字符串,返回子字符串在原字符串中的下标位置

15.执行下列程序段后,运行结果为:(C)

Integer n1 = Integer.valueOf(127);Integer n2 = Integer.valueOf(127);System.out.println(n1 == n2);System.out.println(n1.equals(n2));

A: false

    false

B:  true

     false

C:  true

     true

D:  false

      true

16.下列哪个叙述是正确的?(D)

A: 成员变量的名字不可以和局部变量的名字相同。

B:  方法的参数的名字可以和方法中声明的局部变量的名字相同。

C:  成员变量没有默认值。

D:  局部变量没有默认值。

17.下列说法正确的是(B)

A: java的数组可以随时改变大小

B:  String字符串的长度和内容都是不可变的 

C:  局部变量和成员变量重名时以成员变量优先

D:  使用final修饰的方法不能被继承

18.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?(C)

class A{     int i;static String s;void method1() { }static void method2() { }
}

A:System.out.println(a.i);

B:  a.method1();

C:  A.method1(); 

D:  A.method2();

19.对于下列代码,下列哪个叙述是正确的?(A)

class A { public int i=0; public A(int m) { i = 1; } 
} 
public class B extends A {public B(int m) { i = 2; } public static void main(String args[]){ B b = new B(100); System.out.println(b.i); //【代码】} 
}

A: 程序提示编译错误(原因是A类没有不带参数的构造方法)。

B:  编译无错误,【代码】输出结果是0。

C:  编译无错误,【代码】输出结果是1。

D:  编译无错误,【代码】输出结果是2。

20.关于异常的编程,以下描述错误的是(A)

 A:在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常

B: Inti=lnteger.parselnt(”123a”);将产生NumberFormatException

C:  int a[]=null; a[0]=1; 将产生NullPointerException

D:  输入输出流编程中,读和写时都要抛出IOException

21.以下代码段执行后的输出结果为(D)

public class Test {public static void main(String args[]) {int x = -5;int y = -12;System.out.println(y % x);}
}

A:  -1

B:  2

C:  1

D:  -2 

22.以下Java程序代码,执行后的结果(B)

public class Test {public static void main(String[] args) {   Object o = new Object() {  public boolean equals(Object obj) {  return true; }};   System.out.println(o.equals("Fred"));}
}

A: Fred

B:  true 

C:  编译错误

D:  运行时抛出异常

23.(多选) java中关于继承的描述正确的是(A C D)

A:一个子类只能继承一个父类 

B: 子类可以继承父类的构造方法

C:  继承具有传递性 

D: 父类一般具有通用性,子类更具体 

24.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有(A)

package NowCoder;
class Test {public static void hello() {System.out.println("hello");}
}
public class MyApplication {public static void main(String[] args) {// TODO Auto-generated method stubTest test=null;test.hello();}
}

A:  能编译通过,并正确运行 正确答案

B: 因为使用了未初始化的变量,所以不能编译通过

C: 以错误的方式访问了静态方法

D: 能编译通过,但因变量为null,不能正常运行

25.对于以下代码段,4个输出语句中输出true的个数是(C)

class A{}
class B extends A{}
class C extends A{}
class D extends B{}
A obj = new D();
System.out.println(obj instanceof B);
System.out.println(obj instanceof C);
System.out.println(obj instanceof D);
System.out.println(obj instanceof A);

A: 1

B: 2

C: 3

D: 4

26.在Java中,以下数据类型中,需要内存最多的是(B)

A:byte

B:  long

C: Object

D:  int

27.以下代码的循环次数是(D)

public class Test {public static void main(String args[]) {int i = 7;do {System.out.println(--i);--i;} while (i != 0);System.out.println(i);}
}

A: 0

B: 1

C: 7

 D: 无限次 

28.关键字super的作用是(D)

A:  用来访问父类被隐藏的非私有成员变量

B:  用来调用父类中被重写的方法

C:  用来调用父类的构造函数

 D: 以上都是

29.对于如下代码段,可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是(C)

class A{public A foo() {return this;}
}
class B extends A {public A foo(){return this;}
}
class C extends B {_______
}

A:  public void foo(){}

B:  public int foo(){return 1;}

C:  public A foo(B b){return b;} 

D:  public A foo(){return A;}

30.(多选)下列可作为java语言标识符的是(A B C)

A: a1

B:  $1 

c:  _1 

d:  11

二、题解:

1.很多同学会错选为B:3 ;选择5的原因是,Case 2 后没有break,循环还在继续,直到遇见break才会结束循环。
2.略
3.x是非静态变量,不能被静态方法引用
4. int[ ]数组默认值为0,所以 arr[0] 是 0
5.本题考察对数组遍历的操作,循环体中,依次访问数组中第一个元素之后的每一个元素,并于第一个元素比较,如果小于第一个元素,将该元素赋值给temp,最后temp的值为数组中的最小元素
6.题解如下:   注意: (1)执行了if语段就不用执行  "i++; s = s + i;" (2) i 要跟循环条件进行比较
7.     %f ===> 格式化输出浮点数
        %s ===> 格式化输出字符串 (不知道用什么占位符,都可以用 %s)
        %e ===> 格式化输出科学计数法表示的浮点数
        %d ===> 格式化输出整数
8.略
9.Switch 支持的类型 :byte 、short 、int 、char 、String 、enum枚举
10.干扰选项是A;首先我们要知道 "||"表示逻辑或,即两者有一个直行通过即可。其次我们要知道 "++i"和"i++"的区别。
11.   b=b+1,1默认为int类型,b自动转型为int与1做加法,结果是int类型的。把int类型赋给byte类型b.就报错了。顺便说一下,如果b=b+1改为b+=1就没错了。
12.同上
13.本题我们要明白 "++m"是先 "++",再比较;"m++"是先比较,后"++";
例如:m++ > 0 ===>  先比较m > 0 ? "hello","您好"  ; 后 m = m++ = 1
14.A: 根据下标,获取字符串中的指定位置字符====> charAt()
B:  截取字符串 ====> subString()
C:  替换字符串 =====> replace()
D:  查找子字符串,返回子字符串在原字符串中的下标位置 ====> indexOf()
15. 没有开辟新的内存空间,所以都是对的
16.(1)局部变量没有默认值,要声明赋值后才可以使用    (2)成员变量有默认值    (3)当成员变量和局部变量重名时,局部变量优先
17.在Java中,String对象时不可变的,一旦创建字符串对象,其长度和内容都是不可变的。String字符串不可变原因:(1)String内部类的private final char[ ] 字符数组不可变(2)一旦创建,会产生新的对象,长度和内容也不可变
18.method1 不是静态方法,不能直接用类调用
19.略
20. B选项将字符串类型转化为数字,当字符串的格式不是整数形式的时候就会产生数字格式化异常了,就是那个NumberFormatException;C选项数组元素为null,还使用数组进行赋值,必会产生NullPointerException空指针异常;D选项流程的读写都需要抛出IOException,且IOException是编译时异常,所以以上三个描述都是正确的;A选项整数除以0会抛出一个ArithmeticException,但是此异常时,运行时异常,所以不是必须添加捕获异常的处理手段的,必须这个词描述的错误
21.输出结果的符号与被除数必须保持一致!!!例如:
public class Test {public static void main(String args[]) {int x = -5;int y = -12;System.out.println(y % x);//-2System.out.Prinln(3 % -2);//1System.out.Prinln(-3 % 2);//-1System.out.Prinln(-3 % -2);//-1}
}
22.Object 类的匿名子类重写了equals()方法,总是返回true;代码调用了o.equals("Fred"),它将使用匿名子类的equals()方法,因此输出结果将是true;
23.构造方法不可以继承,只可以调用、重载等
24.因为hello方法是静态的,没有this隐藏的参数,所以即使test指向空也没有问题,因为不需要传递这个参数。如果hello是普通成员方法的话就应该选择D
25.System.out.println(obj instanceof C); 错误·
26.A:byte 占1个字节   B:  long 占8个字节  C: Object 占4个字节  D:  int占4个字节
27.因为 i 一直不等于0,所以是无限循环
28.略
29.在父类中定义了相同签名的方法(签名:方法名称,输入的参数)
在子类中只能复写,而不能重新定义。所以方法public A foo()已经在A中定义了,所以只能覆写,所谓的覆写:只是重写方法体,像B的的做法一样。
A: 对方法foo()进行了重新定义,(把返回类型改变了)所以错误
B:同上,返回类型重新定义为int了
C:正确,因为这里重新定义了一个方法(名称+输入的参数)签名和父类中的不一样。
D:类名不能直接返回使用,返回的必须是一个对象。
30.可作为Java标识符:字母、$、下划线

这篇关于java基础训练题(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728802

相关文章

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件