JAVA练习--第四章第一次作业

下面程序运行的结果是( )
class Demo{
public static void main(String[] args){
try{
int x = div(1,2);
}catch(Exception e){
System.out.println(e);
}
System.out.println(x)
}
public static int div(int a,int b){
return a / b ;
}
}
A、输出1
B、输出0
C、输出0.5
D、编译失败
正确答案: C 我的答案:C得分: 2.0分
答案解析:

返回两数相除的结果
2
下面关于throws作用的描述中,正确的是( )
A、一个方法只能抛出一个异常信息
B、一个方法上使用throws声明一个异常说明这个方法运行时一定会抛出这个异常
C、throws可以声明在方法体中用来指定抛出的具体异常
D、throws出现在方法函数头
正确答案: D 我的答案:D得分: 2.0分
答案解析:

throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常
3
下面程序的运行结果是( )
public class Demo {
public static void main(String[] args) {
try {
System.out.println(10 / 0);
} catch (RuntimeException e) {
System.out.println(“RuntimeException”);
} catch (ArithmeticException e) {
System.out.println(“ArithmeticException”);
}
}
}
A、编译失败
B、编译通过,没有结果输出
C、输出:RuntimeException
D、输出:ArithmeticException
正确答案: A 我的答案:A得分: 2.0分
答案解析:

在用try…catch处理异常的时候,子类异常一定要先catch,父类异常最后catch
4
下列选项中,不可以被final修饰的是?( )
A、接口
B、类
C、方法
D、变量
正确答案: A 我的答案:A得分: 2.0分
答案解析:

final关键字可用于修饰类、变量和方法
5
在Java中,能实现多重继承效果的方式是
A、内部类
B、适配器
C、同步
D、接口
正确答案: D 我的答案:D得分: 2.0分
答案解析:

本题考查java中多重继承的概念。首先要区分选项中各个概念。内部类是在一个类中的内部嵌套定义的类,主要用来生成时间适配器。适配器定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器,它包装的对象就是适配者,适配器提高客户类需要的接口。接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以与存储空间没有任何关系,将多个接口合并,即多重继承就可以很容易实现,选项D正确。同步主要用在多线程程序设计中。
6
下列关于接口的描述,错误的是?()
A、接口不是Object类的子类
B、一个接口只能继承一个接口
C、一个接口可以继承多个接口
D、接口不能被实例化
正确答案: B 我的答案:B得分: 2.0分
答案解析:

一个类通过implements关键字实现接口时,可以实现多个接口,被实现的多个接口之间要用逗号隔开
7
下列选项中,不属于运行时异常类子类的是( )
A、ArrayStoreException
B、ClassCastException
C、IllegalArgumentException
D、ThreadDeath
正确答案: D 我的答案:D得分: 2.0分
答案解析:

ThreadDeath属于Error类的子类
8
下列选项中,用户创建归档文件的jar命令是( )
A、jar -c
B、jar -v
C、jar -f
D、jar -x
正确答案: A 我的答案:A得分: 2.0分
答案解析:

c参数用于创建归档文件
9
阅读下段代码,
class Dog
{
public String name;
Dog(String name){
this.name =name;
}
}
public class Demo1
{
public static void main(String[] args){
Dog dog1 = new Dog(“xiaohuang”);
Dog dog2 = new Dog(“xiaohuang”);
String s1 = dog1.toString();
String s2 = dog2.toString();
String s3 = “xiaohuang”;
String s4 = “xiaohuang”;
}
}
返回值为true的是?( )
A、dog1.equals(dog2)
B、s1.equals(s2)
C、s3.equals(s4)
D、dog1==dog2
正确答案: C 我的答案:C得分: 2.0分
答案解析:

选项A比较的是两个对象的地址,结果为false,选项B比较的是dog1和dog2对象的to String()值,结果为false,选项C,比较的是内容,内容相同,所以为true,选项D比较的是dog1和dog2对象的地址,结果为false
10
已知类的继承关系如下:
class Employee;
class Manager extends Employeer;
class Director extends Employee;
则以下语句能通过编译的有哪些?( )
A、Employee e=new Manager();
B、Director d=new Manager();
C、Director d=new Employee();
D、Manager m=new Director();
正确答案: A 我的答案:A得分: 2.0分
答案解析:

11
在下面哪种情况下,可以使用方法重写?( )
A、父类方法中的形参不适用于子类使用时
B、父类中的方法在子类中没有时
C、父类的功能无法满足子类的需求时
D、父类方法中的返回值类型不适合子类使用
正确答案: C 我的答案:C得分: 2.0分
答案解析:

父类的功能无法满足子类的需求时,这时候可以使用方法的重写。
12
class MyException extends (1) {
}
public class Demo {
public static void main(String[] args) {
try {
show();
} catch ( (2) e) {
e.printStackTrace();
}
}
public static void show() (3) MyException {
throw new MyException();
}
以上程序,创建了一个自定义异常(编译异常),请补全空白处代码( )
A、(1) Exception (2) MyException (3) throws
B、(1) MyException (2) Exception (3) throws
C、(1) Exception (2) Exception (3) throws
D、(1) Exception (2) MyException (3) Exception
正确答案: A 我的答案:A得分: 2.0分
答案解析:

自定义的异常类继承自Exception或其子类。Throws用于抛出异常
13
jar命令解压缩jar文件,需要的参数是( )
A、c
B、v
C、x
D、f
正确答案: C 我的答案:C得分: 2.0分
答案解析:

jar解压缩的参数是x
14
已知类的继承关系如下:
class Employee;
class Manager extends Employeer;
class Director extends Employee;
则以下语句能通过编译的有哪些?
A、Employee e=new Manager();
B、Director d=new Manager();
C、Director d=new Employee();
D、Manager m=new Director();
正确答案: A 我的答案:A得分: 2.0分
答案解析:

15
编译运行下面的程序,结果是什么?
public class A {
public static void main(String[] args) {
B b = new B();
b.test();
}
void test() {
System.out.print(“A”);
}
}
class B extends A {
void test() {
super.test();
System.out.print(“B”);
}
}
A、产生编译错误
B、代码可以编译运行,并输出结果AB
C、代码可以编译运行,但没有输出
D、编译没有错误,但会产生运行时异常
正确答案: B 我的答案:B得分: 2.0分
答案解析:

16
System类位于以下哪个包中?
修改
A、java.io
B、java.util
C、java.awt
D、java.lang
正确答案: D 我的答案:D得分: 2.0分
答案解析:

17
函数重写与函数重载的相同之处是?()
A、权限修饰符
B、函数名
C、返回值类型
D、形参列表
正确答案: B 我的答案:B得分: 2.0分
答案解析:

无论是函数重写还是函数重载都要求函数名要一致
18
自定义运行时异常,必须继承自( )类
A、Error
B、Exception
C、RuntimeException
D、Throwable
正确答案: C 我的答案:C得分: 2.0分
答案解析:

RuntimeException运行时异常的超类
19
下面对于final的描述中,错误的是?()
A、final修饰的局部变量可以被重新赋值
B、final修饰的变量被称之为常量
C、final修饰的基本数据类型变量,不能改变其值
D、final修饰的引用数据类型变量,不能改变其地址值
正确答案: A 我的答案:A得分: 2.0分
答案解析:

final修饰的局部变量不可以被重新赋值
20
下列异常中,属于编译时异常的是( )
A、NumberFormatException
B、ArithmeticException
C、Exception
D、RuntimeException
正确答案: C 我的答案:C得分: 2.0分
答案解析:

NumberFormatException ArithmeticException RuntimeException都是运行时异常
21
在Java语言中,以下哪个关键字用于在方法上声明抛出异常?( )
A、try
B、catch
C、throws
D、throw
正确答案: C 我的答案:C得分: 2.0分
答案解析:

22
下面程序的运行结果是( )
public class Demo {
public static void main(String[] args) {
try {
System.out.println(10 / 0);
System.out.println(“除法正常运行”);
} catch (ArithmeticException e) {
System.out.println(“除数不能为0”);
}
}
}
A、编译失败
B、编译通过,没有结果输出
C、输出:除法正常运行
D、输出:除数不能为0
正确答案: D 我的答案:D得分: 2.0分
答案解析:

虽然是运行时期异常,但是也可以使用try…catch语句进行处理。一旦进入处理语句就不会再回去执行
23
在JDK8以前,下列关于接口的说法中,错误的是?( )
A、接口中定义的方法默认使用"public abstract"来修饰
B、接口中的变量默认使用"public static final"来修饰
C、接口中的所有方法都是抽象方法
D、接口中定义的变量可以被修改
正确答案: D 我的答案:D得分: 2.0分
答案解析:

接口中定义的变量是常量,不能被修改
24
下列关于对象的类型转换的描述,说法错误的是( )
A、对象的类型转换可通过自动转换或强制转换进行
B、无继承关系的两个类的对象之间试图转换会出现编译错误
C、由new语句创建的父类对象可以强制转换为子类的对象
D、子类的对象转换为父类类型后,父类对象不能调用子类的特有方法
正确答案: C 我的答案:C得分: 2.0分
答案解析:

由new语句创建的父类对象不能转换为子类的对象,否则会报编译出错
25
包含Java中大量工具类、集合类的包是( )
A、java.util
B、java.io
C、java.awt
D、java.lang
正确答案: A 我的答案:A得分: 2.0分
答案解析:

java.util:包含Java中大量工具类、集合类等,例如Arrays、List、Set等
26
在类的继承关系中,需要遵循以下哪个继承原则?
A、多重
B、单一
C、双重
D、不能继承
正确答案: B 我的答案:B得分: 2.0分
答案解析:

27
final修饰符不可以修饰如下哪个内容?()
A、类
B、接口
C、方法
D、变量
正确答案: B 我的答案:B得分: 2.0分
答案解析:

final关键字可用于修饰类、变量和方法
28
下列选项中,用于解压jar文件的命令是( )
A、jar –c
B、jar -x
C、jar -v
D、jar -f
正确答案: B 我的答案:B得分: 2.0分
答案解析:

参数x用于解压
29
下面对于final修饰方法的描述中,正确的是?()
A、final修饰的静态方法不能被类名调用
B、final修饰的方法不能被子类重写
C、final修饰的抽象方法可以被子类重写
D、final只能修饰非静态的方法
正确答案: B 我的答案:B得分: 2.0分
答案解析:

final修饰的方法不能被子类重写
30
​如果父类的方法是静态的,则子类的方法被()修饰才能覆盖父类的静态方法 ?
A、protected
B、static
C、private
D、final
正确答案: B 我的答案:B得分: 2.0分
答案解析:

只有子类的方法为静态时才能重写父类的静态方法
31
以下关于继承的描述,说法正确的是( )
A、子类继承父类的所有属性和方法
B、子类可以继承父类的私有的属性和方法
C、子类可以继承父类的公有的属性和方法
D、创建子类对象时,父类的所有构造方法都会被执行
正确答案: C 我的答案:C得分: 2.0分
答案解析:

子类可以继承父类的非私有成员,并且在创建子类时默认会调用父类的无参构造方法
32
System类位于以下哪个包中?( )
A、java.is
B、java.util
C、java.awt
D、java.lang
正确答案: D 我的答案:D得分: 2.0分
答案解析:

33
下列选项中,关于接口的定义正确的是?( )
A、abstract class Demo1{ abstract void speak(); abstract void eat(); }
B、interface Demo2{ void speak(); void eat(); }
C、interface Demo3{ void speak(); void eat(){}; }
D、interface Demo4{ void speak(){ System.out.println(“ITCAST”); } void eat(); }
正确答案: B 我的答案:B得分: 2.0分
答案解析:

接口中的方法不能有方法体,接口由interface关键字修饰
34
以下关于编译异常说法正确的是( )
A、编译异常就是指Exception以及其子类
B、编译异常如果产生,可以不用处理
C、编译异常如果产生,必须处理,要么捕获,要么抛出
D、编译异常指的就是Error
正确答案: C 我的答案:C得分: 2.0分
答案解析:

编译异常如果产生,必须处理,要么捕获,要么抛出
35
Java中所有的类都是通过直接或间接地继承( )类得到的
A、java.lang.Object
B、java.lang.Class
C、任意类
D、以上答案都不对
正确答案: A 我的答案:A得分: 2.0分
答案解析:

Object是所有类的父类
36
public class Example {
public static void main(String[] args) {
try{
int rst = 4/0;
System.out.println("ret = "+rst);
}catch(Exception e){
System.out.println(“catch语句块执行”);
return;
}finally{
System.out.println(“finally语句块执行”);
}
System.out.println(“程序继续向下执行”);
}
}
运行以上程序,输出的结果是( )
A、catch语句块执行
B、catch语句块执行 程序继续向下执行
C、catch语句块执行 finally语句块执行
D、0 程序继续向下执行
正确答案: C 我的答案:B得分: 0.0分
答案解析:

在try语句块中发生了除零异常,因此会执行catch语句块中的内容,输出"catch语句块执行",finally语句块中表示一定会执行的语句,虽然catch中有return,但依然会输出"finally语句块执行"
37
Java语言的类间的继承关系是( )。
A、多重的
B、单重的
C、线程的
D、不能继承
正确答案: B 我的答案:B得分: 2.0分
答案解析:

38
下列选项中,关于final修饰成员变量的说法正确的是?( )
A、被final修饰的成员变量可以被多次赋值
B、被final修饰的成员变量为常量
C、final只能在接口中修饰成员变量
D、以上都不对
正确答案: B 我的答案:B得分: 2.0分
答案解析:

被final修饰的变量为常量,不能被第二次赋值或改变引用
39
请定义一个由public修饰符修饰的int型成员变量MAX_LENGTH,并使该值保持为常数100,则定义这个变量的语句是?()
A、public int MAX_LENGTH=100
B、public const int MAX_LENGTH=100
C、final int MAX_LENGTH=100
D、public final int MAX_LENGTH=100
正确答案: D 我的答案:D得分: 2.0分
答案解析:

应题目的要求,需要将该值保持为常数,那么就需要使用关键字final,所以选择D,const是java的保留关键字,在java中使用final定义常量。
40
下列选项中,可以导入指定包中所有类的是( )
A、package包名;
B、package 包名.;
C、import 包名;
D、import 包名.
;
正确答案: D 我的答案:D得分: 2.0分
答案解析:

如果有时候需要用到一个包中的许多类,则可以使用“import 包名.*; ”来导入该包下所有类
41
下面选项中,哪个关键字可以修饰局部变量?()
A、abstract
B、final
C、static
D、private
正确答案: B 我的答案:B得分: 2.0分
答案解析:

final可以修饰局部变量
42
final修饰符修饰方法时,不能和以下哪个修饰符共用?()
A、public
B、static
C、abstract
D、synchronized
正确答案: C 我的答案:C得分: 2.0分
答案解析:

final修饰符不能和abstract修饰符一起使用
43
下列选项中,可以被final修饰符修饰的是?()
A、抽象方法
B、局部变量
C、接口
D、抽象类
正确答案: B 我的答案:B得分: 2.0分
答案解析:

final关键字一般用于修饰类、变量和方法。还可以修饰局部变量。但不能与abstract修饰符一起使用,而且不能用于接口中
44
下列关于protected的说法中,正确的是( )
A、protected修饰的方法,只能给子类使用
B、protected修饰的类,类中的所有方法只能给子类使用
C、如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问
D、以上都不对
正确答案: C 我的答案:A得分: 0.0分
答案解析:

如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问
45
下面哪个修饰符不可以修饰接口中的成员变量?()
A、public
B、static
C、final
D、private
正确答案: D 我的答案:D得分: 2.0分
答案解析:

接口中的成员变量其实是一个常量,用public static final修饰,所以,用private修饰是错误的
46
下了关于接口继承的说法中,正确的是?()
A、接口继承自Object类
B、一个接口只能继承一个接口
C、一个接口可以继承多个接口
D、接口不能被继承
正确答案: C 我的答案:C得分: 2.0分
答案解析:

java中接口跟类是两个并行的概念,所有类都继承Object,但接口是接口,不继承Object所以A错误,一个接口可以继承多个接口
47
父类中的方法被以下哪个关键字修饰后不能被重写?( )
A、public
B、satic
C、final
D、void
正确答案: C 我的答案:C得分: 2.0分
答案解析:

如果方法被final修饰了,该方法不能被重写
48
下列关于继承的描述中,错误的是()
A、在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类
B、多个类可以继承一个父类
C、在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类
D、Java是支持多继承的
正确答案: D 我的答案:D得分: 2.0分
答案解析:

Java不支持多继承
49
如果类的成员被( )访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问
A、private
B、default
C、protected
D、public
正确答案: A 我的答案:A得分: 2.0分
答案解析:

如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其它成员访问,其它类无法直接访问。类的良好封装就是通过private关键字来实现的
50
阅读下面的代码,编译后会生成几层包?( )
package cn.itcast.mypack;
class PackageDemo
{
public static void main(String [] args)
{
System.out.println(“Hello package!”);
}
}
A、一层包(cn)
B、二层包(cn.itcast)
C、三层包(cn.itcast.mypack)
D、四层包(cn.itcast.mypack.PackageDemo)

你可能感兴趣的:(java练习题)