java期末复习题含答案及详解_第1页
java期末复习题含答案及详解_第2页
java期末复习题含答案及详解_第3页
java期末复习题含答案及详解_第4页
java期末复习题含答案及详解_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文档一、选择题(共20分)1. 下列输出结果是()int a = 0 ;while ( a < 5 ) switch(a) case 0: case 3 : a = a + 2; case 1 : case 2 : a = a + 3; default : a = a + 5; System.out.print ( a ) ;答案:10解析:由于每个case后面没有使用break结束循环,导致程序从上往下逐条运行。2. 被声明为private,protected及public的类成员,在类外部( )A)只能访问到声明为protected和public的成员 B) 都可以访问C)只能访

2、问声明为public的成员 D)都不能访问答案:A解析:private只能被类内部访问,子类(未在父类内部)可以访问父类protected类型成员,其他类可以访问其public类型成员。3. 在Java语言中,下列关于类的继承的描述,正确的是()。A) 一个类可以继承多个父类B) 一个类可以具有多个子类C) 子类可以使用父类的全部方法D) 子类肯定比父类有更多的成员方法答案:B解析:A错,一个类只能有一个父类;C错,父类的私有方法就不行被子类访问并使用;D错,继承关系是对父类功能的扩展,依据实际状况完全可以只扩展1个功能,并不意味着成员方法比父类多。4. 类Teacher和Student都是类

3、People的子类 People p; Teacher t; Student s; 若p,t和s都是非空值,并且new时声明的都是本类; if(t instanceof People) s = (Student)t; 这个语句导致的结果是什么?( )A) 表达式合法B) 编译时非法C) 将构造一个Student对象D) 编译时合法而在运行时可能非法答案:B解析:instanceof操作符用于推断左边的引用对象是否是右边的类,或者其子类、实现类的实例。此题中的if语句的推断没有问题,将返回真。但是后面的类型转换是非法的,由于t是一个Teacher对象,它不能被强制转换为一个Student对象,即

4、使这两个类有共同的父类。假如是将t转换为一个Person对象则可以,而且不需要强制转换。这个错误在编译时就可以发觉,因此编译不能通过。5. 下列值不为true的表达式有()。A) "tomy" = = "tomy"B) "tomy".equals("tomy")C) "tomy" = "tomy"D) "tomy".equals(new String("tomy")答案:C解析:赋值符号“=”的左端必需是一个变量,明显C选项在编译时就会

5、出错,故其值不行能为true。6. 关于接口哪个正确?( )A)接口和抽象类是同一回事B)一个类只能实现一个接口C)接口间不能有继承关系D)实现一个接口必需实现接口的全部方法答案:D解析:A错,接口是一种规范机制,他作为系统与外部交互的窗口,它既规定了实现着必需向外供应哪些服务,也规定了调用者可以调用哪些服务,以及如何调用这些服务。抽象类是作为系统中多个子类的父类,体现的是一种模板设计。B错,一个类可以直接实现多个接口,通过实现多个接口可以弥补Java单继承的不足。C错,接口支持多继承,一个接口可以有多个直接父接口,与类继承相像,子接口扩展某个父接口,将会获得父接口里的全部抽象方法、常量。7.

6、 下列关于Java语言特性的描述中,错误的是( )A)支持多线程操作B)JAVA程序与平台无关C) 支持单继承和多继承D)JAVA程序可以直接访问Internet上的对象答案:C解析:Java是一门单继承语言,虽然一个类可以实现多个接口,在表面上表现出“多继承”的样子,但那并不是真正意义上的“多继承”,只能称作一个类实现了多个接口。8. 以下关于抽象类和接口的说法错误的是()A) 抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。但是一个类却可以实现多个接口。TB) 在抽象类中可以没有抽象方法TC) 实现抽象类和接口的类必需实现其中的全部方法,除非它也是抽象类。接口中的方法都

7、不能被实现TD) 接口中定义的变量默认是public static final 型,且必需给其初值,所以实现类中不能重新定义,也不能转变其值。TE) 接口中的方法都必需加上public关键字。答案:E解析:接口中的成员在被定义时完全可以省略访问把握符,系统会默认使用public访问把握修饰符。假如非要指定访问把握符,则只能使用public访问把握修饰符。9. 下列Java语言中可用的注释符,其中错误的是( )A)/ B) /*.*/ C) /*.*/ D) /*答案:D解析:“/”是单行注释符,“/*.*/”是多行注释符,“/*.*/”是文档注释符。D选项为非法符号。10. 下列关于变量作用域

8、的描述,错误的是( )A) 在方法中作用域可嵌套,在嵌套的作用域中可以定义同名变量。B) 在类中定义的变量的作用域在该类中的方法内是可以使用的C) 在方法中定义的变量的作用域仅在该方法内D) 在某个作用域定义的变量,仅在该作用域内是可见的,而在该作用域外是不行见的。答案:A解析:方法中的作用域可以嵌套,但嵌套的作用域中不能消灭同名变量否则会消灭名命冲突。11. 类与对象的关系是( )。A) 对象是类的子类 B) 对象是类的抽象 C) 类是对象的抽象 D) 类是对象的具体实例 答案:C解析:对某一类对象的属性和功能的抽象便得到了类,而一个对象便是某一个类的具体化或实例化。12

9、. 在类的修饰符中,规定只能被同一包类所使用的修饰符是( )A) public B) 默认 C) final D) abstract答案:B解析:用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和一般类)均可以访问。默认访问权限的类、类属变量及方法,包内的任何类(包括继承了此类的子类)都可以访问它,而对于包外的任何类都不能访问它(包括包外继承了此类的子类)。final 修饰符是用来修饰类、变量和方法的,用来表示它所修饰的类、方法和变量不行再转变。abstract是定义抽象类或抽象方法时使用的修饰符。13. 下列关于类的继承性的描述中,错误的是 ( ) A) 继承是在已有的基

10、础上生成新类的一种方法B) 子类继承父类的全部成员 C) Java语言要求一个子类只有一个父类D) 父类中成员的访问权限在子类中将被转变答案:D解析:子类对从父类继承来的成员只有重写或使用的权限,并不能修改父类成员的访问权限。14. 下列选项中关于Java中super关键字的说法正确的是()。A) super关键字是在子类对象内部指代其父类对象的引用B) super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C) 子类通过super关键字只能调用父类的方法,而不能调用父类的属性D) 子类通过super关键字只能调用父类的属性,而不能调用父类的方法答案:A解析:super关键字只能指代

11、直接父类对象的引用,因此既可以调用直接父类的属性,也可以调用父类方法。15. 以下对于方法掩盖(overriding)的说法不正确的有( ) 。A) 方法掩盖发生在同一类中B) 方法的掩盖发生在子类型中C) 参数肯定要一样D) 方法名肯定要一样答案:A解析:方法掩盖即重写,该现象只能消灭在子类继承父类后,子类重写父类方法时发生。16. 下面对对象概念描述错误的是:( ) A) 操作是对象的动态属性 B) 任何对象都必需有继承性 C) 对象间的通讯靠消息传递 D) 对象是属性和方法的封装体 答案:B解析:比如数字2,它是整型类对象实例,的确是一个对象,但它却无法被继承,故没有继承性。因此,对象不

12、都必需有继承性。17. 下列关于字符串的描叙中错误的是()(选择两项)A) 字符串是对象B) String对象存储字符串的效率比StringBuffer高C) 可以使用StringBuffer sb="这里是字符串"声明并初始化StringBuffer对象sbD) String类供应了很多用来操作字符串的方法:连接,提取,查询等答案:BC解析:String既属于引用类型也属于基础数据类型,而且内容是静态的,在通常状况效率高些,    但假如涉及到连接字符串的时候,对于String每次连接都要重新安排内存,相比之下StringBuffer效率在此

13、时反而高一些,故B选项错误。C选项的声明并初始化sb的命令应为:StringBuffer sb =new StringBuffer("xiajsiaxbai");   18. 对象的特征在类中表示为变量,称为类的()。A) 对象B) 属性C) 方法D) 数据类型答案:B解析:类中的成员在类中表现出什么样的特征就相当于类的对应成员。变量在类中只可能做属性。19. 应用程序的main方法中有以下语句,则输出的结果是 ( )。String s = "xxx#678#9123#zzzzz"int n = s.indexOf("#&q

14、uot;); int k = s.indexOf("#", n+1);String s2 = s.substring(n+1, k+4);System.out.println(s2); 答案:678#912解析:indexof(“s1”)表示返回字符“s1”的索引。indexof(“s1” , index)表示查找字符串中的字符 s1 从第 index 个开头查找,返回所在字符的索引。substring(a, b)表示截取包含索引a处的字符开头到不包含索引b处的字符为止的字符串。故n=3,k=7。从而S2=“678#912”。 20. 掩盖与重载的关系是 ( ) A) 掩盖

15、方法可以不同名,而重载方法必需同名B)掩盖与重载是同一回事C)final修饰的方法可以被掩盖,但不能被重载 D)掩盖只有发生在父类与子类之间,而重载可以发生在同一个类中答案:D解析:此处的掩盖表示重写,重写发生在继承关系中即父类与子类之间。函数名相同,函数的参数列表不同(包括参数个数和参数类型),返回类型可同可不同的现象叫重载。21. 在Java中,下面对于构造函数的描述错误的是()(选择两项)A) 类不肯定要显式定义构造函数B) 一个类可以定义多个构造函数C) 假如构造函数不带任何参数,那么构造函数的名称和类名可以不同D) 构造函数的返回类型是void 答案:CD解析:构造函数名与类名必需一

16、样,C错。构造函数无返回值类型。D错。22. 下列代码输出结果是()int i = 5;while ( i > 0 ) i = i + 1; if ( i = =5 ) break; A) while循环执行5次B) 死循环C) 循环一次都不执行D) 循环执行一次答案:B解析:i由于在while循环里始终大于6(不行能等于5)而无法进入if语句后跳出循环,故该程序是一个死循环。23. 下列说法哪个正确?( )A)一个源文件只能供一个程序使用B)一个源文件中只能有一个类C)一个源文件中可以有多个公共类D)一个程序可以包含多个源文件答案:D解析:一个源文件可以包含多个类但只能包含一个公共类,

17、故B,C错;一个源文件可以被多个程序使用但不能同时被多个程序使用,故A错 。24. 下面的程序段的功能是( )。File file1=new File("d:AAA123 ");file1.mkdirs();A)在当前名目下生成子名目:AAA123 B) 在当前名目下生成文件 AAA.123 C)生成名目: d: AAA123 D)以上说法都不对 答案:C解析:mkdirs()表示创建一个File对象所对应的名目。25. 在java中下列关于自动类型转换说法正确的是()A) 基本数据类型和String相加结果肯定是字符串型B) char类型和int类型相加结果肯定是字符C)

18、 double类型可以自动转换为intD) char + int + double +"" 结果肯定是double;答案:A解析:char类型可以转换为int类型,反之不行,故B错;double类型不会自动转为int类型,会丢失精度。C错。D项结果肯定是String型。26. 应用程序的main方法中有以下语句,则输出的结果是 ( )。int b=2,2, 45,7, 3, 23,27; int sum=0; for(int i=1; i<b.length; i+) for(int j=1; j<bi.length; j+) sum+=bij; System.o

19、ut.println(sum); 答案:53解析:二元数组b为:2,2,0,0 45,0,0,0 7,3,23,27Sum=b11+b12+b13+b21+b22+b23=0+0+0+3+23+27=5327. 关于类的描叙正确的是()(选择两项)A) 一个类的方法使用该类的另一个方法时可以直接引用方法名 B) 局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的把握流块中C) 使用别的类的方法仅仅需要引用方法的名字即可D) 在类中定义的变量称为类的成员变量,在别的类中可以直接使用答案:AB28. 下面说法不正确的是( )?A) 列表(List)、集合(Set)和映射(Map)都是java

20、.util包中的接口。B) Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。C) Set接口是不包含重复元素的集合。D) List接口是可以包含重复元素的有序集合。答案:B解析:键不行以重复。29. 方法的调用,正确的是():A) 必需是一条完整的语句 B) 只能是一个表达式 C) 可能是语句,也可能是表达式 D) 必需供应实际参数 答案:C解析:依据实际状况,调用方法的形式可以不同。30. 下列Java语言中可用的注释符,其中错误的是( )A)/创建主类 B) /*创建主类*/ C) /*创建子类/ D) /*创建子类*/答案:C解析:“/”是单行注释符,“/*.*/”是多行

21、注释符,“/*.*/”是文档注释符。D选项为非法符号。31. 关键字( )表明一个对象或变量在初始化后不能修改。 A) extends B) thisC) final D) finalizer 答案:C解析:略,(考察终止修饰符:final)二、填空题(共20分)1. 单例模式的构造方法的访问把握符应当是 private 。2. Java源文件中最多只能有一个 public 类,其它类的个数不限。3. 为Student类的一个无形式参数和返回值的myprintln方法,写方法头,此方法使用类名Student.myprintln()就可以调用,该方法定义时,方法头的形式为 public stat

22、ic void 4. “The constructor Student(String) is undefined。” 此条错误提示的意思是 Student 类的构造方法未被定义 5. Java不支持多重继承,但类可以实现多个 接口。6. 导入mypackage包中的所类的命令是 import mypackage.* 。7. 使用String类的 Length() 方法可以猎取一个字符串的长度。8. 创建类对象的运算符是( new )。 9. 对于 抽象 方法,只允许声明,而不允许实现。10. read() 方法给程序供应一个从输入流中读取数据的基本方法。11. 一个实现了 Runnable 接

23、口的类实际上定义了一个主线程之外的新线程的操作。12. 子类通过成员变量的隐蔽和方法的 重写 可以把父类的状态和行为转变为自身的状态和行为。13. 设t=3 ,则表达式 (t + +)* 4 的值是12。14. 在Java的基本数据类型中,char型接受Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。15. 一维数组通过下标符访问自己的元素,需要留意的是下标从 0 开头。16. 抛出特别可以利用 throw 语句。17. start() 方法将启动线程对象,使之从新建状态转入就绪状态并进入就绪队列排队。18. 开

24、发与运行Java程序需要经过的三个主要步骤为 编辑源程序 、编译生成字节码 和解释运行字节码。19. Java语言中, 通常把可能发生特别的方法调用语句放到try块中,并用紧跟其后的catch块来捕获和处理特别。20. 在面对对象方法中,类之间共享属性和操作的机制称为 继承 21. List集合的特点: 元素有序,可重复 。22. 在Java语言中,全部的数组都有一个lenght属性,这个属性存储了该数组的 储存了该数组的元素个数或长度 23. 抽象 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必需在抽象类之中定义。24. Math 类供应了很多用于数学运算的静态方法。25.

25、Java中用于两个数相等比较的运算符是:= =,用于不相等比较的运算符是!=。26. 假如要把某个类的对象保存到HashSet集合中,应当重写 equals() 和 hashCode() 。27. 在一个时间只能由一个线程访问的资源称为 临界资源 。访问临界资源的代码为 临界代码 。28. Map集合的特点是: 双列集合(用于存放键值对),无序,key值不行重复。 三、简答题( 共20分)1. package aa.bb;public class Test public static void main(String args) int x; int a = 10,11, 12, 13, 14

26、, 15,16, 17 ; System.out.println(" 0 is " + a1);System.out.println(" 5 is " + fun(a, a2);static int fun(int x, int y) for (int i = 1; i < x.length; i+) if (y < x.length) xi = xi - 1 + 4;return x2;答:0 is 115 is 12public class T1 int t1=50; public void aa()t1-; public static

27、void main(String args) S1 y = new S1(); y.aa(); System.out.println(y.getT1(); System.out.println(y.t1); y.plus();System.out.println( y.getT1(); System.out.println(y.t1); class S1 extends T1 int t1 = 10; public void plus() t1+; public int getT1() return super.t1; 答:491049112.import java.io.*;class People void myPrint() System.out.println("People"); class Student extends People void myPrint() S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论