【适用时间:20 13 20 14 学年第 学期    试卷类型:[  A  ]卷】
课程编号:
Z6104X007
试卷编号:
课程名称:
Java语言程序设计
开课学院:
信工学院
考试形式:
闭卷
适用班级:
信管11
考试时间:
120分钟
试卷说明:
1、本试卷共  8  页。
2.考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
题号
总分
累分人
题分
20
10
20
35
15
100
得分
考生姓名:
考生学号:
所属学院:
所属班级:
所属专业:
考试日期:
1、请考生务必查看试卷中是否有缺页或破损。如有立即举手报告以便更换。
2、严禁,违者双方均开除学籍;严禁舞弊,违者取消学位授予资格;
严禁带手机等有储存或传递信息功能的电子设备等入场(包括开卷考试),
违者按舞弊处理;不得自备草稿纸。
本人知道考试违纪、作弊的严重性,将严格遵守考场纪律,如若违反则愿意接受学校按有关规定处分!
考生签名:                 
一、选择题:(每空1分,共 20分)
评阅人
选择题答题表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
说明:请把选择题的答案全部填到上面的答题表中.
1. 下列关于Java语言的数组描述中,错误的是         
A.数组的长度通常用length表示
B.数组的下标从0开始
C.数组元素是按顺序存放在内存的
D.数组在赋初值和赋值时都不判界
2. 下列关于运行字节码文件的命令行参数的描述中,正确的是         
A.第一个命令行参数被存放在args[0]
B.第一个命令行参数被存放在args[1]
C.命令行的命令字被存放在args[0]
D.数组args[]的大小与命令行参数的个数无关。
3. 下列关于Java语言特性的描述中,错误的是          .
A.支持多线程操作
B. JAVA程序与平台无关
C. JAVA程序可以直接访问Internet上的对象
D. 支持单继承和多继承
4. 下列关于数组的定义形式,正确的是
A.int []a; a=new int;              B. char b[]; b=new char[80];
C.int []c=new char[10];            D.int[]d[3] = new int[2][];
5. 下列关于继承性的描述中,错误的是         
A.一个类可以同时生成多个子类
B.子类继承了父类的所有成员
C.Java语言支持单继承和多重继承
D.Java语言通过接口可使子类使用多个父类的成员
6. 下列关于多态性的描述中,错误的是         
A.java语言允许运算符重载
B.java语言允许方法重载
C.java语言允许变量覆盖
D.多态性提高了程序的抽象性和简洁性
7. 在成员变量的修饰符中,规定访问权限包含类自身,同包的其他类和其它包中的子类的修饰符是     
A.private      B.public      C.默认      D.protected
8. 下列关于静态方法的描述中,错误的是         
A.在类体内说明静态方法用关键字static
B. 静态方法可能处理静态变量或调用静态方法
C. 静态方法不占用对象的内存空间,非静态方法占用对象的内存空间
D.静态方法只能类名调用
9. 下列关于抽象类的描述中,错误的是
A.抽象类是用修饰符abstract说明的
B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的
D.抽象类通常要有它的子类
10. 下列关于接口的描述中,错误的是         
A.接口实际上是由常量和抽象方法构成的特殊类
B.一个类只允许继承一个接口
C.定义接口使用的关键字是interface
D.在继承接口的类中,通常要给出接口袋定义的抽象方法的具体实现
11. 下列关于向Applet程序传递参数的描述中,错误的是         
A.pplet程序可能通过命令行获取外部参数
B.Applet程序可以通过HTML文件获取外部参数
C. 使用Applet标记中的PARAM标记来实现
C. Applet程序中使用getParameter()方法读取参数值
12. 下列关于实现图形用户界面的描述中,错误的是         
A.放在容器的组件首先要定义,接着要初始化
B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayout
C.容器中的所有组件都是事件组件,都可产生事件对象
D.事件处理是由鉴听者定义的方法来实现的
13. 一个Applet 的默认布局管理器是FlowLayout.下面哪个能改变成其他布局管理器   
A.setLayoutManager(new GridLayout());
B.setLayout(new GridLayout(2,2));
C.setGridLayout(2,2);
D. setBorderLayout();
14. 下列关于用户创建自己的异常的描述中,错误的是
A.创建自己的异常应先创建一个异常类
B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句
C.捕捉异常的方法是使用try-catch-finally语句格式
D.使用异常处理不会使整个系统更加安全和稳定
15. 下列关于try-catch-finally语句的描述中,错误的是         
A.try语句后面的程序段将给出处理异常的语句
B.catch()方法跟在try语句后面,它可以是一个或多个
C.catch()方法有一个参数,该参数是某种异常类的对象
D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用
16. 下面有关线程,说法正确的是________
A. java语言不支持多线程编程
B. java语言的线程编程 必须继承自Thead类。
C. java的线程编程,必须实现Runnabe接口。
D. java语言不支持线程同步。
17. 可用于获得文件或目录的路径名是         
A. File                              B. RandomAccessFile
C.FileInputStream                    D.BufferedReader
18. 下面哪个方法不是public int add(int a)的重载方法_________
A. public int add(long a)
B. public void add(int a)
C. public void add(long a)
D. public int add(float a)
19. 为了使System.out.println()输出对象引用时得到有意义的信息,我们应覆盖Object类的哪个方法______
A. equals    B. toString     C. hashode    D.notify
得分
评阅人
 
20. 想要一个类不能被任何类继承的话,需要使用哪个关键字来修饰_______
A. abstract    B.static  C.new    D.final
二、判断题(每小题1分,共10分)
判断题答题表
1
2
3
4
5
6
7
8
9
10
说明:请把选择题的答案全部填到上面的答题表,以的打√错的打
1. 组成java Application的若干类中,有且仅有一个主类,只有主类中含有主方法main();
2. 如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。
3. 对象可作方法的参数,对象数组不能作方法的参数
4. 捕获异常时try语句后面可跟多个catch()方法用来处理try块内生成的异常事件。
5. 调用thissuper的构造方法的语句必须放在第一条语句
6. 实现接口的类不能是抽象类
7. 一个类可以实现多个接口.接口可以实现“多重继承”。
8. 文本区和文本框都可以引发两种事件:文本改变事件和动作事件
9. 域的隐藏是指当派生类中定义一个父类完全相同的变量,父亲的那个变量将不复存在。
10. 最终类是指该类可以被继承,但方法不可被覆盖。
得分
评阅人
 
三、简答题(每小题5分,共20分)
1. 什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?
2. 什么是接口?为什么要定义接口?接口与类有何异同?
3. 构造方法是否可以被重载?试举例。
4. Java中对变量和成员方法的访问控制主要有哪四种?有何区别?
得分
评阅人
 
四、程序分析题(每小题5分,共35分)
程序分析题答题表
1
2
3
4
5
6
7
说明:请把程序分析题的答案选项全部填到上面的答题表中
1. 编译并运行下面的程序, 将会出现的结果是:
public class Q {
public static void main(String argv[]){
int anar[]=new int[5];
System.out.println(anar[0]);
}
}
1) Error: anar is referenced before it is initialized
    2) null                3) 0                4) 5
2. 编译并运行下面的程序, 将会出现的结果是:
abstract class MineBase {
abstract void amethod();
static int i;
}
public class Mine extends MineBase {
public static void main(String argv[]){
int[] ar=new int[5];
for(i=0;i < ar.length;i++)
System.out.print(ar[i]);
}
}
1) 00000
2) Error: ar is used before it is initialized
3) Error: Mine must be declared abstract
4) IndexOutOfBoundes Error
3. 在下面的程序中的A、B、C的某个填上合适的代码,使得程序能调用基类的构造函数,并输入字符串"base constructor";
class Base{
Base(int i){
System.out.println("base constructor");
}
Base(){
}
}
public class Sup extends Base{
public static void main(String argv[]){
Sup s= new Sup();
try catch的使用方法    A   
}
Sup()
{
    B   
}
public void derived()
{
      C   
}
}
1) A处填上Base(10);          2) A处填上 super(10);
3) B处填上 super(10);              4) C处填上super(10)
4. You want to find out the value of the last element of an array. You write the following code. What will happen when you compile and run it.?
public class MyAr{
public static void main(String argv[]){
            int[] i = new int[5];
            System.out.println(i[5]);
            }
}
1) An error at compile time
2) An error at run time
3) The value 0 will be output
4) The string "null" will be output
5. 编译并运行下面的程序, 将会出现的结果是:
abstract class Base{
        abstract public void myfunc();
        public void another(){
        System.out.println("Another method");
        }
}
public class Abs extends Base{
        public static void main(String argv[]){
        Abs a = new Abs();
        a.amethod();
        }
        public void myfunc(){
                System.out.println("My Func");
                }
        public void amethod(){
        myfunc();     
        }
}
1) The code will compile and run, printing out the words "My Func"
2) The compiler will complain that the Base class has non abstract methods
3) The code will compile but complain at run time that the Base class has non abstract methods
4) The compiler will complain that the method myfunc in the base class has no body, nobodyat all to looove it
6. 编译并运行下面的程序, 将会出现的结果是:
class Base{
public final void amethod(){
        System.out.println("amethod");
        }
}
public class Fin extends Base{
public static void main(String argv[]){
        Base b = new Base();
        b.amethod();
        }
}
1) Compile time error indicating that a class with any final methods must be declared final itself
2) Compile time error indicating that you cannot inherit from a class with final methods
3) Run time error indicating that Base is not defined as final
4) Success in compilation and output of "amethod" at run time.
7. 编译并运行下面的程序, 将会出现的结果是:
public class Hope{
public static void main(String argv[]){
    Hope h = new Hope();
    }
protected Hope(){
for(int i =0; i <10; i ++){
  System.out.println(i);
    }   
}
}
1) Compilation error: Constructors cannot be declared protected
2) Run time error: Constructors cannot be declared protected
3) Compilation and running with output 0 to 10
4) Compilation and running with output 0 to 9
得分
评阅人
 
五、设计题(15分)
设计一个形状接口,接口有求面积和求周长的两个函数,再设计一个圆类和矩形类,实现形状接口。
要求:1. 体现面向对象的特征:封装性、继承性、多态性
      2.设计合理的构造函数
      3.实现接口函数
      4. 有测试类或测试函数,进行功能测试                    (如写不下,请在本页反面)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。