面向对象程序设计JAVA语言程序设计期末考试试题及部分答案Word文档下载推荐.docx
《面向对象程序设计JAVA语言程序设计期末考试试题及部分答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计JAVA语言程序设计期末考试试题及部分答案Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
y&
!
(x<
z)
8.下列修饰符中,定义类头时能使用的修饰符是C
A.privateB.staticC.abstractD.protected
9.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是B
A.x(intm){...}B.voidx(intm){...}
C.x(intm,intn){...}D.x(inth,intm,intn){...}
10.下列对封装性的描述中,错误的是D
A.封装体包含了属性和行为
B.封装使得抽象的数据类型提高了可重用性
C.被封装的某些信息在封装体外是不可见的
D.封装体中的属性和行为的访问权限是相同的
11.下列关于包的描述中,错误的是B
A.包是若干个类的集合B.包是一种特殊的类型
C.包是使用package语句创建的D.包有有名包和无名包两种
12.下列关于Applet程序的描述中,错误的是C
A.Applet程序的主类必须是Applet类得子类
B.Applet不是完整的独立程序
C.Applet程序的主类中应有一个main()方法
D.Applet的字节码文件必须嵌套在一个HTML文件中
13.下列界面元素中,不是容器的是C
A.DialogB.FrameC.ListD.Panel
14.下列关于异常处理的描述中,错误的是D
A.程序运行时异常由Java虚拟机自动进行处理
B.使用try-catch-finally语句捕获异常
C.使用throw语句抛出异常
D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理
15.以下方法不属于迭代器(Iterator)接口所定义的方法的是D
A.hasNext()B.next()C.remove()D.nextElement()
16.主线程属于(C)
A.守护线程B.Thread线程C.用户线程D.Runnable线程
二、填空题
1.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。
2.在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3.假设x=13,y=4,则表达式x%y!
=0的值是true,其数据类型是布尔型。
4.Java语言中,多态性主要表现在两个方面:
方法重载和成员覆盖。
5.定义类的关键字是class,定义接口的关键字是interface。
6.在Java语言中,通过类的定义只能实现单重继承,但通过接口的定义可以实现
多重继承关系。
7.在Java中字符串包括字符串常量和字符串变量,分别由类String和类StringBuffer来创建对象。
8.Java源程序文件编译后产生的文件称为·
class文件,其扩展名为·
java。
9.在多线程程序设计中,若要启动一个线程需要调用的函数是start。
10.在Java语言中,系统规定:
表示当前类的构造方法用this,表示直接父类的构造方法用super。
17.Java语言规定标识符是由字母、下划线、数字和美元符号组成的字符序列,长度不限;
又规定第一个字符不能是数字,并区分字母的大小写。
18.Java中实现多线程一般使用两种方法,一是Thread,二是Runnable。
19.Java中变量有三要素:
类型、变量名和变量值。
20.Java语言中,说明或声明数组时内存大小,创建数组时内存大小。
21.集合框架提供的Map接口的实现类中,在Map中插入、删除和定位元素,使用HasMap是最好的选择;
需要按顺序遍历键,需选择ThereMap。
22.Outputstream类和Inputstream类是所有字节流输入输出类的父类。
23.导入包中的所类的命令是import。
24.构造方法是一种特殊的成员方法,构造方法名与类相同,并且此方法无有返回值。
25.图形用户界面的设计中有事件处理模型处理事件,在该模型中主要包括事件源、
事件对象和事件监听者。
三、判断题
1.Java语言具有较好的安全性和可移植性及与平台无关等特性。
T
2.Java语言的基本数据类型有4种:
整型、浮点型、字符型和布尔型。
3.组成JavaApplication的若干类中,有且仅有一个主类,只有主类中含有主方法main。
4.数据由高类型转换到低类型时候,采用强制转换,数据精度要受到损失。
5.子类所继承父类的成员都可以在子类中访问。
6.静态方法只能处理静态变量。
7.抽象方法是一种只有说明而无具体实现的方法。
8.Java语言规定在嵌套的程序块中不允许定义同名的成员变量。
9.Throwable类有两个子类:
Error类和Exception类。
前者由系统保留,后者供应用程序使用。
10.运行Applet程序是使用AppletViewer命令运行嵌入了字节码文件的html文件,从而获得运行结果。
11.成员方法的重载和覆盖是同一回事。
12.集合Set是通过键-值对的方式来存储对象的。
13.Java语言是一种强类型语言,数据类型转换有两种:
隐含转换和强制转换。
14.Java语言中,数组在静态和动态赋值时都判越界。
15.Frame容器是有边框的容器,它也是一种独立窗口,只能作为最外层容器。
16.死锁的产生是因为多个线程间存在资源竞争。
1.组成JavaApplication的若干类中,有且仅有一个主类,只有主类中含有主方法main。
()
2.数据由高类型转换到低类型时候,采用强制转换,数据精度要受到损失。
()
3.成员方法的重载和覆盖是同一回事。
()
4.抽象方法是一种只有说明而无具体实现的方法。
()
的事件处理方法是采用委托事件处理模型。
()
类有两个子类:
7.运行Applet程序是使用AppletViewer命令运行嵌入了字节码文件的html文件,从而获得运行结果。
语言具有较好的安全性和可移植性及与平台无关等特性。
()
语言的基本数据类型有4种:
()
10.子类所继承父类的成员都可以在子类中访问。
()
语言规定在嵌套的程序块中不允许定义同名的成员变量。
语言采用16位颜色标准。
Java的调色板保证128色。
13.静态方法只能处理静态变量。
()
14.画布(Canvas)是一种可容纳多个组件的容器。
语言是一种强类型语言,数据类型转换有两种:
语言中,数组在静态和动态赋值时都判越界。
()
容器是有边框的容器,它也是一种独立窗口,只能作为最外层容器。
()
18.集合Set是通过键-值对的方式来存储对象的。
19.异常处理是在编译时进行的。
()
20.死锁的产生是因为多个线程间存在资源竞争。
()
四、阅读下列程序,请写出程序的输出结果
1.
classB{
intb;
B(intx){
b=x;
"
b="
+b);
}
}
classAextendsB{
inta;
A(intx,inty){
super(x);
a=y;
+b+"
,a="
+a);
publicclassTest{
publicstaticvoidmain(String[]args){
Aobj=newA(13,23);
}
答案
b=13
b=13,a=23
2.
publicclassTest1{
publicstaticvoidmain(String[]agrs){
ABs=newAB("
Hello!
"
"
IloveJAVA."
);
}
classAB{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2){
s1=str1;
s2=str2;
publicStringtoString(){
returns1+s2;
答案Hello!
IloveJAVA.
classTest{
int[][]num1=newint[2][3];
num1[0][0]=3;
num1[0][1]=9;
num1[0][2]=60;
num1[1][0]=78;
num1[1][1]=79;
for(inti=0;
i<
=1;
i++){
for(intj=0;
j<
num1[i].length;
j++)
+"
\t"
}
3960
78790
4.publicclassTest{
inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;
;
i++)
if(a[i]%3==0){
s+=a[i];
"
s="
+s);
答案
s=30
s=90
s=180
5.publicclassTest3{
Aa=newA
(2);
Ab=newA(3);
classA{
privateintprivateVar;
publicA(int_privateVar){privateVar=_privateVar;
booleanisEqualTo(AanotherA){
if==returntrue;
elsereturnfalse;
false
6.publicclassTest{
num1[0][2]=45;
int[][]num2=newint[][]{{1,2,3},{7,8},{9}};
;
num2[i].length;
3945
123
78
9
7.publicclassTest2{
inta[]={1,2,3,4,5,6,7,8,9};
s=3
s=9
s=18
8.classB{
Aobj=newA(5,10);
b=5
b=5,a=10
9.publicclassTest4{
try{
method();
}catch(Exceptione){
A"
}finally{
B"
staticvoidmethod(){
wrench();
C"
}catch(ArithmeticExceptione){
D"
E"
"
F"
staticvoidwrench(){
thrownewNullPointerException();
E
A
B
五、阅读程序,回答问题
1.
1:
publicclassOutput1{
2:
publicstaticvoidmain(Stringarge[]){
3:
inti=0;
4:
for(charch=97;
ch<
113;
ch++,i++){
5:
if(i%8==0)
6:
"
7:
+ch);
8:
9:
10:
(1)程序第5、6行的if语句的功能是什么
(2)程序输出的结果有几行
2.
importpublicclassSortArray{
publicstaticvoidmain(Stringargs[]){
String[]str={"
size"
abs"
"
length"
class"
};
(str);
for(inti=0;
i<
}
(1)写出程序运行后的结果。
(2)在第4行和5行之间,进行str[0].length()方法调用的返回结果是多少
3.
abstractclassSuperAbstract{
voida(){…}
abstractvoidb();
abstractintc(inti);
interfaceAsSuper{
voidx();
abstractclassSubAbstractextendsSuperAbstractimplementsAsSuper{
publicvoidb(){…}
abstractStringf();
publicclassInheritAbstractextendsSubAbstract{
publicvoidx(){…}
publicintc(inti){…}
publicStringf(){…}
publicstaticvoidmain(Stringargs[]){
InheritAbstractinstance=newInheritAbstract();
();
(100);
}
根据以上这段程序,回答问题:
(1)哪几个类是抽象类,写出类名。
(2)哪几个类是非抽象类,写出类名。
(3)是否有接口,写出接口名。
4.定义类A和类B如下。
classA{
inta=1;
doubled=;
voidshow(){
ClassA:
a="
+a+"
\td="
+d);
classBextendsA{
floata=;
Stringd="
Javaprogram."
voidshow(){
();
ClassB:
若在应用程序的main方法中有以下语句:
Aa=newA();
();
则输出的结果如何ClassA:
a=1d=
5.写出此程序完成的功能。
publicclassSum{
doublesum=;
for(inti=1;
=100;
sum+=/(double)i;
sum="
+sum);
回答问题:
以上程序完成什么功能
运行结果是:
sum=
6.写出此程序完成的功能。
import.*;
publicclassArrayCount{
publicstaticvoidmain(String[]args){
inti,n=10,sum=0,count=0;
inta[]=newint[10];
n;
try{
BufferedReaderbr=newBufferedReader(new
InputStreamReader);
a[i]=());
}catch(IOExceptione){
sum+=a[i];
sum/=n;
if(a[i]<
sum)
++count;
7.
publicclassTest4{
Setset=newTreeSet();
(newInteger(10));
(newInteger(5));
(newInteger(15));
size="
+());
Iteratorit=();
while()){
+"
(1)程序运行后输出的结果如何
size=3
51015
(2)说明java中的集合(Set接口)和映射(Map接口)的主要区别。
8.
importimport.*;
importpublicclassTestKeyListenerextendsApplet{
Colorclr;
publicvoidinit(){
addKeyListener(
newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
if()=='
r'
||()=='
R'
)
11:
clr=;
12:
elseif()=='
g'
G'
13:
14:
b'
B'
15:
clr=