学习中心/函授站_
姓 名 学 号
西安电子科技大学网络与继续教育学院
2020 学年上学期
《JAVA 程序设计》期末考试试题
(综合大作业)
题号 一 二 三 四 总分
题分 40 15 30 15
得分
考试说明:
1、大作业试题于2020 年4 月23 日公布,2020 年4 月24 日至2020 年5 月10 日在
线上传大作业答卷(一张图片对应一张A4 纸答题纸),要求拍照清晰、上传完整;
2、考试必须独立完成,如发现抄袭、雷同均按零分计;
3、答案须用《西安电子科技大学网络与继续教育学院标准答题纸》手写完成,要
求字迹工整、卷面干净。
一、选择题(4 分/题,共 10 个,共 40 分)
1. 在 Java 语言中,下列哪个变量名是不正确的( )
(A) large (B) 2much
(C) $money (D) _postCode
2.Java 的基本类型中,char 类型在 Java 虚拟机中占据( )个字节
(A) 1 (B) 2 (C) 4 (D) 8
3. 下列属于 Java 的控制执行流程的语句是( )
(A) if-else (B) break label (C) for (D) goto
4.Java 中的 final 关键字,下列说法错误的是( )
(A) final 可以用来修饰方法。
(B) private 方法默认都是 final 类型的。
(C) final 可以用来修饰类。
(D) final 只能用来修饰变量,表示该变量是一个常量。
5.不允许作为类及类成员的访问控制符的是( )
(A) public (B) private
(C) static (D) protected
6.下面的说法正确的是( )
第 2 页 (共 4 页)
(A) Java 语言里的线程不是对象
(B) Applet 需要main 方法
(C) Java 语言的对象都是 java.lang.Object 的子类
(D) Java 支持多重继承
7.以下对继承的描述错误的是( )
(A) Java 中子类只能继承单个父类。
(B) Java 中子接口只能继承单个接口。
(C) Java 中子类可以实现多个接口。
(D) 当实例化子类时会先实例化父类。
8.下列哪个说法是错误的( )
(A) 程序员可以定义新的异常类
(B) Exception 可以用 try/catch 进行捕获处理
(C) Exception 可以递交给上一级调用方处理
(D) 类似像 IOException 等异常, 程序可以忽略不进行捕获和处理
9.下列情况中,不会使线程返回所持有的对象锁的是( )
(A) 当 synchronized()语句块执行完毕
(B) 当调用了线程的 suspend()方法
(C) 当在 synchronized()语句块中出现异常(exception)
(D) 当持有锁的线程调用该对象的 wait()方法
10.Java 的集合类中,以键值对的方式存储对象的是( )
(A) java.util.Collection
(B) java.util.Map
(C) java.util.List
(D) java.util.Queue
二、填空题(3 分/空,共 5 个,共 15 分)
1.在一个类的属性中,如果要定义一个常数,应该在该属性前面加关键字 。
2.Java 中,用哪个关键字创建对象: 。
3.在Java 的基本数据类型中,char 型采用Unicode 编码方案,每个Unicode 码占用______
字节内存空间。
4. 在 Java 程序中,通过类的定义只能实现 继承,但通过接口的定义可以实现
继承关系。
三、读程题 ( 5 分/题,共 6 个,共 30 分)
1. 下列程序编译运行后输出什么?
public class Test {
public static void main(String[] args) {
int x=1, a=0, b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
System.out.println("a=" + a + "," + "b=" + b);
}
}
第 3 页 (共 4 页)
2. 下列程序编译运行后输出什么?
public class test {
public static void main (String[] args) {
Object[] ov;
String[] sa = { "Jack", "Rose", "Lee" };
ov = sa;
System.out.println("Color = " + ov[1]);
}
}
3. 下列程序有一个错,请找出并说明错误原因。
class test {
public static void main(String[] arg){
compute (3);
}
void compute(int n){
int x=n;
System.out.println( x * x);
}
}
4. 下面的代码执行结果是什么?
public class TestThis{
private int i=0;
TestThis increment(){
i++;
return this;
}
void print(){
System.out.println(i);
}
public static void main(String[] args){
TestThis x = new TestThis();
x.increment().increment().increment().print();
}
}
5.下面的代码执行结果是什么?
class Aclass{
void go(){
System.out.println("Aclass");
}
}
public class Bclass extends Aclass{
void go(){
System.out.println("Bclass");
}
第 4 页 (共 4 页)
public static void main(String args[]){
Aclass a=new Aclass();
Aclass a1=new Bclass();
a.go();
a1.go();
}
}
6.读程序,写出正确的运行结果。(5 分)
public class Test {
public static void main(String[] args) {
int x=1;
switch(x){
case 0: System.out.print("1");
case 1: System.out.print("2");
case 2: System.out.print("3");
default:System.out.print("4");
}
}
四、阅读程序,回答问题。(15 分)
如果有这样一个 Java 源文件如下,阅读程序,回答下面几个问题:
public class Shelf{
public static void main(String[] arguments) {
System.out.println("Shelf!");
Book b = new Book();
b.get();
}
}
class Book {
public void get() {
System.out.println(" book!");
}
}
class Student {
public void read() {
System.out.println ("read a book!");
}
}
(1)请写出这个文件的完整名称(2 分)
(2)请写出在命令行上如何编译这个文件(2 分)
(3)请写出这个文件编译后产生几个类文件(2 分),它们的完整名称分别是什么?
(3 分)
(4)请写出在命令行上如何运行这个程序?(3 分)
(5)这个程序的运行结果是什么?(3 分)