:号学 :名姓 :级班《Java程序设计》课期末考试试卷
(A卷)
(注意:请将答案写到答题纸上,否则无效;答题纸与试卷分开上交)
一、填空题(每题1分,共12分)
1、对象的状态和行为是对象的主要属性;前者对应类的(1),行为又称为对象的操作,对应着类的(2) 。类的定义包括 (3)声明和(4)声明。 2、声明Person类的变量p1和p2的语句是(5)。
3、在Java程序中,通过类的定义只能实现(6)重继承,但通过接口的定义可以实现(7)重继承关系。 4、(8)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
5、设有数组定义:int myIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70};则执行以下几个语句后的输出结果是(9) 。
int s = 0 ;
for ( int i = 0 ; i < myIntArray.length ; i + + )
if ( i % 2 = = 1 )
s += myIntArray[i] ;
System.out.println( s );
6、在Java中定义一个字符串类型的变量str的语句是:(10) ,定义一个布尔类型变量t的语句是:(11) ,定义一个具有5个元素的字符类型数组a的语句是:(12) 。
二、判断正误,正确打“√”,错误打“×”(每题1分,共15分)1、类及其属性、方法可以同时有一个以上的修饰符来修饰。
2、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。 3、最终类不能派生子类,最终方法不能被覆盖。
4、子类要调用父类中被覆盖的方法,必须使用super关键字。 5、一个Java类只能有一个父类。
6、如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
7、接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
8、用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子
串。
9、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
10、Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。 11、当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。 12、Java的类是单继承的,所有的类都从Object类派生而来的。 13、System.out.println(“Hello java!”)中out是System 类的一个成员变量。
14、final类中的属性和方法都必须被final修饰符修饰。 15、子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。
三、选择题(每题1分,共10分)
1、______命令用于执行在JAVA虚拟机中运行类的类文件。 A、javac B、java
C、appletviewer
D、以上所有选项都不正确
2、______命令允许在万维网浏览器的上下文之外运行Applet。 A、appletviewer B、WWW C、java
D、以上所有选项都不正确
3、Java为移动设备提供的平台是?
A)J2ME B)J2SE C)J2EE D)JDK5.0 4、JDK中提供的文档生成器是?
A、java.exe B、javap.exe C、javadoc.exe D、javaprof.exe
5、在Java语言中,不允许使用指针体现出的Java特性是
A、可移植 B、解释执行 C、健壮性 D、安全性
6、下面main()方法的定义哪些是正确的?
A.public static void main(String args){} B.public static void main(String[]){}
C.public static void main(String[] args){}
:号学 :名姓 :级班D.public static void main(String[] xyz){}
7、下列哪个语句段可以生成含5个null字符串的数组? A、 String a[]=new String[5]; for(int i=0;i<5;i++)
a[i]=” ”;
B、 String a[]={“ ”,” ”,” ”,” ”,” ”}; C、 String a[5]; D、 String a[]=new String[5];
8、关于以下程序段的说法,正确的是?
class MyListener implements ActionListener,ItemListener//行1 { public void actionPerformed(ActionEvent ae){ //行3 System.out.println(\ public void itemStateChanged(ItemEvent ie){ //行5 System.out.println(\ } }
A、 可通过编译 B、 第1行产生编译错误 C、 第3行产生编译错误 D、 第5行产生编译错误 9、下列语句中,属于多分支语句的是?
A、if语句 B、switch语句 C、do while语句 D、for语句10、将整型变量x的值除以2的表达式是( ) A、x<<2 B、x<<1 C、x>>2 D、x>>1 11、Java中定义常量时必须使用的修饰符是( ) A、final B、public C、static D、void 12、下列数组声明语句错误的是( ) A、int[]a; B、int a[]; C、int a[5]; D、int[]a=new int[5]; 13、定义一个接口必须使用的关键字是( ) A、public B、class C、interface D、static 14、Java中char类型的数据在内存中占据的长度是( ) A、8位 B、16位 C、32位 D、不确定 15、Frame对象默认的布局管理器是( )
A、FlowLayout B、BorderLayout C、CardLayout D、null
四、程序改错(每题3分,共24分)(转答题纸)
五、程序阅读 ,分析运行结果(每题3分,共18分)
1、阅读以下程序,输出结果为__________。 public class Test {
int x=3,y=4; public Test() { x=5;y=6; }
public static void main(String[] args) { Test t=new Test();
System.out.println(“x=”+t.x+”y=”+t.y);
} }
2、阅读以下程序,输出结果为__________。 public class ClassA { public int a; }
class ClassB extends ClassA { public String b=\}
class ClassC extends ClassB { public int c;
public static void main(String[] args) { ClassC cc=new ClassC(); cc.a=10; cc.c=20; System.out.println(cc.a+cc.b+cc.c); } }
3、以下程序的输出结果为________。
public class Computer { String mainbord,cpu; public Computer(String s1,String s2) {
mainbord=s1; cpu=s2; }
public static void main(String[]args) {
Computer c=new Computer(\华硕\
System.out.println(\ for(int j=0;j public static void main(String[] args) { MyClass my=new MyClass(); my.out(); :号学 :名姓 :级班 } } 4、阅读以下程序,输出结果为__________。public abstract class AbstractClass { int a; void setA(int a) { this.a=a; } abstract void out(int a); } class Instance extends AbstractClass { int getA(){ return a; } void out(int a) { System.out.println(\ } public static void main(String[] args) Instance i=new Instance(); i.setA(20); i.out(i.a); } } 5、下列程序的运行结果是______________。class MyClass { int a[]={1,2,3,4,5}; void out() { { } } 6、以下程序段的输出结果为________。 int x=0,y=4, z=5; if ( x>2) if (y<5) System.out.println(“Message one”); else System.out.println(“Message two”); else if(z>5) System.out.println(“Message three”); else System.out.println(“Message four”); 六、编程(第一题4分,第二题12分,共16分) 1、 编写一个完整的Java Application程序在命令行输出“I am a student.” 2、 编写一个完整的Java Application 程序。包含类Person、Student、 TestStudent,具体要求如下: ⑴类Person: ①属性 name : String对象,表示一个人姓名 sex: char类型,用来表示性别 id:String对象,表示身份证号 phone:String对象,表示联系电话 email :String对象,表示E-mail地址 ②方法 Person(Name name, char sex, String id):构造函数 String getId() :设置身份证号 void setEmail(String email) :设置E-mail地址 void setPhone(String phone) :设置联系电话 :号学 :名姓 :级班public String toString() :返回个人的各项信息,包括姓名、性别等 上述属性 ⑵类Student: 从Person类派生,增加了以下属性和方法: ① 属性 sNo: long类型,表示学生的学号 sClass: String对象,表示学生的班级 ② 方法 Student(long sNo, String name, char sex, String id):构造函数 setClass(String sClass): 设置学生的班级信息 public String toString() :返回学生的各项信息,包括学号、班级、姓名等上述属性 (3) 类TestStudent作为主类要完成测试功能 ① 用以下信息生成一个Student对象aStudent 姓名 : 杨过 性别 : 男 身份证号: 22033198807070333 学号: 2004002 ② 设置E-mail: yangguo@zjtvu.edu.cn 设置联系电话:88078549 ③ 输出对象aStudent的各项信息