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 Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot中配置文件的加载顺序解读

《SpringBoot中配置文件的加载顺序解读》:本文主要介绍SpringBoot中配置文件的加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot配置文件的加载顺序1、命令⾏参数2、Java系统属性3、操作系统环境变量5、项目【外部】的ap

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen