Java面向对象程序设计模拟试题3及答案.docx
- 文档编号:30417124
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:16
- 大小:26.48KB
Java面向对象程序设计模拟试题3及答案.docx
《Java面向对象程序设计模拟试题3及答案.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计模拟试题3及答案.docx(16页珍藏版)》请在冰豆网上搜索。
Java面向对象程序设计模拟试题3及答案
Java面向对象程序设计
模拟试题3
一、单项选择题(本大题共15小题,每小题1分,共15分)
1.JRE是指
A.Java开发工具B.Java虚拟机
C.Java运行环境D.Java编程接口
2.开发Java程序必须安装的软件是
A.JVMB.JDK
C.JRED.API
3.在Java中,short型变量所占的字节数是
A.1B.2
C.4D.8
4.下面代码段执行后,i、j的值分别为
inti=1,j=10;
do{
if(i++>--j)
continue;
}while(i<5);
System.out.println("i="+i+"j="+j);
A.i=6j=5B.i=5j=5
C.i=6j=4D.i=5j=6
5.给定下面代码段,程序运行结果是
publicclassMyClass{
privatestaticinta=100;
publicstaticvoidmodify(inta){
a=a+5;
}
publicstaticvoidmain(String[]args){
modify(a);
System.out.println(a);
}
}
A.100B.105
C.101D.95
6.执行下列程序段后foo的值为
Stringfoo="blue";
boolean[]bar=newboolean[1];
if(bar[0]){
foo="green";
}
System.out.println(foo);
A.""B.nullC.blueD.green
7.关于实例变量、静态变量、实例方法和静态方法,下面叙述不正确的是
A.实例方法可以访问实例变量和静态变量
B.静态方法不能访问实例变量
C.实例变量和静态变量都可以通过类名访问
D.静态方法只能访问静态变量
8.执行下列语句后输出的结果是
Strings="COMPUTER";
System.out.println(s.substring(3,6));
A.COMB.MPUC.PUTD.TER
9.下面程序运行结果为
classAnimal{
publicAnimal(){
System.out.println("Animal");
}
}
//Bird类是Animal的子类
publicclassBirdextendsAnimal{
publicBird(){
System.out.println("Bird");
}
publicstaticvoidmain(String[]args){
Birdb=newBird();
}
}
A.AnimalB.Bird
C.AnimalD.Bird
BirdAnimal
10.下面代码在运行时会产生什么异常
Strings="ABC";
System.out.print(s.charAt(3));
A.ArrayIndexOutOfBoundsException
B.IndexOutOfBoundsException
C.StringIndexOutOfBoundsException
D.NullPointerException
11.下列程序的输出结果为
importjava.io.IOException;
publicclassTest{
publicstaticvoidmethodA(){
thrownewIOException();
}
publicstaticvoidmain(String[]args){
try{
methodA();
}catch(IOExceptione){
System.out.println("CaughtException");
}
}
}
A.代码有编译错误B.输出“CaughtException”
C.输出“CaughtIOException”D.程序正常执行,没有任何输出
12.有下列一段代码,执行后输出结果为。
()
TreeSet
mySet.add("one");
mySet.add("two");
mySet.add("three");
mySet.add("four");
mySet.add("one");
Iterator
while(it.hasNext()){
System.out.println(it.next()+"");
}
A.onetwothreefourB.fourthreetwoone
C.fouronethreetwoD.onetwothreefourone
13.有下列一段代码,执行后输出结果为。
()
importjava.util.*;
publicclassSortOf{
publicstaticvoidmain(String[]args){
ArrayList
a.add
(1);
a.add(5);
a.add(3);
Collections.sort(a);
a.add
(2);
Collections.reverse(a);
System.out.println(a);
}
}
A.[1,2,3,5]B.[2,1,3,5]
C.[2,5,3,1]D.[1,3,5,2]
14.有如下类的定义,Inner类称为()。
publicclassOuter{
classInner{
publicvoidgo(){
System.out.print("hi");
}
}
}
A.匿名内部类B.局部内部类
C.成员内部类D.静态内部类
15.Runnable接口中定义的唯一方法是
A.run()B.start()
C.begin()D.sleep()
二、多项选择题(本大题共5小题,每小题2分,共10分)
16.下面选项哪些是合法的Java标识符
A.longStringWithMeaninglessName
B.$int
C.bytes
D.finalist
E.abstract
17.下面选项哪些表达式的值为12
A.33/2
B.3<2
C.3*4
D.3<<2
E.3*2^2
18.有下面的类定义,与aMethod()重载的方法有
publicclassMyClass{
publicfloataMethod(floata,floatb){
return0;
}
}
A.publicintaMethod(inta,intb){}
B.publicfloataMethod(floatx,floaty){}
C.publicfloataMethod(floata,floatb,intc){}
D.publicfloataMethod(inta,intb,intc){}
E.publicvoidaMethod(floata,floatb){}
19.下面叙述哪些是正确的
A.使用super可以在子类中调用父类被覆盖的方法
B.Object类是所有类的根类
C.抽象类中不可以定义非抽象方法
D.一个类可以实现多个接口
E.一个类可以继承多个类
20.已知4个类之间的关系如图1所示,Shape表示形状、Circle类表示圆、Rectangle表示矩形、Cylinder表示圆柱,图中箭头表示类的继承关系。
有下面Java代码:
Rectanglert=newRectangle();
Cylindercl=newCylinder();
Shapesh=rt;
图1Shape类的层次结构图
下列赋值语句中合法的有:
A.cl=sh;
B.sh=rt;
C.rt=cl;
D.cl=rt;
E.sh=cl;
三、填空题(本大题共10小题,每小题1分,共10分)
21.Java语言的字符型数据在内存中占的字节数是。
22.下面的if-else结构用条件运算符可写为___________________。
if(age>=16)ticketPrice=20;
elseticketPrice=10;
23.若允许成员可以被这个类本身、同一个包中的类以及该类的子类访问,应使用修饰符__________________。
24.要测试一个实例是否是某种类型的实例,使用运算符___________________。
25.如果变量被赋值后不允许修改,定义变量时应使用关键字_____________。
26.若要声明一个接口,使用的关键字是____________________。
27.若将一个字符串转换为boolean型值,应该使用什么方法___________。
28.如果需要将所定义的类保存在com.xxxy包中,应该使用的语句是_______________。
29.要指定一个方法是父类方法的覆盖,应使用________________注解。
30.要启动线程,应该调用线程对象的方法是___________________。
四、简答题(本大题共3小题,每小题5分,共15分)
31.什么是构造方法?
它有什么特点?
和普通方法之间的区别是什么?
什么时候类将有一个默认构造方法?
32.试说明super关键字和this关键字的含义及主要用途。
33.试说明Java异常处理的基本方法,thow和throws关键字有何不同?
五、程序分析题(本大题共4题,每小题5分,共20分)
34.写出下列程序的运行结果。
publicclassArrayDemo{
publicstaticvoidmain(String[]args){
int[]array={1,2,3,4,5};
printArray(array);
modify(array);
printArray(array);
}
staticvoidmodify(int[]a){
for(inti=0;i a[i]=a[i]*i; } staticvoidprintArray(int[]a){ for(inti=0;i System.out.print(a[i]+"\t"); System.out.println(); } } 35.有下列程序: publicclassCommandLineDemo{ publicstaticvoidmain(String[]args){ System.out.println("共有"+args.length+"个参数"); for(inti=0;i System.out.println(i+": "+args[i]); } } } 若使用下列命令执行程序,程序输出结果如何? javaCommandLineDemo/D1024 36.写出下列程序的运行结果。 abstractclassAA{ abstractvoidcallme(); voidmetoo(){ System.out.println("AA'smetoo()."); } } classBBextendsAA{ voidcallme(){ System.out.println("BB'scallme()."); } voidmetoo(){ System.out.println("BB'smetoo()."); } } publicclassAbstractTest{ publicstaticvoidmain(String[]args){ AAaa=newBB(); aa.callme(); aa.metoo(); } } 37.给出并分析下列程序的运行结果。 publicclassTest{ publicstaticStringoutput=""; publicstaticvoidfoo(inti){ try{ if(i==1){ thrownewException(); } output+="1"; }catch(Exceptione){ output+="2"; return; }finally{ output+="3"; } output+="4"; } publicstaticvoidmain(String[]args){ foo(0); foo (1); System.out.println("output="+output); } } 六、编程题(本大题共3小题,第38,39题各8分,第40题14分,共30分) 38.编写程序,计算下面级数之和: 39.编写一个方法,合并给定的两个数组,方法的声明格式如下: publicstaticint[]arrayMerge(int[]a,int[]b) 例如,一个数组是{16,13,15,18},另一个数组是{29,36,100},返回的数组应该是{16,13,15,18,29,36,100}。 40.按照下面要求定义类和创建对象。 (1)定义一个名为Person的类,其中含有一个String类型的成员变量name和一个int类型的成员变量age,为该类定义一个名为speak的方法,在其中输出其name和age的值。 (2)为Person类定义一个带参数构造方法,通过给出姓名和年龄创建Person对象。 定义默认构造方法,在该方法中调用有参数构造方法,将人的姓名设置为“张三”,年龄设置为20。 (3)定义一个名为Employee类表示员工,它继承Person类,要求定义一个变量salary表示员工工资。 定义computeSalary(doublehours,intrate)方法计算员工工资,这里hours表示员工工作时间,rate表示每小时工资。 定义默认构造方法和带name、age和salary参数的构造方法。 Java面向对象程序设计 模拟试题3参考答案 一、单项选择题(本大题共15小题,每小题1分,共15分) 1.C2.B3.B4.D5.A 6.C7.C8.C9.C10.C 11.A12.C13.C14C15.A 二、多项选择题(本大题共5小题,每小题2分,共10分) 16.A,B,C,D 17.C,D 18.A,C,D 19.A,B,D 20.B,E 三、填空题(本大题共.10小题,每小题1分,共10分) 21.2个字节 22.ticketPrice=(age>=16? 20: 10) 23.protected 24.instanceof 25final 26.interface 27.Boolean.parseBoolean() 28.packagecom.xxxy; 29.@Override 30.start或者start() 四、简答题(本大题共3小题,每小题5分,共15分) 31.参考答案: 构造方法是类的一种特殊的成员方法,其方法名与类名相同。 特点是: (1)没有返回值 (2)用new运算符调用(3)一个类可定义多个构造方法。 它与其他成员方法的不同: (1)作用不同 (2)调用方式不同。 32.参考答案: super可以用在子类中引用父类成员变量、成员方法及构造方法。 用下列方式引用成员变量: super.成员变量名;引用父类成员方法: super.成员方法名();引用父类构造方法: super(参数表)。 this表示当前对象,用它可引用当前对象的成员变量、成员方法和构造方法。 this.成员变量名、this.方法名、this(参数表)。 33.参考答案: Java异常处理基本方法是用try{}catch{}finally{}。 try块中是要执行的代码,catch块中捕获和处理异常,finally是最后执行的代码。 throw关键字用于明确抛出一个异常对象,它是一个语句。 throws关键字用于声明方法抛出异常,使得异常可被调用方法处理。 五、程序分析题(本大题共4题,每小题5分,共20分) 34.答案: 少一行扣1分 12345 0261220 35.答案: 少一行扣1分 共有2个参数 0: /D 1: 1024 36.答案: BB’scallme()有一行给3分,若多一行扣1分。 BB’smetoo() 37.答案: output=13423缺少output=扣1分,结果中包含两个3给2分 六、编程题(本大题共3小题,第38,39题各8分,第40题14分,共30分) 38.本小题8分,参考答案如下: publicclassSeriesSum{ publicstaticvoidmain(String[]args){ intn=1; doublesum=0; while(n<99){//2分 sum=sum+(double)n/(n+2);//4分 n=n+2; } System.out.println("sum="+sum);//2分 } } 39.本小题8分,参考答案如下: publicstaticint[]arrayMerge(int[]a,int[]b){//2分 intsize=a.length+b.length; int[]result=newint[size]; for(inti=0;i result[i]=a[i]; } for(inti=a.length;i result[i]=b[i-a.length]; } returnresult;//2分 } 40本小题14分,参考答案如下: publicclassPerson{ Stringname; intage; publicvoidspeak(){ System.out.println("姓名: "+name); System.out.println("年龄: "+age); } } publicclassEmployeeextendsPerson{ publicdoublesalary;//表示员工工资 //无参构造方法 publicEmployee(){ } //带一个参数构造方法 publicEmployee(doublesalary){ this.salary=salary; } publicdoublecomputeSalary(inthours,doublerate){ //这里计算员工的工资 doublesalary=hours*rate; returnthis.salary+salary; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计 模拟 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)