Java真题版.docx
《Java真题版.docx》由会员分享,可在线阅读,更多相关《Java真题版.docx(18页珍藏版)》请在冰豆网上搜索。
Java真题版
JAVA复习题
选择题
3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。
A.start()B.stop()
C.init()D.paint()
3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?
B
A)安全性B)多线程C)跨平台D)可移植
4、下列哪个类声明是正确的?
D
A)abstractfinalclassHI{···}B)abstractprivatemove(){···}
C)protectedprivatenumber;D)publicabstractclassCar{···}
6、在Java语言中,下列哪些语句关于内存回收的说明是正确的?
B
A.程序员必须创建一个线程来释放内存;
B.内存回收程序负责释放无用内存
C.内存回收程序允许程序员直接释放内存
D.内存回收程序可以在指定的时间释放内存对象
10、下列Object类中的方法,哪一项不是完全跟线程有关:
A
A.StringtoString()
B.voidnotify()
C.voidnotifyAll()
D.voidwait()
11、给出下面代码:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
}
}
下列说法中正确的是?
C
A.编译时将产生错误;
B.编译时正确,运行时将产生错误;
C.输出零;
D.输出空。
12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:
B
A.String(char[]value,intoffset,intcount)
B.String(int[]codePoints,intoffset,intcount)
C.String(Stringoriginal)
D.String(StringBufferbuffer)
13、下列说法中正确的是:
C
A.导入包会影响程序的性能
B.包存储在类库中
C.包是类的容器
D.上述说法都不对
14、下列不是String类的常用方法是:
C
A、booleanequals(Stringstr)
B、intcompareTo(Stringstr)
C、intSetindexOf(Stringstr)
D、intlastIndexOf(Stringstr)
17、表达式:
(x>y)?
(z>w)?
x:
z:
w,(其中x=5,y=9,z=1,w=9)的值为:
D
A、5B、8
C、1D、9
1、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )?
B
A、public static void main( )
B、public static void main( String args[] )
C、public static int main(String [] arg )
D、public void main(String arg[] )
5、欲构造ArrayList类的一个实例,下列哪个方法是正确的?
B
A.ArrayListmyList=newObject();
B.ArrayListmyList=newArrayList();
C.myList=newObject();
D.myList=newArrayList();
7、哪个关键字可以对对象加互斥锁?
B
A.transient
B.synchronized
C.serialize
D.static
9、下列叙述中,错误的是:
D
A、父类不能替代子类
B、子类能够替代父类
C、子类继承父类
D、父类包含子类
10、下列关于Java多线程并发控制机制的叙述中,错误的是:
C
A、Java中对共享数据操作的并发控制是采用加锁技术
B、线程之间的交互,提倡采用suspend()/resume()方法
C、共享数据的访问权限都必须定义为private
D、Java中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生
12、下列哪一个方法不是applet程序的组成部分:
D
A、init()B、start()
C、stop()D、new()
15、Java应用程序中,程序执行的总入口方法是:
B
A、start()B、main()
C、run()D、init()
16、在Java实现线程有多少种方法:
B
A、1B、2
C、3D、4
18、下列Applet类的方法中,在Applet的整个生命周期里至多只执行一次的是:
A
A、init()B、start()
C、stop()D、paint()
19、启动一个线程所调用的方法是:
C
A、run()B、init()
C、start()D、new()
判断题
1.一个Java类可以有多个父类。
False
4.Java小程序Applet的主类的父类必须是类Applet。
True
5.break语句可以用在循环和switch语句中。
T
6.在Java中,异常Exception是指程序在编译和运行进出现的错误。
F
7.可以用new来创建一个类的实例,即对象。
T
8.Java使用16位的Unicode字符集,而不仅仅为ASCII字符集,因此Java字符是一个16位的无符号整数。
T
10.子类的成员变量能与其父类的成员变量同名。
T
11.Java类中不能存在同名的两个成员函数。
12.Java语言是编译性语言。
16.final方法不能被覆盖。
20.多数I/O方法在遇到错误是会抛出异常,因此在调用这些方法时必须对异常进行处理。
N
2.abstract是抽象修饰符,可以用来修饰类及其属性和方法。
4.一个JavaApplet源程序的主类能有多个父类。
6.用javac编译Java源文件后得到代码叫字节码。
T
7.可以用类名调用实例方法。
9.要想在类中实现多线程,类必须继承Thread类。
11.Java语言是平台无关的语言。
T
12.在类的静态方法中可以访问该类的非静态数据成员。
13.Java中方法调用时参数传递都是按值传递的,因此从方法退出时,参数的值不会改变。
14.声明为final的方法不能在子类中重载。
15.在子类中可以覆盖一个private方法。
19.在方法定义中,所有可能发生的异常都必须用try{}catch(){}捕捉并处理F
1.请写出输出结果
classchange{
voidchangeint(intx){
x++;
}
publicstaticvoidmain(Stringargs[]){
inta=2;
System.out.println(“Beforechanged:
"+"a="+a);//请系统输出Beforechanged:
a=
changecxz=newchange();
cxz.changeint(a);
System.out.println("Afterchanged:
"+"a="+a);
}
}
答案:
Beforechanged:
a=2
Afterchanged:
a=2
2.下面程序运行的最终结果i是:
____2____
publicclassFoo{
publicstaticvoidmain(String[]args){
inti=1;
intj=i++;
if((i>++j)&&(i++==j)){
i+=j;
}
}
}
3、阅读以下程序,请写出输出结果
importjava.lang.*;
publicclassStrCompare
{
publicstaticvoidmain(String[]args)
{
String
str1="Hello,Java!
",
str2="hello,java!
";
System.out.println(pareToIgnoreCase(str2));
System.out.println(str1.equals(str2));
System.out.println(str1.equalsIgnoreCase(str2));
}
}
0
false
true
4、阅读以下程序,请写出输出第一行结果
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{inti=3,j;
while(i>0){
j=3;
while(j>0){
if(j<2)
break;
System.out.println("j+and"+i);
j--;
}
i--;
}
}
}
输出:
j+and3//第一行
j+and3
j+and2
j+and2
j+and1
j+and1
5、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;}
}
Hello!
IloveJAVA.
6、阅读以下程序,请写出输出c.x=是多少
publicclasswithstaticdata{
staticintx;
inty;
publicstaticvoidmain(String[]args){
withstaticdataa=newwithstaticdata();
a.x=1;
System.out.println(a.x);
withstaticdatab=newwithstaticdata();
b.x=2;
System.out.println(b.x);
System.out.println(a.x);
withstaticdatac=newwithstaticdata();
System.out.println("c.x="+c.x);
}
}
1
2
2
c.x=2
publicclassStaticFun{
staticvoidincr(){
withstaticdata.x++;
}
publicstaticvoidmain(String[]args)
{
StaticFun.incr();
}
}
1、在横线上填上适当的内容
importjava.awt.*;
importjava.applet.*;
publicclassAppletLifeextendsApple//声明为Apple类
{
Colorr;
publicvoidinit()//初始化
{
System.out.println("Appletiniting...");
r=Color.red;
}
publicvoidstart()
{
System.out.println("Appletstarting...");
}
publicvoidstop()
{
System.out.println("Appletstopping...");
}
publicvoidpaint(Graphicsg)
{
System.out.println("Appletpainting...");
g.setColor(r);
g.drawString("Paintinghere!
",50,60);
}
publicvoiddestroy()
{
System.out.println("Appletdestroy...");
}
}
2.阅读以下程序,请写出输出结果
publicclasstt{
publicstaticvoidmain(String[]args){
Strings=newString("Bicycle");
intiBegin=1;
intiEnd=3;
System.out.println(s.substring(iBegin,iEnd));
}
}
ic
3、请在相应的划线上填上代码
publicclassCircumferenceTester{
publicstaticvoidmain(Stringargs[]){
Circlec1=newCircle();
c1.radius=50;
Circlec2=newCircle();
c2.radius=10;
doublecircum1=c1.circumference();
doublecircum2=c2.circumference();
System.out.println("Circle1hascircumference"+circum1);
System.out.println("Circle2hascircumference"+circum2);
}
}
publicclassCircle
{
staticdoublePI=3.141;//静态double常量PI为3.141
intradius;
publicdoublecircumference()
{
returnPI*2*radius;
}
publicdoublearea()
{
returnPI*radius*radius;
}
publicvoidenlarge(intfactor){
radius=radius*factor;
}
publicbooleanfitsInside(Rectangler){
return(2*radius}
}
4、阅读以下程序,请写出输出结果
classfather{
voidspeak(){
System.out.println("Iamfather!
");
}
}
publicclasssonextendsfather{
voidspeak(){
super.speak();
System.out.println("Iamson!
");
}
publicstaticvoidmain(Stringargs[]){
soncxz=newson();
cxz.speak();
}
}
Iamfather!
Iamson!
5.写出下面程序的运行结果
import java.io.*;
class Parent
{
void printMe()
{
System.out.println("parent");
}
}
class Child extends Parent
{
void printMe()
{
System.out.println("child");
}
void printAll()
{
super.printMe();
this.printMe();
printMe();
}
}
public class Class1
{
public static void main(String args[ ])
{
Child myC = new Child( );
myC.printAll( );
}
}
parent
child
child
6.写出下面程序的运行结果
import java.io.*;
public class abc
{
public static void main(String args[])
{
String s1 = "Hello!
";
String s2 = new String("World!
");
System.out.println(s1.concat(s2));
}
}
Hello!
World!
四、程序设计
定义能计算圆的面积、周长的类circle,半径r为私有数据分量,其值由类circle的构造函数初始化,类circle提供读取半径r的方法getr();计算面积的方法area();计算周长的方法circlelength()。
再定义类circlecomputer其包含程序运行所需的方法main,圆的半径为1,请设计程序,必须使用类circle的构造函数及方法初始化数据分量和计算圆的面积、周长并打印出如下形式的结果。
半径面积周长
classcircle{
staticdoublePI=3.141;
privatefloatr;
circle(floatr){
this.r=r;
}
publicfloatgetr(){//读取半径r的方法getr()
returnr;
}
publicdoublearea(){//计算面积的方法area()
doublearea;
area=PI*this.getr()*this.getr();
returnarea;
}
publicdoublecirclelength(){//计算周长的方法circlelength()
doublecirclelength;
circlelength=PI*2*this.getr();
returncirclelength;
}
}
publicclasscirclecomputer{
publicstaticvoidmain(Stringargs[]){
circlec=newcircle
(1);
System.out.println("半径\t"+"面积\t"+"周长\t");
System.out.println(c.getr()+"\t"+c.area()+"\t"+c.circlelength());
}
}
定义能计算三角形的面积、周长的类js,三边a,b,c都为私有数据分量,其值由类sj的构造函数初始化,类js提供读取各边长度a,b,c的方法分别为geta();getb();getc();计算面积的方法area();计算周长的方法sjlength()。
(三角形面积公式:
其中s=(a+b+c)/2)
再定义类jxcomputer其包含程序运行所需的方法main,矩三角形的三边a为3,b为6,c为8请设计程序必须使用类sj的构造函数及方法初始化数据分量和计算的三角形的面积、周长并打印出如下形式的结果。
abc面积周长
10…………
classjs{
privatefloata;
privatefloatb;
privatefloatc;
js(floata,floatb,floatc){
this.a=a;
this.b=b;
this.c=c;
}
publicfloatgeta(){
returnthis.a;
}
publicfloatgetb(){
returnb;
}
publicfloatgetc(){
returnc;
}
publicdoublearea(){
doubles;
doublearea;
s=(a+b+c)/2;
area=s*(s-a)*(s-b)*(s-c);
area=java.lang.Math.sqrt(area);//sqrt为开根号函数
returnarea;
return0;
}
publicfloatsjlength(){
returna+b+c;
}
}
publicclassjxcomputer{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
jsjs=newjs(3,6,8);
System.out.println("a\t"+"b\t"+"c\t"+"面积\t"+"周长\t");
System.out.println(js.geta()+"\t"+js.getb()+"\t"+js.getc()+"\t"+js.area()+"\t"+js.sjlength());
}
}