JAVA语言程序设计复习题及答案_第1页
JAVA语言程序设计复习题及答案_第2页
JAVA语言程序设计复习题及答案_第3页
JAVA语言程序设计复习题及答案_第4页
JAVA语言程序设计复习题及答案_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

JAVA语言程序设计考试试题及部分答案一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。1.下列语句序列执行后,k的值是(B)。intm=3,n=6,k=0;while((m++)<(--n))++k;A)0B)1C)2D)32.设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)1005.下列选项中,用于在定义子类时声明父类名的关键字是(C)。A)interfaceB)packageC)extendsD)class6.若已定义byte[]x={11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是(C)。A)x[5-3]B)x[k]C)x[k+5]D)x[0]7.下列语句序列执行后,ch1的值是(B)。charch1='A',ch2='W';if(ch1+2<ch2)++ch1;A)'A'B)'B'C)'C'D)B8.下列语句序列执行后,i的值是(D)。inti=8,j=16;if(i-1>j)i--;elsej--;A)15B)16C)7D)89.下列语句序列执行后,k的值是(C)。inti=10,j=18,k=30;switch(j-i){case8:k++;case9:k+=2;case10:k+=3;default:k/=j;}A)31B)32C)2D)3310.下面语句执行后,i的值是(B)。for(inti=0,j=1;j<5;j+=3)i=i+j;A)4B)5C)6D)711.设有定义floatx=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是(B)。A)x>y||x>zB)x!=yC)z>(y+x)D)x<y&!(x<z)12.下列语句序列执行后,i的值是(D)。inti=16;do{i/=2;}while(i>3);A)16B)8C)4D)213.以下由for语句构成的循环执行的次数是(B)。for(inti=0;true;i++);A)有语法错,不能执行B)无限次C)执行1次D)一次也不执行14.定义类头时能使用的修饰符是(C)。A)privateB)staticC)abstractD)protected15.设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的定义中,正确的是()。A)staticfinalinti=100;B)finalinti=1.2;C)finali='w';D)finalchari;17.下列类定义中,不正确的是(C)。A)classx{....}B)classxextendsy{....}C)staticclassximplementsy1,y2{....}D)publicclassxextendsApplet{....}18.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()。A)staticxx1;B)publicxx1=newx(int123);C)yx1;D)xx1=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='a';return(int)ch;}B)voidx(){...returntrue;}C)intx(){...returntrue;}D)intx(inta,b){returna+b;}21.用于定义类成员的访问控制权的一组关键字是(D)。A)class,float,double,publicB)float,boolean,int,longC)char,extends,float,doubleD)public,private,protected22.不能构成循环的语句是(C)。A)for语句B)while语句C)switch语句D)do__while语句23.下列程序段执行后b3的结果是(D)。booleanb1=true,b2,b3;24=b1?b1:b2;A)0B)1C)trueD)false25下面数据结构中,属于非线性的是(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(_"i="+i__________);elseSystem.out.println(没有命令行参数);}}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次方的长整型变量lvar的语句是:_______longlvar=1*e10___________________。15.顺序结构、分支结构(或称选择结构)、__循环结构__________是结构化程序设计的三种基本流程控制结构。16.以下方法m的功能是求两参数之积的整数部分。intm(floatx,floaty){_______k=(int)x*y___________;}17.Java源程序文件编译后产生的文件称为____字节码____文件,其扩展名为___.class_______。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.println(排序前的数据序列:);ShowArray(a);Sort(a);System.out.println(排序后的数据序列:);ShowArray(a);}publicstaticvoidSort(int[]x){intw;for(inti=1;i<x.length;i++){for(intj=0;j<x.length-1;j++)if(x[j]>x[j+1]){w=x[j];x[j]=x[j+1];x[j+1]=w;}/*if(i==1||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]=96b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200b[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]=2002.请写下程序的输出结果:publicclassTest52{Stringstr1="Hello,Javaworld!\t";Stringstr2="Hello,students!";publicstaticvoidmain(Stringargs[]){System.out.print(str1);System.out.println(str2);}}输出结果:3.请写下程序的输出结果:publicclassT2_4{publicstaticvoidmain(String[]args){inti,j;charc='*';for(i=0;i<5;i++){for(j=0;j<=i;j++)System.out.print("*");System.out.println();}}}输出结果: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.println("x>y=="+flag);flag=z>w;System.out.println("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的对象时会引发NullPointerException.另一种情况就是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=1,floaty=2,则表达式x/y的值是:(D)

A.0

B.1

C.2

D.以上都不是

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

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

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

C.while(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.println(a.isEqualTo(b));

}

}

程序的输出结果为:____false_____

2、classA{

doublef(doublex,doubley){

returnx*y;

}

}

classBextendsA{

doublef(doublex,doubley){

returnx+y;

}

}

publicclassTest{

publicstaticvoidmain(Stringargs[]){

Bobj=newB();

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

}

}

程序的输出结果为:__Theprogramoutputis10_

3、publicclassUnchecked{

publicstaticvoidmain(String[]args){

try{

method();

}catch(Exceptione){

System.out.println("A");

}finally{

System.out.println("B");

}

}

staticvoidmethod(){

try{

wrench();

System.out.println("C");

}catch(ArithmeticExceptione){

System.out.println("D");

}finally{

System.out.println("E");

}

System.out.println("F");

}

staticvoidwrench(){

thrownewNullPointerException();

}

}

程序的输出结果为:

E

A

B

4、publicclassTest{

publicstaticvoidmain(String[]args){

intx;

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

calculate(a,a[5]);

System.out.println("thevalueofa[0]is"+a[0]);

System.out.println("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]is51.下面哪些是short型的取值范围[C]A.-27–27-1B.0–216-1C.-215–215-1D.-231–231-12.下面哪些是合法的标识符[ABE]A.$personsB.TwoUsersC.*pointD.thisE._endline3.哪些是将一个十六进制值赋值给一个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="Gonewiththewind";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.BorderLayoutB.FlowLayoutC.CardLayoutD.GridLayout7.给出下面的代码片断1publicvoidcreate(){2VectormyVect;3myVect=newVector();4}下面的哪些陈述是正确的?[ADE]A.第二行的声明不会为变量myVect分配内存空间。//指的是堆空间,只是在栈中分配;这里不用较真.自己理解就好;B.第二行的声明分配一个到Vector对象的引用的内存空间。C.第二行语句创建一个Vector类对象。D.第三行语句创建一个Vector类对象。E.第三行语句为一个Vector类对象分配内存空间。//分配栈空间,相当于指针,但是不分配"到Vector对象的引用的空间";选项二的意思是分配了堆空间;8.下面的哪些答案可以用以表示八进制值8?[A]A.010B.0x10C.08D.0x89.哪些不是Java关键字[AB]A.TRUEB.sizeofC.constD.superE.void10.下面的哪些叙述为真。[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.shortB.BooleanC.unitD.float14.下面的哪些关键字通常用来对对象的加锁,该标记使得对对象的访问是排他的?[B]A.transientB.synchronizedC.serializeD.static15.main()方法的返回类型是什么?[B]A.intB.voidC.booleanD.static16.给出以下关于一个使用适当的字符间距的字体的TextField的表达式TextFieldt=newTextField("theyaregood",40);//40指的是像素哪些叙述是对的?[D]A.被显示的字符串可以使用多种字体。B.一行中最大的字符数是40C.显示的宽度正好是40个字符宽。D.用户可以编辑字符。17.关于垃圾收集的哪些叙述是对的?[B]A.程序开发者必须自己创建一个线程进行内存释放的工作。B.垃圾收集将检查并释放不再使用的内存。C.垃圾收集允许程序开发者明确指定并立即释放该内存。D.垃圾收集能够在期望的时间释放被java对象使用的内存。18.给出下面的代码1publicclassTest{2intm,n;3publicTest(){}4publicTest(inta){m=a;}5publicstaticvoidmain(Stringarg[]){6Testt1,t2;7intj,k;8j=0;k=0;9t1=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.给出下面的不完整的方法12{success=connect();3if(success==-1){4thrownewTimedOutException();5}6}已知TimedOutException不是一个RuntimeException。下面的哪些声明可以被加入第一行完成此方法的声明[BC]A.publicvoidmethod()B.publicvoidmethod()throwsExceptionC.publicvoidmethod()throwsTimedOutExceptionD.publicvoidmethod()throwTimedOutExceptionE.publicthrowTimedOutExceptionvoidmethod()22.给出下面的代码classPerson{Stringname,department;publicvoidprintValue(){System.out.println("nameis"+name);System.out.println("departmentis"+department);}}publicclassTeacherextendsPerson{intsalary;publicvoidprintValue(){//完成父类代码中printValue()相同的工作System.out.println("salaryis"+salary);}}下面的哪些表达式可以加入printValue()方法的注释部分?[D]A.printValue();B.this.printValue();C.person.printValue();D.super.printValue();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{oneMethod();System.out.println("condition1");}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("condition2");}catch(Exceptione){System.out.println("condition3");}finally{System.out.println("finally");}}在oneMethod()方法运行正常的情况下将显示什么?[AD]A.condition1B.condition2C.condition3D.finally27.给出下面的代码publicclassTest{voidprintValue(intm){do{System.out.println("Thevalueis"+m);}while(--m>10);}publicstaticvoidmain(Stringarg[]){inti=10;Testt=newTest();t.printValue(i);}}输出将是什么?[C]A.8B.9C.10D.1128.下面的有关声明的哪些叙述是对的?[BC]A.对原始数据类型例如boolean,byte的变量的声明不会为该变量分配内存空间。B.对原始数据类型例如boolean,byte的变量的声明将为之分配内存空间。C.非原始数据类型例如String,Vector的变量的声明不会为该对象分配内存。D.非原始数据类型例如String,Vector的变量的声明会为该对象分配内存。//该对象指的是堆空间的对象;指向该对象的引用只能叫变量;29.类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?[D]A.publicB.不加修饰符C.protectedD.private//面向对象编程P196页的表格,private一行有错误30.给出下面的代码片断1Stringstr=null;2if((str!=null)&&(str.length()>10)){3System.out.println("morethan10");4}5elseif((str!=null)&(str.length()<5)){//空指针异常6System.out.println("lessthan5");7}8else{System.out.println("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;}}classChildextendsParent{}哪些方法可以加入类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(longl){length=l;}publicstaticvoidmain(Stringarg[]){Samples1,s2,s3;s1=newSample(21L);s2=newSample(21L);s3=s2;longm=21L;}}哪个表达式返回true?[B]A.s1==s2;B.s2==s3;C.m==s1;D.s1.equals(m);Listl=newList(6,true);//第二个参数是false的话只能选一个其中哪些叙述是正确的?[AC]A.在没有其它的约束的条件下该列表将有6行可见。B.一行的最大字符数是6C.列表将允许用户多选D.列表只能有一项被选中38.给出下面的代码classParent{Stringone,two;publicParent(Stringa,Stringb){one=a;two=b;}publicvoidprint(){System.out.println(one);}}publicclassChildextendsParent{publicChild(Stringa,Stringb){super(a,b);}publicvoidprint(){System.out.println(one+"to"+two);}publicstaticvoidmain(Stringargs[]){Parentp=newParent("south","north");Parentt=newChild("east","west");p.print();t.print();}}下面的哪些情况或输出的结果正确?[E]A.编译时出错B.southeastC.southtonortheasttowestD.southtonortheastE.southeasttowest39.类Teacher和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','l','l','o'};下列选项里,哪些返回true?[ACD]A.s.equals(t);B.t.equals(c);C.s==t;D.t.equals(newString("hello"));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【答案】B2.下面哪个表达式可用得到x和y的最大值()?A)x>y?y:xB)x<y?y:xC)x>y?(x+y):(x-y)D)x==y?y:x;【答案】B3.以下是应用程序中定义的静态方法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");elseSystem.out.print("0");System.out.println();//换行}A)00000000000000000000000000000001B)00000000000000000000000000000010C)00000000000000000000000000001111D)00000000000000000000000000000000【答案】B4.应用程序的main方法中有以下语句,则输出的结果是()。Strings1="0.5",s2="12";doublex=Double.parseDouble(s1);inty=Integer.parseInt(s2);System.out.println(x+y);A)12.5B)120.5C)12D)“”【答案】A5.应用程序的main方法中有以下语句,则输出的结果是()。doublex=1234.1234567;DecimalFormatform1=newDecimalFormat("0000.0");System.out.println("PI="+form1.format(x));A)PI=1234.1B)PI=1234C)PI=1234.1235D)PI=1234.0【答案】A6.下列程序段执行后的结果是()。Strings=newString("abcdefg");for(inti=0;i<s.length();i+=2){System.out.print(s.charAt(i));}A)acegB)ACEGC)abcdefgD)abcd【答案】A7.应用程序的main方法中有以下语句,则输出的结果是()。int[]x={122,33,55,678,-987};intmax=x[0];for(inti=1;i<x.length;i++){if(x[i]>max)max=x[i];}System.out.println(max);A)678B)122C)-987D)33【答案】A8.下列语句序列执行后,k的值是()。intx=2,y=5,k=0;switch(x%y){case0:k=x+y;break;case1:k=x-y;break;case2:k=x*y;break;default:k=x/y;break;}System.out.println(k);A)2B)5C)10D)0【答案】C9.下面的程序输出的结果是()publicclassAimplementsB{publicstaticvoidmain(Stringargs[]){inti;Ac1=newA();i=c1.k;System.out.println("i="+i);}}interfaceB{intk=10;}A)i=0B)i=10C)程序有编译错误D)i=true【答案】B10.应用程序的main方法中有以下语句,则输出的结果是()。intb[][]={{1,2,3},{4,5},{6,7}};intsum=0;for(inti=0;i<b.length;i++){for(intj=0;j<b[i].length;j++){sum+=b[i][j];}}System.out.println("sum="+sum);A)28B)6C)9D)13【答案】A11.有整型数组:int[]x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是().A)2781235B)1235872C)3512872D)8712352【答案】A12.编译和运行下面的应用程序,并在命令行界面输入12345,则回车后屏幕输出的结果是().publicclassA{publicstaticvoidmain(Stringargs[])throwsIOException{BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Stringstr=buf.readLine();intx=Integer.parseInt(str);System.out.println(x/100);}}A)45B)5C)123D)12345【答案】C13.下面的程序段执行后输出的结果是()。StringBufferbuf=newStringBuffer("Beijing2008");buf.insert(7,"@");System.out.println(buf.toString());A)Beijing@2008B)@Beijing2008C)Beijing2008@D)Beijing#2008【答案】A14.下面的程序编译运行后输出的结果是()。publicclassAimplementsRunnable{publicstaticvoidmain(Stringargv[]){Aa=newA();Threadt=newThread(a);t.start();}publicvoidrun(){while(true){try{Thread.currentThread().sleep(1000);}catch(InterruptedExceptione){System.out.println(e.toString());}System.out.println("loopingwhile");}}}A)在屏幕上重复输出"loopingwhile"。B)在屏幕上输出一次"loopingwhile"。C)没有结果输出。D)以上说法都错误。【答案】A15.下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是()。Filef=newFile(填代码处);file=newFileReader(f);in=newBufferedReader(file);A)"1.txt"B)"d:\\my\\1"C)"d:\\my\\1.txt"D)"d:\my\1.txt"【答案】C二、多选题(本大题10小题,每小题2分,共20分)1.下面的说法正确的是()。A)Java语言是面向对象的、解释执行的网络编程语言。B)Java语言具有可移植性,是与平台无关的编程语言。C)Java语言可对内存垃圾自动收集。D)Java语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。【答案】ABCD2.下面main()方法的定义哪些是正确的()?A)publicstaticvoidmain(Stringargs[]){}B)publicstaticvoidmain(String[]){}C)publicstaticvoidmain(String[]args){}D)publicstaticvoidmain(String[]x){}【答案】ACD3.定义变量如下:charc='w';inti=8;longL=15;floatf=8.9f;以下赋值语句正确的是()。A)i=c+i;B)c=c+i;C)L=f+L;D)f=i+L+f;【答案】AD4.下面哪些关键字能用来控制对类成员的访问()?A)publicB)protectedC)privateD)default【答案】ABC5.面向对象程序设计的基本特征是()。A)抽象B)封装C)继承D)多态【答案】ABCD6.下面关于类的说法正确的是()。A)类是Java语言中的一种复合数据类型。B)类中包含数据变量和方法。C)类是对所有具有一定共性的对象的抽象。D)Java语言的类只支持单继承。【答案】ABCD7.编译并运行下面的程序,运行结果为().publicclassT1{publicstaticvoidmain(String[]args){T1a=newT1();a.method(8);a.method(1.2f);}voidmethod(floati){System.out.println("float:"+i);}voidmethod(longi){System.out.println("long:"+i);}}A)程序有编译错误,因为两个method()方法必须定义为静态(static)的。B)程序可以编译运行,输出结果为:long:8C)程序可以编译运行,输出结果为:long:8D)程序中定义的两个参数不同的method方法称为方法重栽。【答案】BD8.下面是在命令行运行Java应用程序A,怎样才能在main(Stringargs[])方法中访问单词"first"()?javaAthefirstsnow,thefirstsnowcame.A)args[0]B)args[1]C)args[2]D)args[5]【答案】BD9.编译并运行下面的程序,运行结果为().publicclassA{publicstaticvoidmain(String[]args){Aa=newB();a.test();}voidtest(){System.out.print("A");}}classBextendsA{voidtest(){super.test();System.out.println("B");}}A)子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。B)代码可以编译运行,并输出结果:AB。C)代码可以编译运行,并输出结果:A。D)子类B定义了与父类A中同名的方法test,java中称为方法的重载。【答案】AB10.下面哪个说法正确()?A)如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B)如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D)接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。【答案】ABCD三、填空题(本大题10小题,每小题1分,共10分)1.创建类的对象时,使用运算符___________给对象分配内存空间。2.定义类的构造方法不能有返回值类型,其名称与_____名相同。3.Java语言中关键字_____表示双精度类型。4.若有定义:floatb={1.1f,3.5f,6.8f};,则b.length()的值是_______。5.若有类定义:classBextendsA{

温馨提示

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

评论

0/150

提交评论