《JAVA语言程序设计》期末考试试题及答案_第1页
《JAVA语言程序设计》期末考试试题及答案_第2页
《JAVA语言程序设计》期末考试试题及答案_第3页
《JAVA语言程序设计》期末考试试题及答案_第4页
《JAVA语言程序设计》期末考试试题及答案_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA语言程序设计考试试题及部分答案

一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选

项是正确的,请将正确选项的标记写在题干后的括号内。

1.下列语句序列执行后,k的值是(B)。

intm=3,n=6,k=0;

whi1e((m++)<(—n))++k;

A)0B)1C)2D)3

2.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是(B)。

A)i=i+2B)a[0]=7;

C)i++——j;D)a(0)=66;

3.Java语言的类间的继承关系是(B)。

A)多重的B)单重的C)线程的D)不能继承

4.设有定义inti=6;,则执行以下语句后,i的值为(C).

i+=i-1;

A)10B)121C)11D)100

5.下列选项中,用于在定义子类时声明父类名的关键字是(C)。

A)interfaceB)packageC)extendsD)class

6.若已定义byte[]x={11,22,33,-66);

其中04k43,则对x数组元素错误的引用是(C)。

A)x[5-3]B)x[k]C)x[k+5]D)x[0]

7.下列语句序列执行后,chi的值是(B)。

charchl='A',ch2='W';

if(chi+2<ch2)++chl;

A)7B)/C)CD)B

8.下列语句序列执行后,i的值是(D)。

inti=8,j=16;

if(i-1>j)i-;elsej―;

A)15B)16C)7D)8

9.下列语句序列执行后,k的值是(C)。

inti=l0,j=18,k=30;

switch(j-i)

{case8:k++;

case9:k+=2;

case10:k+=3;

default:k/=j;

)

A)31B)32C)2D)33

10.下面语句执行后,i的值是(B)。

for(inti=0,j=l;j<5;j+=3)i=i+j;

A)4B)5C)6D)7

11.设有定义floatx=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是

(B)。

A)x>y||x>zB)x!=y

C)z>(y+x)D)x<y&!(x<z)

12.下列语句序列执行后,i的值是(D)。

inti=16;

do{i/=2;}whi1e(i>3);

A)16B)8C)4D)2

13.以下由for语句构成的循环执行的次数是(B)。

for(inti=0;true;i++);

A)有语法错,不能执行B)无限次

0执行1次D)一次也不执行

14.定义类头时能使用的修饰符是(C)。

A)privateB)staticC)abstractD)protected

15.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋

值,

正确的switch语句是D)。

A)switch(x+y)B)switch(ch+1)

C)switchchD)switch(a+b);

{.....}{.....}

16.下列最终属性i的定义中,正确的是()o

A)staticfinalinti=100;B)finalinti=l.2;

C)finali=,w,;D)finalchari;

17.下列类定义中,不正确的是(C)。

A)classx{....}

B)classxextendsy{....}

C)staticclassximplementsyl,y2{....}

D)publicclassxextendsApplet{....}

18.设x、y为已定义的类名,下列声明x类的对象xl的语句中正确的是()。

A)staticxxl;B)publicxxl=newx(int123);

C)yxl;D)xxl=x();

19.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的

是(B)。

A)x(intm){...}B)voidx(intm){...}

C)x(intm,intn){...}D)x(inth,intm,intn){...}

20.下列方法定义中,正确的是(A)。

A)intx(){charch=za';return(int)ch;}

B)voidx(){.,.returntrue;}

C)intx(){...returntrue;}

D)intx(inta,b){returna+b;}

21.用于定义类成员的访问控制权的一组关键字是(D)。

A)class,float,double,public

B)float,boolean,int,long

C)char,extends,float,double

D)public,private,protected

22.不能构成循环的语句是(C)。

A)for语句B)while语句C)switch语句D)do一while语句

23.下列程序段执行后b3的结果是(D)。

booleanbl=true,b2,b3;

24=bl?bl:b2;

A)0B)1C)trueD)false

25下面数据结构中,属于非线性的是(B)。

A)线性表B)树C)队列D)堆栈

11.设有定义inti=123;longj=456;下面赋值不正确的语句是(D)。

A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;

二、填空题:(每空1分)

1.构造函数一没一有返回值。

2.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float

和___double______两种具体类型。

3.创建类对象的运算符是一new。

4.当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是

__n%13==0__________。

5.在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的一

元素个数。

6.定义类就是定义一种抽象的---父类------,它是所有具有一定共性的对象的

抽象描述。

7.在Java语言中,使用―平台无关-----java虚拟机――等技术,实现软件重用。

8.表达式3/6*5的计算结果是一一0一一。

9.下面是一个类的定义:

publicclass_intMyclass__________

(

intx,y;

Myclass(inti,——=0-----)//构造函数

x=i;

y=j;

)

10.下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。

importjava.io.*;

publicclassMyClass

(

publicstaticvoidmain(Stringargs[])

(

if(args,length!=_0一)

for(inti=0;i<args,length;i++)

System,out.println(_Hi=H+i-------------);

elseSystem,out.printIn(没有命令行参数);

)

)

11下面是一个小程序的主类myprogram的定义,其中A、B是该主类所在源程序中已

定义的另两个类的类名:

importjavaawt.*;

importjavaapplet.*;

publicclassmyprogramextendsApplet〃定义小程序的主类

(

Aa;Bb;

public------myprogram——init()

{a=newA();b=__new__B();}

)

12.Java的复合数据类型有:类、数组和一一接口一一等。Java的简单数据类型有:

数值类型(整形和浮点类型),自负类型和布尔类型

13.表达式3/6*5的计算结果是一0_____。

14.定义初值为10的10次方的长整型变量Ivar的语句是:-----long

lvar=l*el0__________________。

15.顺序结构、分支结构(或称选择结构)、一循环结构-------是结构化程序设计

的三种基本流程控制结构。

16.以下方法m的功能是求两参数之积的整数部分。

intm(floatx,floaty)

{-------k=(int)x*y-----------;}

17.-Java源程序文件编译后产生的文件称为――字节码――文件,其扩展名为

---class--------o

18.Java和C++都是面向对象的程序设计语言。

三、程序分析:(每题4分)

1.下面是一个排序的程序:

importjava.io.*;

publicclassTest56_Sort

(

publicstaticvoidmain(Stringargs[])

(

int[]a={42,99,5,63,95,36,2,69,200,96);

System.out.printIn(排序前的数据序列:);

ShowArray(a);

Sort(a);

System.out.printIn(排序后的数据序列:);

ShowArray(a);

}

publicstaticvoidSort(int[]x)

(

intw;

for(inti=l;i<x.length;i++)

(

for(intj=0;j<x.length-1;j++)

if(x[j]>x[j+l])

{w=x[j];x[j]=x[j+1];x[j+l]=w;}

/*if(i==l||i==2)ShowArray(x);

if(i==2)break;*/

publicstaticvoidShowArray(intb[])

for(inti=0;i<b.length;i++)

System,out.print("b[i"+i+"]="+b[i]);

System,out.println();

)

)

问题:如果将方法Sort()中的一对注释符(/**/)去掉,程序输出的结果是什么?

排序前的数据序列:

b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96

b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200

b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

排序后的数据序列:

b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

2.请写下程序的输出结果:

publicclassTest52

(

Stringstrl=nHello,Javaworld!\tn;

Stringstr2="Hello,students!";

publicstaticvoidmain(Stringargs[])

(

System,out.print(stri);

System,out.println(str2);

)

)

输出结果:

3.请写下程序的输出结果:

publicclassT2_4{

publicstaticvoidmain(String[]args)

inti,j;

charc=/*z;

for(i=0;i<5;i++)

(

for(j=0;j<=i;j++)

System.out.print("*");

System,out.printIn();

)

)

)

输出结果:

4、请写下程序的输出结果:

publicclassex2_2

(

publicstaticvoidmain(Stringargs[])

(

intx,y;

byteb=6;

floatz=1.234f;

doublew=1.23;

booleanflag;

x=12;

y=300;

flag=x>y;

System.out.printIn("x>y=="+flag);

flag=z>w;

System.out.printIn(,'z>w=="+flag);

)

四、问答题:(每题5分,)

1.Java的接口和C++的虚类的相同和不同处。

由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里

面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵

活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里

面所有的方法和属性,并且接口里面的属性在默认状态下面都是publicstatic,所

有方法默认情况下是public.一个类可以实现多个接口。

2.垃圾回收的优点和原理。并考虑2种回收机制。

Java语言中一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内

存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管

理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引

用才有"作用域垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。

垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中

已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾

回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃

圾回收,增量垃圾回收。

3,谈谈final,finally,finalize的区别。

Final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出

新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声

明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声

明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

被声明为final的方法也同样只能使用,不能重载。

Finally-再异常处理时提供finally块来执行任何清除操作。如果抛出一个异

常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的

话)。

Finalize-方法名。Java技术允许使用finalize()方法在垃圾收集器将对象

从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象

没有被引用时对这个对象调用的。它是在Object类中定义的,因此所有的类都继承

了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize

()方法是在垃圾收集器删除对象之前对这个对象调用的。

4,数组有没有length()这个方法?String有没有length()这个方法?举

例说明使用方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。

5.Java中的异常处理机制的简单原理和应用。

当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为

一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数

组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发

NulIPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员

可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都

是java.lang.Thowable的子类。

五、程序设计:(每题11分,共33分)

1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节

截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入

"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

2、编程求解:所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数

字之和。

3、设计一个程序求解e的值。精度达到1.0e-6,

4、请设计一个对N个数进行排序的程序

一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题

1、关于Java语言叙述错误的是:(C)

A.Java语言具有跨平台性

B.Java是一种面向对象的语言

C.Java语言中的类可以多继承

D.Java的垃圾收集机制自动回收程序已不再使用的对象

2、以下叙述正确的是:(B)的确台a

A.构造方法必须是public方法

B.main方法必须是public方法

C.Java应用程序的文件名可以是任意的

D.构造方法应该声明为void类型

3、关于Java中数据类型叙述正确的是:(B)

A、整型数据在不同平台下长度不同

B.boolean类型数据只有2个值,true和false

C.数组属于简单数据类型

D.Java中的指针类型和C语言的一样

4、设intx=l,floaty=2,则表达式x/y的值是:(D)

A.0

B.1

C.2

D.以上都不是

5、以下语句有语法错的是:(A)

A.intx=l;y=2;z=3

B.for(intx=l0,y=0;x>0;x++);

C.whi1e(x>5);

D.for(;;);

6、关于类和对象的叙述正确的是:(A)

A.Java的类分为两大部分:系统定义的类和用户自定义的类

B.类的静态属性和全局变量的概念完全一样,只是表达形式不同

C.类的成员至少有一个属性和一个方法

D.类是对象的实例化

7、以下有关构造方法的说法,正确的是:(A)

A.一个类的构造方法可以有多个

B.构造方法在类定义时被调用

C.构造方法只能由对象中的其它方法调用

D.构造方法可以和类同名,也可以和类名不同

8、以下有关类的继承的叙述中,正确的是:(D)

A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性

B.子类只能继承父类的方法,不能继承父类的属性

C.子类只能继承父类的非私有属性,不能继承父类的方法

D.子类不能继承父类的私有属性

9、下列属于容器的组件有:(B)

A.JButton

B.JPane

C.Canvas

D.JTextArea

10、void的含义:(C)

A.方法体为空

B.定义的方法没有形参

C.定义的方法没有返回值

D.方法的返回值不能参加算术运算

11、关于Java中异常的叙述正确的是:(D)

A.异常是程序编写过程中代码的语法错误

B.异常是程序编写过程中代码的逻辑错误

C.异常出现后程序的运行马上中止

D.异常是可以捕获和处理的

12、所有的异常类皆继承哪一个类?(C)

A.java.io.Exception

B.java.lang.Throwable

C.java.lang.Exception

D.java.lang.Error

13、下面哪个不是java语言中的关键字?(B)

A.long

B.sizeof

C.instanceof

D.const

14、为实现进程之间的通信,需要使用下列那种流才合适?(D)

A.Datastream

B.Filestream

C.Bufferedstream

D.Pipedstream

15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)

A.ActionListener

B.MouseListener

C.MouseMotionListern

D.ItemListener

二、填空题(每空1分,共20分)

1、面向对象程序设计所具有的基本特征是:一一抽象性一一,-封装性一一,一继承性一,

一多态性―

2、数组x定义如下

intx[][]=newint[3][2]

则x..length的值为---3--------,

x[0].length的值为----2-------。

3、Java中实现多线程一般使用两种方法,一是一一继承Thread类--------,二是

----实现Runnable方法----------

4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到

的布局管理器有(列出四种即可)--FlowLayout----,——GridLayout-----,

--BorderLayout_____,___CardLayout_______

5、Applet常用的方法是:__init()-.一run()一、一stop()一和destroy()。

三、阅读程序,写出程序的输出结果(每题5分,共20分)

1、classA{

privateintprivateVar;

A(int_privateVar){

privateVar=_privateVar;

)

booleanisEqualTo(AanotherA){

if(this.privateVar==anotherA.privateVar)

returntrue;

else

returnfalse;

publicclassB{

publicstaticvoidmain(Stringargs[]){

Aa=newA(1);

Ab=newA(2);

System,out.printIn(a.isEqualTo(b));

)

)

程序的输出结果为:一一false——

2、classA{

doublef(doublex,doubley){

returnx*y;

)

)

classBextendsA{

doublef(doublex,doubley){

returnx+y;

)

)

publicclassTest{

publicstaticvoidmain(Stringargs[]){

Bobj=newB();

System.out.printIn("Theprogramoutputis"+obj.f(4,6));

)

)

程序的输出结果为:--Theprogramoutputis10.

3、publicclassUnchecked{

publicstaticvoidmain(String[]args){

try(

method();

}catch(Exceptione){

System.out.printIn(HAn);

}finally{

System.out.printIn(nBn);

)

)

staticvoidmethod0{

try(

wrench();

System,out.printIn(nCH);

}catch(ArithmeticExceptione){

System,out.printIn(nDH);

}finally{

System,out.printIn(HEH);

)

System,out.printIn(HFn);

)

staticvoidwrench(){

thrownewNul1PointerException();

)

)

程序的输出结果为:

E

A

B

4、publicclassTest{

publicstaticvoidmain(String[]args){

intx;

inta[]={0,0,0,0,0,0};

calculate(a,a[5]);

System,out.printIn(Hthevalueofa[0]isn+a[0]);

System.out.printIn("thevalueisa[5]is"+a[5]);

)

staticintcalculate(intx[],inty){

for(inti=1;i<x.length;i++)

if(y<x.length)

x[i]=x[i-1]+1;

returnx[0];

)

)

程序的输出结果为:

thevalueofa[0]is0

thevalueisa[5]is5

1.下面哪些是short型的取值范围[C]

A,-27-27-1

B.0-216-1

C.-215-215-1

D.-231-231-1

2.下面哪些是合法的标识符[ABE]

A.$persons

B.TwoUsers

C.*point

D.this

E..endline

3.哪些是将一个十六进制值赋值给一个long型变量[D]

A.longnumber=345L;

B.longnumber=0345;

C.longnumber=0345L;

D.longnumber=0x345L;

4.下面的哪些程序片断可能导致错误。[BD]

A.

Strings="Gonewiththewind";

Stringt="good

Stringk=s+t;

B.

Strings=HGonewiththewind";

Stringt;

t=s[3]+"one";

C.

Strings="Gonewiththewind";

Stringstandard=s.toUpperCase();

D.

Strings="homedirectory";

Stringt=s-"directory";

5.在〃pointx处的哪些声明是合法的[DE]

classPerson{

privateinta;

publicintchange(intm){returnm;}

)

publicclassTeacherextendsPerson{

publicintb;

publicstaticvoidmain(Stringarg[]){

Personp=newPerson();

Teachert=newTeacher();

inti;

//pointx

)

A.i=m;

B.i=b;

C.i=p.a;

D.i=p.change(30);

E.i=t.b;

6.当Frame的大小被改变时,Frame中的按钮的位置也可能被改变,请问此时使用

的是什么布局管理器[B]

A.BorderLayout

B.FlowLayout

C.CardLayout

D.GridLayout

7.给出下面的代码片断

1publicvoidcreate(){

2VectormyVect;

3myVect=newVector();

4)

下面的哪些陈述是正确的?[ADE]

A.第二行的声明不会为变量myVect分配内存空间。〃指的是堆空间,只是在栈中

分配;这里不用较真.自己理解就好;

B.第二行的声明分配一个到Vector对象的引用的内存空间。

C.第二行语句创建一个Vector类对象。

D.第三行语句创建一个Vector类对象。

E.第三行语句为一个Vector类对象分配内存空间。

//分配栈空间,相当于指针,但是不分配"到Vector对象的引用的空间";选项二的意

思是分配了堆空间;

8.下面的哪些答案可以用以表示八进制值8?[A]

A.010

B.0x10

C.08

D.0x8

9.哪些不是Java关键字[AB]

A.TRUE

B.sizeof

C.const

D.super

E.void

10.下面的哪些叙述为真。[AD]

A.equals。方法判定引用值是否指向同一对象。〃不说是谁的就是默认的

B.==操作符判定两个分立的对象的内容和类型是否一致。

C.equals()方法只有在两个对象的内容一致时返回true。

D.类File重写方法equals。在两个分立的对象的内容和类型一致时返回true。//

当两个独立的对象的内容和类型一致;

11.下面关于继承的哪些叙述是正确的。[AD]

A.在java中只允许单一继承。

B.在java中一个类只能实现一个接口。

C.在java中一个类不能同时继承一个类和实现一个接口。

D.java的单一继承使代码更可靠。

12.第十行的声明将调用哪些方法.[D]

1classPerson{

2publicvoidprintValue(inti,intj){}

3publicvoidprintValue(inti){}

4)

5publicclassTeacherextendsPerson{

6publicvoidprintValue(){}

7publicvoidprintValue(inti){}

8publicstaticvoidmain(Stringargs[]){

9Persont=newTeacher();

10t.printValue(10);

11

12)

A.第2行的方法

B.第3行的方法

C.第6行的方法

D.第7行的方法

13.下面哪些不是java的原始数据类型[BC]

A.short

B.Boolean

C.unit

D.float

14.下面的哪些关键字通常用来对对象的加锁,该标记使得对对象的访问是排他的?

[B]

A.transient

B.synchronized

C.serialize

D.static

15.main。方法的返回类型是什么?[B]

A.int

B.void

C.boolean

D.static

16.给出以下关于一个使用适当的字符间距的字体的TextField的表达式

TextFieldt=newTextField("theyaregood",40);〃40指的是像素

哪些叙述是对的?[D]

A.被显示的字符串可以使用多种字体。

B.一行中最大的字符数是40

C.显示的宽度正好是40个字符宽。

D.用户可以编辑字符。

17.关于垃圾收集的哪些叙述是对的?[B]

A.程序开发者必须自己创建一个线程进行内存释放的工作。

B.垃圾收集将检查并释放不再使用的内存。

C.垃圾收集允许程序开发者明确指定并立即释放该内存。

D.垃圾收集能够在期望的时间释放被java对象使用的内存。

18.给出下面的代码

1publicclassTest(

2intm,n;

3publicTest0(}

4publicTest(inta){m=a;}

5publicstaticvoidmain(Stringarg[]){

6Testtl,t2;

7intj,k;

8j=0;k=0;

9tl=newTest();

10t2=newTest(j,k);

11)

12)

在编译时哪行将导致一个错误?[D]

A.第3行

B.第5行

C.第6行

D.第10行

19.Thread的方法resume。负责恢复哪些线程的执行?[D]

A.通过调用stop。方法而停止的线程。

B.通过调用sleep。方法而停止运行的线程。

C.通过调用wait。方法而停止运行的线程。

D.通过调用suspend。方法而停止运行的线程。〃已经过期了

20.有关线程的哪些叙述是对的?[BD]

A.一旦一个线程被创建,它就立即开始运行。

B.使用start。方法可以使一个线程成为可运行的,但是它不一定立即开始运行。

C.当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。〃比它

优先级高的进程抢占了cpu,它运行的时间根据操作系统而定;

D.一个线程可能因为不同的原因停止并进入就绪状态。〃可运行状态

21.给出下面的不完整的方法

1

2{success=connect0;

3if(success==-l){

4thrownewTimedOutException0;

5)

6)

已知TimedOutException不是一个RuntimeException。下面的哪些声明可以被加

入第一行完成此方法的声明[BC]

A.publicvoidmethod()

B.publicvoidmethod0throwsException

C.publicvoidmethod()throwsTimedOutException

D.publicvoidmethod0throwTimedOutException

E.publicthrowTimedOutExceptionvoidmethod0

22.给出下面的代码

classPerson{

Stringname,department;

publicvoidprintValueO{

System,out.printIn("nameisH+name);

System,out.printIn("departmentisH+department);

)

)

publicclassTeacherextendsPerson{

intsalary;

publicvoidprintValue(){

//完成父类代码中printValueO相同的工作

System.out.printIn("salaryisH+salary);

)

)

下面的哪些表达式可以加入printValueO方法的注释部分?[D]

A.printValue();

B.this.printValue();

C.person.printValue();

D.super.printValue0;

23.下面的哪些赋值语句是错的?[A]

A.floatf=11.1;

B.doubled=5.3E12;

C.doubled=3.14159;

D.doubled=3.14D;

24.给出下面的不完整的类代码

classPerson{

Stringname,department;

intage;

publicPerson(Stringn){name=n;}

publicPerson(Stringn,inta){name=n;age=a;}

publicPerson(Stringn,Stringd,inta){

//完成Person(Stringn,inta)的逻辑

department=d;

)

)

下面的哪些表达式可以加到构造方法中的注释处?[C]

A.Person(n,a);

B.this(Person(n,a));//构造函数的名字不能当方法名调用;

C.this(n,a);

D.this(name,age);〃构造方法的参数也不能直接传实例变量名

25.下面关于变量及其范围的陈述哪些是对的?[ACD]

A.实例变量是类的成员变量。

B.实例变量用关键字static声明。

C.在方法中定义的局部变量在该方法被执行时创建

D.局部变量在使用前必须被初始化。

26.给出下面的代码

publicvoidtest(){

try(

oneMethod0;

System,out.printIn(ncondition1n);

}catch(ArraylndexOutOfBoundsExceptione){

System,out.printIn(Hcondition2");

}catch(Exceptione){

System,out.printIn("condition3");

}finally{

System,out.printIn(Hfinally");

}

)

在oneMethod()方法运行正常的情况下将显示什么?[AD]

A.condition1

B.condition2

C.condition3

D.finally

27.给出下面的代码

publicclassTest{

voidprintValue(intm){

do(

System,out.printIn("Thevalueis"+m);

}whi1e(―m>10);

publicstaticvoidmain(Stringarg[]){

inti=l0;

Testt=newTest();

t.printValue(i);

)

)

输出将是什么?[C]

A.8

B.9

C.10

D.11

28.下面的有关声明的哪些叙述是对的?[BC]

A.对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。

B.对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。

C.非原始数据类型例如String,Vector的变量的声明不会为该对象分配内存。

D.非原始数据类型例如String,Vector的变量的声明会为该对象分配内存。

〃该对象指的是堆空间的对象;指向该对象的引用只能叫变量;

29.类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修

饰符获得需要的访问控制?[D]

A.public

B.不加修饰符

C.protected

D.private〃面向对象编程P196页的表格,private一行有错误

30.给出下面的代码片断

1Stringstr=null;

2if((str!=null)&&(str.lengthO>10)){

3System,out.printIn("morethan10");

4)

5elseif((str!=null)&(str.length()<5)){〃空指针异常

6System,out.printlnC'lessthan5");

7)

8else{System,out.printin("end");}

哪些行将导致错误?[C]

A.第1行

B.第2行

C.第5行

D.第8行

31.下面有关java代码安全性的叙述哪些是对的?[BCD]

A.字节码校验器加载查询执行需要的所有类。

B.运行时解释器执行代码。

C.在运行时,字节码被加载,验证然后在解释器里面运行。

D.类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。

32.给出下面的代码

publicclassPerson{

intarr[]=newint[10];〃非静态属性

publicstaticvoidmain(Stringa[]){

System.out.println(arr[1]);//静态方法不能访问非静态属性

}

)

哪些叙述是对的?[A]

A.编译时出错。

B.编译时正确而运行时出错。

C.输出0。

D.输出null.

33.给出下面的代码

publicclassParent{

publicintaddValue(inta,intb){

ints;

s=a+b;

returns;

)

)

classChiIdextendsParent{

)

哪些方法可以加入类Child中?[BC]〃方法的覆盖

A.intaddValue(inta,intb){//dosomething...}

B.publicvoidaddValue(){//dosomething...}

C.publicintaddValue(inta){//dosomething...}

D.publicintaddValue(inta,intb)throwsException{//dosomething...}

34.公有成员变量MAX.LENGTH是一个int型值,变量的值保持常数值100,定义这

个变量的代码为?[CD]

A.publicintMAX_LENGTH=100;

B.finalintMAX_LENGTH=100;

C.finalpublicintMAX.LENGTH=100;〃修饰符的顺序可以交换

D.publicfinalintMAX_LENGTH=100;

35.下面的哪些java源文件代码片断是对的?[ACD]

A.packagetestpackage;

publicclassTest{//dosomething...}

B.importjava.io.*;

packagetestpackage;

publicclassTest{//dosomething...}

C.importjava.io.*;

classPerson{//dosomething...}

publicclassTest{//dosomething...}

D.importjava.io.*;

importjava.awt.*;

publicclassTest{//dosomething..}

36.给出下面的类

publicclassSample{

longlength;

publicSample(long1){length=1;}

publicstaticvoidmain(Stringarg[]){

Samplesi,s2,s3;

si=newSample(21L);

s2=newSample(21L);

s3=s2;

longm=21L;

)

)

哪个表达式返回true?[B]

A.si==s2;

B.s2==s3;

C.m==si;

D.si.equals(m);

37.给出下面有关java.awt.List的表达式

List1=newList(6,true);〃第二个参数是false的话只能选一个

其中哪些叙述是正确的?[AC]

A.在没有其它的约束的条件下该列表将有6行可见。

B.一行的最大字符数是6

C.列表将允许用户多选

D.列表只能有一项被选中

38.给出下面的代码

classParent{

Stringone,two;

publicParent(Stringa,Stringb){

one=a;

two=b;

publicvoidprint(){System.out.printIn(one);}

publicclassChildextendsParent{

publicChild(Stringa,Stringb){

super(a,b);

)

publicvoidprint(){

System.out.printIn(one+"to"+two);

)

publicstaticvoidmain(Stringargs[]){

Parentp=newParent(HsouthH,"north");

Parentt=newChiId("eastn,"west");

p.print();

t.print0;

)

)

下面的哪些情况或输出的结果正确?[E]

A.编译时出错

B.south

east

C.southtonorth

easttowest

D.southtonorth

east

E.south

easttowest

39.类Teach6r和Student都是类Person的子类

Personp;

Teachert;

Students;

若P,t和s都是非空值

if(tinstanceofPerson){s=(Student)t;}

这个语句导致的结果是什么?[C]//默认new时声明的都是本类;

A.将构造一个Student对象

B.表达式合法

C.编译时非法

D.编译时合法而在运行时可能非法

40.给出下面的代码

Strings="hello";

Stringt="hello";

charc[]=h','e,,'o'};

下列选项里,哪些返回true?[ACD]

A.s.equals(t);

B.t.equals(c);

C.s==t;

D.t.equals(newString("hellon));

E.t==c;

一、单选题(本大题15小题,每小题2分,共30分)

1.下列语句执行后,变量a、c的值分别是()。

intx=182;

inta,c;

c=x/100;

a=x%10;

A)1,2B)2,1C)1.82,2D)100,82

【答案】B

2.下面哪个表达式可用得到x和y的最大值()?

A)x>y?y:xB)x<y?y:xC)x>y?(x+y):(x-y)D)x==y?y:x;

【答案】B

3.以下是应用程序中定义的静态方法printBinary,若在其main方法中有方法调用

语句printBinary(2),则输

出的结果是()。

staticvoidprintBinary(inti){

System.out.print(i+"的2进制数表示为:\t");

for(intj=31;j>=0;j")

if(((1«j)&i)!=0)

System,out.print("1");

else

System,out.print("0");

System,out.printlnO;//换行

)

A)00000000000000000000000000000001B)00000000000000000000000000000010

C)00000000000000000000000000001111D)00000000000000000000000000000000

【答案】B

4.应用程序的main方法中有以下语句,则输出的结果是()。

Stringsl="0.5",s2="12";

doublex=Double.parseDouble(si);

inty=Integer.parselnt(s2);

System,out.printIn(x+y);

A)12.5B)120.5C)12D)“12.5”

【答案】A

5.应用程序的main方法中有以下语句,则输出的结果是()。

doublex=1234.1234567;

DecimalFormatforml=newDecimalFormat("0000.0");

System,out.println("PI="+forml.format(x));

A)PI=1234.1B)PI=1234

C)PI=1234.1235D)PI=1234.0

【答案】A

6.下列程序段执行后的结果是()。

Strings=newString("abcdefg");

for(inti=0;i<s.length();i+=2){

System,out.print(s.charAt(i));

)

A)acegB)ACEGC)abcdefgD)abed

【答案】A

7.应用程序的main

温馨提示

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

评论

0/150

提交评论