JAVA期末考试试卷和习题及答案汇总.doc
《JAVA期末考试试卷和习题及答案汇总.doc》由会员分享,可在线阅读,更多相关《JAVA期末考试试卷和习题及答案汇总.doc(32页珍藏版)》请在冰点文库上搜索。
JAVA期末考试试卷和习题及答案汇总
一、单项选择题
1.下面哪个不是Java中的容器?
B
A、 ScrollPane B、Canvas C、Applet D、Dialog
2.下面哪个方法与applet的显示无关?
A
A、draw() B、 update() C、repaint() D、paint()
3.以下哪个方法用于定义线程的执行体?
C
A、 start() B、init() C、run() D、synchronized()
4.当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪种布局方式?
A
A、 FlowLayout B、CardLayout C、BorderLayout D、GridLayout
5.有如下代码段:
1)
2){if(unsafe()){//dosomething…}
3)elseif(safe()){//dotheother…}
4)}
其中,方法unsafe()将抛出IOException,请问可将以下哪项填入第1行?
D
A、publicIOExceptionmethodName()
B、publicvoidmethodName()
C、publicvoidmethodName()throwIOException
D、publicvoidmethodName()throwsIOException
6.以下哪个关键字可以用来对对象加互斥锁?
B
A、transient B、synchronizedC、serialize D、static
7.编译并运行以下程序,以下描述哪个选项是正确的C
1.classA{
2. protectedbooleanequals(){
3. returnsuper.equals();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
C、行2出错,不能成功编译 D、不能成功编译,行3出错
8.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
A、private B、protected C、privateprotected D、public
9.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(B)个比特位。
A、8 B、16C、32 D、64
10.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
11.以下关于构造函数的描述错误的是(A)。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
12.有程序如下,关于程序的描述哪个是正确的?
(C)
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{ System.out.println(arr[1]); }
}
A、编译将产生错误 B、编译时正确,但运行时将产生错误
C、正确,输出0 D、正确,输出 null
13.有语句Strings=”helloworld”;,以下操作哪个是不合法的?
(B)
A、inti=s.length();B、s>>>=3;C、Stringts=s.trim(); D、Stringt=s+”!
”;
14.给出如下代码:
class Test{
private int m;
public static void fun() {
// some code...
}
}
如何使成员变量m 被函数fun()直接访问?
(C)
A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m
15.Javaapplication中的主类需包含main方法,main方法的返回类型是什么?
(D)
A、int B、float C、double D、void
16.有以下方法的定义,请选择该方法的返回类型(D)。
ReturnTypemethod(bytex,doubley)
{
return(short)x/y*2;
}
A、byte B、short C、int D、double
17.下列哪些语句关于Java内存回收的说明是正确的?
(B)
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
18.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
A、importjava.awt.*;B、importjava.applet.*;
C、importjava.io.*;D、importjava.awt.event.*;
19.容器Panel和Applet缺省使用的布局编辑策略是(B)
A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout
20.设有下面两个赋值语句:
a=Integer.parseInt(“123”);
b=Integer.valueOf(“123”).intValue();
下述说法正确的是(D)
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
21.编译并运行以下程序,以下描述哪个选项是正确的(C)。
1.classA{
2. protectedStringtoString(){
3. returnsuper.toString();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
C、行2出错,不能成功编译 D、不能成功编译,行3出错
22.有以下程序片段,下列哪个选项不能插入到行1。
(D)
1.
2.publicclassInteresting{
3.//dosth
4.}
A、importjava.awt.*; B、packagemypackage;
C、classOtherClass{} D、publicclassMyClass{}
23.以下哪个不是Java的关键字?
(A)
A、TRUE B、const C、super D、void
24.关于以下application的说明,正确的是(C)。
1. classStaticStuff
2.{
3. staticintx;
4. static{x+=5;}
5. publicstaticvoidmain(Stringargs[])
6. {
7. System.out.println(“x=”+x);
8. }
9. static{x/=5;}
10.}
A、4行与9行不能通过编译,因为缺少方法名和返回类型
B、9行不能通过编译,因为只能有一个静态初始化器
C、编译通过,执行结果为:
x=1
D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化
25.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?
B
A、OutputStreamB、FileC、InputStreamD、BufferedOutputStream
26.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
A、private B、protected C、privateprotected D、public
27.有程序片段如下,以下哪个表示式的结果为true?
(B)
Floats=newFloat(0.1f);
Floatt=newFloat(0.1f);
Doubleu=newDouble(0.1);
A、s==tB、s.equals(t)C、u.equals(s)D、t.equals(u)
=========================================================
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB.class
C.htmlD.exe
2、以下哪一个不是JAVA的标准数据流(D)。
A.标准输出数据流B.标准输入数据流
C.标准错误数据流D.标准运算数据流
3、.class和.java文件的含义分别是:
(A)
A.Java目标码文件和源文件;B.Java可执行文件和目标码文件;
C.Java源文件和目标码文件;D.Java源文件和Java平台配置文件;
4、面板的边框有哪几种?
(D)
A.面板没有边框;B.仅有单线边框;
C.仅有黑色的边框;D.面板缺省没有边框,但可以设置单线、斜坡、不光滑等多种线形,可以设置边框的颜色、宽度等,还可以设置边框与内容之间的举例等;
5、以下几个命名方法,不符合Java命名规范的是:
(D)
A.类的名称:
MyClassName;B.变量的名称:
myArray;
C.常量的名称:
PI_VALUE;D.成员函数的名称:
GetName;
6、在下面的代码中,break语句的作用是:
(C)
for(inti=0;i<10;i++)
if(aData[i]==TargetData){
FoundID=i;
break;
}
A.退出if程序块;B.退出此次循环,直接进入下一次循环;
C.退出整个循环;D.退出整个函数;
7、以下项中,不属于成员变量的定义部分的是:
D
A.访问级;B.变量名称;C.变量类型;D.变量的初始化方式;
8、以下关于异常捕获的原则中,错误的是(D)
ARuntimeException可以不被捕获,Java会自动处理运行期异常。
B先列出子类,后列出父类。
C先列出具体的异常类,后列出通用的异常类。
DException类必须出现,而且必须作为catch块中第一个匹配的类。
9、Java的一个重要特点是结构中立性,这种结构中立性表现在(C)
A用Java编写的源程序无需编译,直接通过Java平台解释执行。
BJava源程序在不同的硬件和操作系统下,直接编译成该硬件和操作系统能够运行的程序并运行。
CJava源程序编译成一种结构中立的目标文件格式,再有Java平台在不同的硬件和操作系统下运行。
DJava源程序编译成一种通用的可执行程序,现在的硬件和操作系统都支持这种通用的可执行程序。
10、在Swing中,一下列出的面板的作用中,错误的是(C).
A.放置并排列组件B显示背景图案;C接收事件;D显示面板的边框;
11、.在Swing中,如何设置组件的边框?
( C)
A通过根窗格的setBorder函数设置某各组件的边框;
B通过内容窗格的setBorder函数设置某各组件的边框;
C通过组件的setBorder函数设置;
D通过框架的setBorder函数设置某各组件的边框;
12、以下关于框架和其他窗口之间的关系中,错误的是(D)
A对话框必须依附于某个框架
B当框架最小化时,所有依附于它的窗口也会最小化
C框架是一个程序的主窗口,每个具有图形界面的程序都至少要有一个框架
D内部框架也是顶级容器组件
13、创建并显示框架的步骤中,错误的是(A)
A将框架对象与入口类相连接
B在框架中加如组件
C创建一个框架对象
D调用框架对象的setVisible函数显示框架
14、如何在框架中显示标题?
(C)
A调用根窗格的setTitle函数显示
B调用内容窗格的setTitle函数显示
C调用框架对象的setTitle函数显示
D调用框架对象的Border对象的setTitle函数显示
15、下列关于Java语言的特点,描述错误的是(C)
A.Java是跨平台的编程语言B.Java支持分布式计算
C.Java是面向过程的编程语言D.Java支持多线程
16、下述概念中不属于面向对象方法的是D___。
A.对象、消息B.继承、多态C.类、封装D.过程调用
17、结构化程序设计所规定的三种基本控制结构是(C)
A.输入、处理、输出 B.树形、网形、环形
C.顺序、选择、循环 D.主程序、子程序、函数
18、以下声明合法的是(B)
A.defaultStrings; B.publicfinalstaticnativeintw()
C.abstractdoubled; D.AbstractfinaldoublehyperbolicCosine()
19、Applet可以做下列哪些操作?
C
A.读取客户端文件 B.在客户端主机上创建新文件
C.在客户端装载程序库 D.读取客户端部分系统变量
20、下列关于for循环和while循环的说法中哪个是正确的?
c
A.while循环能实现的操作,for循环也都能实现
B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C.两种循环任何时候都可替换
D.两种循环结构中都必须有循环体,循环体不能为空
====================================================================
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB.classC.htmlD.exe
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.5
3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。
A.start()B.stop()C.init()D.paint()
4、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.staticvoidmethod()B.publicvoidmethod()
C.finalvoidmethod()D.abstractvoidmethod()
*********************************************************************
1、Java中复合数据类型不包括(D)
A.类类型B.数组C.接口类型D.指针
2、请从四个选项中选择答案,下列代码的执行结果是:
(C)
PublicclassTest{
Publicstaticvoidmain(Stringargs[]){
Floatt=9.0f;
Intq=6;
System.out.println((t++)*(--q));
}
}
A.40B.40.0C.45.0D.36.0
3、下列关于修饰符混用的说法,错误的是(D)
A.abstract不能与final并列修饰同一个类
B.abstract类中可以有非abstract的方法
C.普通类(非abstract类)中不能有abstract方法
D.static方法中能处理非static的属性
4、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)
A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问
B.只能被该类本身和该类的所有的子类访问
C.只能被该类自身所访问
D.只能被同一个包中的类访问
5、x=2,y=3,z=4,则表达式z*=y++*--x的值是(A)
A.12B.24C.16D.3
6、以下赋值语句正确的是(D)
A.charc1=”a”B.floatf1=3.22C.byteb1=266D.longL1=0xAC8L
7、Java不支持多重继承,但我们可以通过(B)实现
A.多态B.接口C.覆盖D.抽象类
8.已知类person是类student的父类,以下数组定义和赋值哪些是正确的(A)
A.personp[]=newperson[3];p[1]=newstudent();
B.students[]=newperson[3];s[1]=newperson();
C.personp[]=newstudent[3];p[1]=newperson();
D.students[]=newstudent[3];s[1]=newperson;
9编译MyClass.java之后,得到了三个字节码文件:
MyClass.class,MyClasslittle$.classMyClass$1.class.这表明(C)
A.MyClass类中的两个方法:
little和1
B.MyClass.Java中有三个类:
MyClass、little和1
C.MyClass类中有两个内部类:
一个是命名的little,另一个是匿名的1
D.MyClass、little和1,这三者没什么关系
10、main方法是javaApplication程序执行的入口点,关于main方法的方法头以下(B)是合法的。
A.publicstaticvoidmain()B.publicstaticvoidmain(Stringarg[])
C.publicstaticintmain(String[]arg)D.B.publicvoidmain(Stringarg[])
11、当编译和运行下面的代码会出现什么情况?
(A)
Importjava.io.*;
ClassExBase{
Abstractpublicvoidmartley()
}
PublicclassMyExextendsExBase{
Publicstaticvoidmain(Stringargv[]){
DataInputStreamfi=newDataInputStream(System.in);
Try{
Fi.readChar();
}
Catch(IOEceptione){
System.exit(0);
}
Finally{System.out.println(“Doingfinally”);}
}
}
A.编译错误B.可以运行,没有打印出”Doingfinally”
C.可以运行,在打印出”Doingfinally”后退出D.在运行之后立即退出
12、当编译和运行下面的代码会出现什么情况?
(D)
PublicclassSandys{
Privateintcourt;
Publicstaticvoidmain(Stringargv[]){
Sandyss=newSandys(99);
System.out.println(s.court);
}
Sandys(intballeount){
court=ballcount;
}
}
A编译错误,变量court被定义为private
B编译错误,System.out调用的s没有被初始化
C可以编译和运行,没有输出结果
D可以编译和运行,输出结果为99
13、给出下面的代码:
ClassBase{}
ClassAggextendsBase{
PublicStringgetFields(){
Stringname=”Agg”;
Returnname;
}
}
PublicclassAvf{
Publicstaticvoidmain(Stringargv[]){
Basea=newAgg();
//Here
}
}
当把下面的代码添加到注释“/Here”后面,程序的输出结果是”Agg”(D)
A.System.out.println(a.getFields())B.System.out.println(a.name)
C.System.out.println((Base)a.getFields())
D.System.out.println(((Agg)a).getFields())
14、当编