java期末考试样卷答案Word文档下载推荐.docx
《java期末考试样卷答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java期末考试样卷答案Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。
A、s==t
true的是(B)。
C、u.equals(s)
B、s.equals(t)
D、t.equals(u)
10.关于异常的含义,下列描述中最正确的一个是(C)。
A程序编译错误B程序语法错误
C程序运行时的错误D程序编译和运行时发生的错误
11.类Panel默认的布局管理器是(B)。
A、BorderLayout
B、FlowLayout
C、GridLayout
CardLayout
12.下面哪个方法与applet的显示无关?
B
)
A、update()
draw()
C、repaint()
paint()
13.已知如下代码:
publicclassTest{
publicstaticvoidmain(Stringarg[])
{
longa[]=newlong[10];
System.out.println(a[6]);
}
请问哪个语句是正确的?
(B)
A程序输出nullB程序输出0
C因为Iong[]数组声明不正确,程序不能被编译
D程序被编译,但在运行时将抛出一个ArraylndexOutOfBoundsException异常
14.
B、编译型语言
D、面向对象设计语言
(C)
Java语言不是(B)
A、咼级语言
C、结构化设计语言
15.关于以下程序段的说明正确的是
publicclassArrayTest{
publicstaticvoidmain(Stringargs[|){
try{
intx[|=newint[-5];
System.out.println("
此行将无法被执行!
"
);
}catch(NegativeArraySizeExceptione){
exception:
数组下标不能为负数。
"
A、编译通过,输出:
此行将无法被执行!
B、编译通过,输出:
C、编译通过,输出:
D、编译不能通过
16.Java源文件和编译后的文件扩展名分别为(B)。
A、.class禾口.javaB、.java禾口.class
C、.class禾口.classD、.java禾口.java
17.以下有关构造函数的说法,正确的是:
(A)。
A、一个类的构造函数可以有多个
B、构造函数在类定义时被调用
C、构造函数只能由对象中的其它方法调用
D、构造函数可以和类同名,也可以和类名不同
18.为类Employee中的一个无形式参数且无返回值的方法method书写方法头,以便使用
类名Employee作为前缀就可以调用它(即可以通过类名调用方法method),该方法头
的形式为(A)。
B、publicvoidmethod()
D、abstractvoidmethod()
A、staticvoidmethod()
C、finalvoidmethod()
19.下列代码的执行结果是:
(C)。
publicclassTest5{
publicstaticvoidmain(Stringargs[|){
Strings1=newString("
hello"
Strings2=newString("
System.out.print(s1==s2);
System.out.print("
"
System.out.println(s1.equals(s2));
A、true,false
B、true,true
C、false,true
D、false,false.
20.下列不是Java
关键字的是(D)。
A、final
B、finally
C、null
D、sizeof
21.以下(C)是java.io包中的一个兼有输入输出功能的类。
A、Object
B、Serializable
C、RandomaccessFile
D、java.io中不存在这样的类
22.下面哪个语句正确地声明一个整型的二维数组?
(D)
Ainta[][]=newint[][];
Binta[100][100]=newint[][];
Cint[]a[]=newint[100][100];
Dinta[][]=newint[100][100];
23.编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名
为(B)。
B.class
D.exe
A.java
C.html
24.为读取的内容进行处理后再输出,需要使用下列哪种流?
AFilestreamBPipestreamCRandomstreamDFilterstream
25.下列方法中可以用来创建一个新线程的是。
(C)
A实现java.lang.Runnable接口并重写start()方法B实现java.lang.Runnable接口并重写run()方法C继承java.lang.Thread类并重写run()方法D实现java.lang.Thread类并实现start()方法
26.给出如下初始化语句
Strings1=newString(“Hello”);
Strings2=newString(
there”);
Strings3=newString();
以下哪种操作是合法的?
(A)
As3=s1+s2;
Bs3=s1-s2;
Cs3=s1&
s2;
Ds3=s1&
&
27.
容器Panel和Applet
缺省使用的布局编辑策略是
ABorderLayoutBFlowLayout
CGridLayoutDCardLayout
28.给出如下代码:
classTest{
privateintm;
publicstaticvoidfun(){
//somecode...
如何使成员变量m被函数fun()直接访问?
(C)
A将privateintm改为protectedintm
B将privateintm改为publicintm
C将privateintm改为staticintm
D将privateintm改为intm
29.以下有关类的继承的说明中正确的是:
A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性
B子类只能继承父类的方法,不能继承父类的属性
C子类只能继承父类的非私有属性,不能继承父类的方法
D子类不能继承父类的私有属性
30.以下语句有语法错的是:
Aintx=1;
y=2;
z=3
Cwhile(x>
5);
Bfor(intx=10,y=0;
x>
0;
x++)
Dfor(;
;
•、简答题
1、请说明this,super,final各自的作用。
this:
①指代调用方法的当前对象;
②在构造函数内使用this用于指代另外一个构造函数。
super:
提供了一种调用父类构造函数的方法。
final:
使得某个变量值只能被引用,而不能修改。
2、试解释方法重构(方法覆盖)和方法重载的区分。
1方法的覆盖出现在父类与子类之间,并且方法的特征要完全相同。
2方法的重载可以出现在一个类中,也可以分别出现在父类与子类中,方法的特征一定不完
全相同。
3、请解释面向对象程序设计相关的几个概念:
继承、多态、重载。
继承:
将相关类组成层次结构,允许新类从已存在的类中派生,通过保留它们的属性(即实
例变量)和方法,并根据自己的要求添加新的属性的方法。
多态:
接口的多种不同的实现方式。
重载:
在一个类定义中,可编写几个同名的方法,但是只要它们的签名参数列表不同,Java
就会将它们看做唯一方法。
4、请说明抽象类和接口的异同点。
抽象类:
一种类,它不能实例化为一个对象,而只表示一种抽象的概念,继承它的子类可以
对其进行具体实现,这种类中往往包含了抽象方法。
接口:
就是一系列常量和空方法的集合,它提供了多个类共有的方法,但不限制每个类如何
实现这些方法。
相同点:
1二者都包含空方法,都必须在实现接口或继承抽象类的子类中具体实现这些方法。
2由于二者都包含空方法,所以不能用new关键字来创建这两种类型的对象。
3类之间具有继承关系,接口之间也可以具有这种关系,一个接口可以继承一个或多个接口。
4接口和类一样可以具有public属性。
在interface前加上public关键字,表示各个包中的类均可以实现这个接口,反之,只有同一个包中的类才可以实现这个接口。
不同点:
1抽象类在定义空方法时,其名称前必须加abstract关键字,而在接口中不需要。
2在抽象类中,除空方法外,还可以定义实例变量和非空方法;
而在接口中,只能定义常量和空方法。
3接口允许多继承。
一个接口可以继承多个接口,实现接口的类也可以同时实现多个接口,
只要在这个类中对每个接口的方法都有具体的实现,但Java的类仅支持单继承。
5、实例变量与局部变量的区别
实例变量:
也叫对象变量,在类中定义的没加static的变量,与类变量不同,类变量是所有
对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果,而实例变量则属
对象私有,某一个对象将其值改变,不影响其他对象。
局部变量:
在方法中定义的只在特定的方法中可以访问的变量。
区别:
1局部变量定义在方法里面,实例变量定义在类以内方法之外;
2局部变量只能在定义他的方法里面使用,直接调用变量名就行,实例变量至少可以在整个
类内使用,使用时必须用对象去调用;
3局部变量使用之前必须初始化,实例变量不需要赋初值,系统会给默认的初值;
4局部变量在同一个方法里面不能重名,局部变量和实例变量可以重名,在方法里面采用就
近原则,以局部变量为准;
5实例变量属于对象,它描述了对象的属性,随着对象的存在而存在,局部变量是随着方法
的调用而存在,一旦方法调用结束,局部变量也就消亡了。
三、阅读程序
1.以下程序段的输出结果为56789。
publicclassTestArray
publicstaticvoidmain(Stringargs[]){
int
i,j
a[]:
={5,9,6,8,7};
for
(i=
0;
iva.length-1;
i++){
k=i;
(j=i;
j<
a.length;
j++)
if(a[j]va[k])k=j;
temp=a[i];
a[i]=
:
a[k];
a[k]:
=temp;
for(i=0;
iva.length;
i++)
System.out.print(a[i]+"
System.out.println();
2.编程填空(将横线上所缺的内容补充完整)
下列程序中(Assign.java),指定变量b=50为字节类型,变量f=0.55F为单精度实型,变量k=0xfffL为64位整型,并将该三个变量打印输出,请将程序补充完整。
(每空1分)
importjava.io.*;
publicAssign
publicstaticvoidmain(Stringargs[])
b=50;
f=0.55F;
k=0xfffL;
b="
+b);
f="
);
k="
+k);
3.写出以下程序的运行结果noException;
finally;
catch;
finally
publicclassTryCatchFinally{
staticvoidProc(intsel){
try{
if(sel==0){
System.out.println(”noException”);
return;
elseif(sel==1){inti=0;
intj=4/i;
catch(ArithmeticExceptione){
System.out.println("
Catch"
}
catch(Exceptione){
Willnotbeexecuted"
finally{
System.out.println("
finally"
publicstaticvoidmain(Stringargs[]){
Proc(0);
Proc
(1);
4.阅读以下程序,写出输出结果Dog程序方法不能被继承。
classAnimal{
Animal(){System.out.print("
Animal"
publicclassDogextendsAnimal{
Dog(){System.out.print("
Dog”);
publicstaticvoidmain(String[]args){
Dogsnoppy=newDog();
5.阅读以下程序:
classExp1
publicstaticvoidmain(String[]args)
Strings,s1="
charc;
s=args[0];
for(inti=0;
i<
s.length();
i++)
c=s.charAt(i);
if(c>
='
a'
&
c<
z'
){
s仁s1+Character.toUpperCase(c);
}else{
s仁s1+Character.toLowerCase(c);
}】
System.out.println(s1);
defABC
若在dos命令行输入:
javaExplDEFabc,则输出为_
6.阅读下面的程序,并回答问题。
publicclassTest{
publicstaticvoidmain(Stringargs[])throwsIOException{BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));
while(true){
Stringstr=buf.readLine();
if(str.equals("
quit"
))
break;
intx=lnteger.parseInt(str);
System.out.println(x*x);
编译运行上面的程序:
1)从键盘输入10,回车后输出的结果为100。
2)从键盘输入exit,回车后程序能正确执行吗?
为什么?
不能,exit不能转换成数字
四、编程题
1、写出一个Point(点)类,该类具有x,y(表示点的横、纵坐标)两个属性,并定义两个构造方法,一个无参数,将x,y均设置为0,另一对坐标值为参数,设置x,y为给定坐标值。
在类中设计一个show方法,实现输出该类对象的坐标值。
在类中设计」个訪穴方岛实现枪出谨类相的坐标直.
packagezjwj.
publicclassIPointf
p*毗
X剛y・D;
Poi毗{丄nta,intb}
this*M~a>
tlhis=y・b;
publicvoidshow(}
1
System.nut*println("
■诙:
整xt.-■&
为-4th
SystErn□outxprintln("
附t.、皆J.j-+this.y
>
pdckdffzjwj
publiccla^stestl(
publicstaticvoidmain(Strinfi[]args>
{
Pointp=newPoint(1>
16);
P-$曲();
2、假设我们从键盘输入一段英文,统计这段文字中单词的个数,并输出其中由四个字母组成的单词
2.假设我们从惟盘输人一段英文,统计这段文字中屮词的个数•丼输出H屮由四亍字母组熾的甲词-
packagezjwj
importjava,util**;
importjava.io・#;
publicclasstest2{
八从键盘中读取一行字符辭*/
publicstaticStringreadString()
BufferedReaderbr=newSufferedR&
ader(new
InputStreamReaderfSystem.in),1);
Stringstrlfif
try
itrlmg-br・re^dLiIrbe(、;
fttch(IOEkt^ptlnnex)
Systen-Mt.p;
retwriiStrir^f;
publicstatici/tuldMin(Strlrigi[]^rgi){"
raooE生城方获打戡
String11k;
lrttnumB;
aut.print(-d'
PIt
1Lne-reoilStrirt;
.oken^nt^SlrlngTaktnlftf"
(line)j
mtt:
L>
tnk即心如
Strlng[]itr^newStrl/ig[tlj;
for(inti=e;
l<
tl;
Str[1]-1Ak^ri□riEXtToken();
Systen.-cutrprinting"
SiWAIVJ<
宇屮单词EF卜戴沖="
+str.i«
ngtti);
SyitM.dUt「有BK呼母粗虚的单盼"
)i
fofflht;
4tr.Lengthjl++)
I
Lf(妣巩1].1的毗利)==4)
<
SyskiCfi.4tft1p4"
lilrtl-n(ltr[L));
3、从键盘输入一行文本,显示其中各元音字母出现的次数。
3.賦轉盘愉入一齐文本•显示贰中各兀音宁叫冊W的抉型-packagezjw;
impartJav^hutll»
aj
lRipwrtJava>
!
□<
*;
publicTest3(
厂从粧盘中it収一疔爭符半*/publicstatic5tringreadstring()
Buff^redReader((i耐
Buffer^dReaderbr-n电比
InputStre^mReader(System*in)、1);
Stringstring■—;
string«
br.reailLinef^
}tatch(IOExceptian&
k)
Systeflt.owt.printlrt(eK);
returnstring;
publicstaticvoidniain(String[]argj){//TDDO自动生成方初存根
Stringline;
System.ojf.[irintC'
iSiji入一廿宁Th'
11tr1/15();
Systahkout.print(*\r*)i
tutnum”比num“%nume母nunuj-O^numo^fijliktlength-line.lengthO;
f<
x*(irtti«
#;
length;
i++){
casecase+Ak:
cate*Vtca»
rl'
numl++;
break;
mtru"
:
case"
LT:
numu>
+;
br^akjcasefe"
case*El:
num&
++ibreak;
case'
a"
*caier0"