1、JAVA 程序设计 期末考试试题 (六)一、填空题1定义类的保留字是( class ),定义接口的保留字是( interface )。2Socket 通常也称为 ( 套接字 ),用于描述( IP 地址 ) 和 ( 端口 )。 3线程的优先级在( 1 )至( 10 )之间,数值越大( 任务越紧急 )。4构造方法是一种特殊的成员方法,构造方法名与( 类名 ) 相同。5Java 语言只允许单继承,指每个类只能有一个 ( 父类 )。6Java 源程序的扩展名是 ( .java ),经过编译后的程序的扩展名是( .class ) 。7. 在一个时间只能由一个线程访问的资源称为 ( 临界资源 ) 。访问临
2、界资源的代码( 临界代码 )。8. 在多线程系统中,多个线程之间有 ( 同步 ) 和 ( 互斥 ) 两种关系。二、选择题1关于选择结构下列哪个说法正确? ( )Aif 语句和 else 语句必须成对出现Bif 语句可以没有 else 语句对应Cswitch 结构中每个 case 语句中必须用 break 语句Dswitch 结构中必须有 default 语句2while 循环和 dowhile 循环的区别是: ( )A没有区别,这两个结构任何情况下效果一样Bwhile 循环比 dowhile 循环执行效率高Cwhile 循环是先循环后判断,所以循环体至少被执行一次Ddowhile 循环是先循环
3、后判断,所以循环体至少被执行一次3关于 for 循环和 while 循环的说法哪个正确? ( )Awhile 循环先判断后执行,for 循环先执行后判断。Bwhile 循环判断条件一般是程序结果,for 循环的判断条件一般是非程序结果C两种循环任何时候都不可以替换D两种循环结构中都必须有循环体,循环体不能为空4下列修饰符中与访问控制无关的是 ( )Aprivate BpublicCprotected Dfinal5 void 的含义: ( )A方法没有返回值 B 方法体为空C没有意义 D. 定义方法时必须使用6 return 语句: ( )A只能让方法返回数值 B方法都必须含有C方法中可以有多
4、句 return D不能用来返回对象7关于对象成员占用内存的说法哪个正确? ( )A同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C对象的方法不占用内存D以上都不对8下列说法哪个正确?A不需要定义类,就能创建对象B对象中必须有属性和方法C属性可以是简单变量,也可以是一个对象D、属性必须是简单变量9下列说法哪个正确? ( )A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用10关于方法 main()的说法哪个正确?( )A方法 main()只能放在公共类中B main()的头定义
5、可以根据情况任意更改C一个类中可以没有 main()方法D所有对象的创建都必须放在 main()方法中11构造函数何时被调用? ( )A、创建对象时 B、类定义时C、使用对象的方法时 D、使用对象的属性时12 抽象方法: ( )A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法 13关于继承的说法正确的是: ( )A、子类将继承父类所有的属性和方法。B、子类将继承父类的非私有属性和方法。C、子类只继承父类 public 方法和属性D、子类只继承父类的方法,而不继承属性14关于构造函数的说法哪个正确? ( )A、一个类只能有一个构造函数B、一个类可以有多
6、个不同名的构造函数C、构造函数与类同名D、构造函数必须自己定义,不能使用父类的构造函数15 this 和 super:A、都可以用在 main()方法中B、都是指一个内存地址C、不能用在 main()方法中D、意义相同16关于 super 的说法正确的是:A、是指当前对象的内存地址B、是指当前对象的父类对象的内存地址C、是指当前对象的父类D、可以用在 main()方法中17覆盖与重载的关系是 ( )A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B覆盖方法可以不同名,而重载方法必须同名Cfinal 修饰的方法可以被覆盖,但不能被重载D覆盖与重载是同一回事18关于接口哪个正确? (
7、)A、实现一个接口必须实现接口的所有方法B一个类只能实现一个接口C接口间不能有继承关系D接口和抽象类是同一回事19异常包含下列哪些内容? ( )A程序执行过程中遇到的事先没有预料到的情况B程序中的语法错误 C程序的编译错误D以上都是20 对于已经被定义过可能抛出异常的语句,在编程时: ( )A、必须使用 trycatch 语句处理异常,或用 throws 将其抛出B如果程序错误,必须使用 trycatch 语句处理异常C可以置之不理D只能使用 trycatch 语句处理21 字符流与字节流的区别在于( )A前者带有缓冲,后者没有B前者是块读写,后者是字节读写C. 二者没有区别,可以互换使用D.
8、 每次读写的字节数不同22下列流中哪个不属于字节流 ( )AFileInputStreamBBufferedInputStreamC. FilterInputStreamD. InputStreamReader三、程序填空题1.public class Sumpublic static void main(String args)int j=10;System.out.println(“j is : “+j);calculate(j);System.out.println(“At last, j is : “+j);static void calculate (int j)for (int i
9、 = 0;i10;i+)j+;System.out.println(“j in calculate() is: “+j);输出结果为:j is : (1) j in calculate() is : (2)At last j is : (3)答案:(1) 10 ; (2) 20; (3) 10。2. 按要求填空abstract class SuperAbstractvoid a()abstract void b();abstract int c(int i);interface AsSupervoid x();abstract class SubAbstract extends SuperAb
10、stract implements AsSuperpublic void b()abstract String f();public class InheritAbstract extends SubAbstractpublic void x()public int c(int i ) public String f()public static void main(String args)InheritAbstract instance=new InheritAbstract();instance.x();instance.a();instance.b();instance.c(100);S
11、ystem.out.println(instance.f(); 在以上这段程序中:抽象类有:SuperAbstract 和 (1) (写出类名 )非抽象类有: (2) (写出类名)接口有: (3) (写出接口名)AsSuper 中的 x()方法是(4)方法,所以在 InheritAbstract 中必须对它进行(5) 答案:(1) SuperAbstract;(2) InheritAbstract;(3) AsSuper;(4) 抽象;(5) 覆盖和实现。3. 按注释完成程序public class Leaf private int i = 0; /此属性值用于检验Leaf increment
12、() /定义方法 increment(),返回值是 Leaf 类的对象i+;return (1) ;/将当前对象的地址作为返回值返回void print() System.out.println(“ i = “ + i);public static void main(String args)Leaf x = (2); /创建 Leaf 类的对象 xx.increment().increment().increment().print();/多次调用方法 increment(),返回的都是 x 的地址,i 值表示调用次数输出结果为 i = (3) 答案:(1) this;(2) new Lea
13、f();(3) 34. 按注释提示完成文件复制的程序/FileStream 源代码如下:import java.io.*;class FileStream public static void main(String args ) try File inFile = new File(“file1.txt“); /指定源文件File outFile = new File(“file2.txt“); /指定目标文件FileInputStream fis =(1);FileOutputStream fos = new FileOutputStream(outFile);int c; /逐字节从源文
14、件中输入,再输出到 fos 流while (c = fis.read ()!=-1)(2);fis.close(); fos.close();catch (Exception e) System.out.println(“FileStreamsTest: “+e);答案:(1) new FileInputStream(inFile);(2) fos.write(c);5. 阅读程序,给出结果:/ AbstractClassDemo.java 源代码如下:abstract class Shape /定义抽象类 Shape 和抽象方法 displayabstract void display();
15、class Circle extends Shape void display() /实现抽象类的方法System.out.println(“Circle“);class Rectangle extends Shape void display() /实现抽象类的方法System.out.println(“Rectangle“);class Triangle extends Shape void display() /实现抽象类的方法System.out.println(“Triangle“);public class AbstractClassDemopublic static void main(String args)(new Circle().display(); /定义无名对象来调用对应的 display 方法(new Rectangle().display();(new Triangle().display();输出结果是 ?答案:(1) Circle; (2) Rectangle; (3) Triangle。