四、编程题(1题8分,1题12分) 一、判断题
1、( 错 ) Java语言没有自动收集无用内存的功能。(有个叫垃圾回收的机制) 2、( √ )Java语言是解释型语言。
3、( 对 ) Java语言支持类的继承,但不支持类的多重继承。
4、( 对 )Unicode码与ASCII码不同, Unicode码是16位的,而ASCII码是8位的.. 5、( 对 ) 在Java语言中即支持一维数组,也支持多维数组。
6、( 错 )方法的重载是指子类和父类具有相同的名字、相同的参数表,但返回类型可以不相同。
7、( 对 ) 当一个文件使用完后,必须调用close()方法关闭。
8、( 错 )如果在类中未给成员变量赋予初值,,则在系统执行时,不会自动对类中的成员进行初始化.(都会有个初始值的.)
9、( 错 ) 在定义类时,抽象类中的方法必须是空的方法,不能有任何代码. 10、( 对 )在Java中,add()方法是向容器组件中添加控件的方法。
11、( 对 )所有的鼠标事件都由MouseListener监听接口的监听者来处理。
12、( 对 )Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 13、( 错 )如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。 (用clone()方法) 14、( 对 )Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 15、( 错 )由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 (父类中的private的成员和方法是不能继承的,所以有时候子类是比不过父类的)
16、( 对)Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 17、( 错 )注释的作用是使程序在执行时在屏幕上显示//之后的内容。(是给程序员看的.) 18、( 对 )在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。 19、( 对 )Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。 20、( 错 )有的类定义时可以不定义构造函数,所以构造函数不是必需的。(一定要有的,系统会默认有的) 21、( 错 )抽象类中的抽象方法必需在该类的子类中具体实现。(如果子类也是抽象的,就不用)
22、( 对 )最终类不能派生子类,最终方法不能被覆盖。 23、( 对 )一个Java类可以有多个父类。
24、( 对 )一个Java类可以有一个父类,并实现多个接口。
25、( 错 )接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。(接口不叫继承,叫实现)
26、( 对)在Applet中显示一副图像,首先要把它调入内存,保存在一个Image对象中,然后调用drawImage()方法画出这个图像。
27、( 对 )Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。 28、( 错 )接口和类一样也可以有继承关系,而且都只能支持单继承。(接口是可以多个一起实现的) 29、( 对)包是按照目录、子目录存放的,可以在程序中用package定义包,若没有package一行,则表示该文件中的类不属于任何一个包。
30、( 对 )Java对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。
31、( 对 )在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在前面,子类放在后面。 32、( 错 )在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。
33、(错 )Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
34、( 对 )当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
35、( 错 )如果f是父类Flower的对象,而r是子类Rose的对象,则语句f=r是正确的。(对象的赋值一定要用clone()方法)
36、( 错 )Java系统的标准输入对象是System.in,标准输出对象有两个,分别是System.out和System.err。(System.err不是标准输出)
37、(错)final类中的属性和方法都必须被final修饰符修饰。(不用了,因为默认就是了) 38、( 错 )子类可以定义与父类同名的方法,称为方法的覆盖,方法覆盖要求子类的方法与父类的方法名字和参数都相同,但返回值类型可以不同。
39、( 错 )Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。(所有的Unicode都是16位)
40. ( 错 )由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 二、选择题
1、Java语言能做到“编写一次,随处可用”,是指Java语言具有 A.解释特性 B. 可移植性 C. 很高的通用性 D. 很高的安全性 2、在创建数组时,下列创建的方法中合法的是
A.int a[ ] [ ]=new a[10][5]; B. int a[]=new int[10 ]; C. int [ ]a=new a[10 ]; D. int a[]=new a[10 ]; 3、列标识符合法的是
A._*ptr B. internet C. !_not D. @email
4、.ASCII码与Unicode码的区别是 (没有答案,ASCII是8位,Unicode是16位,JAVA用的是Uincode)
A. ASCII码是16位的字符集,而Unicode码也是16位的字符集 B. ASCII码是16位的字符集,而Unicode码是8位的字符集
C. ASCII码和Unicode码都是8位,只是Java中使用Unicode码。 D. ASCII码和Unicode码都是16位,只是Java中使用Unicode码。 5、在一个类中定义的成员变量和成员方法时,不允许 。 A. 两个成员变量名相同. B. 成员变量与成员方法名相同. C. 两个成员方法名相同 D. 成员方法中的参数与成员变量名相同.
6、一个子类继承父类,子类不可以继承父类中访问权限设定为 的变量和方法. A. public B. protected C. private D. 未修饰 7、当子类中的成员变量或方法与继承的父类的成员变量或方法相同时,子类的对象所使用的变量是 (会覆盖的父类的)
A. 是父类的变量,子类的方法 B. 父类中的变量或方法 C. 子类中的变量或方法 D. 子类的变量,父类的方法 8、列叙述正确的是
A. 在类中的构造方法的名字与类的名字相同, 而且不能重载 B.. 在类中的构造方法的名字与类的名字相同,但没有返回类型.
C. 在类中的构造方法的名字与类的名字相同,而且有返回类型. D. 在类中的构造方法的名字与类的名字相同,而且不能初始化.
9、在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。 A、init() B、start() C、destroy() D、stop()
10、Java application中的主类需包含main方法,main方法的返回类型是什么?( ) A、int B、float C、double D、void
11、当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪种布局方式? ( )
A、 FlowLayout B、CardLayout C、BorderLayout D、GridLayout 12、关于垃圾收集以下哪个叙述是对的。 ( )
A、程序开发者必须自己创建一个线程进行内存释放的工作。(java不用,C++就要) B、垃圾收集将检查并释放不再使用的内存。 C、垃圾收集允许程序开发者明确指定并立即释放该内存。(不是立即,是内存不够用的时候) D、垃圾收集能够在期望的时间释放被java对象使用的内存。(应该不能,我们不知道内存何时不够) 13、下面关于继承的描述哪项是正确的。( ) A、 在java中只允许单一继承。
B、 在java中一个类只能实现一个接口。
C、 在java中一个类不能同时继承一个类和实现一个接口。 D、 java允许多重继承。 14、给出如下代码: class Test{
private int m;
public static void fun() { // some code... } }
如何使成员变量m 被函数fun()直接访问?( ) A、将private int m 改为protected int m B、将private int m 改为 public int m C、将private int m 改为 static int m D、将private int m 改为 int m
15、下面哪个函数是public void overloadFun(){...}的重载函数?( ) A、void overloadFun ( ){...} B、public int overloadFun (){...} C、public void overloadFun ( ){...}
D、public int overloadFun (float f){...} 16、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( ) class A { int i; static String s; void method1() { } static void method2() { } }
A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2()
17、分析下面的程序代码,以下哪个说法是正确的。( ) 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类中的构造方法,这个程序可以编译。
A、 这段程序可以通过编译,但由于方法名冲突,引起一个运行时错误。 B、 编译成功,运行情况良好。(反而是有A这个构造函数无法编译,我编译了一下) 18、有以下方法的定义,请选择该方法的返回类型( )。 ReturnType method(byte x, double y) {
return (short)x/y*2; //因为红色的在最后进行了强制转换,转为了short }
A、byte B、short C、int D、double
19、下列哪些语句关于Java内存回收的说明是正确的? ( ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
20、在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.* ; C、import java.io.* ; D、import java.awt.event.* ; 21、容器Panel和Applet缺省使用的布局编辑策略是( )
A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout 22、以下程序段执行后将有( )个字节被写入到文件afile中。 try{
FileOutputStream fos=new FileOutputStream(“afile.txt”); DataOutputStream dos=new DataOutputStream(fos); dos.writeInt(3);
dos.writeDouble(0.01); dos.writeInt(6); dos.close(); fos.close( ); }
catch(IOException e) { } A、2 B、8 C、12 D、16
23、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. *.java B.*.class C.-.html D.*.exe
24、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )?
A、public static void main( )
B、public static void main( String args[] ) C、public static int main(String [] arg ) D、public void main(String arg[] )
25、在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.Applet ; C、import java.io.* ; D、import java.awt.Graphics ; 26、在Java Applet程序用户自定义的Applet子类中,常常重载( )方法在Applet的界面中显示文字、图形和其它界面元素。
A. start( ) B. stop( ) C. init( ) D. paint( )
27、若在某一个类定义中定义有如下的方法: final void aFinalFunction( );则该方法属于( )。
A、本地方法 B、解态方法 C、最终方法 D、抽象方法
28、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
29、在Java applet程序中,用户自定义的Applet子类常常覆盖父类的( )方法来完成applet界面的初始化工作。
A、start( ) B、stop( ) C、init( ) D、paint( ) 30、以下代码段执行后的输出结果为( )。 int x=-3; float y=10.0f; System.out.println(y%x);
A、不能成功编译 B、-1.0 C、1.0 D、-1
31、编译并运行以下程序,以下描述哪个选项是正确的( )。 1. class A{
2. protected String toString(){ 3. return super.toString();} 4. }
A、行2出错,不能成功编译 B、编译通过但运行时出错 C、编译通过运行无异常 D、不能成功编译,行3出错
32、假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?( )
public class Foo { int i; static String s; void imethod() { }