java模拟题及参考答案.docx
《java模拟题及参考答案.docx》由会员分享,可在线阅读,更多相关《java模拟题及参考答案.docx(15页珍藏版)》请在冰豆网上搜索。
java模拟题及参考答案
JAVA模拟题
(本试卷考试时间90分钟)
一、单选题(本大题15道小题,每小题1分,共15分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1.关于类的继承,错误的说法是______。
答案:
D
A.通过继承可以重用已有的代码,同时增加新的代码来进行功能的扩展。
B.被继承的类称为超类,从超类派生出来的新类称为子类。
C.Java中只支持单重继承,不支持多重继承,所以一个类只能有一个超类。
D.子类必须继承父类的所有成员。
2.Applet在浏览器中显示的文件扩展名为__________。
答案:
C
A..java
B..txt
C..class
D..html
3.在编译和运行下面的代码时,出现下列__________情况。
publicclassTest{
booleanp;
publicstaticvoidmain(String[]args){
System.out.println(p);
}
}答案:
A
A.编译时错误
B.编译通过并输出结果false
C.编译通过并输出结果true
D.编译通过并输出结果null
4.由SunMicrosystem公司开发的Java程序开发软件包简称为__________。
答案:
B
A.ECLIPSE
B.SDK
C.TDK
D.JDE
5.以下声明的变量中,__________是合法的。
答案:
D
A.intra-net
B.2nong
C.Tea&
D.stu_a
6.下面__________不是java中的访问权限。
答案:
D
A.public
B.private
C.protected
D.static
7.下列概念不正确的是__________。
答案:
D
A.在一个抽象类中能够定义抽象方法
B.定义了抽象方法的类必定是抽象类
C.在抽象类定义的方法中不可以同时用fianl和abstract说明
D.在抽象类定义的方法中可以同时用static和abstract说明
8.关于类变量的正确说法是__________。
答案:
C
A.在类中定义的变量
B.由class进行修饰
C.由static进行修饰,类中的任何对象访问时,都将取得相同的数值
D.实例变量是用static关键字声明的
9.设数组Array由以下语句定义
intiarray=newint[10];
则数组的最后一个元素的正确引用方法为__________。
答案:
D
A.iarray[10]
B.iarray[0]
C.iarray[iarray.length]
D.iarray[9]
10.continue在循环语句中的作用是__________。
答案:
A
A.停止本轮循环中剩余语句的执行
B.只能停止当前层循环的执行
C.实现任何层循环的停止运行
D.只能停止最外层循环的执行
11.下面关于构造方法的错误说法是__________。
答案:
A
A.构造方法不可以重载
B.构造方法一定要和类名相同
C.构造方法没有返回值
D.构造方法也属于类的方法,用于创建对象的时候给成员变量赋值
12.顺序执行下列程序语句后,b的值是__________。
Stringa="HelloWorld!
";
Stringb=a.substring(6,12);答案:
B
A.World
B.World!
C.hello
D.null
13.float型数据在计算机内所占用的存储空间为__________字节。
答案:
B
A.2
B.4
C.8
D.16
14.在图形界面上进行绘画的paint()方法使用的是______类型的参数。
答案:
C
A.String
B.Font
C.Graphics
D.Color
15.下面是关于多态的陈述,其中正确的说法是__________。
答案:
C
A.多态性不具有面向对象程序设计的特征
B.多态性是指相同的方法,可以有不同的实现
C.多态性通过方法的重载和覆盖来实现
D.Java中,多态就是指一个类可以构造不同形态的对象
二、程序填空题(本大题2道小题,每空3分,共30分)。
1.下面是一个Application程序,接受用户从键盘输入的10个整数,然后将这10个数按从大到小的方式排序并输出,请将程序补充完整。
importjava.io.*;
publicclassPaiXu{
publicstaticvoidmain(Stringargs[]){
intarr[]=new______
(1)______,i,j;
for(i=0;i<10;i++){
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
arr[i]=Integer.parseInt(______
(2)______);
}
for(i=0;i<10;i++)
for(______(3)_____;j<10;j++)
if(arr[i]>arr[j]){
intt=arr[i];arr[i]=arr[j];______(4)_____;
}
System.out.println("排序结果为:
");
for(i=0;i<10;i++)
______(5)_____;
}
}
1):
【int[10]】
2):
【br.readLine()】
3):
【j=i】【j=i+1】
4):
【arr[j]=t】
5):
【System.out.print(arr[i]+"\t")】
2.下面的Applet实现在窗体上按输入值作为半径画圆的功能(如图),该程序界面上有一个标签、一个文本框和两个命令按钮;当在文本框中输入圆半径(整数)并单击"绘图"按钮后,将在窗体上画出一个红色圆,单击"清除"按钮则清除所画内容,请将程序补充完整。
(图示是用Eclipse运行的显示效果,在此仅作参考)。
importjava.awt.*;
importjava.awt.event.*;
importjava.applet.*;
publicclassDrawingextendsApplet{
TextFieldte=newTextField(5);
Labella1=newLabel("请输入圆半径:
");
Buttondraw=
(1);
Buttonclear=newButton("清除");
Panelp1=newPanel(newFlowLayout());
Panelp2=newPanel(newFlowLayout());
intr;
publicvoidinit(){
this.setLayout(newBorderLayout());
p1.add(la1);
p1.add(te);
this.add(p1,"North");
p2.add(
(2));//draw
p2.add(clear);
this.add(p2,"South");
draw.addActionListener((3));//newdrawL()
clear.addActionListener(newclearL());
}
publicvoidpaint(Graphicsg){
g.setColor(newColor(255,0,0));
g.fillOval(30,50,(4));//2*r,2*r
g.setColor(newColor(0,0,0));
g.drawString("圆半径为:
"+r,56,46);
}
classdrawLimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
intj=Integer.parseInt(te.getText());
(5)r=j;
repaint();
}
}
classclearLimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
te.setText(null);
r=0;
repaint();
}
}
}
1):
【newButton("绘图")】
2):
【draw】
3):
【newdrawL()】
4):
【2*r,2*r】
5):
【r=j】
三、操作题
注意:
编程所需的常用方法参考见最后。
(一)程序调试题(本大题3小题,共8个错误,每改正一个2.5分,共20分)
1.从"C:
\素材"中取出check1.java文件,该程序有三个错误。
该程序运行时应输出如下的结果:
请按题中的要求调试修改该程序,并将结果(包括源文件、字节码文件)保存到C:
\KS目录中。
请务必在所修改的语句后加上注释语句:
//*****。
Check1:
publicclassTest2_1{
publicvoidmain(Stringargs[]){//*****插入static
inti;
for(i=1;i<=8;i+=1)//*****(i=1;i<=8;i+=1)->(i=1;i<=8;i+=2)
disp(i);
}
staticvoiddisp(inti){
for(intk=8;k>=i;k--)
System.out.print("");
for(intk=1;k<=i;k++)
System.out.print("*");
System.out.print("");//*****print–〉println
}
}
2.从"C:
\素材"中取出check2.java文件,该程序有两个错。
称序的功能是:
由键盘输入一个小于”100”的数字字符串(例如"38"),将它转换成整数,然后计算并输出从该整数到100之间所有整数的累加和。
请按题中的要求调试修改该程序,并将结果(包括源文件、字节码文件)保存到C:
\KS目录中。
请务必在所修改的语句后加上注释语句:
//*****。
importjava.io.*;
publicclasscheck2{
publicstaticvoidmain(Stringargs[])throwsIOException{
intnum1,s;
Stringstr;
BufferedReaderbuf;
buf=newBufferedReader(newInputStreamReader(System.in));
System.out.print("请输入整数:
");
str=buf.readLine();
num1=Integer.parseInt(str);
if(num1>=100)
System.out.print("输入的数已超出范围");
else
{s=0;
for(inti=num1;i<=100;i++)//*****‘<=’->‘<’
s=s*i;//*****‘*’->‘+’
System.out.println("Thesumis"+s);
}
}
}
3.从"C:
\素材"中取出check3.java文件,该程序在Item类中有三个错。
运行该程序应产生如下结果:
4foods
14televisions
10foods
请按题中的要求调试修改该程序,并将结果(包括源文件、字节码文件)保存到C:
\KS目录中。
请务必在所修改的语句后加上注释语句:
//*****。
publicclasscheck3{
publicvoidmain(String[]args){
Itemt1=newItem("food");
System.out.println(t1);
Itemt2=newItem("television");
System.out.println(t2);
t2.setValue(10);
System.out.println(t1);
}
}
classItem{
privateStringname;
privatestaticintvalue=0;
publicItem(StringtheName){
theName=name;//*****theName=name->name=theName
value=value+theName.length();
}
publicvoidsetValue(intnewValue){
value=newValue;
}
publicStringtoString{//*****toString->toString()
returnvalue+""+name;//*****name->name+’s’
}
}
(二)编程题(本题2小题,第1题15分,第2题20分,共35分)
1.从"C:
\素材"中取出mn.java文件,在该文件基础上进行补充,完成所需内容的编写。
该程序的功能是:
打印数组中所有的字符串。
若数组中有相同的字符串,则相同的字符串只打印一次。
其关键程序段以方法实现。
它是一个以字符串数组为参数,名为uniqueStrings()的方法。
请编写该方法。
程序完成后将程序编辑及运行所需要的所有文件(包括源程序文件、字节码文件)存放到C:
\KS目录下。
若执行正确的程序将输出如下结果:
one
two
three
参考程序:
publicclassmn{
publicstaticvoidmain(String[]args){
String[]words={"one","two","two","three","three","three","one"};
uniqueStrings(words);
}
privatestaticvoiduniqueStrings(String[]words){
for(inti=0;ibooleanunique=true;
for(intj=0;j
if(words[i].equals(words[j]))
unique=false;
}
if(unique)
System.out.println(words[i]);
}
}
}
2.从"C:
\素材"中取出Test5.java文件。
Test5创建三个Locker类的对象,调用相应的方法,完成给定要求的输出。
Locker类用来存放银行保管箱租用者的姓名(hirer)、柜号(cabinetNum)、箱号(num)以及是否空闲(isVacant)的信息。
当程序正确完成后,产生的输出如下所示:
C:
\>javaTest5
柜号:
3,箱号:
301当前由李瑞杰使用
柜号:
3,箱号:
302当前由张佳利使用
柜号:
2,箱号:
201当前由张佳利使用
现在空闲柜号:
3,箱号:
301当前空闲
同一租用者柜号:
3,箱号:
302当前由张佳利使用
同一租用者柜号:
2,箱号:
201当前由张佳利使用
具体要求:
(1)根据输出结果,完成main方法;
(2)程序中必须调用Student类实例方法至少一次;
(3)不能改变已给定的程序语句。
程序完成后将程序编辑及运行所需要的所有文件(包括源程序文件、字节码文件及html文件)存放到C:
\KS目录下。
Test5.Java
publicclassTest5{
publicstaticvoidmain(String[]args){
Lockerlock1,lock2,lock3;
lock1=newLocker("李瑞杰",3,301);
lock2=newLocker("张佳利",3,302);
lock3=newLocker("张佳利",2,201);
//在此处完成对应方法
}
}
publicclassLocker{
privateintnum,cabinetNum;
privatebooleanisVacant;
privateStringhirer;
publicLocker(Stringhire,intcabinet,intnum){
hirer=hire;
cabinetNum=cabinet;
this.num=num;
isVacant=false;
}
publicbooleangetIsVacant(){
returnisVacant;
}
publicvoidsetIsVacant(booleanb){
isVacant=b;
if(isVacant)
hirer="";
}
publicbooleanhasSameHirer(LockerotherL){
if(hirer.equals(otherL.hirer))
returntrue;
returnfalse;
}
publicStringtoString(){
Stringstr="柜号:
"+cabinetNum+",箱号:
"+num;
if(isVacant)
str+="当前空闲";
else
str+="当前由"+hirer+"使用";
returnstr;
}
}
参考答案:
publicstaticvoidmain(String[]args){
Lockerlock1,lock2,lock3;
lock1=newLocker("李瑞杰",3,301);
lock2=newLocker("张佳利",3,302);
lock3=newLocker("张佳利",2,201);
System.out.println(lock1.toString());
System.out.println(lock2.toString());
System.out.println(lock3.toString());
System.out.println();
lock1.setIsVacant(true);//使lock1设置为空闲
if(lock1.getIsVacant())
System.out.println("现在空闲"+lock1.toString());
System.out.println();
if(lock2.hasSameHirer(lock3)){
System.out.println("同一租用者"+lock2.toString());
System.out.println("同一租用者"+lock3.toString());
}
}
编程常用方法参考:
Integerclass
publicIntparseInt(Stringstr)
String
publicStringsubstring(intbeginIndex,intendIndex)
publicintlength()
publicbooleanequals(Stringcomparison)
Math
publicstaticdoublerandom()
Graphicsclass
voidsetColor(Colorcolor)
voiddrawRect(intx,inty,intwidth,intheight)
voiddrawOval(intx,inty,intwidth,intheight)
voidfillRect(intx,inty,intwidth,intheight)
voidfillOval(intx,inty,intwidth,intheight)
voiddrawLine(intx1,inty1,intx2,inty2)
ButtonandTextFieldclasses
voidaddActionListener(ActionListenerlistener)
StringgetText()
Appletclass
voidpaint(Graphicsg)
voidinit()
voidsetLayout(LayoutManagerlayout);
voidrepaint()
ObjectgetSource()
ActionListenerinterface
voidactionPerformed(ActionEvente)
MouseListenerinterface
voidmousePressed(MouseEvente)
voidmouseReleased(MouseEvente)
voidmouseClicked(MouseEvente)
voidmouseEntered(MouseEvente)
voidmouseExited(MouseEvente)
Mouseclass
intgetX()
intgetY()
voidaddMouseListener(MouseListenerlistener)