Java期末复习题全
出行方式-党性分析报告
第一部分 Java语言概述
1选择题
1-1在下列概念中,Java语言只保留了 。
A. 运算符重载
B. 方法重载 C. 指针 D. 结构和联合
1-2下列关于Java语言特征的描述中,错误的是 。
A.
支持多线程操作 B. Java 程序与平台无关
C.
Java程序可以直接访问Internet上的对象 D. 支持但继承和多继承
1-3
下列关于Java Application 程序在结构上特点的描述中,错误的是 。
A. Java程序是由一个或多个类组成的
B.
组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中
C. Java
程序的文件名要与某个类名相同
D. 组成Java程序的多个类中,有且仅有一个主类
1-4Java程序经过编译后生成的文件的后缀是 。
A..obj
B..exe C. .class D. .java
1-5下列关于运行字节码文件的命令行参数的描述中,正确的是 。
A.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中。
B.第一个命令行参数被存放在args[1]中。
C.命令行的命令字被存放在args[0]中。
D.数组args[]的大小与命令行参数的个数无关。
2.判断题
1-1Java语言是在C++语言之前问世的。( )
1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。( )
1-3Java语言中取消了联合概念,保留了结构概念。( )
1-4Java语言中数据类型占内存字节数与平台无关。( )
1-5Java语言中可用下标和指针两种方式表示数组元素。( )
1-6Java语言的源程序不是编译型的,而是编译解释型的。( )
1-7操作系统中进程和线程两个概念是没有区别的。( )
1-8Java语言既是面向对象的又是面向网络的高级语言。( )
1-9Java程序分为两大类:一类是Application
程序,另一类是Applet程序。前者又称Java应用程序,
后者又称Java小应用程序。( )
1-10JavaApplication程序是由多个文件组成的,其中可以有也可以没有主文件。(
)
1-11组成JavaApplication的若干类中,有且仅有一个主类,只有主类中含有主
方法main( )_。( )
1-12JavaApplication程序中,必有一个方法main(
),该方法有没有参数都可以。( )
1-13Java程序中是不区分大小写字母的。( )
1-14下列两个命令:javac 和java是不同的,编译时用前者,运行时用后者。( )
1-15Java程序编译后生成的是字节码文件,其后缀是 .exe。( )
1-16字节码文件机器是不能直接识别的,它要经过解释器,边解释边执行。( )
1-17在Java程序中,使用import语句引入类是在解释器中实现的。( )
1-18在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名 .class
。( )
1-19如果一个Java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。( )
1-20Java程序中出现的输出方法println( )和print ( )
是完全一致的。( )
1.B 2.D 3.C 4.C 5.A
1.错 2.对 3. 错 4. 对 5. 错 6. 对 7. 错 8. 对
9. 对 10.错
11. 对 12. 对 13. 错 14. 对 15.错
16. 对 17. 对 18.错 19. 错 20. 错
1
第二部分 Java语言语法基础
1、选择题
2-1Java语言所用的字符集中字符是 B 位。
A.8 B. 16
C.32 D.64
2-2下列关于标识符的描述中,正确的是 A 。
A.标识符中可以使用下划线和美元符
B.标识符中可以使用连接符和#号符
C.标识符中大小写字母是无区别的
D.标识符可选用关键字
2-3Java语言的各种分隔符中,非法的是 D 。
A.空白符 B. 分号
C. 逗号 D. 问号
2-4下列是Java语言中可用的注释符,其中错误的是
C 。
A. B. *···* C. **···** D. **···*
2-5 Java 语言中字符型数据的长度是 B 位。
A.8 B.
16 C.32 D.64
2-6下列描述的两种数据类型的长度不相等的是 A
。
A.字符型和布尔型 B字节型和布尔型 C 短整型和字符型
D整型和单精度浮点型
2-7下列是Java语言中的复合数据类型,其中错误的是 C
。
A.数组 B.接口 C.枚举 D.类
2-8下列是关于Java语言中数据类型的强制转换的描述,其中错误的是 CD 。
A.当数据类型从高转换为低时需要强制转换
B.强制转换时使用强制转换运算符,形如(<类型>)
C.浮点型数据强制转换为整型时,小数部分四舍五入
D.赋值操作中都要采用强制类型转换
2-9下面是关于常量的描述中,错误的是 BD 。
A.Java语言的常量有5种
B.浮点型数12.456时单精度的
C. 布尔型常量只有两个可选值:true和
false D.字符串常量含有结束符‘0’
2-10下列关于定义符号常量的描述中,错误的是
A 。
A.定义符号常量是用关键字const B.定义符号常量时要赋初值
C.符号常量既可定义为类成员,又可在方法中定义
D.定义符号常量时必须给出数据类型
2-11下列关于变量的默认值的描述,其中错误的是
BC 。
A.定义变量而没有进行初始化时,该变量具有默认值
B.字符型变量的默认值为换行符
C.布尔型变量的默认值为true
D.变量的默认值是可以被改变的
2-12下列关于变量定义的描述中,正确的是 AC 。
A.定义变量时至少应指出变量名字和类型
B.定义变量时没有给出初值,该变量可能是无意义值
C.定义变量时,同一个类型多个变量间可用逗号分隔
D.定义变量时必须要给变量初始化
2-13下列关于变量作用域的描述,错误的是 D 。
A.在某个作用域定义的变量,仅在该作用域内室可见的,而在该作用域外事不可见的
B.在类中定义的变量的作用域在该类中的方法内可以使用
C.在方法中定义的变量的作用域仅在该方法体内
D.在方法中作用域可嵌套,在嵌套的作用域中可以定义同名变量
2-14下列关于增1(++)减1(--)运算符的描述中,正确的是 AB 。
2
A.增1减1运算符都是单目运算符
B.增1减1运算符都具有前缀运算和后缀运算
C.增1减1运算符不会改变变量的值
D.增1减1运算符前缀运算和后缀运算后表达式值是相同的
2-15下列关于运算符优先级的描述中,错误的是 D 。
A.在表达式中,优先级高的运算符先进行计算
B.赋值运算符优先级最低
C.单目运算符优先级高于双目和三目运算符
D.逻辑运算符优先级高于逻辑位运算符
2-16下列关于表达式的描述中,正确的是 AC 。
A.任何表达式都有确定的值和类型
B.算术表达式的类型由第一个操作数的类型决定
C.逻辑表达式的操作数是逻辑型的
D.赋值表达式的类型取决于右值表达式的类型
2-17下列表达式中,非法的是 B 。
int a=5,b=6; double
c=1.1,d=2.2;
A. a+c+++d B. (a+c )-- C.
c<2-18下列关于条件语句的描述中,错误的是 AC
。
A.if语句可以有多个else子句和else if 子句
B.if语句中可以没有else 子句和else if 子句
C.if语句中的<条件>可以使用任何表达式
D.if语句的if体、else体内可以有循环语句
2-19下列关于开关语句的描述中,错误的是 BCD 。
A.开关语句中,default子句可以省略
B.开关语句中,case子句的(语句序列)中一定含有break语句
C.开关语句中,case子句和default子句都可以有多个
D.退出开关语句的唯一条件是执行break语句
2-20下列关于循环语句的描述中,错误的是 BD 。
A.任何一种循环体内都可以包含一种循环语句
B.循环体可以是空语句,也可以是空
C.循环体内可以出现多个break 语句
D.循环语句中,循环体至少被执行一次
2-21下列循环语句的循环次数是 D 。
int i=5;
do{
n( i- -);
i--;
}while(i!=0);
A. 0 B. 1 C. 5 D.无限
2-22下列循环语句中,循环体被执行的次数为 D 。
For( int
i=0,j =0;(j!=18)||(i<4);i++);
A. 3 B. 4
C. 不确定 D.无限
2-23下列关于Java语言的数组描述中,错误的是 D 。
A.数组的长度通常用length B.数组下标从0开始
C.数组元素是按顺序存放在内存的 D.数组在赋初值和赋值时都不判届
2-24下列关于数组的定义形式,错误的是 ACD 。
A.int[]a;a=new int; B.char
b[];b=new char[80]
3
C.int[]c=new char[10];
D.int[]d[3]=new int[2][]
2-25下列关于字符串的描述中,错误的是
B 。
A.Java 语言中,字符串分为字符串常量和字符串变量两种
B.两种不同的字符串都是String类的对象
C.Java语言中不在使用字符数组存放字符串
D.JavaApplication
程序的main(
)的参数args[]是一个String类的对象数组,用它可存放若干个命令
行参数
2、判断题
2-1Java语言标识符中可以使用美元符。(对)
2-2Java语言标识符中大小写字母是没有区别的。(错)
2-3分号(;)、逗号(,)和冒号(:)都可作为Java语言中的分隔符。(对)
2-4文档注释符**···*是Java语言特有的注释符。(对)
2-5Java语言的基础数据类型有4种:整形、浮点型、字符型和布尔型。(对)
2-6Java语言的复合数据类型有3种:数组、类和包。(错)
2-7Java语言中,字节型与字符型是一样的。(错)
2-8Java语言是一种强类型语言,数据类型转换有两种:隐含转换和强制转换。(对)
2-9数据由高类型转换到低类型时,采用强制转换,数据精度要受到损失。(对)
2-10布尔型常量可以自动转换为短整型变量。(错)
2-11Java语言使用的是Unicode字符集,每个字符在内存中占8位。(错)
2-12Java语言的字符中部隐含结束符。(对)
2-13Java语言中定义符号常量使用final关键字。(对)
2-14Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。(对)
2-15Java语言中只有无符号的字符型。(对)
2-16字符型变量中只存放一个字符。(对)
2-17定义变量时必须进行初始化,否则变量具有无意义的值。(错)
2-18若定义变量时不进行初始化,则该变量一定具有默认值。(对)
2-19Java语言中,变量出现的位置只有一种,即为类体内定义的成员变量。()
2-20Java语言规定在嵌套的程序块中不允许定义同名变量。()
2-21求余运算符%可用于整数和浮点数。()
2-22关系运算符组成的表达式是逻辑型表达式。()
2-23逻辑运算符&和&&是没有区别的,都具有逻辑与的功能。()
2-24运算符&是逻辑与运算符还是按位与运算符取决于操作数的类型。()
2-25运算
符“〉〉”和“〉〉〉”都是右移位运算符,其区别在于对向右移出的位置是舍弃还是保留。()
2-
26赋值运算符组成的赋值表达式中,通常将右边的表达式的类型转换为左边变量的类型后再赋值。()
2-27三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。()
2-28强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。()
2-29对象运算符instanceof是一个单目运算符,其表达式的值是类的对象。()
2-30内存分配运算符new可以为创建的数组分配内存空间,但不能为创建的变量分配空间。()
2-31运算符的优先级中,最低的是三目运算符。()
2-32运算符的结合性中,除了三目运算符是自右向左。()
2-33关系表达式和逻辑表达式的值都是布尔型的。()
2-34赋值表达式的值不能是逻辑型的。()
2-35条件表达式的类型总是“?”和“:”之间的操作数的类型。()
2-36块语句可以嵌套,外层块语句定义的变量在内层块语句中是可见的。()
2-37条
件语句的嵌套结构中,一个if子句最多有一个else子句与它配对,而且一定是距离它最近的。()
2-38在条件语句的嵌套结构中,一个if子句最多有一个else子句与它配对,而且一定是距离它最近的
。
()
4
2-39开关语句中,case子句后面的<语句序列>可以是块语句。()
2-40循环语句中,<条件>表达式必须是逻辑型表达式。()
2-41在Java语言中,break语句不能作用在<标号名>的左边。()
2-42Java语言中,数组在静态和动态赋值时都判越界。()
2-43说明或声明数组时不分配内存大小,创建数组时分配内存大小。()
2-44基本数据类型的数组在创建时系统将指定默认值。()
2-45数组在定义时可以进行初始化,使用初始值表。()
2-46Java语言中数组元素只有下标表示,没有指针表示。()
2-47创建数组时,系统自动将数组元素个数存放length
变量中,可供用户对数组操作时使用。()
2-48字符串可分为字符串常量和字符串变量两种,它们都是对象。()
2-49Java语言中不使用字符数组存放字符串。()
2-50下列创建字符串s的方法是错误的。()
char
ch[]={‘m’,m’,’n’,’n’};
char s[]=new char(ch);
1. 对 2.错 3. 对 4. 对 5. 对 6. 错 7. 错
8. 对 9. 对 10. 错 11. 错12. 对 13. 对
14. 对
15. 对 16. 对 17. 错 18. 对 19. 错 20. 对 21. 错22.
对 23.错 24. 对 25. 错
26对 27. 对 28. 对 29. 错
30. 错 31. 错 32. 错33. 对 34. 错 35. 错 36. 对 37.
错38. 对
39. 对 40. 对 41. 错 42. 对 43对 44. 对
45. 对 46. 对 47. 对 48. 对 49. 对 50.
对
第三部分 Java语言面向对象的特征
1、选择题
3-1下列对封装性的描述中,错误的是 B 。
A.封装体包含了属性和行为
B.封装体中的属性和行为的访问权限是相同的
C.被封装的某些信息在封装体外是不可见的
D.封装使得抽象的数据类型提高了可重用性
3-2下列关于继承性的描述中,错误的是
C 。
A.一个类可以同时生成多个子类 B.子类继承了父类的所有成员
C.Java语言支持单重继承和多重继承
D.Java语言通过接口可使子类使用多个父类的成员
3-3下列对多态性的描述中,错误的是 A 。
A.Java语言允许运算符重载
B.Java语言允许方法重载
C.Java语言允许变量覆盖
D.多态性提高了程序的抽象性和简洁性
3-4在类的修饰符中,规定只能被同一包类所使用的修饰符是 B 。
A.public B.默认 C. final D.abstract
3-5在成员变量的修饰符中,规定只允许该类自身访问的修饰符是 A 。
A.private B.public C.默认
D.protected
3-6在成员方法的访问控制修饰符中,规定访问权限包含该类自身、
同包的其他类和其他包的该类子类的
修饰符是 D 。
A.public
B.private C.默认 D.protected
3-7下列关于构造方法的特点的描述中,错误的是 A 。
A.不可重载
B.方法名同类名 C.无返回类型 D.系统自动调用
3-8下列关于构造方法的特点的描述中,错误的是 D 。
A.在类体内说明静态方法使用关键字static
5
B.静态方法只能处理静态变量或调用静态方法
C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间
D.静态方法只能用类名调用
3-9下列对静态初始化起的描述中,错误的是 D
。
A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化
B.静态初始化器是由关键字static和一对花括号组成的语句组
C.静态初始化器不同于构造方法,它不是方法
D.静态初始化器在产生新对象时,是由系统自动调用的
3-10下列关于抽象类的描述中,错误的是 C 。
A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法 D.抽象类通常要有它的子类
3-11下列关于类的继承性的描述中,错误的是 D 。
A.继承是在已有的类基础上生成新类的一种方法 B.子类继承父类的所有成员
C.Java语言要求一个子类只有一个父类
D.父类中成员的访问权限在子类中将被改变
3-12
下列关于子类继承父类的成员的描述中,错误的是 A 。
A.子类中继承父类中的所有成员都可以直接访问
B.子类中定义有与父类同名变量
时,子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作
中,使用自己定义的变量
C.当子类中出现成员方法头与父类方法头相同的方法时,自类成员方法覆盖父类中的成员方法
D.方法重载时编译时处理的,而方法覆盖时在运行式处理的
3-13下列关于接口的描述中,错误的是 B 。
A..接口实际上是有常量和抽象方法构成的特殊类
B.一个类只允许继承一个接口
C.定义接口使用的关键字是interface
D.在继承接口的类中通常要给出阶口中定义的抽象方法的具体实现
3-14下列关包的描述中,错误的是 A 。
A.包是一种特殊的类
B.包视若干个类的集合
C.包时使用package 语句创建的
D.包有有名包和无名包两种
3-15下类常用包中,存放用户图形界面类库的包是 A
。
A. B D
3-16下列常用包中,存放用户图形界面类库的包是 B 。
A. Math
C. System
2、判断题
3-1类是一种类型,也是对象的模板。(对)
3-2Java语言只支持单重继承,不支持多重继承。(对)
3-3类中说明的方法可以定义在类体外。(错)
3-4class不是定义类的唯一关键字。(错)
3-5某类的对象可以作为另一类的成员。(对)
3-6在类体内说明成员变量是不允许赋初值 。(错)
3-7最终变量就是Java语言的符号常量。( )
3-8静态变量的引入只能使用对象。(错)
3-9静态方法只能处理静态变量。(对)
3-10抽象方法是一种只有说明而无具体实现的方法。(对)
3-11最终方法是不能被当前子类重新定义的方法。(对)
3-12Java语言中,方法调用一律都是传址的引用调用。(错)
3-13非静态方法中,方法调用一律都是传址的引用调用。(错 )
3-14静态初始化其实在构造方法被自动调用之前运行的。(对)
6
3-15抽象方法仅有方法头,而无方法体。(对)
3-16抽象方法一定出现在抽象类中。(对)
3-17最终类、最终方法和最终变量的修饰符都用final。(对)
3-18创建对象是系统将调用适当的构造方法给对象初始化。(对)
3-19使用运算符new创建对象时,赋给对象的值实际上是一个地址值。(对)
3-20使用构造方法只能给非静态成员变量赋初值。(对)
3-21创建对象时,该对象占有的内存空间除了非静态的成员变量外,还有非静态的成员方法。(对)
3-22Java语言中,对象成员的标是指使用运算符“.”。(对)
3-23Java语
言中,对象赋值实际上是同一个对象具有两个不同的名字,因为它们都有同一个地址值。(对)
3-24对象可作方法参数,对象数组不能做方法参数。(错)
3-25Java语言中,所创建的子类都应有一个父类。(对)
3-26Java语言中,类的继承是可以传递的。(对)
3-27Java语言中,构造方法是可以继承的。(错)
3-28子类中构造方法应包含自身类的构造方法和直接父类的构造方法。(对)
3-29调用this或super的构造方法的语句必须放在第一条语句。(对)
3-30.子类对象可以直接赋值给父类对象,而父类对象不可以赋值给子类对象。(错)
3-31子类中所继承父类的成员都可以在子类中访问。(错)
3-32成员方法的重载和父该是一回事。(错)
3-33一个类可以实现多个接口。接口可以实现“多重继承”。(对)
3-34实现接口的类不能是抽象类。(对)
1、B 2.C 3.A
4.B 5.A 6.D 7.A 8.D 9.D 10.C
11.D 12.A 13.B 14.A
15.A 16.B
1.对 2. 对 3.错 4. 错 5. 对 6. 错 7. 对
8. 错 9. 对 10. 对 11. 对 12. 错
13. 错
14对 15. 对 16. 对 17. 对 18. 对 19. 对 20.
对 21. 对 22. 对 23.
对 24. 错 25. 对 26.
对 27. 错 28. 对 29. 对 30. 错 31. 错 32. 错
33. 对
34. 对
第四部分
JavaApplet及其应用
1、选择题
4-1Applet类是属于 包的。
A. B. C. D.
4-2下列关于Applet程序的描述中,错误的是 。
A.Applet程序的主类必须是Applet类的子类
B.
Applet程序的主类中应有一个main()方法
C.Applet不是完整的独立程序
D.Applet的字节码文件必须嵌套在一个HTML文件中
4-3下列关于Applet程序的描述中,错误的是 。
A.将编译好的Java源文件,使用javac命令生成字节码文件
B.将字节码文件嵌入HTML文件,并存放在一个WWW服务器中
C.使用浏览器解释HTML文件中的标记
D.使用编译器直接执行嵌套在HTML文件中的字节码文件
4-4在Applet类的主要方法中,用来实现初始化操作的是 。
A.init() B. stop() C. start() D.
paint()
4-5下列关于HTML文件的描述中,错误的是 。
A.HTML文件是使用一种超文本标记语言( HTML)书写的文件
7
B.HTML文件中使用的标记通常使用一对尖括号括起的,两个标记之间是正文内容
C.HTML文件中没有单独出现的标记
D.HTML中不区分大小写字母
4-6下列关于向Applet程序传递参数的描述中,错误的是 。
A.Applet程序可以通过命令行获取外部参数
B.Applet程序可以通过HTML文件获取外部参数
C.使用Applet标记中的PARAM标记来实现
D.Applet程序中使用getParameter()方法读取参数值
4-7下列关于字体的描述中,错误的是 。
A.Font类提供了创建字体对象的方法
B.字体风格(字体)使用了3个静态常量表示
C.表示字形的字体风格只能单独使用,不可以组合
D.字号表示字的大小,用点表示,一个点为172英寸
4-8下列用来获取当前颜色的方法是 。
A.getColor() B.
setColor() C. getRed() D. Color()
4-9下列各种会址矩形的方法中,绘制实心的矩形的方法是 。
A .
fillRect() B. drawRect() ect()
undrRect()
4-10下列演示图像的描述中,错误的是 。
A.使用图像类Image定义图像对象
B.使用方法getImage()获取图像信息
C.使用方法drawImage() 显示图像
D.不可使用显示图像的方法进行缩放
2、判断题
4-1Applet程序是通过浏览器中内置的Java解释器来解释执行的。()
4-2A
pplet程序是以.java为扩展名的Java语言源程序,该程序经过编译器后便成为可执行文件。()
4-3嵌入到HTML文件中的是Applet的源程序。()
4-4运行Applet程序
是使用AppletViewer命令运行嵌入了字节码文件的HTML文件,从而获得运行结果。
()
4-5Applet程序中的主类必须是Applet类的子类。()
4-6Applet类是Java语言类库中的一个重要的系统类,它被存放在包中。( )
4-7init( )方法是用来完成初始化操作的,在Applet程序运行期间只执行一次。( )
4-8 start( )方法被系统自动调用开启动住县城运行。通常在Applet程序被重新启动
时,该方法被系统自
动调用。( )
4-9 paint(
)方法是在需要重画图形界面时被系统自动调用来显示输出结果的。( )
4-10 stop(
)方法是用来暂停执行操作的,它与start()方法不同,只被调用一次。( )
4-11init( ),start( ),stop( )和destroy(
)4个方法构成Applet程序的生命周期。( )
4-12HTML语言中
4-13 HTML中多数标记是成对出现的,也有不成对出现的标记。( )
4-14 HTML中是区分大小写字母的。( )
4-15通过HTML文件中使用的PARAM标记可以向Applet程序传递参数的。( )
4-16parseInt( ) 方法的功能是将int型数据转换为String型数据。( )
4-17AWT提供了许多标准的GUI组件和布局管理器等类。( )
4-18Java语言采用16位颜色标准。Java的调色板保证128色。( )
4-19Graphics类提供了3种绘制文本的方法,其方法名都是drawString( )。( )
4-20绘制椭圆的方法是drawOval( ),使用该方法也可以绘制圆。( )
1.B 2.B 3.D 4.A 5.C 6.A 7.C 8.B 9.A 10.D
8
1.对 2. 错
3. 错 4. 对 5. 对 6. 错 7. 对 8. 对 9. 对 10. 错
11. 对12. 错 13. 对
14. 错 15. 对 16. 错 17. 对
18. 错 19. 对 20. 对
第五章
选择题
5-1 下列关于容器的描述中,错误的是 D
A.容器是由若干个组建和容器组成的
B.容器是对图形界面中界面元素的一种管理
C.容器是一种对指定宽和高的矩形范围
D.容器都是可以独立的窗口
5-2 下列界面元素中,不是容器的是 A
5-3
下列关于实现图形用户界面的描述中,错误的是 D
A.放在容器中的组件首先要定义,接着要初始化
B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayout
C.容器中所有组件都是事件组件,都可以产生事件对象
D.事件处理是忧监听者定义的方法来实现的
5-4 下列关于组件类的描述中,错误的是
A
A.组件类中包含了文本组件类(TextComponent)和菜单组件类(MenuComp
onent)
B.标签(Label)和按钮(Button)是组件类(Component)的子类
C.面板(Panel)和窗口(Window)是容器类(Container)的子类
D
.文本框(TextField)和文本区(TextArea)是文本组件类(TextComponent)
的子类
5-5 在对下列语句的解释中,错误的是 C
ionListener(this);
A. but是某种事件对象,如按钮事件对象
B. this表示当前容器
C. ActionListener是动作事件的监听者
D. 该语句的功能是将but对象注册为this对象的监听者
5-6
所有事件类的父类是 C
A.ActionEvent B.AwtEvent
C.KeyEvent D.MouseEvent
5-7 所有GUI标准组件类的父类是 C
A.Buttom B.List C.Component D.Container
5-8 下列各种布局管理器中Window类、Dialog类和Frame类的默认布局是 C
A.FlowLayout B.CardLayout C.BorderLayout
D.GridLayout
5-9
在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含在另一种容器中的容器是 D
A.Window B.Dialog C.Frame D.Panel
5-10
下列关于菜单和对话框的描述中,错误的是 C
A.Frame容器是可以容纳菜单组件的容器
B.菜单条中可包含若干个菜单,菜单中又可包含若干菜单项,菜单项中还可包含菜单子项
C.对话框与Frame一样都可作为程序的最外层容器
D.对话框内不含有菜单条,它由Frame弹出
9
判断题
5-1 AWT是抽象窗口工具包的英文缩写。(对)
5-2
容器中只能包含有组件,而不能再含有容器。(错)
5-3
容器分可以独立的窗口和不可以独立的窗口两种。(对)
5-4
单选按钮提供“多选一”的输入选择,下拉列表提供“多选多”的输入选择。(错)
5-5
所有容器的默认布局都是FlowLayout。(错)
5-6 所有的组件都是事件源。(错)
5-7 Java 2 的事件处理方法是采用委托事件处理模型。(对)
5-8
事件组件都应注册一个事件监听者。(对)
5-9
事件监听者除了得知事件的发生外,还应调用相应方法处理事件。(对)
5-10
所有事件的父类是EventObject类。(对)
5-11
图形用户界面是由用户自定义成分、控制组件和容器组成的。(对)
5-12
所有GUI标准组件类的父类是Component类。(对)
5-13
所有容器类的父类是Frame类。(错)
5-14 标准和按钮都是事件源。(对)
5-15 文本去和文本框都可以引发两种事件:文本改变事件和动作事件。(错)
5-16
每个复选框有两种状态:“打开”和“关闭”状态。(对)
5-17
复选框组(CheckboxGroup)是由若干个按钮组成的。在一组按钮中可选多个。(错)
5-18 列表(List)是由多个选项组成的,只可在列表框的若干个选项选取一个。(错)
5-19 下拉列表(Choice)是一种“多选多”的输入界面。(错)
5-20
滚动条有两类:水平滚动条和垂直滚动条。(对)
5-21
画布(Canvas)是一种可容纳多个组件的容器。(错)
5-22
所有容器都采用顺序布局(FlowLayout)作为默认布局管理器。(错)
5-23
边界布局(BorderLayout)将容器分为东、西、南、北共4个区域。(错)
5-24
卡片布局(CardLayout)可使容器容纳多个组件,在同一时刻只显示若干个组件中的一个。(对)
5-25 容器可容纳组件和容器,同一个容器中的组件可被同时显示或者同时隐藏。(对)
5-26 所有容器都是有边框的。(错)
5-27
Panel容器是可以嵌套使用的。(对)
5-28
Applet实际是一种特殊的Panel容器。Java
Applet程序只负责它拥有的Applet容器内的无边框区域。(对)
5-29窗口(Window)容器是一种独立窗口,但它不能作为程序的最外层容器。(对)
5-30 Frame容器是有边框的容器,它也是一种独立窗口,只能作为最外层容器。(对)
5-31 Frame容器可以容纳菜单组件,它实现了MenuContainer接口。(对)
5-32 MenuComponent类是菜单组件的父类。(对)
5-33
菜单条(MunuBar)、菜单(Munu)、菜单项(MunuItem)是3中不同的菜单组件。(错)
5-34 对话框(Dialog)不是一种独立使用的容器。(错)
5-35 文件对话框
(FileDialog)是对话框(Dialog)的子类,它是一种打开文件和保留文件的对话框窗口。(对)
10
分析程序输出结果
5-1
Exer5_
import .*;
import .*;
public class Exer5_1 extends Applet
{
private Label lab1,lab2;
public void init()
{
lab1=new Label();
t(标签文本左对齐
gnment();
lab2=new Label(标签文本右对齐
setLayout(new GridLayout(3,3));
add(lab1);add(lab2);
}
}
运行改程序后,输出结果如图5-5所示。
图5-5 分析题5-1输出结果
5-2 Exer5_
import .*;
import .*;
import .*;
public class Exer5_2 extends
Applet implements ActionListener,ItemListener
{
List colList;
String
colName[]={黑色蓝色浅蓝色绿色红色黄色
Color cols[]={,,,,,};
int t;
public void init()
{
colList=new List(4,false);
ionListener(this);
mListener(this);
for(int i=0;i<;i++)
11
(colName[i]);
add(colList);
}
public void
actionPerformed(ActionEvent e)
{}
public
void itemStateChanged(ItemEvent e)
{
showStatus(ectedItem()+
t=ectedIndex();
repaint();
}
public void paint(Graphics g)
{
or(cols[t]);
ct(15,30,20,20);
}
}
运行改程序后,输出结果如图5-6所示。
5-3
Exer5_
import .*;
import .*;
public
class Exer5_3 extends Frame implements
ActionListener
{
Frame fr;
Panel
deck;
CardLayout c1;
Button but[];
String name[]={第一张下一张前一张最末张
public Exer5_3()
{
fr=new Frame(卡片窗口
deck=new
Panel();
c1=new CardLayout();
out(c1);
Panel c1=new Panel();
Label
lab1=new Label(卡片1
12
(lab1);
(c1,t());
Panel c2=new Panel();
Label lab2=new Label(卡片2
(lab2);
(c2,t());
Panel c3=new Panel();
Label lab3=new Label(卡片3
(lab3);
(c3,t());
Panel c4=new Panel();
Label lab4=new Label(卡片4
(lab4);
(c4,t());
Panel contr=new Panel();
out(new GridLayout(2,2));
but=new Button[];
for(int i=0;i<;i++)
{
but[i]=new Button(name[i]);
but[i].addActionListener(this);
(but[i]);
}
(contr,);
(deck,);
e(300,150);
();
}
public void
actionPerformed(ActionEvent e)
{
if(rce()==but[0])
(deck);
if(rce()==but[1])
(deck);
if(rce()==but[2])
us(deck);
if(rce()==but[3])
(deck);
}
public
static void main(String args[])
{
Exer5_3
m1=new Exer5_3();
}
13
}
运行该程序后,输出结果如图5-7所示。
5-4 Exer5_
import .*;
public class Exer5_4 extends
Frame
{
TextField tf=new TextField(
MenuBar mb1=new MenuBar();
Menu f=new
Menu(文件
Menu m=new Menu(照片
Menu s=new
Menu(储存
String name[]={第一张下一张前一张最末张
CheckboxMenuItem[]save={new
CheckboxMenuItem(保存另存为
MenuItem[] file1={new
MenuItem(打开关闭
MenuBar mb2=new MenuBar();
Menu fo=new Menu(水果
MenuItem[] fruit={new
MenuItem(香蕉苹果李子
Button but=new Button(
public Exer5_4()
{
for(int i=0;i<;i++)
{
(new MenuItem(name[i]));
if((i+1)%3==0)
arator();
}
for(int
i=0;i<;i++)
(save[i]);
(s);
for(int
i=0;i<;i++)
(file1[i]);
(f);
(m);
setMenuBar(mb1);
table(false);
add(
add(
for(int i=0;i<;i++)
(fruit[i]);
14
(fo);
}
public boolean handleEvent(Event e)
{
if(==_DESTROY)
(0);
else
return
Event(e);
return true;
}
public
boolean action(Event e,Object arg)
{
if((but))
{
MenuBar m=getMenuBar();
if(m==mb1)
setMenuBar(mb2);
else
if(m==mb2)
setMenuBar(mb1);
}
else
if( instanceof MenuItem)
{
if((打开
{
String str=t();
Boolean ch=false;
for(int i=0;i<;i++)
if((name[i]))
ch=true;
if(!ch)
t(你按了打开菜单
else
t(打开
}
else if((file1[1]))
(0);
else if((save[0]))
t(你按了保存菜单
else
if((save[1]))
t(你按了另存为菜单
else
t(ng());
}
else
return (e,arg);
return true;
}
15
public static void main(String args[])
{
Exer5_4 ex=new Exer5_4();
e(new
Dimension(200,200));
ible(true);
}
}运行该程序后,输出结果如图5-8所示。
5-5 Exer5_
import .*;
import .*;
class
myDialogFrame extends Frame implements
ActionListener
{
MenuItem
aboutItem,exitItem;
aboutDialog myDialog;
public myDialogFrame()
{
setSize(300,200);
setTitle(我的联系窗口
addWindowListener(new WindowAdapter(){public
E){(0);}});
MenuBar mb=new MenuBar();
setMenuBar(mb);
Menu fm=new
Menu(练习
(fm);
aboutItem=new
MenuItem(关于信息
ionListener(this);
(aboutItem);
exitItem=new
MenuItem(退出
ionListener(this);
(exitItem);
}
public void actionPerformed(ActionEvent
e)
{
Object sou=rce();
if(sou==aboutItem)
{
if(myDialog==null)
myDialog=new aboutDialog(this);
16
void windowClosing(WindowEvent
();
}
else if(sou==exitItem)
{(0);}
}
}
class aboutDialog extends Dialog
{
public aboutDialog(Frame parent)
{
super(parent,信息框
Panel p1=new Panel();
TextArea ta=new TextArea(10,30);
t(请写下你的信息
(ta);
add(
Panel p2=new
Panel();
Button but=new Button(返回
(but);
add(
ionListener(new
ActionListener(){public
e){setVisible(false);}});
setSize(300,250);
}
}
public class
Exer5_5
{
public static void main(String
args[])
{
Frame fr=new myDialogFrame();
();
}
}
运行该程序后,输出结果如图5-9所示。
编程题
5-1 使用Java Applet编写满足下列要求的程序:
(1)含有两个按钮和两个标签;
(2)含有文本框和文本区;
17
void actionPerformed(ActionEvent
(3)含有一个按钮具有退出功能;
编写程序如下:
import
.*;
import .*;
class pro5_1 extends
WindowAdapter implication ActionListener
{
Frame f;
Label la1,la2;
Button
b1,b2;
TextField tf;
int tag=0;
public static void main(String args[])
{
pro5_1 mywin=new pro5_1();
y();
}
public void display()
{
f=new
Frame(我的现实窗口
la1=new Label(标签1
la2=new
Label(标签2
(la1,
(la2,
b1=new
Button(现实字符串
b2=new Button(退出
ionListener(this);
(b1,
ionListener(this);
(b2,
tf=new
TextField();
(tf,
dowListener(this);
e(400,200);
ible(true);
}
public void
actionPerformed(ActionEvent e)
{
String
s1=这是一个字符串
String s2=这是另一个字符串
if(ionCommand().equals(退出
(0);
if(tag==0)
{
t(s1);
tag=1;
}
18
else
{
t(s2);
tag=0;
}
}
public void
windowClosing(WindowEvent e)
{
(0);
}
}
运行该程序后,输出结果如图5-10所示。
5-2 使用Java
Application编写满足下列要求的程序。
(1) 使用GridLayout布局。
(2) 设计一个简单的计算器。包括数字按钮0~9,以及加、减、乘、除、清零、等于运算按钮和一
个现
实计算结果的文本区。
请读者参照本书本章5.2程序距离中的例5.1的程序内容进行编写。
5-3
编写一个图形用户界面的Application程序。
(1) 有一个菜单条;
(2)
菜单条中有3个菜单;
(3) 每个菜单有2个菜单项,其中一个菜单项又具有2个菜单子项。
程序内容如下:
import .*;
import .*;
public class pro5_3 extends Frame implements
ActionListener,ItemListener
{
TextField
text;
public pro5_3()
{
super(一个联系菜单的窗口
setSize(300,200);
}
public void init()
19
{
MenuBar myB=new MenuBar();
setMenuBar(myB);
Menu m1=new Menu(文件
(new
MenuItem(保存
arator();
(退出
ionListener(this);
(m1);
Menu m2=new
Menu(编辑
(复制
arator();
(全选
ionListener(this);
(m2);
Menu
m3=new Menu(插入
(页码
arator();
Menu
m31=new Menu(图片
(来自剪贴画
(来自图形文件
(m31);
ionListener(this);
(m3);
text=new TextField();
add(
}
public
static void main(String args[])
{
pro5_3
myMenu=new pro5_3();
();
ible(true);
}
public void itemStateCharged(ItemEvent
e)
{
t(状态改变
}
public void
actionPerformed(ActionEvent e)
{
t(ionCommand());
if(ionCommand()==退出
(0);
}
}
运行该程序后,输出结果如图5-11所示。
20
5-4 编写一个可以弹出对话框的程序。
请读者参考本书本章5.2程序举例中的例5.4的程序内容进行编程。
测试题:
1. 单选题
5-1 下列关于图形用户界面元素的描述中,错误的是()
A.
java. Awt包中含有 GUI的各类组件
B.
容器类(Container)是组件类(Componenet)的一个子类
C.
可以向容器中填加组件,不能向容器中填加容器
D. 组件在容器中的安排是由布局管理器类来决定的
5-2 下列关于事件和事件处理的描述中,错误的是()
A.
每个事件源只能发出一种类型的事件
B. 事件对象是指某种事件类的对象
C.
事件监听者是某种监听者类的对象
D. 通常注册当前容器为事件对象的监听者
5-3
下列的事件类中,所有事件类的父类是()
A. AWTEvent类
B. EventObject类
C. ActionEvent类 D.
InputEvent类
5-4 在AWT组件层次关系图中,属于容器组件的子类的是()
A. List B. TextArea C. Frame D. Choice
5-5 下列的容器中。没有边框和标题并可以作最顶层容器的是()
A. Window
B. Fram C. Panel D. 无
2. 判断题
5-1
容器中的若干组件是由该容器的布局管理器来确定其位置的。
5-2 很多事件类都在 java .
awt . event包中。
5-3
容器类(Container)不是组件类(Componenet)的子类。
5-4
Window类和 Frame类得默认布局管理器都是 FlowLayout。
5-5
菜单组件包含一个菜单条,每个菜单条又包含若干个菜单项,每个菜单项还可以再含有若干个菜单子
项。
3.分析程序的输出结果
5-1 程序内容如下:
import java.
awt.*;
import java. awt. event.*;
public
class Test5_1 implements ActionListener
{
Frame f;
PopupMenu pm;
Button b1,b2;
21
}
5-2 程序内容如下:
import .
Applet;
import .*;
import .*;
public
class Test5_2 extends Applet implements
ItemListener
{
CheckboxGroup cg;
Checkbox red,blue,greed;
Color co;
public viod init( )
{
cg=new
CheckboxGroup();
co=;
red=new
Checkbox(“红色”,cg,false);
mListener(this);
add(red);
22
public static void
main(String args[ ])
{
Test5_1 mywin=new
Test5_1( );
mywin. int( );
}
Void
int( )
{
f=new Fram(“这是我的窗口”);
b1=new Button(“弹出菜单”);
b2=new Button(“退出”);
ionListener(this);
ionListener(this);
(b1,”West”);
(b2,”East”);
pm=new
PopupMenu(“弹出窗口”);
(new MenuItem(“保存”));
(new MenuItem(“打印”));
(new MenuItem(“浏览”));
(new MenuItem(“打开”));
(new
MenuItem(“关闭”));
(pm);
e(400,200);
ible(true);
}
Public viod
actionPerformed(ActionEvent e)
{
If(ionCommand( )==”退出”)
(0);
(b1,20,20);
}
greed=new
Checkbox(“绿色”,cg,false);
mListener(this);
add(greed);
blue=new
Checkbox(“蓝色”,cg,true);
mListener(this);
add(blue);
}
public void
itemStateChanged(ItemEvent e)
{
if(rce()==red)
co=;
if(rce()==green)
co=;
If(rce()==blue)
co=;
repaint();
}
public void paint(Graphics
g)
{
or(co);
ct(30,30,150,80);
}
}
4.编程题
编写一个简单的图形用户界面,使用Application程
序和Applet程序。要求该图形界面上至少有4中不同
的组件。
5.简答题
5-1 文本框与文本区有何不同?
5-2 实现图形用户界面应该至少做哪3件事情?
5-3 布局设计的目的是什么?它由什么来实现?
5-4
什么是文本对话框?它有什么特点?
第六部分
异常和异常处理
1、选择题
6-1下列关于异常的描述中,错误的是 B 。
A. 异常是一种经过修正后程序仍可执行的错误
B.
异常是一种程序在运行中出现的不可恢复执行的错误
C. 不仅Java
语言有异常处理,C++语言也有异常处理
D.
出现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行
6-2下列关于异常处理的描述中,错误的是 。
A.
程序运行时异常由java虚拟机自行进行处理
B. 使用try-catch-
finally语言捕获异常
C. 使用throw语句抛出异常
D.
捕获到的异常只能用当前方法中处理,不能用其他方法中处理
23
6-3 下列关于try-catch-finally语句的描述中,错误的是
。
A. try语句后面的程序段将给出处理异常的语句
B. catch()方法
跟在try语句后面,它可以是一个或多个
C.
catch()方法有一个参数,该参数是某种异常类的对象
D.
finally语句后面的程序段总是被执行的,该语句起到提供同一接口的作用
6-4下列关于抛出异常的描述中,错误的是 。
A.
捕捉到发生的异常可在当前方法中处理,以可以抛到调用该方法的方法中处理
B.
在说明要抛出异常的方法时应加关键字throws<异常列表>
C.
<异常列表>中可以有多个用逗号分隔的异常
D.
使用异常处理不会使用下述抛出异常语句:throw<异常名>;其中,<异常名>是异常类的类名
6-5下列关于用户创建自己的异常的描述中,错误的是 D 。
A创建自己的异常应先创建一个异常类
B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句
C.使用异常的方法是使用try-catch-finally语句格式
D使用异常处理不会是整个系统更加安全和稳定
2、判断题
6-1异常是一种特殊的运行错误的对象。( )
6-2异常处理可以使整个系统更加安全稳定。( )
6-3异常处理是在编译时进行的。(
)
6-4Java语言中异常类都是ble的子类。( )
6-5Throwable类由两个子类:Error类和Exception
类。前者由系统保留,后者供应用程序使用。( )
6-6异常通常是指Error类和Exception类。( )
6-7Exception类只有一个子类为RuntimeException。( )
6-8在异常处理中,出现异常和抛出异常是一回事。( )
6-9运行时异常是在运行是系统检测并处理的。( )
6-10使用try-
catch-finally语句只能捕获一个异常。( )
6-11捕获异常时try语句后面通常
跟有一个或多个catch()方法用来处理try块内生成的异常事件。( )
6-12使用finally语句的程序代码为该程序提供一个统一的出口。( )
6-13抛出异常的方法说明中要加关键字throw并在该方法中还应添加throw语句。( )
6-14创建异常类是要给出该异常类的父类。( )
6-15如果异常类没有被捕获将会产生不正常的终止。( )
1.B
2.D 3.A 4.D 5.D
1. 对 2. 对 3.错
4. 对 5. 对 6.错 7.错 8.错 9. 错 10错
11.对 12.对 13.对 14对 15.对
第七部分 线程
1、选择题
7-1下面的关键词和方法
,不是线程同步所需要的。
A. synchronized B. wait()
C. notify() D. sleep()
7-2当对线程进行调度使其暂停时,暂停的时间单位是 。
A.毫秒
B 秒 C 分钟 D小时
7-3主线程属于 。
A
守护线程 B 用户线程 C Thread线程 D
Runnable线程
7-5为了使线程处于暂停状态,可引用 方法。
A.
wait() B. sleep() C. join() D
notify()
24
2、判断题
7-1线程的启动是通过引用其start()方法而实现的。( )
7-2当线程类所定义的run()方法执行完毕,线程的运行就会终止。( )
7-3线程组的作用是将多个线程作为一个整体来进行控制。( )
7-4死锁的产生是因为多个线程间存在资源竞争.( )
7-5若所有的用户线程都终止了,Java程序就会结束。( )
7-6线程优先级代表了线程的执行顺序。( )
7-7关键词synchronized只能对方法进行修饰。( )
1.D
2.A 3.B 4.D 5.BC 6.ABC
1.对 2.对 3.对
4.对 5.对 6.对 7.错
第八部分
Java 语言的集合操作
1、选择题
8-1 CD 可以实现有序的对象操作。
A. HashMap B. HashSet C. TreeMap
D. LinkedList
8-2在默认情况下就实现了同步控制的类是 AD 。
A. Vector B. ArrayList C. HashMap
D. Hashtable
8-3迭代器(Iterator)接口所定义的方法是 ABC
。
A. hasNext() B. next() C.
remove() D. nextElement()
8-4关于链表结构,陈述错误的是 A 。
A. 在链表中查找对象是最有效的
B. 链表可以动态增长
C. 链表中的元素可以重复 D.
链表中的每一个元素都有其前后元素的链接
8-5 Collections类可对集合对象进行
ABC 操作。
A. 只读 B. 同步 C. 排序 D.
删除
8-6 Java语言的集合框架类定义在 A 语言包中。
A.
C. D. tion
判断题
8-1
Arrays类主要是对数组进行操作。(对)
8-2集合(Set)是通过键-值对的方式来存储对象的。(错)
8-3
Map接口是自Collection接口的继承而来的。(错)
8-4 “线程安全”是指当多个线
程同时对同一个集合对象进行修改和读取操作,可以保证数据的一致性。
(对)
8-5
集合中元素类型必须是相同的。(错)
8-6 集合(Set)中可以包含相同的对象。(错)
8-7 枚举接口中定义了具有删除功能的方法。(错)
第九部分
Java 输入输出
1、选择题
9-1实现字符流的读操作类是 C 。
A. FileInputStream B. FileOutputStream
C. FileReader D. Writer
9-2进行文件操作的类是 BC 。
25
A. Reader B. FileOutputStream
C. FileWriter D. Writer
9-3可以实现对基本数据类型的读写操作类是 BC 。
A.
FileReader B. DataInputStream C.
FileWriter D. Writer
9-4随机文件访问是由 C
类实现的。
A. File B. BufferedInputStream
C. RandomAccessFile D. FileWriter
9-5
可用于获得文件或目录的路径名 A 操作。
A. File B.
RandomAccessFile C. FileInputStream D.
BufferedReader
9-6 可提供管道连接的作用类是 AB 。
A.
PipedWriter B. PipedOutputStream
C. FileReader D. SequenceInputStream
9-7 用于关闭流的方法是 A 。
A. close() B.
flush() C. read() D. write()
判断题
9-1 当DataInputStream
对象读到文件结束处,则返回-1。(错)
9-2文件缓冲流的作用是提高文件的读写效率。(对)
9-3 管道流可在一个线程中使用。(错)
9-4
通过File类可对文件属性进行修改。(对)
9-5
通过SequenceInputStream类可将两个或多个输入流有序地组合为一个输入流。(对)
9-6 RandomAccessFile对象是通过移动文件指针的方式来进行随机访问的。(对)
26