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