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

相关文章

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2