JAVA各章习题及答案-

上传人:xin****18 文档编号:57611404 上传时间:2022-02-24 格式:DOC 页数:26 大小:410KB
收藏 版权申诉 举报 下载
JAVA各章习题及答案-_第1页
第1页 / 共26页
JAVA各章习题及答案-_第2页
第2页 / 共26页
JAVA各章习题及答案-_第3页
第3页 / 共26页
资源描述:

《JAVA各章习题及答案-》由会员分享,可在线阅读,更多相关《JAVA各章习题及答案-(26页珍藏版)》请在装配图网上搜索。

1、第 1 章 Java 入门一、选择题1 下列选项中,不属于Java 语言特点的一项是( C )。(A)分布式 (B)安全性(C)编译执行(D)面向对象【解析】Java 程序采用解释执行的方法。在系统编译 运行 Java 程序时,Java 编译器将 Java 程序转化为字节码, 在运行时,解释器将编译得到的字节码进行解释执行。2. 在 Java 语言中,(C )是最基本的兀素(A)方法(B)包(C)对象(D)接口【解析】构成 Java 程序的基本元素类(抽象的对象)3. 编译一个定义了 3 个类和 10 个方法的 Java 源文件后, 会产生( D )个字节码文件扩展名是( D )( A)13

2、个字节码文件,扩展名为 .class( B) 1 个字节码文件,扩展名为 .class( C)3 个字节码文件,扩展名为 .java( D) 3 个字节码文件,扩展名为 .class【解析】 源文件中的每一个类编译后都会生成一个字 节码文件,字节码文件的扩展名是.class。4. 在创建 Applet 应用程序时,需要用户考虑问题是(B )。(A)窗口如何创建(B)绘制的图形在窗口中的(C)程序的框架(D)事件处理【解析】创建 Applet 程序时必须继承系统类 Applet , 而Applet 类中已经包含了如何创建窗口以及事件处理等9.阅读下列代码,选出该代码段正确的文件名( C )。cl

3、ass Avoid method1()Method1 in class A);public class Bvoid method2()Method2 in class B);public static void main(String args)main() in class B);(A)(B)(C)(D)【解析】 Java 源文件名必须和公共类的名字完全一 样,源文件的扩展名为 .java。内容, 这类程序的框架也都是固定的, 而绘制图形在窗口 中的位置则需要由用户确定。5.Java 语言属于(B )种语言(A)面向机器的语言 (B)面向对象的语言(C)面向过程的语言(D)面向操作系统的语言

4、 【解析】Java 语言是一种纯面向对象的语言。6.下列关于 Application 和 Applet 程序的说法中不正确的 一项是( B )。(A) Application 使用解释器(B) Application 不使用独立的解释器( C) Applet 在浏览器中运行(D) Applet 必须继承 Java 的 Applet 类【解析】 Application 程序包含 main() 方法,它是一种 独立执行的程序,因此必须使用独立的解释器解释执行。7.下列选项中,不属于Java 核心包的一项是(A )。(A)(B)(C)(D)【解析】 凡是以 java 开头的包都是 Java 核心包,

5、 以 javax开头的包则属于 Java 扩展包。8.下列描述中,不正确的是(A )。(A) 不支持多线程(B) 个 Java 源文件不允许有多个公共类(C) Java 通过接口支持多重继承( D) Java 程序分为 Application 和 Applet 两类【解析】Java 是支持多线程的语言。10.编译下面源程序会得到哪些文件( D )class A1class A2public class Bpublic static void main(String args)(A)只有文件(B)只有和文件(C)编译不成功(D)、和文件【解析】 由于该程序包含 3 个类, 每个类编译后都会 生成

6、 1 个字节码文件, 因此编译后会生成以这 3 个类名命 名的字节码文件。11.编译 Java 程序时,用于指定生成class 文件位置的选项是( A )。A.-d B. -g C. -verboseD. -nowarn12.下列标识符(名字)命名原则中,正确的是( C )。 A.类名的首字母小写 B.接口名的首字母小写C.常量全部大写D.变量名和方法名的首字母大写13 .下面哪种注释方法能够支持javadoc 命令(C )二、 填空题1.Java 程序的编译和执行模式包括2 点,是半编译 和半解释 。2.Java 语言支持 TCP/IP 协议,从而使得 Java 程序在分布式环境中能够很方便

7、地访问处于不同地点的对象 。3.开发Java 程序的一般步骤是:源程序编辑、生成字节码禾和 解释执行。4.每个 Java Application 程序可以包括许多方法,但是必须有且只能有一个ma in ()方法,统一格式为 public staticvoid main( Stri ng args),它是程序执行的入口。三、 判断题14 .下面哪些选项是正确的main 方法说明(D )A.void main()B.private static void main(String args)C. public main(String args)D. public static void main(S

8、tring args)5.JVM 把字节码程序与各种不同的操作系统 和 硬件分开,使得 Java 程序独立于平台。6 .在 Java 程序中,能在 WWW 浏览器上运行的是Applet程序。7.Java 源程序文件和字节码文件的扩展名分别为.java禾口 .class。8. 如果在 Java 程序中需要使用包中的所有类,则应该在程序开始处加上import * 语句。1.Java 语言具有较好的安全性和可移植性及与平台无关等特性。(V)2.Java 语言的源程序不是编译型的,而是编译解释型的。(V)3.Java Application 程序中,必有一个主方法 main(),该方法有没有参数都可以

9、。(V)4 .可以接收用户从键盘输入的简单数据。(V)5.Java 程序中不区分大小写字母。(x)6 .机器不能直接识别字节码文件,它要经过JVM 中的解释器边解释边执行。(V)7.System 类中的 println()方法分行显示信息,而print()方法不分行显示信息。(V)8.当前路径的标识是“”。(V)9.java 命令不区分大小写,而javac 命令区分大小写。(x)10.printf()和 format()方法使用指定格式字符串和参数,将格式化字A. .*/C. /*/D. /*.*/符串写入到PrintStream 类型的输出流(对象)中。(V)11 .在运行字节码文件时,使用

10、java 命令,一定要给出字节码文件的扩展名.class(x)第 2 章 标识符与简单数据类型一、选择题1下列( D )是合法的标识符(A)12class (B) void(C)-5 (D) _blank2下列( B )不是 Java 中的保留字(A)if (B) sizeof ( C) private (D) null3下列( C )不是合法的标识符(A)$million (B) $_million( C)2$_million(D) $2_million4.下列选项中,(B )不属于 Java 语言的基本数据类型(A)整数型(B)数组(C)浮点型(D)字符型5. 下列关于基本数据类型的说法中

11、,不正确的一项是( D )。( A) boolean 类型变量的值只能取真或假( B) float 是带符号的 32 位浮点数( C) double 是带符号的 64 位浮点数( D) char 是 8 位 Unicode 字符【解析】Java 中的字符采用的是16 位的 Unicode 字符。6. 下列关于基本数据类型的取值范围的描述中,正确的 一个是( B )。(A) byte 类型的取值范围是-128128( B) boolean 类型的取值范围是真或假(C) char 类型的取值范围是 065536( D) short 类型的取值范围是 -32767 32767【解析】 根据每种类型占

12、几个字节即可推算出其取值范围,如 byte 类型占 1 个字节,即共包含 28个数值,其 取值范围范围应为 -128127,其他类型也是如此。7. 下列关于 Java 语言简单数据类型的说法中,正确的一 项是( A )。(A) 以 0 开头的整数代表 8 进制整型常量(B) 以 0 x 或 0X 开头的整数代表 8 进制整型常量( C) boolean 类型的数据作为类成员变量的时候, 相同默 认的初始值为 true( D) double 型数据占计算机存储的 32 位 &下列 Java 语句中,不正确的一项是( C )。( A) $e, a, b = 10;( B) char c, d =

13、a;( C) float e = ;( D) double c = 0.0f;【解析】不能将 double 类型的常量赋值给 float 类型 的变量。9在编写 Java 程序时,如果不为类的成员变量定义初始 值,Java 会给出它们的默认值,下列说法中不正确的一个是( D )。( A) byte 的默认值是 0( B) boolean 的默认值是 false(C) char 类型的默认值是 0( D) long 类型的默认值是 0.0L 10.下列语句中不正确的一个是( B )。( A) float f = 1.1f;( B) byte b = 128;( C) double d = ;(

14、D) char c = (char)1.1f;【解析】 bytel 类型变量的取值范围是 -128127。11 .下列表达式 1+2+ aa+3 的值是(B )。(A) 12aa3 (B) 3aa3 (C) 12aa (D) aa3 【解析】整数和整数相加得到两个整数的和, 而整数 和字符串相加得到的是字符串。12.已知 y=2, z=3, n=4,则经过 n=n + -y*z/n 运算后 n 的值 为( A )。( A) 3( B) -1( C) -1 ( D) -3【解析】 根据运算符的优先级, 该表达式相当于 n=n+(-y)*z)/n 。13.已知 a=2, b=3,则表达式 a%b*

15、4%b 的值为(A )。 ( A) 2( B) 1( C) -1( D) -2【解析】根据运算符的优先级,该表达式相当于(a%b)*4)%b。14.已知 x=2, y=3, z=4,则经过 z- = -y -x-运算后,z 的值 为( D )。( A) 1( B) 2( C) 3( D) 4【解析】在表达式运算过程中, -y 的值变为 2, x的值还是 2,等号右侧运算后的值为 0,因此 z 的值没有 变化。15.表达式 (12=0) & (1/0 1)的值为( B )。(A) trueB) false (C) 0(D)运行时抛出异常【解析】由于(12=0)的值为 false,因此整个表达式

16、发生短路运算, 即 (1/0 1)就没有参与运算, 整个表达式 的值为 false。16.设有类型定义 short i=32; long j=64; 下面赋值语句中 不正确的一个是( B )( A) j=i; ( B) i=j; ( C) i=(short)j; ( D) j=(long)i;【解析】 long 类型的数据不能自动转变为 short 类型, 因此不能将 long 类型的变量直接赋值给 short 类型。17 .现有 1 个 char 类型的变量 c 仁 66 和 1 个整型变量 i=2, 当执行 c 仁 c1+(char)i;语句后,c1 的值为(D )。(A) d ( B)

17、D (C) 68 ( D)语句在编译时出错 【解析】两个字符型的数据相加, 得到的是一个整数, 而如果把整数再赋值给一个字符型变量则会在编译时出 错。18.下列说法中,正确的一项是(D )。(A)字符串abcd的长度为 6(B)False 是 Java 的保留字( C) 123.45L 代表单精度浮点型(D)False 是合法的 Java 标识符【解析】 Java 语言对字符的大小写是敏感的, False 不是 false,因此 False 是合法的 Java 标识符。19.以下的变量定义语句中,合法的是(D )(A) float _*5 = 123.456F;(B) byte $_b1 =

18、12345;( C) int _long_ = 123456L;(D)double d =;【解析】 (A)中_*5 不是合法的标识符, (B)中 12345 超出 byte范围,(C)中不能将 long 类型的常量赋值给 int 型的变量。20 下列关于运算符优先级的说法中,不正确的一个是 (C )(A)运算符按照优先级顺序表进行运算(B)同一优先级的运算符在表达式中都是按照从左二、填空题到右的顺序进行运算的(C) 同一优先级的运算符在表达式中都是按照从右 到左的顺序进行运算的(D) 括号可以改变运算的优先次序【解析】同一优先级的运算符在表达式中都是按照从 左到右的顺序进行运算的。1 变量是

19、 Java 程序的基本存储单元之一,变量的主要类型包括2 大类:字符型 和数值型。2.Java 语言的整数类型变量和常量一样,各自都包括4 种类型的数据,它们分别是byte、 int、 short 和 long。3.boolean_ 类型数据不可以做类型转换。4.在 Java 语言的基本数据类型中,占存储空间最少的类型是boolean,该类型占用的存储空间为1 位。5.Java 语言中的 保留字具有特殊意义和作用,不能作为普通标识符使用。6.在 Java 语言中,浮点类型数据属于实型数据,可以分为 单精度 和 双精度 两种。7.char 类型的数据可以表示的字符数共为65536 。8定义初始值

20、为 10 的 8 次方的常整型变量 iLong 的语句是 final iLong = 100000000L。9.Java 语言中的数据类型转换包括自动转换 和 强制转换 两种。10. Java 中的字符采用的是 16 位的 Unicode 编码。11.数据类型中存储空间均为64 位的两种数据类型是12 .表达式 9*4/ -5%5 的值为 -2。(十进制表示)14 .表达式 423 的值为 11010 。(二进制表示)16.表达式 7|3 的值为 7。(十进制表示)17.表达式 10A2 的值为 8。(十进制表示)18.Java 语言中的逻辑与(&)和逻辑或(|)运算采用短路 方式进行运算。1

21、9. 若 a、b 为 int 型变量,并且已分别赋值为 5 和 10,则表达式(a+)+(+b)+a*b 的值为 82。20 .假设 i=10, j=20, k=30,则表达式!(ij+k) | !(i+10=j) 的值为 false 。三、判断题1.Java 语言使用的是 Unicode 字符集, 每个字符在内存中占8 位。(x)2.Java 语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。(V)3 .所有的变量在使用前都必须进行初始化。(x)4 .已知 byte i = (byte)127; i = i +1;这两个语句能被成功编译。(V)5.String str=abcdefg

22、hi; char chr=(9);(x )6.char chrArray= a, b, c, d, e, f, g; char chr=chrArray6;( V )7.int i,j;boolean booleanValue=(i=j);( x )& int intArray=0,2,4,6,8;int length=int ();( x )9.String str=abcedf:intlen gth=;(x )10 .short shortValue=220;byte byteValue=shortValue;( x )11.int intArray60;(x )12.char str=a

23、bcdefgh;(x)13.说明或声明数组时不分配内存大小,创建数组时分配内存大小。(V)14 .强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。(V)long 禾廿double(十进制表示)第 3 章运算符、表达式与语句、选择题1 下列(D )不属于 Java 语言流程控制结构(A)分支语句(B)跳转语句(C)循环语句(D)赋值语句【解析】Java 语言流程控制结构只包括分支、循环和跳转三种语句。2假设 a 是 int 类型的变量,并初始化为 1,则下列(D) 是合法的条件语句(A) if(a)( B) if(a=3)(C) if(a=2) (D) if(true)【解析】条

24、件语句中的“条件表达式”只能是 boolean 类型,不能是其他类型。3.下列说法中,不正确的一个是( C )。(A) switch 语句的功能可以由 if -else if 语句来实现(B)若用于比较的数据类型为double 型,则不可以用switch 语句来实现(C)if -else if 语句的执行效率总是比switch 语句高(D)case 子句中可以有多个语句,并且不需要大括号括起来【解析】语句执行效率高低要根据具体语句来确定,简单地说 if -else if 语句的执行效率总是比 switch 语句高。4.设 a、b 为 long 型变量,x、y 为 float 型变量,ch 为c

25、har 类型变量且它们均已被赋值, (B )。(A) switch(x+y) (C) switch ch (D) switch(a+b); 【解析】switch 后面的表达式必须放在括号()中,且 表达式的类型只能是 byte、short、int 和 char 类型,不能 是其他类型。5.下列循环体执行的次数是( C )。int y=2, x=4;while(-x != x/y) 二、填空题1 .跳转语句包括 break、continue、return 禾口 throw2. switch 语句先计算 switch 后面的 表达式 的值,再 和各 case语句后的值做比较。3.if 语句合法的条

26、件值是 boolean类型。4.continue 语句必须使用于循环语句中。5. break 语句有两种用途:一种从 switch 语句的分支中 跳出,一种是从循环语句内部跳出。6.do while 循环首先执行一遍循环体 ,而 while 循环首先判断 表达式的值 。(A) 1(B) 2(C) 3(D) 4【解析】第 1 次执行 while 时,-x 的值为 3, 3/2=1, 满足等号两端值不等的条件,执行一次循环体;第 2 次执行 while 时,-x 的值为 2, 2/2=1,条件满足,又执行一次 循环体;第 3 次执行 while 时,-x 的值为 1, 1/2=0,条件 满足,再次

27、执行一次循环体;第 4 次执行 while 时,-x 的值为 0, 0/2=0,条件不满足满足, 结束循环。 因此在这 个循环语句执行的过程中,循环体共执行了3 次。6 .下列循环体执行的次数是( B )。int x=10, y=30;do y -= x; x+; while(x+y-);(A) 1( B) 2(C) 3 (D) 4【解析】执行 1 次循环体后,y 的值为 20, x 值为 11, 然后执行 while ,此时 x+的值为 11, y 的值为 20,因此 x+y条件满足,判断完后,x 的值变为 12, y 的值变为 19;接着执行第 2 次循环体,执行完第2 次循环体后,y的值

28、为 9, x 值为 13,然后执行 while ,此时 x+的值为 13, y的值为 9,因此 x+y条件不满足,结束循环。因此 在这个循环语句执行的过程中,循环体共执行了2 次。7 .已知如下代码:switch(m)case0:Co ndition 0); case1:Co ndition 1);case2:Co ndition 2); case3:Co nditio n3);break;default:OtherCo nditio n);当 m 的值为(D )时,输出“ Condition 3 ”(A) 2(B) 0、1(C) 0、1、2 (D) 0、1、2、3【解析】 当 m 的值为 0

29、、 1、 2、 3 时, 都能输出“ Condition3”,因为 case 0 case 1、case 2 后面的语句都没有 break, 因此可以继续向后执行。则下列语句中正确的是(B) switch(ch+1) 7 .与 C+语言不同,Java 语言不通过goto语句实现跳转。8 .每一个else子句都必须和它前面的一个距离它最近的 if_子句相对应。9 .在 switch 语句中,完成一个 case 语句块后,若没有通过 break 语句跳出 switch 语句,则会继续执行后面的case语句块。10.在 for 循环语句中可以声明变量,其作用域是_for循环体 。一、选择题第 4 章

30、类与对象1 下列哪种类成员修饰符修饰的变量只能在本类中 被访问(D )(A)protected ( B) public(C) default(D)private2.在 Java 语言中,哪一个包中的类是自动导入的 (A )A)B)C)D)【解析】只有包中的类能够被自动导入。3 .给出下面的程序代码:public class X4_1_3 private float a;public static void m ( )如何使成员变量 a 被方法 m()访问(C )(A) 将 private float a 改为 protected float a(B) 将 private float a 改为

31、public float a(C) 将 private float a 改为 static float a(D) 将 private float a 改为 float a【解析】static 类型的方法只能访问 static 类型的数据成员。4 .有一个类 B,下面为其构造方法的声明,正确的 是(B )。(A) void B(int x) (B) B(int x) (C) b(int x) (D) void b(int x) 5.下面关于类的说法,不正确的是( C )。(A) 类是同种对象的集合和抽象(B) 类属于 Java 语言中的复合数据类型(C) 类就是对象 (D)对象是 Java 语言

32、中的基本结构单 位【解析】类是对象的抽象,对象是类的实例6 .下面关于方法的说法,不正确的是( C )。(A) Java 中的构造方法名必须和类名相同(B) 方法体是对方法的实现,包括变量声明和合法语句(C) 如果一个类定义了构造方法,也可以用该类的默认 构造方法(D) 类的私有方法不能被其他类直接访问【解析】类中一旦用户定义了构造方法,该类默认的构造方法就不存在了,除非用户再自定义该类的默认构造方 法。7 .关于内部类,下列说法不正确的是(A)o(A) 内部类不能有自己的成员方法和成员变量(B) 内部类可用 private 或 protected 修饰符修饰(C) 内部类可以作为其他类的成员

33、,而且可访问它所在 的类的成员(D)除static内部类外,不能在类内声明static 成员8.定义外部类时不能用到的关键字是(C)o(A) final(B) public(C) protected(D)abstract【解析】定义外部类不能使用protected 修饰符。9 .为 AB 类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为(D )(A) abstract void f()(B) public void f()(C) fin al void f()(D) static void f()【解析】只有 static 类型的方法才可以直接使用类名 来引用。10

34、.定义一个公有double 型常量 PI,哪一条语句最好(B )(A) public final double PI;(B) public final static double PI=;(C) public final static double PI;(D) public static double PI=;【解析】用 public final static 来定义常量,既可以节 省存储空间,又可以保证数值不会被改变。、填空题1.对象 是对事物的抽象:而类 是对对象的抽象和归纳。2.从用户的角度看,Java 源程序中的类分为两种: 系统定义的类 和 用户自己定义的类 。3 .一个类主要包含

35、两个要素:数据成员 和。4 .创建包时需要使用关键字 _package。5 .类中的 构造方法是一个特殊的方法,该方法的方法名和类名相同。6.如果用户在一个自定义类中未定义该类的构造方法, 系统将为这个类定义一个默认构造方法。这个方法没有 形式参数 ,也没有任何 具体语句,不能完成任何操作。7.静态数据成员被保存在类的内存区的公共存储 单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同(相同/不同)的数值。&静态数据成员既可以通过对象名 来访问,也可以通过 类名 直接访问它。9 定义常量时要用关键字final,同时需要说明常量的数据类型并指出常量的具体值。

36、10 方法体内定义变量时,变量前不能加 修饰符;局部变量在使用前必须明确赋值,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个默认的值。11. static 方法中只能引用static 类型的数据成员和 static 类型的成员方法;而非 static 类型的方法中既可以引用 static 类型的数据成员和成员方法,也可以引用非static 类型的数据成员和成员方法。12 .引用 static 类型的方法时,可以使用类名 做前缀,也可以使用 对象名 做前缀。13 .当程序中需要引用包中的类时,导入该包中类的语句为import。14 .定义类时需要class 关键字,继承类时需要ex

37、te nds关键字,实现接口时需要关键字impleme nts。三、判断题1.类是一种类型,也是对象的模板。(V)2 .类中说明的方法可以定义在类体外。(X)3.实例方法中不能引用类变量。(X)4 .创建对象时系统将调用适当的构造方法给对象初始化。(V)5 .使用运算符 new 创建对象时,赋给对象的值实际上是一个引用值。(V)6.对象赋值实际上是同一个对象具有两个不同的名字,它们都有同一个引用值。(V)7 .对象可作方法参数,对象数组不能作方法参数。(X)8.class 是定义类的惟一关键字。(V)9.Java 语言会自动回收内存中的垃圾。(V)第 5 章子类与继承1 已知有下面类的说明:p

38、ublic class X5_1_1 extends xprivate float f =10.6f;int i=16;static int si=10;public static void main(String args) X5_1_1 x=new X5_1_1();在 main()方法中,下面哪条语句的用法是正确的(A )A.B. C.D.【解析】由于 x 是在 main 方法内部定义的对象,因此它 可以引用类的非 static 类型的属性,因此选 A,而 this 和 super 不能在 main 方法中使用,使用类名只能引用本类的3.下面关于接口的说法中不正确的是(C )。A. 接口

39、中所有的方法都是抽象的B.接口中所有的方法都是public访问权限C.子接口继承父接口所用的关键字是impleme ntsD. 接口是 Java 中的特殊类,包含常量和抽象方法【解析】子接口继承父接口所用的关键字也是exte nds,只有类实现接口时才使用implements。4.区分类中重载方法的依据是(A )。A. 形参列表的类型和顺序B. 不同的形参名称C. 返回值的类型不同D. 访问权限不同【解析】形参表的类型和顺序不同时区分重载方法的唯一 标志。5. 子类对象能否直接向其父类赋值父类对象能否向其子 类赋值(B )A.能,能B.能,不能C.不能,能D.不能,不能【解析】子类对象可以直接

40、赋值给父类对象,而父类对象不能直接赋值给子类对象。6.Java 语言类间的继承关系是(A )。A.单继承B.多重继承C.不能继承D.不一定【解析】Java 语言类间的继承关系是单继承,但一个类可以实现多个接口。7. Java 语言接口间的继承关系是( B )。A.单继承B.多重继承 C.不能继承 D.不一定 静态属性,因此 B、C、D 不对。2 .下列程序的运行结果是( C )。public class X5_1_2 extends x int ab()static int aa=10;aa+;static void main(String args) X5_1_2 x=newX5_1_2()

41、;();A. 10B.11C.编译错误D.运行成功,但不输出【解析】方法体内的局部变量不能使用static 修饰符。【7.解析】Java 语言接口间的继承关系允许多重继承。8.个类实现接口的情况是(A )。A. 一次可以实现多个接口B. 次只能实现一个接口C. 不能实现接口D. 不一定【解析】Java 语言允许一个类一次实现多个接口。9 .定义外部类的类头时,不可用的关键字是(C )。A. publicB. finalC. protectedD. abstract【解析】定义外部类时不能使用protected 关键字。10.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量(B )

42、A. 不能引用,必须改名,使它们的名称不相同B. 在成员变量前加 this,使用 this 访问该成员变量C. 在成员变量前加 super,使用 super 访问该成员变量D. 不影响,系统可以自己区分【解析】this 可以用来引用本类对象。11 .下面说法不正确的是(B )。A. 抽象类既可以做父类,也可以做子类B. abstract 和 final 能同时修饰一个类C. 抽象类中可以没有抽象方法,有抽象方法的类一定是 抽象类或接口D. 声明为 final 类型的方法不能在其子类中重新定义【解析】abstract 和 final 不能同时修饰一个类,因为abstract 类需要子类,而 fi

43、nal 类不能有子类。二、填空题一、选择题1.消息就是向对象发出服务请求,是对_和 成员方法 的引用。2.在面向对象系统中,消息分为两类公有消息一和 私有消息。3. 在面向对象程序设计中,采用 机制可以有效地组织程序结构。充分利用已有的类来创建更复杂的类,大大提高程序开发的效率,提高代码的复用率,降低维护的工作量。4.数据成员的隐藏是指在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员。5子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖。6子类在重新定义父类已有的方法时,应保持与父类完全相同的方法名 、返回值类型 和 参数列表,否则就不是方法的覆盖,而是子类定义自己特有

44、的方法,与父类的方法无关。7.this 代表了 当前对象 的一个引用,super 表示的是当前对象的直接父类对象的引用。&抽象类不能创建对象,该工作由抽象类派生的非抽象子类来实现。9.如果父类中已有同名的abstract 方法,则子类中就不能 (能/不能)再有同名的抽象方法。10. abstract 类中不能有 private 访问权限的数据成员或成员方法。11.inteface 是声明接口的关键字, 可以把它看成一个特殊类。接口中的数据成员默认的修饰符是public static final ,接口中的成员方法默认的修饰符是public abstract。12 .如果实现某接口的类不是abs

45、tract 的抽象类,则在类的定义部分必须实现 该接口的所有抽象方法:如果实现某接口的类是 abstract 的抽象类,则它可以不实现该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法以及自身所实现接口中的抽象方法都必须有实在的方法体 。13.包的作用有两个,一是划分类名空间 ,二是 控制类之间的访问 。14.封装也称信息隐藏,是指类的设计者只为类的使用者提供类的可以访问的部分(包括类的数据成员和成员方法),而把类中的其他成员隐藏 起来,使用户不能访问的机制。15.Java 提供了 4 种访问权限来实现圭寸装机制,即private、 protec

46、ted 、 默认 和 public。16.Java 中提供两种多态机制,重载 与 覆盖。17 当一个构造方法需要调用另一个构造方法时,可以使用关键字 this ,同时这个调用语句应该是整个构造方法的第一条可执行语句。18.如果子类自己没有构造方法,那么父类也一定没有(有/没有)带参的构造方法,此时它将继承父类的无参构造方法 作为自己的构造方法:如果子类自己定义了构造方法,则在创建新对象时,它将先执行父类的构造方法,然后再执行自己的构造方法。19.对于父类的含参数构造方法,子类可以通过在自己的构造方法中使用super 关键字来调用它,但这个调用语句必须是子类构造方法的第一条可执行语句。20.创建

47、一个名为 myPachkage 的包的语句为package myPackage:,该语句应该放在程序第一行位置。三、判断题1.Java 语言中,构造方法是不可以继承的。(V)2.子类的成员变量和成员方法的数目一定大于等于父类的成员变量和成员方法的数目。(X)3 .抽象方法是一种只有说明而无具体实现的方法。(V)4.Java 语言中,所创建的子类都应有一个父类。(V)5 .调用 this 或 super 构造方法的语句必须放在第一条语句。(V)6 .一个类可以实现多个接口,接口可以实现多重继承”。(V)7 .实现接口的类不能是抽象类。(V)&使用构造方法只能给实例成员变量赋初值。(V)9.Jav

48、a 语言不允许同时继承一个类并实现一个接口。(X)一、选择题二、填空题1.Object 类是所有类的直接或间接父类,它在 _ 包中。2.System 类是一个功能强大、非常有用的特殊的类,它提供了标准输入/输出、 运行时系统信息等重要工具。这个类不能实例化 ,即不能创建 System 类的对象,所以它所有的属性和方法都是static 类型,引用时以类名 System 为前缀即可。3.Applet 由浏览器自动调用的主要方法init , start , stop 和 destroy 分别对应了Applet 从初始化、启动、暂停到消亡的生命周期的各个阶段。4.数组是一种复合 数据类型,在 Java

49、 中,数组是作为 对象 来处理的。数组是有限元素的有序集合,数组中的元素具有相同的数据类型,并可用统一的数组名 和 下标 来唯一确定其元素。5 .在数组定义语句中,如果在数据类型和变量名之间时,之后定义的所有变量都是 数组 类型,当在变量名之后时,只有之前的变量是 数组 类型,之后没有的则不是数组类型。6.数组初始化包括静态初始化和 动态初始化两种方式。7.利用System 一类中的 arraycopy() 方法可以实现数组元素的复制;利用 Arrays 类中的 sort()禾廿 binarySearch() 方法可以实现对数组元素的排序、查找等操作。8Java 语言提供了两种具有不同操作方式

50、的字符串类:String类和类。它们都是 _的子类。1 给出下面程序代码:byte al a2;byte a3;byte a4;下列数组操作语句中哪一个是不正确的(A )A.a2 = a1B. a2 = a3C. a2 = a4 D. a3 = a4【解析】只有维数相同的数组才能相互赋值。2.关于数组,下列说法中不正确的是(C )。A. 数组是最简单的复合数据类型,是一系列数据的集合B. 数组元素可以是基本数据类型、对象或其他数组C. 定义数组时必须分配内存D. 个数组中所有元素都必须具有相同的数据类型【解析】数组元素可以是基本数据类型、对象或其他数组。3. 设有下列数组定义语句:int a

51、= 1,2, 3;则对此语句的叙述错误的是(C )。A. 定义了一个名为 a 的一维数组B. a 数组有 3 个元素C. a 数组元素的下标为 13D. 数组中每个元素的类型都是整数4 .执行语句:int x = new int20;后,哪个是正确的(C)A.x19为空B. x19未定义C. x19为 0D. x0为空【解析】此语句定义了 x 数组后,x0 x19的值全部为 0。5.下面代码运行后的输出结果为( A )opublic class X6_1_5 public static void main(String args) AB aa = new AB();AB bb;bb = aa;

52、class AB int x = 100; A.true B. false C.编译错误D. 100【解析】同一个类的两个对象可以相互赋值,赋值后 两个对象具有相同的存储空间,因此是相同的。6 .已知有定义:String s=I love,下面哪个表达式正确(A )A.s += you;B. char c = s1;C. int len = ; D. String s =();【解析】字符串对象可以执行“+= ”运算,但不能用s1这种方式取其中的字符,也不能用 length 求它的长度,可以用 length()求其长度, 因此 B C 不正确, 不能再次定 义 s 字符串,因此 D 不正确。一

53、、选择题第 7 章内部类与异常类1.关于异常的含义,下列描述中最正确的一个是(D ) 。A 程序编译错误B.程序语法错误C.程序自定义的异常事件D.程序编译或运行时发生的异常事件【解析】异常就是程序编译或运行时发生的异常事件。2.自定义异常时,可以通过对下列哪一项进行继承(C )A.Error 类B. Applet 类C. Exception 类及其子类D. AssertionError 类【解析】自定义异常类时,该类必须继承Exception类及其子类。3.对应 try 和 catch 子句的排列方式,下列哪一项是正确 的(A )A. 子类异常在前,父类异常在后B. 父类异常在前,子类异常在

54、后C. 只能有子类异常D.父类和子类不能同时出现在try 语句块中【解析】 对应 try 和 catch 子句的排列方式, 要求子类异 常 (范围小的异常)在前,父类异常(范围大的异常)在 后。4.运行下面程序时,会产生什么异常( A )public class X7_1_4 public static void main(String args) int x = 0;int y = 5x;int z = 1,2,3,4;int p = z4;A.ArithmeticExceptionB. NumberFormatExceptionC.ArraylndexOutOfBoundsExceptio

55、nD. lOException【解析】当程序执行到“ int y = 5/x ”语句时,发生异常,程序中止执行,因此发生ArithmeticException 异常。5.运行下面程序时,会产生什么异常( C )public class X7_1_5public static void main(String args) int z = 1,2,3,4;int p = z4;int x = 0;int y = 5/x;A.ArithmeticException B. NumberFormatExceptionC. ArraylndexOutOfBoundsExceptionD. lOExcept

56、ion【解析】当程序执行到“ int p = z4 ”语句时,发生异常, 程序中止执行, 因此发生 ArraylndexOutOfBoundsException 异常。6.下列程序执行的结果是( B )。public class X7_1_6 public static void main(String args) try return;finallyFinally);A .程序正常运行,但不输出任何结果B.程序正常运行,并输出Fin allyC.编译通过,但运行时出现异常D.因为没有 catch 子句,因此不能通过编译【解析】在执行 try-catch-fi nally 语句块时,最后必须执

57、行fin ally 语句块中的内容,而本程序没有异常发生,因此程序正常运行,并输出Fin ally。二、填空题1.异常是在程序编译或运行中所发生的可预料或不可预料的异常事件, 出现在运行阶段的异常,称之为运行时异常。7 .下列代码中给出正确的在方法体内抛出异常的是(B )。A.new throw Exception(” );B . throw new Exception(” ) ;C. throws lOException();D. throws lOException;【解析】在方法体内抛出异常时只能使用throw,而不能使用 throws ,另外,“new Exception()”是创建一

58、个异常,因此 B 是正确的。8.下列描述了 Java 语言通过面相对象的方法进行异常处 理的好处,请选出不在这些好处范围之内的一项(C)A.把各种不同的异常事件进行分类,体现了良好的继承性B.把错误处理代码从常规代码中分离出来C. 可以利用异常处理机制代替传统的控制流程D. 这种机制对具有动态运行特性的复杂程序提供了强有 力的支持出现在编译阶段的异常,称之为编译时异常2根据异常的来源,可以把异常分为两种类型:系统定义的运行时异常和 用户自定义异常3.所有的 Java 异常类都是系统类库中的Exception 类的子类。4.抛出异常分为由系统自动抛出异常、 通过 throw 抛出异常 以及 通过

59、 throws 抛出异常 三种情况。5.Java 语言为我们提供了trycatch 语句和 trycatchfin ally语句捕捉并处理异常。6.一个 try 块后面可能会跟着若干个catch 块,每个 catch 块都有一个异常类名作为参数。7.如果 try 语句块产生的异常对象被第一个catch 块所接收,则程序的流程将转向第一个 catch 块,catch 语句块执行完毕后就退出当前方法,try 块中尚未执行的语句和其他的catch 块将被 忽略 ;如果 try 语句块产生的异常对象与第一个 catch 块不匹配,系统将自动转到第二个 catch 块进行匹配。&由于异常对象与 catc

60、h 块的匹配是按照 catch 块的 先后顺序进行的,所以在处理多异常时应注意认真设计各catch块的排列顺序。9.throws 语句抛出的异常实际上是由 throws 语句修饰的方法内部的throw语句抛出的,使用 throws 的主要目的是为了通知所有预调用此方法的方法。三、判断题1 .捕获异常 try 语句后面通常跟有一个或多个catch()方法用来处理 try 块内生成的异常事件。(V)2 .使用 try-catch-finally 语句只能捕获一个异常。(x)3.try-catch 语句不可以嵌套使用。(x)4.Error 类所定义的异常是无法捕获的。(V)5.IOException

61、 异常是非运行时异常,必须在程序中抛弃或捕获。(V)6.用户自定义异常类是通过继承Throwable 类来创建的。(x)7.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。(V)一、选择题第 8 章输入流与输出流1 下列数据流中,属于输入流的一项是(B )。A.从内存流向硬盘的数据流B.从键盘流向内存的数据流C.从键盘流向显示器的数据流D.从网络流向显示器的数据流【解析】输入流是指从外围设备流向主机(包括CPU 和内存)的数据流。4下列程序从标准输入设备读入一个字符,然后再 输出到显示器,选择正确的一项填入“public class X8_1_4 public

62、 static void main(String args) char ch;trypublic class X8_1_5 public static void main(String args)char ch;tryFile path = _ ;if()successful!);6.下列流中哪一个使用了缓冲区技术(A )A.BufferedOutputStreamB. FileInputStreamC.DataOutputStreamD. FileReader【解析】只有 BufferedOutputStream 使用了缓冲区技术。7能读入字节数据进行Java 基本数据类型判断过虑的类是(C

63、 )。A.Bufferedl nputStreamB. File In putStreamC. DataInputStreamD. FileReader&使用哪一个类可以实现在文件的任一个位置读写一个 记录(B )A.BufferedInputStreamB. RandomAccessFileC.FileWriterD. FileReader【解析】只有 RandomAccessFile 才能实现在文件的任一个位置读写一个记录。9.在通常情况下,下列哪个类的对象可以作为BufferedReader 类构造方法的参数(C )A.PrintStreamB. FileInputStream2 . J

64、ava 语言提供处理不同类型流的类所在的包是 (D )。A.B.C.D.【解析】 包是 Java 语言提供处理不同类型流的类所在的包。3 .不属于包中的接口的是( C )。A.DataInputB. DataOutputC. Data In putStreamD. ObjectI nput【解析】DataInputStream 是包中的一个类, 其他三个则是包中的接口。catch(Exception e)();A. new File(subDir815);B . newFile(”);C. new File(”dir815subDir815”);D . newFile(”dir815/subD

65、ir815”);【解析】在程序中,目录之间的连接符是“”或 “/”,因此首先排除 B 和 C;而默认情况下,创建相对目录是在当 前目录下进行,而 dir815 也在当前目录下,因此要在 dir815 下创建新的目录,就必须使用 D 的形式。C. InputStreamReaderD. FileReader【 解 析 】 InputStreamReader 类 的 对 象 可 以 作 为BufferedReader 类构造方法的参数。10 .若文件是 RandomAccessFile 的实例 f,并且其基本文件长度大于 0,则下面的语句实现的功能是(B )。()-1);A .将文件指针指向文件的

66、第一个字符后面B. 将文件指针指向文件的最后一个字符前面C. 将文件指针指向文件的最后一个字符后面D. 会导致 seek()方法抛出一个 lOException 异常【解析】通过调用 f 对象的 length()方法,可以将文件指针指向文件的末尾,因此()-1 即指向文件的最后一个字符前 面。11 .下列关于流类和 File 类的说法中错误的一项是 (B )。A. File 类可以重命名文件B. File 类可以修改文件内容C.流类可以修改文件内容D.流类不可以新建目录【解析】只有流类可以修改文件内容,而File 类则不能。12.若要删除一个文件,应该使用下列哪个类的实例(B )A.RandomAccessFileB. FileC. FileOutputStreamD. FileReader【解析】要删除文件以及查看文件属性等,应使用File 类对象来实现。13. 下列哪一个是 Java 系统的标准输入流对象()A. B.C. D.【解析】是 Java 系统的标准输入流对象,而和则是 Java 系 统的标准输出流和标准错误对象, 则是 System 类的退出方 法。14. Java 系

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!