【Java应用程序开发】【期末复习题】【2022秋】【答案仅供参考】

零、考试说明

答题时长:90分钟
试卷共包含57道题目,其中单选题30道,多选题10道,判断题10道,简答题5道,程序题2道。

一、单选题(175-2-2题,1’)

1.定义一个类,必须使用的关键字是( )
A.public
B.class
C.interface
D.static

2.抽象方法:( )
A.可以有方法体
B.不可以出现在非抽象类中
C.有方法体的方法
D.抽象类中的方法都是抽象方法

3.下面关于switch语句错误的是:
A.在同一个switch语句中,case后的值可以相同
B.没有break语句,也能编译运行
C.default语句可有可无
D.switch语句中表达式的值可以是String类型

class Myclass{
   
    static int member;
}
public class Test{
   
    public static void main(String args[]){
   
    Myclass A = new Myclass();
    Myclass B = new Myclass();
    Myclass.member = 1;
    A.member = 2;
    B.member = 3;
    System.out.println("member = "+ Myclass.member);
    }
}

A.member = 1
B.member = 2
C.member = 3
D.member = 0

5.对于类A,B,C,D和接口 IA,IB,IC 有以下的定义,

class A{
   }
class B extends A implements IA{
   }
class C extends B implements IB{
   }
class D extends B implements IC{
   }

interface IA{
   }
interface IB extends IA{
   }
interface IC extends IA{
   }

下列类型转换中,正确的是()

A.IB ib = new D()
B.IC ic = new D()
C.IC ic = new C()
D.D d = new B()
JAVA程序设计(学堂在线-清华大学) 课后练习题 已更新完毕/优快云@King_Arthur#

6.对于下面代码的运行结果描述,正确的是( )

public static void main(String[] args){
   
    File f = new File("D:\\345.txt");
    FileWriter fw;
    try{
   
        fw = new FileWriter(f);
        String str = "chengliang\r\nrrrrrrttttttt";
        fw.write(str);
    }catch(IOException e){
   
        e.printStackTrace();
    }
}

A.D盘根目录下不会出现345.txt文件
B.D盘根目录下会出现345.txt文件,但是其中没有内容
C.会出现有345.txt文件,其中内容为str字符串的内容
D.345.txt文件中会出现乱码

7.在Java中,关于构造方法,下列说法错误的是( )
A.构造方法的名称必须与类名相同
B.构造方法可以带参数
C.构造方法不可以重载
D.构造方法绝对不能有返回值

8.下列哪些语句关于Java内存回收的说明是正确的? ( )
A.程序员必须创建一个线程来释放内存
B.内存回收程序负责释放无用内存
C.内存回收程序随机释放内存
D.内存回收程序可以在指定的时间释放内存对象

9.下面这段代码的输出为(忽略换行)

Object a = new Object();
Object b = new Object();
if(a.equals(b)){
   
    System.out.println("YES");
}else{
   
    System.out.println("NO");
}
b = a;
if(a.equals(b)){
   
    System.out.println("YES");
}else{
   
    System.out.println("NO");
}

A.YES NO
B.NO YES
C.YES YES
D.NO NO

10.Java语言的特点是:
(1) 面向对象(2) 安全性(3) 操作平台无关性(4) 多线程(5) 内存管理

A.(1)(3)(4)
B.(1)(2)(3)(4)
C.(1)(2)(3)(5)
D.(1)(2)(3)(4)(5)

11.在JAVA中,以下( )类的对象以键-值的方式存储对象
A.java.util.List
B.java.util.ArrayList
C.java.util.HashMap
D.java.util.LinkedList

12.下面关于继承的说法,正确的是( ) 。
A.超类的对象就是子类的对象
B.一个类可以有几个超类
C.一个类只能有一个子类
D.一个类只能有一个超类

13.面向对象的主要思想是:
将客观事物看作具有____和____的对象,通过抽象找出同一类对象的共同状态和行为,构成____。
A.状态,行为,类
B.属性,行为,方法
C.状态,行为,方法
D.属性,方法,类

14.线程通过( )方法可以使具有相同优先级线程获得处理器。
A.run
B.setPrority
C.yield
D.sleep

15.下列哪种操作不会抛出异常?
A.打开不存在的文件
B.用负数索引访问数组
C.浮点数除以0
D.浮点数乘以0

16.类Line的定义如下,其中的this代表的是:

class Line{
   
    private int a,b;
    public Line(int x,int y){
   
        this.x = x;
        this.y = y;
    }
}

A.this指针
B.类名Line
C.父类的对象
D.Line类实例的当前对象引用

17.在Java中,存放字符串常量的对象属于( )类对象。
A.Character
B.String
C.StringBuffer
D.Vector

18.下面哪个不属于Java标准输入输出流
A.System.in
B.System.out
C.System.stream
D.System.err

19.在创建某类的对象时应该:
A.只要声明对象,就可以使用。
B.声明对象后,为对象分配内存空间初始化后,才能使用对象
C.对象是类的实例,只要存在类,就不用声明对象。
D.因为Java是单继承,所以一个类只能有一个对象。

20.Java语言间的继承关系是:
A.单继承
B.多继承
C.单继承和多继承
D.不能继承

21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )
A.String args
B.String []
C.Char arg
D.String args[]

22.关于对象成员占用内存的说法哪个正确?( )
A.同一个类的对象共用同一段内存
B.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对

23.给定如下所示的Java代码,则运行时,会产生( )类型的异常

String s = null;
s.concat("abc");

A.ArithmeticException
B.NullPointerException
C.IOException
D.ClassNotFoundException

24.在以下哪种情况下不需要进行方法的覆盖
A.子类的方法和父类功能相同,但实现细节不同
B.在名字相同的方法中要做更多的事情
C.子类中要取消从父类继承的方法
D.以上都不是

25.在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列( )选项中的方法是LinkedList类有而ArrayList类没有的。
A.add(Object o)
B.add(int index,Object o)
C.remove(Object o)
D.removeLast()

26.A,B是两个定义好的接口,若接口C想要拓展这两个接口,以下做法正确的是
A.interface C extends A,B{}
B.interface implements A,B{}
C.class C extends A,B{}
D.class C implements A,B{}

27.已知MyInterface是一个接口,ClassA是实现了MyInterface的一个类,ClassB是ClassA的一个子类,则下列哪个语句是正确的
A.ClassB obj = new ClassA();
B.MyInterface obj = new ClassB()
C.ClassA obj = new MyInterface()
D.MyInterface obj = new MyInterface()

28.关于接口实现的语法,正确的是
A.可以用new运算符,直接产生接口对象
B.必须实现接口中的所有方法
C.来自接口的方法实现可以声明成private
D.接口的方法默认是protected修饰

29.关于接口哪个正确? ( )
A.实现一个接口只要实现接口的一个方法即可
B.接口可实现java的多重继承
C.接口间不能有继承关系
D.接口和抽象类是同一回事

30.编译一个定义了两个类和三个方法的 Java 源程序文件,总共会产生( )个字节码文件。
A.5 个字节码文件,以“.java”为扩展名
B.2 个字节码文件,以“.java”为扩展名
C.5 个字节码文件,以“.class”为扩展名
D.2 个字节码文件,以“.class”为扩展名

31.下面哪个关键字不是类及成员的访问控制符:
A.public
B.private
C.static
D.protected

32.下列javaDoc注释正确的是( )
A./*我爱北京天安门*/
B.//我爱北京天安门*/
C./**我爱北京天安门*/
D./*我爱北京天安门**/

33.以下关于继承的叙述正确的是( )。
A.在Java中一个类只能实现一个接口
B.在Java中一个类不能同时继承一个类和实现一个接口
C.在Java中接口只允许单一继承
D.在Java中类只允许单一继承

34.对于try{……}catch子句的排列方式,下列正确的一项是( )
A.子类异常在前,父类异常在后
B.父类异常在前,子类异常在后
C.只能有子类异常
D.父类异常与子类异常不能同时出现

35.给定如下Java 程序代码片段,编译运行这段代码,结果是( B )。

java.util.HashMap 
map = new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.get("name"));

A.null
B.Jack
C.nullJack
D.运行时出现异常

36.面向对象的程序设计方法采用了什么样的抽象方法构建程序的类与对象:
A.过程抽象
B.数据抽象
C.过程抽象与数据抽象
D.没有采用任何的抽象方法

37.要获取以下MyClass类中member的值,采用的语句是:

public class Myclass{
   
    public static int member=1;
    public static int getmember(){
   
        return member;
    }
};

A.MyClass.member()
B.MyClass().member
C.MyClass.member或者MyClass.getmember()
D.MyClass().member或者MyClass().getmember()

38.下列不属于面向对象程序设计的基本特征的是:
A.抽象
B.封装
C.继承
D.静态

39.下列选项中,用于声明包名的关键字是:
A.import
B.package
C.interface
D.protected

40.()类是所有异常类的父类。
A.Runable
B.Error
C.Exception
D.AWTError

41.在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( )。
A.bookTypeList.add("小说");
B.bookTypeList.get("小说");
C.bookTypeList.contains("小说");
D.bookTypeList.remove("小说");

42.执行下面代码结果( )

for(int i=0;;){
   
    System.out.println("这是 "+i);
    break;
}

A.语法错误,缺少表达式2和表达式3
B.死循环
C.程序什么都不输出
D.输出:这是0

43.下列选项中关于Java中封装的说法错误的是( )。
A.封装就是将属性私有化,提供共有的方法访问私有属性
B.属性的访问方法包括setter方法和getter方法
C.setter方法用于赋值,getter方法用于取值
D.包含属性的类都必须封装属性,否则无法通过编译

44.以下程序段的输出结果是:

int i = 0;
for(i=4; i>0; i--) {
   
    if(i==1)
        break;
    System.out.print(i);
}
System.out.print(i);

A.4321
B.4322
C.321
D.432

45.以下程序的运行结果是:( )

public class Increment{
   
    public static void main(String args[]) {
   
        int a;
        a = 6;
        System.out.print(a);
        System.out.print(a++);
        System.out.print(a);
    }
}

A.666
B.667
C.677
D.676

46.下列哪一项不是构造方法的特点:
A.构造方法名必须与类名相同
B.构造方法不具有任何返回类型
C.任何一个类都含有构造方法
D.构造方法可以通过对象调用

47.A和B是两个定义好的接口,若类C想要实现这两个接口,以下做法正确的是
A.class C extends A implents B{}
B.class C implements A,B{}
C.class C implements A extends B{}
D.class C extends A,B

48.下列声明二维数组的语句不合法的是()
A.char c[][] = new char[2][3];
B.char c[][]=new char[6][];
C.char[][] c= new char[3][3];
D.char [][] c = new char[][4];

49.某类的成员方法只能被自己调用,修饰该方法的是:
A.public
B.protected
C.private
D.无修饰符

50.对象的特征在类中表示为变量,称为类的( )。
A.对象
B.属性
C.方法
D.数据类型

51.线程通过( )方法可以休眠一段时间,然后恢复运行。
A.run
B.setPrority
C.yield
D.sleep

52.将类的成员的访问权限设置为默认的,则该成员能被( ) 。
A.同一包中的类访问
B.其他包中的类访问
C.所有的类访问
D.所有的类的子类访问

53.关于Object类,下面说法正确的是
A.equals方法可以比较两个对象是否相等
B.如果两个对象同一,那么它们一定相等
C.如果两个对象相等,那么它们一定同一
D.相等和同一意思一样

54.以下关于抽象类和接口的说法错误的是( )
A.抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口。
B.在抽象类中可以没有抽象方法
C.实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。接口中的方法都不能被实现
D.接口中的方法都必须加上public关键字。

55.下列值不为true的表达式有( )。
A."john" = = "john"
B."john".equals("john")
C."john" = "john"
D."john".equals(new String("john"))

56.以下( )不是合法的标识符
A.STRING
B.x3x;
C.void
D.de$f

57.在Java中,下面对于构造函数的描述错误的是( )
A.类不一定要显式定义构造函数
B.构造函数的没有返回类型
C.如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D.一个类可以定义多个构造函数

58.关于类的描叙正确的是( )
A.在类中定义的变量称为类的成员变量,在别的类中可以直接使用
B.局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中
C.使用别的类的方法仅仅需要引用方法的名字即可
D.一个类的方法可以没有方法名

59.当( )方法终止时,能使线程进入死亡状态。
A.run
B.setPrority//更改线程优先级
C.yield//暂停当前线程的执行,执行其他线程
D.sleep//线程休眠

60.下面关于接口的说法正确的是:
A.接口具有多重继承性,一个接口可以继承多个父接口
B.接口中定义的数据,都是变量
C.接口中定义的方法,可以在定义时提供实现
D.接口用abstract 修饰

61.对异常处理语句try-catch-finally,下面哪个说法是正确的:
A.如果有多个catch语句,对所有的catch语句都会执行一次
B.如果有多个catch语句,对每个符合条件的catch都会执行一次
C.多个catch的情况下,异常类的排列顺序应该是父类在前,子类在后
D.一般情况下,finally部分都会被执行一次

62.A类有a、b、c三个public变量成员,B类继承自A,并且增加了自己的public变量成员d,C继承自A,增加了自己的public变量成员e,则下列说法中错误的是
A.A类拥有c成员
B.B类拥有b成员
C.C类拥有d成员
D.B类拥有c成员

63.自定义异常类时,可以继承的类是( )
A.Error
B.Applet
C.Exception及其子类
D.AssertionError

64.在Java程序中,下面哪个是不合法的标志符()
A.2D
B.True
C._name
D.T1

65.为了区分重载多态中同名的不同方法,要求( )。
A.方法名不同
B.返回值类型不同
C.调用时用类名或对象名做前缀
D.形式参数个数或者类型不同

66.下面的代码段执行之后count的值是什么( )

int count = 1;
for (int i = 1; i <= 5; i++) {
   
    count += i;
}
System.out.println(count);

A.5
B.1
C.15
D.16

67.关于Java中类的声明,下面哪个关键字是必须有的:
A.public
B.class
C.extends
D.implements

68.下面( )赋值语句不会出现编译警告或错误。
A.float f=1.3;
B.char c="a";
C.byte b=257;
D.int i=10;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

69.( )表达式不可以作为循环条件
A.i++;
B.i>5;
C.bEqual = str.equals("q");
D.count = = i;

70.下面关于数组的说法中,错误的是( )
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组需要在内存中占用空间。
C.数组必须先声明,然后才能使用
D.数组本身是一个对象

71.如下哪个是Java中有效的关键字( )。
A.name
B.hello
C.false
D.good

72.变量命名规范说法正确的是( )
A.变量由字母、下划线、数字、$符号随意组成;
B.变量不能以数字作为开头;
C.A和a在java中是同一个变量;
D.不同类型的变量,可以起相同的名字;

73.下列代码输出结果是( )

int i = 10;
while ( i > 0 ){
   
    i = i + 1;
    if ( i = =10 ){
   
        break;
    }
}

A.while循环执行10次
B.死循环
C.循环一次都不执行
D.循环执行一次

74.有关类的说法,正确的是( ) 。
A.类具有封装性,所以类的数据是不能被访问的
B.类具有封装性,但可以通过类的公共接口访问类中的数据
C.声明一个类时,必须使用 public 修饰符
D.每个类中必须有 main 方法,否则程序无法运行

75.Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是( )
A.C不仅继承了B中的成员,同样也继承了A中的成员
B.C只继承了B中的成员
C.C只继承了A中的成员
D.C不能继承A或B中的成员

76.关于面向对象的说法正确的是( )
A.类可以让我们用程序模拟现实世界中的实体
B.有多少个实体就要创建多少个类
C.对象的行为和属性被封装在类中,外界通过调用类的方法来获得,但是要知道类的内部是如何实现
D.现实世界中的某些实体不能用类来描述

77.在横线中哪种方法访问的是A类的balance

class B{
   
    public int balance;
    public int getBalance() {
   
        return balance;
    }
}

class A extends B{
   
    public int balance;
    public void use_B_balance() {
   
    ______
    }
}

A.balance
B.getBalance()
C.super.balance
D.super.getBalance()

78.下面代码输出结果是( )。

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

79.下面关于抽象方法的说法中,正确的是
A.可以有方法体
B.可以出现在非抽象类中
C.没有方法体
D.抽象类中的方法都被称为抽象方法

80.下列输出结果是( )

int a = 0 ;
while ( a < 5 ) {
   
switch(a){
   
case 0:
case 3 : a = a + 2;
case 1 :
case 2 : a = a + 3;
default : a = a + 5;
}
}
System.out.print ( a ) ;

A.0
B.5
C.10
D.其他

81.以下关于java异常说法不正确的是( )。
A.Throwable 类是 Java 语言中Error类和Exception类的父类。
B.当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过try…catch…finally处理。
C.如果只用一个catch块捕捉多个异常对象,则catch 子句中的参数类型应是所有异常对象的父类。
D.以上说法都不对。

82.如果一个程序中有多个catch语句,则程序会按如下哪种情况执行:
A.找到合适的异常类型后执行后面的catch语句
B.找到每个符合条件的catch都要执行一次
C.找到合适的异常类型处理后就不再执行后面的catch语句
D.对每个catch语句都执行一次

83.在异常处理中,将可能抛出异常的方法放在( )语句块中
A.throws
B.catch
C.try
D.finally

84.以下有关构造方法的说法,正确的是:( )
A.一个类的构造方法只能有一个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。
D.构造方法和类同名

85.下面说法不正确的是( )。
A.列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。
B.List接口是可以包含重复元素的有序集合。
C.Set接口是不包含重复元素的集合。
D.Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。

86.有如下代码片段:

int num1 = 10;
int num2 = 20;
String word = new String("exam");
double answer = 25.5;

另外定义了下列方法头:
public int stuff(String s, int x, int y) 以下哪个是正确的方法调用:

A.num1 = stuff("hello", num1, num2);
B.answer = stuff(word, answer, num2);
C.num2 = stuff("hello",num1,answer);
D.num1 = stuff(num1,num2,answer);

87.下列有关 Java 中接口的说法正确的是( )。
A.接口中含有具体方法的实现代码
B.若一个类要实现一个接口,则用到 “implements” 关键字
C.若一个类要实现一个接口,则用到“ extends ”关键字
D.接口不允许继承

88.null
A.null1
B.null2
C.null3
D.null4

89.下面哪个条件运算的结果等价于简单的if-else语句:

if(a > b) 
    System.out.println(a);
else 
    System.out.println(b);

A.System.out.println((a>b):a?b);
B.System.out.println((a>b):b?a);
C.System.out.println((a>b)?b:a);
D.System.out.println((a>b)?a:b);

90.对于类A,B,C,D和接口 IA,IB,IC 有以下的定义,

class A{
   }
class B extends 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值