Java常见笔试题及答案.docx
《Java常见笔试题及答案.docx》由会员分享,可在线阅读,更多相关《Java常见笔试题及答案.docx(12页珍藏版)》请在冰豆网上搜索。
Java常见笔试题及答案
Java常见笔试题及答案
一、单选择题(每小题2分,共10分)
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A..javaB..class
C..htmlD..exe
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5
C.4D.5
3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的(D)方法来完成一些画图操作。
A.start()B.stop()
C.init()D.paint()
4、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.private
C.staticD.protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.staticvoidmethod()B.publicvoidmethod()
C.finalvoidmethod()D.abstractvoidmethod()
二、填空题(每空格1分,共20分)
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。
2、如果一个JavaApplet源程序文件只定义有一个类,该类
的类名为MyApplet,则类MyApplet必须是Applet、类的子类
并且存储该源程序文件的文件名为MyApplet。
3、如果一个JavaApplet程序文件中定义有3个类,则使用
Sun公司的JDK编译器javac.exe编译该源程序文件将产生3个文件名与类名相同而扩展名为.class的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
5、设x=2,则表达式(x++)/3的值是0。
6、若x=5,y=10,则x=y的逻辑值分别为true和false。
7、抽象(abstract)方法方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
最终(final)方法方法是不能被当前类的子类重新定义的方法。
8、创建一个名为MyPackage的包的语句packageMyPackage;,
该语句应该放在程序的位置为:
应该在程序第一句。
9、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};则执行以下几个语句后的输出结果是120。
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);
}
}
1、计算1/1+1/2+1/3+...+1/100的值。
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();
}
}
2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
3、importjava.awt.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{newFrameOut();}
}
classFrameOutextendsFrame//Frame为系统定
{Buttonbtn;//义的窗框类
FrameOut()
{super("按钮");
btn=newButton("按下我");
setLayout(newFlowLayout());
add(btn);
setSize(300,200);
show();
}
}
3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
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);}}
4、求两个数的最大值。
四、写出下面程序的运行结果(每小题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;}
}Hello!
IloveJAVA.
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);
}
}s=180
五、使用Java语言编写程序。
(每小题10分,共20分)
1、编写一个字符界面的JavaApplication程序,接受用户
输入的10个整数,并输出这10个整数的最大值和最小值。
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);
}
}
1.给定下面的代码片段:
1)Stringstr=null;
2)if((str!
=null)&&(str.length()>10)){
3)System.out.println("morethan10");
4)}
5)elseif((str!
=null)&(str.length()<5)){
6)System.out.println("lessthan5");
7)}
8)else{System.out.println("end");}
哪些行会导致错误?
Aline1Bline2Cline5Dline8
2.下面哪种注释方法能够支持javadoc命令:
A/**...**/B/*...*/C//D/**...*/
3. 欲编写如下图的一个界面,用于显示用户指定的图像:
如果在区域A中只能放置一个AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件:
ATextAreaBPanelCAppletDCanvas
4. 界面如上题所示。
若"Button1"的功能是:
点击后弹出一个用于输入的界面,获取用户想要显示的图像文件名,则该界面最好是(从编程简单和程序不易出错的角度考虑):
A模式(Modal)Dialog
B非模式(None-modal)Dialog
CFileDialog
DFrame
5. 界面如上题所示。
如果在A区域使用某种AWT组件(java.awt.Component的子类)来负责绘制图像,则绘图的语句最好应放在该组件的哪个方法中(考虑到应用程序和Java虚拟机的AWT线程都会要求重画该组件)?
A构造方法
Bpaint(Graphicsg)
Cupdate(Graphicsg)
Drepaint()
6.下面关于Applet的说法正确的是
AApplet也需要main方法
BApplet必须继承自java.awt.Applet
CApplet能访问本地文件
DApplet程序不需要编译
7.看下面一段程序:
classAclass{
voidgo(){
System.out.println("Aclass");
}
}
publicclassBclassextendsAclass{
voidgo{
System.out.println("Bclass");
}
publicstaticvoidmain(Stringargs[]){
Aclassa=newAclass();
Aclassa1=newBclass();
a.go();
a1.go();
}
以上程序运行结果是:
AAclass AclassBBclass Bclass
CAclass BclassDBclass Aclass
8.下列关于Java线程的说法那些是正确的()
A每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。
B创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。
CThread类属于java.util程序包。
D以上说法无一正确。
9.看以下程序:
booleana=false;
booleanb=true;
booleanc=(a&&b)&&(!
b);
intresult=c==false?
1:
2;
这段程序执行完后,c与result的值是:
Ac=false;result=1;
Bc=true;result=2;
Cc=true;result=1;
Dc=false;result=2;
10.运行下列程序,会产生什么结果
publicclassXextendsThreadimplementsRunable{
publicvoidrun(){
System.out.println("thisisrun()");
}
publicstaticvoidmain(Stringargs[])
{
Threadt=new Thread(newX());
t.start();
}
}
A第一行会产生编译错误
B第六行会产生编译错误
C第六行会产生运行错误
D程序会运行和启动
11.指出下列程序的运行结果
inti=9;
switch(i){
default:
System.out.println("default");
case0:
System.out.println("zero");
break;
case1:
System.out.println("one");
case2:
System.out.println("two");
}
Adefault
Bdefault,zero
Cerrordefaultclausenotdefined
Dnooutputdisplayed那个
12.运行下列程序,会产生什么结果:
classOuter1{
privateinta;
voidfoo(doubled,finalfloatf){
Strings;
finalbooleanb;
classInner{
voidmethodInner(){
System.out.println("intheInner");
}
}
}
publicstaticvoidmain(Stringargs[])
{
Outer1me=newOuter1();
me.foo(123,123);
System.out.println("outer");
}
}
AintheInnerouter
Bouter
CintheInner
D编译不通过
1. 编写一个程序用选择法对数组a[]={20,10,50,40,30,70,60,80,90,100}进行由大到小的排序。
importjava.io.*;
publicclassSelectSort
{
publicstaticvoidmain(Stringargs[])
{
inta[]={20,10,50,40,30,70,60,80,90,100};
inttemp;
for(inti=0;i for(intj=i+1;j {
if(a[i] temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for(intk=0;k {
System.out.println("a["+k+"]:
"+a[k]);
}
}
}
2. 使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。
importjava.io.*;
import.*;
publicclassHelloServer
{
publicstaticvoidmain(Stringargs[])throwsIOException
{
ServerSocketserver=null;
server=newServerSocket(8888);
SocketClientSocket=null;
ClientSocket=server.accept();
Stringline;
BufferedReaderis=newBufferedReader(newInputStreamReader(ClientSocket.getInputStream()));
PrintWriteros=newPrintWriter(ClientSocket.getOutputStream());
while(true)
{
line=is.readLine();
if(line.equals("hello")){
os.println("hello");
os.flush();
}
}
}
}
3. 编写一个应用程序,创建三个线程分别显示各自的时间。
importjava.util.*;
importjava.text.*;
classThreeTimeThreadextendsThread
{
publicThreeTimeThread(Stringstr)
{
super(str);
}
publicvoidrun()
{
while(true){
SimpleDateFormatformatter=newSimpleDateFormat("yyyy.MM.ddG'at'hh:
mm:
ssz");
DatecurrentTime=newDate();
try{
sleep(1000);
}catch(Exceptione){}
StringdateString=formatter.format(currentTime);
System.out.println(getName()+":
"+dateString);
}
}
publicstaticvoidmain(Stringargs[])throwsException
{
newThreeTimeThread("first").start();
newThreeTimeThread("second").start();
newThreeTimeThread("third").start();
}
}