:号学 :名姓 :级班《Java程序设计》课期末考试试卷
(B卷)
(注意:请将答案写到答题纸上,否则无效;答题纸与试卷分开上交)
一、判断正误,正确打“√”,错误打“×”(每题1分,共10分)
1、Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。
2、子类可以继承父类的私有成员。
3、对于类变量,可以通过类名直接访问,也可以通过该类的对象访问。 4、一个抽象的类不能直接用new命令创建对象。
5、一个子类中可以定义与父类中名字相同,而参数不同的方法,此时子类的方法会改写从父类继承来的方法。
6、如果一个类中包含抽象方法,则这个类也必须定义为抽象类。 7、构造方法的名字必须与类名相同。
8、一个类的私有变量可以在同一个包的不同类中使用。 9、final类不能派生子类,final方法不能被覆盖。
10、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
二、单项选选题(每题1分,共20分)
1、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于?
A、本地方法 B、解态方法 C、最终方法 D、抽象方法 2、以下哪个不是java的关键字?
A、System B、interface C、for D、else 3、定义一个类,必须使用的关键字是?
A、public B、class C、interface D、static 4、声明并创建一个按钮对象b,应该使用的语句是?
A、Button b=new Button(); B、button b=new button(); C、Button b=new b(); D、b.setLabel(“确定”); 5、Panel对象默认的布局管理器是?
A、FlowLayout B、BorderLayout C、CardLayout D、null
6、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是? A、p.add(b); B、p.add(b,”North”);
cheng
cheng
C、p.add(b,”South”); D、b.add(p,”North”);
7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的?
A、 public static void main()
B、 public static void main(String[ ] args) C、 public static int main(String[ ] args) D、 public void main(String arg[ ])
8、定义一个接口必须使用的关键字是? A、public B、class C、interface D、static 9、Java中char类型的数据在内存中占据的长度是?
A、8位 B、16位 C、32位 D、不确定 10、关于以下程序段,正确的说法是?
String s1=”hello”; //行1 String s2=new String(s1); //行2 if(s1= =s2) //行3 System.out.println(“s1= =s2 ”); //行4 if (s1.equals(s2)) //行5 System.out.println(“s1 equals s2”); //行6 A、行4与行6都将执行 B、行4执行,行6不执行 C、行6执行,行4不执行 D、行4、行6都不执行 11、以下哪个字符串不能做Java中的方法名?
A、set B、out C、set Text D、get
12、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为?
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 13、以下程序段执行后将有( )个字节被写入到文件a中。
try{ fos=new (“a”); DataOutputStream dos=new DataOutputStream(fos); dos.writeInt(3); dos.writeDouble(0.01); dos.close(); fos.close( ); } catch(IOException e) { } A、16 B、12 C、8 D、2
:号学 :名姓 :级班14、以下代码段执行后的输出结果为?
int x=-3; float y=10.0f; System.out.println(y%x); A、不能成功编译 B、-1.0 C、1.0
D、-1
15、假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?
public class Foo { int i;
static String s;
void imethod() { }
static void smethod() { } }
A、Foo.imethod(); B、f.imethod();
C、System.out.println(f.i);
D、Foo.smethod()
16、分析下面的程序代码,以下哪个说法是正确的? public class Test extends A
{ public static void main(String[] args) { Test t=new Test(); t.print(); } }
class A { String s;
A(String s)
{ this.s=s; } public void print()
{ System.out.println(s); }
}
A、因为Test没有构造方法Test(),所以这段程序不能编译。
B、如果删除A类中的构造方法,这个程序可以编译。
C、这段程序可以通过编译,但由于方法名冲突,引起一个运行时错误。 D、编译成功,运行情况良好。
17、类Test1定义如下:
1.public class Test1{ 2. public float aMethod(float a, float b){ } 3. 4.}
将以下哪种方法插入行3是不合法的。( )
cheng
cheng
A、public float aMethod(float a, float b,float c){ } B、public float aMethod(float c,float d){ }
C、public int aMethod(int a, int b){ } D、private float aMethod(int a,int b,int c){ }
18、编译运行以下程序后,关于输出结果的说明正确的是 ( )
public class Conditional{ public static void main(String args[ ]){ int x=1; System.out.println(“value is “+ ((x<1)? 1.0 : 0)) ;
} }
A、输出结果为:value is 1.0 B、输出结果为:value is 0
C、输出结果为:value is 0.0
D、编译错误
19、以下哪个接口的定义是正确的?( )
A、 interface A
B、{ abstract void print() interface { } ;} A C、{ void print() ;} D、{ abstract abstract interface void A extends I1, I2 //I1、I2为已定义的接口 { interface void print(){ };} print();} A
20、Java语言使用的字符码集是?
A)ASCII B)BCD C)DCB D)Unicode
三、多项选选题(每题2分,共10分)
1. 定义类头时可以使用的访问控制修饰符是( )。
A.public B. abstract C. private D. 默认的(没有访问控制修饰符) 2. 定义主类的类头时可以使用的关键字是( )。
A. abstract B. final C. public D. super 3. 定义一个类Point,类中有两个double型变量x和y,对于其构造函数的声明正确的是( )。
:号学 :名姓 :级班A. Point Point(int x){…} B. public Point (int x){…} C. public Point(int x,int y){…} D. public Point(Point p){…} 4. 以下关于构造函数及其重载的说法正确的是( )。
A. 类定义了构造函数,Java就不会自动为该类创建默认的不带参数的构造函数
B. 构造函数不能对私有变量初始化
C. 一个类中可以含有几个构造函数,称为构造函数的重载。对于重载的构造函数,其参数列表必须不同
D. 重载的构造函数之间可以通过关键字this在构造函数中的任意位置相互调用
5. 以下关于类对象的使用,说法正确的是( )。
A. 通过构造函数实例化一个类对象后,在类的外部,不管变量的访问修饰符是私有的还是公有的,都可以通过”对象名.变量名”对变量进行访问
B. 在类的外部调用类对象拥有的方法必须用”对象名.方法名()” C. 同一个类的对象之间可以赋值,且它们分别代表不同的对象
D. 类对象可以作为方法的参数,这时在方法体中可以引用对象的变量和调用对象的方法。
四、程序阅读 ,分析运行结果(每题3分,共21分) 1、以下程序的输出结果为________。 class A { int i;
public A(int i)
{ this.i=i; }
public static void main(String[]args) { A a=new A(12); System.out.println (a.i); }
}
2、以下程序段的输出结果为________。 int x=0,y=4, z=5; if ( x>2) if (y<5) System.out.println(“one”); else System.out.println(“two”); else if(z>5)
cheng
cheng
System.out.println(“three”);
else
System.out.println(“four”);
3、以下程序的输出结果为___________。
public class Tom
{ private float weight; private static String name; public void setWeight(float weight)
{ this.weight=weight;
} private void out()
{ System.out.println (name+\体重:\斤\
} public static void main(String[]args)
{ Tom.name=\汤姆猫\
Tom cat=new Tom(); cat.setWeight(20); cat.out(); }
}
4、以下程序的输出结果_______________。
public class Person
{ String name;int age; public Person(String s,int age)
{ this.name=s;this.age=age;
} public void out()
{ System.out.println(name+\
} public static void main(String[]args)
{ Person p=new Person(\
p.name=\ }
}
5、以下程序的输出结果为________。 public class Test
{
:号学 :名姓 :级班
public static void main(String args[ ]) {
int x,y,max;
x=3;y=4;max=3; if (x System.out.println(“max=”+max); } } 6、下列程序的运行结果是______________。 class MyClass { int a[]={1,2,3,4,5}; void out() { for(int j=0;j 7、下列程序的运行结果是______________。 class TestArray { public static void main(String args[ ]){ int i , j ; int a[ ] = {1,3,2,5,4}; for ( i = 0 ; i < a.length-1; i ++ ) { int k = i; for ( j = i ; j < a.length ; j++ ) if ( a[j]>a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp; } for ( i =0 ; i System.out.print(a[i]+\ \ System.out.println( ); cheng cheng }} 五、简答题(每问一分,共8分)(请写清题号,题号不清不给分) class Car { int carNumber; Car(){} Car(int no){ this.carNumber=no; } void setNumber(int carNum) { carNumber = carNum; } void showNumber() { System.out.println(“My car No. is :” + carNumber); } } ① 写出这里定义了什么类?有哪些成员变量?有哪些成员方法? ② 有哪些构造方法? ③ 这个类有无访问控制修饰?表示谁可以访问这个类内的属性和方法? ④ void表示什么?static表示什么? 六、编程(第一题7分,其余三题每题8分,共31分) 1、1、编写Application,打印0到10之间所有奇数,并求出所有奇数的和,打印这个和值。 2、按以下要求编写程序 (1) 创建一个Rectangle类,添加width和height两个成员变量。 (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积。 (3) 编程利用Rectangle输出一个矩形的周长和面积。 3、按以下要求编写Java应用程序 (1)定义Animal类(父类),声明一个成员变量和一个成员方法; (2)Dog类(子类)从Animal继承,并在Dog类中声明新的成员变量; (3)对子类进行实例化,输出对象的所有成员变量值(包括从父类继承而来的变量),调用对象的各成员方法(包括从父类继承来的方法)。 4、按要求编写Java应用程序 (1)创建一个抽象的车类,包括各种车辆。至少包含一个抽象方法; (2)通过继承车类重新声明公共汽车类和普通自行车类。在子类中实现父类中抽象方法; cheng (3)子类的构造方法根据不同的类为成员变量设置不同的初始值。 cheng