java期末考试题.docx
《java期末考试题.docx》由会员分享,可在线阅读,更多相关《java期末考试题.docx(43页珍藏版)》请在冰豆网上搜索。
java期末考试题
一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题1、关于Java语言叙述错误的是:
(C)A.Java语言具有跨平台性B.Java是一种面向对象的语言C.Java语言中的类可以多继承D.Java的垃圾收集机制自动回收程序已不再使用的对象2、以下叙述正确的是:
(B)的确台aA.构造方法必须是public方法B.main方法必须是public方法C.Java应用程序的文件名可以是任意的D.构造方法应该声明为void类型3、关于Java中数据类型叙述正确的是:
(B)A、整型数据在不同平台下长度不同B.boolean类型数据只有2个值,true和falseC.数组属于简单数据类型D.Java中的指针类型和C语言的一样4、设intx=1,floaty=2,则表达式x/y的值是:
(D)A.0B.1C.2D.以上都不是5、以下语句有语法错的是:
(A)A.intx=1;y=2;z=3B.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.JButtonB.JPaneC.CanvasD.JTextArea10、void的含义:
(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值D.方法的返回值不能参加算术运算11、关于Java中异常的叙述正确的是:
(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的12、所有的异常类皆继承哪一个类?
(C)A.java.io.ExceptionB.java.lang.ThrowableC.java.lang.ExceptionD.java.lang.Error13、下面哪个不是java语言中的关键字?
(B)A.longB.sizeofC.instanceofD.const14、为实现进程之间的通信,需要使用下列那种流才合适?
(D)A.DatastreamB.FilestreamC.BufferedstreamD.Pipedstream15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?
(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.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();}}程序的输出结果为:
EAB4、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;ithevalueofa[0]is0thevalueisa[5]is5
一、单选择题(每小题2分,共10分)
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。
A..javaB..class
C..htmlD..exe
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。
A.3B.3.5
C.4D.5
3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画图操作。
A.start()B.stop()
C.init()D.paint()
4、不允许作为类及类成员的访问控制符的是()。
A.publicB.private
C.staticD.protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。
A.staticvoidmethod()B.publicvoidmethod()
C.finalvoidmethod()D.abstractvoidmethod()
二、填空题(每空格1分,共20分)
1、开发与运行Java程序需要经过的三个主要步骤为、
和。
2、如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是类的子类并且存储该源程序文件的文件名为。
3、如果一个JavaApplet程序文件中定义有3个类,则使用Sun公司的JDK编译
器编译该源程序文件将产生个文件名与类名相同而扩展名为的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
用字节内存空间,这样,无论是中文字符还是英文字符,都是占
用字节内存空间。
5、设x=2,则表达式(x++)/3的值是。
6、若x=5,y=10,则x=y的逻辑值分别为和。
7、方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
方法是不能被当前类的子类重新定义的方法。
8、创建一个名为MyPackage的包的语句是,
该语句应该放在程序的位置为:
。
9、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};则执行以下几个语句后的输出结果是。
ints=0;
for(inti=0;iif(i%2==1)s+=MyIntArray[i];
System.out.println(s);
10、在Java程序中,通过类的定义只能实现重继承,但通过接口的定义可以实现重继承关系。
三、写出下列程序完成的功能。
(每小题5分,共20分)
1、publicclassSum
{publicstaticvoidmain(Stringargs[])
{doublesum=0.0;
for(inti=1;i<=100;i++)
sum+=1.0/(double)i;
System.out.println("sum="+sum);
}
}
2、importjava.io.*;
publicclassReverse
{publicstaticvoidmain(Stringargs[])
{inti,n=10;
inta[]=newint[10];
for(i=0;itry{
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
a[i]=Integer.parseInt(br.readLine());//输入一个整数
}catch(IOExceptione){};
for(i=n-1;i>=0;i――)
System.out.print(a[i]+"");
System.out.println();
}
}
3、importjava.awt.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{newFrameOut();}
}
classFrameOutextendsFrame//Frame为系统定
{Buttonbtn;//义的窗框类
FrameOut()
{super("按钮");
btn=newButton("按下我");
setLayout(newFlowLayout());
add(btn);
setSize(300,200);
show();
}
}
4、importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{SubClasssb=newSubClass();
System.out.println(sb.max());
}
}
classSuperClass
{inta=10,b=20;}
classSubClassextendsSuperClass
{intmax(){return((a>b)?
a:
b);}}
四、写出下面程序的运行结果(每小题10分,共30分)
1、importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB("Hello!
","IloveJAVA.");
System.out.println(s.toString());
}
}
classAB{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2)
{s1=str1;s2=str2;}
publicStringtoString()
{returns1+s2;}
}
2、importjava.io.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;iif(a[i]%3==0)s+=a[i];
System.out.println("s="+s);
}
}
3、importjava.io.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
)
{System.out.println("a="+a+"\nb="+b);}
}
classSubClassextendsSuperClass
{intc;
SubClass(intaa,intbb,intcc)
{super(aa,bb);
c=cc;
}
}
classSubSubClassextendsSubClass
{inta;
SubSubClass(intaa,intbb,intcc)
{super(aa,bb,cc);
a=aa+bb+cc;
}
voidshow()
{System.out.println("a="+a+"\nb="+b+"\nc="+c);}
}
五、使用Java语言编写程序。
(每小题10分,共20分)
1、编写一个字符界面的JavaApplication程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
2、编写一个完整的JavaApplet程序使用复数类Complex验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。
复数类Complex必须满足如下要求:
(1)复数类Complex的属性有:
RealPart:
int型,代表复数的实数部分
ImaginPart:
int型,代表复数的虚数部分
(2)复数类Complex的方法有:
Complex():
构造函数,将复数的实部和虚部都置0
Complex(intr,inti):
构造函数,形参r为实部的初值,i为虚部的初值。
ComplexcomplexAdd(Complexa):
将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
StringToString():
把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。
《JAVA语言程序设计》期末考试模拟试题
参考答案及评分标准
一、单选择题(每小题2分,共10分)
1、B2、A3、D4、C5、A
二、填空题(每空格1分,共20分)
1、编辑源程序、编译生成字节码、解释运行字节码
2、Applet、MyApplet
3、javac.exe、3、.class
4、2、2
5、0
6、true、false
7、抽象(abstract)方法、最终(final)方法
8、packageMyPackage;应该在程序第一句。
9、120
10、单、多
三、写出下列程序完成的功能。
(每小题5分,共20分)
1、计算1/1+1/2+1/3+...+1/100的值。
2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
4、求两个数的最大值。
四、写出下面程序的运行结果(每小题10分,共30分)
1、Hello!
IloveJAVA.
2、s=180
3、a=60
b=20
c=30
五、使用Java语言编写程序。
(每小题10分,共20分)
1、参考程序如下:
importjava.io.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{inti,n=10,max=0,min=0,temp=0;
try{
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
max=min=Integer.parseInt(br.readLine());
}catch(IOExceptione){};
for(i=2;i<=n;i++){
try{
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
temp=Integer.parseInt(br.readLine());
if(temp>max)max=temp;
if(temp}catch(IOExceptione){};
}
System.out.println("max="+max+"\nmin="+min);
}
}
2、参考程序如下:
importjava.applet.*;
importjava.awt.*;
publicclassabcextendsApplet
{
Complexa,b,c;
publicvoidinit()
{
a=newComplex(1,2);
b=newComplex(3,4);
c=newComplex();
}
publicvoidpaint(Graphicsg)
{
c=plexAdd(b);
g.drawString("第一个复数:
"+a.toString(),10,50);
g.drawString("第二个复数:
"+b.toString(),10,70);
g.drawString("两复数之和:
"+c.toString(),10,90);
}
}
classComplex
{
intRealPart;//复数的实部
intImaginPart;//复数的虚部
Complex(){RealPart=0;ImaginPart=0;}
Complex(intr,inti)
{RealPart=r;ImaginPart=i;}
ComplexcomplexAdd(Complexa)
{
Complextemp=newComplex();//临时复数对象
temp.RealPart=RealPart+a.RealPart;
temp.ImaginPart=ImaginPart+a.ImaginPart;
returntemp;
}
publicStringtoString()
{return(RealPart+"+"+ImaginPart+"i");}
}
一、判断题
2、Java的源代码中定义几个类,编译结果就生成几个以“.class”后缀的字节码文件。
(Y)
3、JavaApplet是由独立的解释器程序来运行的。
(N)
4、JavaApplication是由独立的解释器程序来运行的。
(Y)
5、JavaApplet的字节码文件必须嵌入HTML的文件中并由负责解释HTML文件的WWW浏览器充当解释器来解释运行。
(Y)
7、Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。
(Y)
8、Java中数组的元素只能是简单数据类型的量。
(N)
9、Vector类中的对象不能是简单数据类型。
(Y)
10、Java的String类的对象既可以是字符串常量,也可以是字符串变量。
(N)
11、Java中用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。
(N)
12、Java的屏幕坐标是以像素为单位,容器的左上角被确定为坐标的起点。
(Y)
13、在Java中,并非每个事件类都只对应一个事件。
(Y)
14、一个类只能有一个父类,但一个接口可以有一个以上的父接口。
(Y)
15、由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。
(N)
16、Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
(N)
17、注释的作用是使程序在执行时在屏幕上显示//之后的内容。
(N)
18、Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。
(N)
19、所有的鼠标事件都由MouseListener监听接口的监听者来处理。
(N)
20、Applet是一种特殊的Panel,它是JavaApplet程序的最外层容器。
(N)
二、填空题
1、根据结构组成和运行环境的不同,Java程序可分为两类:
JavaApplet 、
Javaapplication 。
2、类的修饰符分为abstract、public。
3、程序中定义类使用的关键字是class,每个类的定义由类头定义、类体定义两部分组成,其中类体部分包括属性、方法。
4、Java程序中定义接口所使用的关键字是interface,接口中的属性都是静态变量,接口中的方法都是抽象方法。
5、Object是Java程序中所有类的直接或间接父类,也是类库中所有类的父类。
三、选择题
1、下列哪一项不是域的非访问控制符。
(D)
(A)static(B)final(C)volatile(D)public
2、关于被私有保护访问控制符privateprotected修饰的成员变量,以下说法正确的是(B)
(A)可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
(B)可以被两种类访问和引用:
该类本身、该类的所有子类
(C)只能被该类自身所访问和修改
(D)只能被同一个包中的类访问
3、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)
(A)可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
(B)可以被两种类访问和引用:
该类本身、该类的所有子类
(C)只能被该类自身所访问和修改
(D)只能被同一个包中的类访问
4、下列关于修饰符混用的说法,错误的是(D)
(A)abstract不能与final并列修饰同一个类
(B)abstract中不可以有private的成员
(C)abstract方法必须在abstract类中
(D)static方法中能处理非static的属性
5、容器Panel和Applet缺省使用的布局编辑策略是(B)
(A)BorderLayout(B)FlowLayout(C)GridL