Java期末复习题

第1章Java开发入门

一、填空题
1.将.java源文件编译为.class文件的是【 】命令。
2.在Eclipse窗口中选择菜单【 】→New→Java Project创建Java项目。
3.在安装JDK的过程中,有三个功能模块可供选择,它们分别是【 】,【 】和【 】。
4.将Hello.java文件编译为class文件,需要键入【 】命令。
5.JRE是Java程序的【 】。
二、判断题
1.Eclipse只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中来实现的。( )
2.JDK安装成功后,需要将bin目录的路径配置在环境变量path中。( )
3.Java配置环境变量path的目的是为了可以查找到.class文件。( )
4.JDK安装成功后,classpath环境变量必须配置。( )
5.在命令行窗口中,编译Demo.java文件可以输入javac Demo。( )
三、选择题
1.如果jdk的安装路径为:c:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项( )
A: c:\jdk
B: c:\jdk\bin
C: c:\jre\bin
D: c:\jre
2.下列关于classpath环境变量的说法中,说法正确的是( )
A: classpath配置一次后可永久使用
B: 没有classpath环境变量就不能运行Java程序
C: classpath环境变量可以让虚拟机找到class文件的目录
D: 查看当前classpath配置的命令是:classpath
3.下面哪种类型的文件可以在Java虚拟机中运行( )
A: .java
B: .jre
C: .exe
D: .class
4.Java属于以下哪种语言( )
A: 机器语言
B: 汇编语言
C: 高级语言
D: 以上都不对
5.下列关于Java特点的描述中,错误的是( )。
A: Java是一门面向对象的语言
B: Java具有自动垃圾回收的机制
C: Java可以运行在Window和Linux等不同平台上
D: Java中只支持单线程序运行
答案
一、填空题
1.javac
2.File
3.开发工具;源代码;公共JRE
4.javac Hello.java
5.运行环境
二、判断题
1.对
2.对
3.错
4.错
5.错
三、选择题
1.B
2.C
3.D
4.C
5.D

第2章Java编程基础

习题
一、填空题
1.可以通过【 】循环使程序能够多次键盘输入。
2.Java中可以通过【 】类来获取随机数。
3.定义一个方法时,要有访问修改符、返回值类型、方法名、【 】。
4.当方法中的返回值类型是【 】时,可以不写return语句。
5.十进制数12转换成二进制的结果是【 】。
二、判断题
1.数组的最大下标的值比它的长度小1。( )
2.二维数组中的元素还是一个数组。( )
3.在表达式中,乘法和除法运算优先级别最高。( )
4.若x = 5,则表达式(x + 5)/3的值是3。( )
5.常量就是程序中常常变化的数据。( )
三、选择题
1.阅读下面的代码片段
public static int add(int a,int b) {
return a + b;
}
下列选项中,可以在main()方法中调用add()方法的是( )
A: int num = add(1.0,2.0);
B: int num = add(1,2);
C: int num = add(true,flase);
D: int num = add(“1”, “2”);
2.下面关于布尔类型变量的定义中,正确的是( )
A: boolean a=TRUE;
B: boolean b=FALSE;
C: boolean c=‘true’;
D: boolean d=false;
3.下面浮点型数据的定义中,错误的是( )
A: float a=1.23;
B: double b=1.23;
C: double c=1.5E4;
D: float d=‘a’;
4.以下关于三元运算符的说法中,正确的是( )
A: 三元运算符第一个表达式的结果必须是boolean类型值。
B: 三元运算符第一个表达式的结果可以是任意类型的值。
C: 三元运算符只能得到基本类型的结果。
D: 以上说法都不对。
5.while语句的循环体中不能包含的语句是( )
A: while语句
B: 方法定义语句
C: if语句
D: switch语句
答案
一、填空题
1.while
2.Random
3.参数列表
4.void
5.1100
二、判断题
1.对
2.对
3.错
4.对
5.错
三、选择题
1.B
2.D
3.A
4.A
5.B

第3章面向对象(上)

习题
一、填空题
1.在Java中使用【 】类型的实例对象表示一个字符串。
2.在Java中解决成员变量与局部变量名称冲突时,可以使用【 】关键字。
3.类的封装是指在定义一个类时,将类中的属性私有化,即使用【 】关键字来修饰。
4.在一个Java类中,可以使用【 】关键字来修饰成员变量,该变量被称作静态变量。
5.在垃圾回收机制中,可以通过调用【 】方法来通知Java虚拟机立即进行垃圾回收。
二、判断题
1.在Java中,对象是通过类创建出来的。( )
2.垃圾回收机制保证了Java程序不会出现内存溢出。( )
3.在成员方法中可以使用“this([参数1,参数2…])”来调用其它的构造方法。( )
4.static关键字可以修饰成员变量,也可以修饰局部变量。( )
5.成员内部类,就是将一个类定义在另一个类的成员的位置。( )
三、选择题
1.请阅读下面的程序,关于程序的运行结果说法正确的是( )
class Demo{
private static int x ;
public static void main(String[] args){
System.out.println(x++);
}
}
A: 结果为0
B: 结果为1
C: 无结果
D: 编译失败
2.下列程序的运行结果是( )
class Demo{
private String name;
Demo(String name){this.name = name;}
private static void show(){
System.out.println(name)
}
public static void main(String[] args){
Demo d = new Demo(“lisa”);
d.show();
}
}
A: 输出lisa
B: 输出null
C: 输出name
D: 编译失败,无法从静态上下文中引用非静态变量name
3.下面关于构造方法的调用,正确的是( )
A: 构造方法在类定义的时候被调用
B: 构造方法在创建对象的时候被调用
C: 构造方法在调用对象方法时被调用
D: 构造方法在使用对象的变量时被调用
4.下列关于成员变量默认值的描述中,错误的是( )
A: byte类型的数据默认值是0
B: int类型的数据默认值是0
C: long类型的数据默认值是0
D: float类型的数据默认值是0.0f
5.“隐藏对象的属性和实现细节,仅对外提供公有的方法”描述的是面向对象的哪个特征( )
A: 封装
B: 继承
C: 多态
D: 以上都不是
答案
一、填空题
1.String
2.this
3.private
4.static
5.System.gc()
二、判断题
1.对
2.错
3.错
4.错
5.对
三、选择题
1.A
2.D
3.B
4.C
5.A

第4章面向对象(下)

习题
一、填空题
1.RuntimeException类及其子类都是【 】异常。
2.throw关键字用于在方法中声明抛出异常的【 】。
3.自定义异常需要继承【 】类。
4.定义一个抽象类的关键字是【 】。
5.final修饰的方法,不能被子类【 】。
二、判断题
1.RuntimeException类及其子类用于表示运行时异常。( )
2.Java中的异常类都继承自java.lang.Throwable类。( )
3.throws关键字用于对外声明方法可能发生的异常,这样调用者在调用方法时,可以明确知道该方法有异常,并进行相关处理。( )
4.protected修饰的类,类中的所有方法只能给子类使用。( )
5.Object是所有类的父类。( )
三、选择题
1.下列符号中,哪个用于分隔throws关键字抛出的多个异常( )
A: ;
B: ,
C: &
D: |
2.下面程序运行的结果是( )
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: 编译失败
3.以下关于编译异常说法正确的是( )
A: 编译异常就是指Exception以及其子类
B: 编译异常如果产生,可以不用处理
C: 编译异常如果产生,必须处理,要么捕获,要么抛出
D: 编译异常指的就是Error
4.下列关于protected的说法中,正确的是( )
A: protected修饰的方法,只能给子类使用
B: protected修饰的类,类中的所有方法只能给子类使用
C: 如果一个类的成员被protected修饰,那么这个成员既能被同一包下的其它类访问,也能被不同包下该类的子类访问。
D: 以上都不对
5.下列关于对象的类型转换的描述,说法错误的是( )
A: 对象的类型转换可通过自动转换或强制转换进行
B: 无继承关系的两个类的对象之间试图转换会出现编译错误
C: 由new语句创建的父类对象可以强制转换为子类的对象
D: 子类的对象转换为父类类型后,父类对象不能调用子类的特有方法
答案
一、填空题
1.运行时
2.实例对象
3.Exception
4.abstract
5.重写
二、判断题
1.对
2.对
3.对
4.错
5.对
三、选择题
1.B
2.C
3.C
4.C
5.C
第5章Java API
习题
一、填空题
1.在程序,获取字符串长度的方法是【 】。
2.StringBuffer类的默认容量是【 】个字符。
3.Math类中,用于获取一个数的绝对值的方法是【 】。
4.String类中,将字符串转换为字符数组的方法是【 】。
5.Random类的【 】方法可以随机生成Int类型的随机数。
二、判断题
1.switch语句不支持字符串类型。( )
2.String类的append()方法可以将数组元素和空格连接成字符串。( )
3.ceil()和floor()方法返回的都是double类型的数。( )
4.Random类的nextInt( )方法会生成一个int类型的随机数。( )
5.JAVA中拆箱是指将基本数据类型的对象转为引用数据类型。( )
三、选择题
1.阅读下面的代码,输出结果是( )
public static void main(String[] args) {
Random random1 = new Random(10);
Random random2 = new Random(10);
for(int i=0;i<5;i++){
System.out.print(random1.nextInt(5));
}
System.out.println();
for(int i=0;i<5;i++){
System.out.print(random2.nextInt(5));
}
}
A: 3030130301
B: 5048132680
C: 3268023579
D: 1111111111
2.下面哪个方法可以实现获取字符在某个字符串中第一次出现的索引( )
A: charcharAt(intindex)
B: intindexOf(intch)
C: intlastIndexOf(intch)
D: booleanendsWith(Stringsuffix)
3.假如indexOf()方法未能找到所指定的子字符串,那么其返回值为( )
A: false
B: 0
C: -1
D: 以上答案都不对
4.下列对于Runtime的描述中,错误的是( )
A: 每一个Java应用程序运行时都产生一个Runtime类实例
B: Runtime实例可以将应用程序和运行环境相结合
C: Runtime类中的方法是多例的
D: Runtime实例不需要创建,直接通过getRuntime()方法获取
5.阅读下列代码
public class Example {
public static void main(String[] args) {
int[] srcArray = { 11, 12, 13, 14 };
int[] destArray = { 21, 22, 23, 24 };
System.arraycopy(srcArray, 1, destArray, 2, 2);
for (int i = 0; i < destArray.length; i++) {
System.out.print(destArray[i] + " ");
}
}
}
下列选项中,程序的运行结果是( )
A: 21221213
B: 21221112
C: 21111224
D: 发生数组角标越界异常
答案
一、填空题
1.length()
2.16
3.abs()
4.toCharArray ()
5.nextInt ()
二、判断题
1.错
2.错
3.对
4.对
5.错
三、选择题
1.A
2.B
3.C
4.C
5.A

第6章集合类

一、填空题
1.键和值对象之间存在一种对应关系,称为【 】。
2.java.util.Iterator接口的主要作用是对【 】进行迭代的迭代器。(写顶级接口)。
3.Map接口的主要实现类有【 】和【 】。
4.ArrayList集合中大部分方法都是从父类Collection和List继承过来的,其中【 】方法和【 】方法用于实现元素的存取。
5.当向HashSet集合中添加一个对象时,首先会调用该对象的【 】方法来计算对象的哈希值。
二、判断题
1.HashSet是根据对象的哈希值来确定元素在集合中的存储位置,因此性能较差。( )
2.可以通过Scanner类的next()方法来接受控制台的信息。( )
3.Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value。( )
4.Iterator接口是Java集合框架中的成员。( )
5.集合是长度可变的数组。( )
三、选择题
1.阅读下面代码
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(“aaa”);
list.add(“bbb”);
list.add(“ccc”);
for (Object obj : list) {
if (obj.equals(“bbb”)) {
list.remove(obj);
}
}
System.out.println(list);
}
}
下列选项中,哪一个是程序执行后的结果( )
A: [aaa,ccc]
B: [aaa,bbb,ccc]
C: []
D: 以上都不对
2.下列方法中,不能用于删除Collection集合中元素的是( )
A: clear()
B: isEmpty()
C: remove()
D: removeAll()
3.Java语言中,集合类都位于哪个包中( )
A: java.util
B: java.lang
C: java.array
D: java.collections
4.下列关于ArrayList的描述中,错误的是( )
A: ArrayList集合可以看作一个长度可变的数组。
B: ArrayList集合不适合做大量的增删操作。
C: ArrayList集合查找元素非常便捷。
D: ArrayList集合中的元素索引从1开始。
5.下面哪个对象不能直接获取java.util.Iterator迭代器进行迭代( )
A: java.util.HashSet
B: java.util.ArrayList
C: java.util.TreeSet
D: java.util.HashTable
答案
一、填空题
1.映射
2.Collection
3.HashMap;TreeMap
4.add();get()
5.hashCode()
二、判断题
1.错
2.错
3.对
4.对
5.错
三、选择题
1.A
2.B
3.A
4.D
5.D

第7章IO(输入输出)

习题
一、填空题
1.File类中用于删除文件或整个目录的方法是【 】。
2.java.io.FileOutputStream是【 】的子类,它是操作文件的字节输出流。
3.IO流通常都是成对出现的,即【 】流和【 】流一起使用。
4.字节流缓冲区实际上是一个【 】数组。
5.java.io包中可以用于从文件中直接读取字符的是【 】类。
二、判断题
1.BufferedReader和BufferedWriter是具有缓冲功能的流,使用它们和使用其他流没有任何区别。( )
2.在操作文件时,如果需要删除整个目录,只需File类的delete()方法直接删除目录即可。( )
3.Java中的数据传输“流”都位于java.io包中,称为IO(输入/输出)流( )
4.FileOutputStream是操作文件的字节输出流,专门用于把数据写入文件。( )
5.FileWriter用于向文件中写入字符,它属于字符输出流。( )
三、选择题
1.以下选项中,哪一个是File类delete()方法返回值的类型( )
A: boolean
B: int
C: void
D: Integer
2.当文件不存在或不可读时,使用FileInputStream读取文件会报下列哪一种错误( )
A: NullPointerException
B: NoSuchFieldException
C: FileNotFoundException
D: RuntimeException
3.Java流被分为字节流、字符流两大流类,两者都作为( )类的直接子类。
A: Exception
B: Object
C: Throwable
D: 以上都不是
4.下面关于字节流缓冲区的说法错误的是( )
A: 使用字节流缓冲区读写文件是一个字节一个字节的读写。
B: 使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据。
C: 使用字节流缓冲区读写文件,可以大大的提高文件的读写操作。
D: 字节流缓冲区就是一块内存,用于存放暂时输入输出的数据。
5.下列选项中,哪个是文本文件读取类( )
A: FileReader
B: FileWriter
C: BufferReader
D: BufferWriter
答案
一、填空题
1.delete()
2.OutputStream
3.输入;输出
4.字节
5.FileReader
二、判断题
1.错
2.错
3.对
4.对
5.对
三、选择题
1.A
2.C
3.B
4.A
5.A

第8章GUI

习题
一、填空题
1.在【 】包中专门提供了一个【 】类,它相当于一个抽象的画笔,其中提供了各种绘制图形的方法。
2.如果不希望通过【 】来对容器进行布局,也可以调用容器的setLayout(null)方法,将布局管理器取消。
3.创建下拉式菜单需要JMenuBar、JMenu和【 】三个组件。
4.JTextField有一个子类【 】,它表示一个密码框。
5.处理ActionEvent事件的监听器对象需要实现【 】接口。
二、判断题
1.TableModel是用来存储列表数据的,数据包括表体的标题数据与表头的实体数据。( )
2.在java.awt包中专门提供了一个JmenuItem类,它相当于一个抽象的画笔,其中提供了各种绘制图形的方法,使用JmenuItem类的方法就可以完成在组件上绘制图形。( )
3.弹出式菜单是通过JPopup实现的。( )
4.JText是一个操作文本的组件。( )
5.ActionEvent类表示动作事件。( )
三、选择题
1.JComboBox中用于在指定的索引处插入选项的方法是( )
A: ObjctgetItemAt(intindex)
B: intgetItemCount()
C: voidaddItem(ObjectanObject)
D: voidinsertItemAt(ObjectanObject,intindex)
2.JTextField的构造方法中,方法JTextField(String text,int column)的作用是( )
A: 创建一个空的文本框,初始字符串为null
B: 创建一个具有指定列数的文本框,初始字符串为null
C: 创建一个显示指定初始字符串的文本框
D: 创建一个具有指定列数、并显示指定初始字符串的文本框
3.JTextArea的构造方法中,用于创建显示指定初始文本并指定了行列的文本域的是( )
A: JTextArea()
B: JTextArea(Stringtext)
C: JTextArea(introws,intcolumns)
D: JTextArea(Stringtext,introws,intcolumns)
4.下列选项中,关于流式布局管理器(FlowLayout)的说法错误的是( )
A: 在流式布局下,当到达容器的边界时,会自动将组件放到下一行的开始位置
B: FlowLayout布局管理器的特点就是可以将所有组件像流水一样依次进行排列
C: 流式布局管理器是最简单的布局管理器
D: 流式布局管理器将容器划分为五个区域
5.处理鼠标事件时,通过( )方法将监听器绑定到事件源对象。
A: mousePressed()
B: addMouseListener()
C: mouseEntered()
D: mouseClicked()
答案
一、填空题
1.java.awt;Graphics
2.布局管理器
3.JMenuItem
4.JPasswordText
5.ActionListener
二、判断题
1.错
2.错
3.错
4.错
5.对
三、选择题
1.D
2.D
3.D
4.D
5.B

第9章JDBC

习题
一、填空题
1.ResultSet接口中的常量CONCUR_READ_ONLY,所代表的含义是【 】。
2.ResultSet接口中,能将游标移动到此 ResultSet 对象的最后一行的方法是【 】。
3.PreparedStatement是Statement的子接口,用于执行【 】的SQL语句。
4.Statement接口的executeUpdate(String sql)方法用于执行SQL中的insert、【 】和delete语句。
5.JDBC常用API 中,【 】类用于加载JDBC驱动并且创建与数据库的连接。
二、判断题
1.对于相同的SQL语句,Statement对象只会对其编译执行一次。( )
2.使用DriverManager.registerDriver进行驱动注册时,数据库驱动会被注册2次。( )
3.ResultSet接口表示select查询语句得到的结果集,该结果集封装在一个逻辑表格中。( )
4.Statement接口的executeUpdate(String sql)返回值是int,它表示数据库中受该SQL语句影响的记录的数目。( )
5.JDBC的全称是Java数据库连接,它是一套用于执行HTML语句的Java API。( )
三、选择题
1.下列选项,可用于存储结果集的对象是( )
A: ResultSet
B: Connection
C: Statement
D: PreparedStatement
2.下面选项中,能够将游标从当前位置向下移一行的方法是( )
A: next()
B: absolute(introw)
C: previous()
D: last()
3.下面关于executeQuery(String sql)方法,说法正确的是( )
A: 可以执行insert语句
B: 可以执行update语句
C: 可以执行select语句
D: 可以执行delete语句
4.下面Statement接口的方法中,用于执行各种SQL语句的是( )
A: executeUpdate(Stringsql)
B: executeQuery(Stringsql)
C: execute(Stringsql)
D: executeDelete(Stringsql)
5.下面选项中,用于将参数化的SQL语句发送到数据库的方法是( )
A: prepareCall(Stringsql)
B: prepareStatement(Stringsql)
C: registerDriver(Driverdriver)
D: createStatement()
答案
一、填空题
1.以只读形式打开结果集
2.last()
3.预编译
4.update
5.DriverManager
二、判断题
1.错
2.对
3.对
4.对
5.错
三、选择题
1.A
2.A
3.C
4.C
5.B

第10章多线程

习题
一、填空题
1.同步代码块中的锁对象可以是任意类型的对象,但多个线程共享的锁对象必须是【 】的。
2.Java中有两种创建线程的方式,但大部分的多线程应用都会采用【 】方式来创建线程。
3.Java中thread类的sleep()方法可以让让当前线程进入【 】状态。
4.在Thread类中提供了一个【 】方法来实现线程插队。
5.同步锁可以是任意【 】。
二、判断题
1.使用synchronized关键字修饰的代码块,被称作同步代码块。( )
2.如果两个线程访问不同类中的静态同步方法,这两个线程是不需要等待的。( )
3.Java多线程中,如果某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有。必须在占有该资源的进程主动释放它之后,其它进程才能占有该资源,这样就一定会出现死锁。( )
4.Runnable接口中只有一个run()方法。( )
5.处于等待的线程,必须被其他线程唤醒后才能继续运行。( )
三、选择题
1.下列有关Java多线程中静态同步方法的说法错误的是( )
A: 静态方法必须使用class对象来同步
B: 在使用synchronized块来同步方法时,非静态方法可以通过this来同步,而静态方法必须使用class对象来同步
C: 静态同步方法和以当前类为同步监视器的同步代码块不能同时执行
D: 静态同步方法不可以和以this为同步监视器的同步代码块同时执行
2.以下关于Runnable接口的描述错误的是( )
A: 通过实现Runnable接口可以创建多线程程序
B: Runnable接口是在java.lang包下
C: 实现Runnable接口必须重写run()方法
D: 通过Runnable接口中的start()方法可以开启线程
3.下列有关线程的两种创建方式说法错误的是( )
A: 通过继承Thread类与实现Runnable接口都可以创建多线程程序
B: 实现Runnable接口相对于继承Thread类来说,可以避免由于Java的单继承带来的局限性
C: 通过继承Thread类与实现Runnable接口创建多线程这两种方式没有区别
D: 大部分的多线程应用都会采用实现Runnable接口方式创建
4.下列关于线程优先级的描述,错误的是( )
A: NORM_PRIORITY代表普通优先级,默认值是5
B: 一般情况下,主函数具有普通优先级
C: 新建线程的优先级默认为最低
D: 优先级高的线程获得先执行权的几率越大
5.下面关于yield方法描述正确的是( )
A: yield方法是用于合并线程
B: yield方法是用于启动线程
C: yield方法是用于线程让步
D: yield方法是用于线程同步
答案
一、填空题
1.唯一
2.实现Runnable接口
3.休眠
4.join
5.对象
二、判断题
1.对
2.对
3.错
4.对
5.对
三、选择题
1.D
2.D
3.C
4.C
5.C

第11章网络编程

习题
一、填空题
1.基于TCP/IP的参考模型将协议分成四个层次,分别是【 】、【 】、【 】和【 】。
2.【 】指本机地址,该地址一般用来测试使用。
3.在JDK中,提供了一个与IP地址相关的【 】类,该类用于封装一个IP地址。
4.【 】是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。
5.DatagramPacket类的【 】方法用于返回发送端或者接收端的端口号。
二、判断题
1.目前应用最广泛的网络通信协议是UDP协议。( )
2.IP地址用于唯一标识一台计算机,它有IPv4和Ipv6两个版本。( )
3.在TCP程序中,ServerSocket类的实例对象可以实现一个服务器端的程序。( )
4.端口号的取值范围是0~65535。( )
5.TCP是一种用户数据报协议。( )
三、选择题
1.下列层次中,哪一层是整个TCP/IP协议的核心( )
A: 应用层
B: 传输层
C: 网络层
D: 链路层
2.HTTP协议服务的默认端口号是( )
A: 8080
B: 8090
C: 8009
D: 80
3.在TCP/IP 网络中,为各种公共服务和系统保留的端口号范围是( )
A: 0~65525
B: 0~1024
C: 0~1023
D: 0~80
4.下列说法中,错误的是( )
A: UDP在数据传输时,数据的发送端和接收端不建立逻辑连接
B: TCP协议是面向连接的通信协议
C: 使用UDP协议传送数据保证了数据的完整性
D: TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求
5.以下哪个类用于实现TCP通信的客户端程序( )
A: ServerSocket
B: Socket
C: Client
D: Server
答案
一、填空题
1.链路层;网络层;传输层;应用层
2.127.0.0.1
3.InetAddress
4.UDP
5.getPort()
二、判断题
1.错
2.对
3.对
4.对
5.错
三、选择题
1.C
2.D
3.C
4.C
5.B

你可能感兴趣的:(java)