1、Java面向对象程序设计模拟试题2及答案Java面向对象程序设计模拟试题2一、单项选择题(本大题共15小题,每小题1分,共15分)1. JVM是指 A. Java开发工具 B. Java虚拟机 C. Java运行环境 D. Java编程接口2. Java字节码文件的扩展名是 A. c B. exe C. java D. class3. 在Java中,byte型变量所占的字节数是A. 1 B. 2 C. 4 D. 84. 给定下面代码段,输出j的值是多少int i = 1, j = 0 ;switch(i) case 1: j += 6; case 2: j += 1; default: j +
2、= 2; System.out.println(j);A. 2 B. 6 C. 7 D. 95. 给定下面代码段,程序运行结果是public class Test static void leftshift(int i, int j) i = j; public static void main(String args) int i = 4, j = 2; leftshift(i,j); System.out.println(i = + i); A. i = 1 B. i = 2 C. i = 3 D. i = 4 6. 执行下列程序段后a和b的值为class ABint a , b ;pub
3、lic void init(int x)a = x ; int b = 5 ; public void display()System.out.println(a = +a+ b = +b); public class ABTest public static void main(String args) AB ab = new AB(); ab.init(6); ab.display() ; A. a = 5 b = 5 B. a = 0 b = 0 C. a = 6 b = 5 D. a = 6 b = 07. 下列程序段的运行结果为int x =1,2,3,4,5,6,7,8,9;int
4、y = x;System.out.println(y21); A. 3 B. 4 C. 6 D. 78. 执行下列语句后输出的结果是String s = COMPUTER;System.out.println(s.indexOf(M);A. 0 B. 1 C. 2 D. 39. 下面程序运行结果为 class AA AA(int a) System.out.print(a); class BB extends AA BB(String s) super(88);System.out.print(s); public class ConstructorDemo public static voi
5、d main(String args) BB b = new BB(hello); A. 该程序有编译错误 B. 88hello C. hello88 D. hello10. 下面程序运行结果为 class Super public int i = 0; public Super(String text) i = 1; public class Sub extends Super public Sub(String text) super(“”); i = 2; public static void main(String args) Sub sub = new Sub(Hello); Sys
6、tem.out.println(sub.i); A. 该程序有编译错误 B. 编译成功输出0 C. 编译成功输出1 D. 编译成功输出211.下面代码在运行时会产生什么异常int m = 100;System.out.println(m / 0);A. ClassNotFoundException B. MathExceptionC. ArithmeticException D. NullPointerException12.有下列一段代码,执行后输出结果为。( )import java.util.*;public class SortOf public static void main(St
7、ringargs) ArrayList a = new 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, 213.如果要求其中不能包含重复的元素,使用哪种结构存储最合适 ?( ) A. Collection B. List C. Set D. Map 14 一个类要具备什么条件才可以序列化?( )A.
8、继承ObjectStream类 B. 具有带参数构造方法C. 实现Serializable接口 D. 定义了writeObject()方法15. Thread 类的哪个方法用来使线程睡眠一段时间A. run() B. start() C. begin() D.sleep() 二、多项选择题(本大题共5小题,每小题2分,共10分)16. 下面选项哪些是合法的Java标识符A. MyGame B. _isRight C. 2JavaProgram D. Java-Virtual-Machine E. _$12ab17. 下面选项哪些是合法的对float变量的声明和赋值 A. float foo =
9、 -1; B. float foo = 1.0;C. float foo = 2.02f;D. float foo = 3.03d; E. float foo = 0x0123;18. 哪两个语句声明的数组能存放10个整型数 A. int foo; B. int foo10; C. Object foo; D. int foo;E. Object foo10; 19. 下面哪两个方法不能被子类覆盖? A. final void methodA() B. void final methodA() C. static void methodA() D. static final void meth
10、odA() E. final abstract void methodA() 20. 已知4个类之间的关系如图1所示,Shape表示形状、Circle类表示圆、Rectangle表示矩形、Cylinder表示圆柱,图中箭头表示类的继承关系。有下面Java 代码:Rectangle rt = new Rectangle();Cylinder cl = new Cylinder();Shape sh = rt; 图1 Shape类的层次结构图关于上述Java代码中sh 和 rt的以下叙述中,正确的有 A. sh 和 rt分别引用同一类型的不同的对象; B. sh 和 rt分别引用同一个对象; C.
11、 sh 和 rt分别引用不同类型的不同对象; D. sh 和 rt分别引用同一个对象的不同拷贝; E. sh 和 rt所引用的内存空间是相同的。三、填空题(本大题共10小题,每小题1分,共10分)21. main()方法的返回值类型是 。22. 在命令提示符环境下,要运行HelloWorld字节码文件,使用的命令是 。23.执行下列语句后输出的结果是_。String s = Hello,World!;System.out.println(s.length();24 若在子类构造方法中调用父类的无参数构造方法,使用的语句是_。25. 如果不允许方法被子类覆盖,定义方法时应使用关键字_。26. 要
12、声明一个接口,应该使用关键字_。27. 若将一个数字字符串转换为int型值,应该使用什么方法_。28. 设a是父类A的一个实例,b是A的子类B的一个实例,语句a = b;是自动转换还是强制转换_。29. 定义同步的方法应该使用关键字_。30. Runnable接口中定义的唯一方法是_。四、简答题(本大题共3小题,每小题5分,共15分)31. 简述Java语言有哪几种基本数据类型和引用数据类型。32.试说明实例变量和类(静态)变量的主要区别,实例方法和类(静态)方法的区别。33.试说明抽象类和接口的相同之处和不同之处。五、程序分析题(本大题共4题,每小题5分,共20分)34. 写出下列程序的运行
13、结果。public class Animal public int age;public Animal(int a) age = a; public Animal() age = 1; public class Test public static void increment(int values, Animal animal)values +;animal.age+; public static void main(Stringargs) Animal myDog = new Animal(); int values = 10; for(int i = 0; i 10; i+) incre
14、ment(values, myDog);System.out.println(values);System.out.println(myDog.age); 35. 写出下列程序的运行结果。public class ArrayDemo public static void main(String args) int a = new int4; a0 = new int1; a1 = new int2; a2 = new int3; a3 = new int4; int i, j, k = 0; for(i = 0; i 4 ; i+) for(j = 0; j i+1; j+) aij = k;
15、 k+; for(i = 0; i 4; i+) for(j = 0; j = 3)。要求使用数组存储Fibonacci数。39. 编写一个方法,将十进制数转换为二进制数的字符串,方法签名如下:public static String toBinary(int value) 例如,按如下调用该方法将输出101010. System.out.println(toBinary(42);40. 按照下面要求定义类和创建对象。(1)定义一个名为Circle的类表圆,其中含有double型的成员变量centerX、centerY表示圆心坐标,radius表示圆的半径。定义求圆面积的方法getArea()
16、方法和求圆周长的方法getPerimeter()。(2)定义一个带参数构造方法,通过给出圆的半径创建圆对象。定义默认构造方法,在该方法中调用有参数构造方法,将圆的半径设置为1.0。(3)定义一个名为Cylinder类表示圆柱,它继承Circle类,要求定义一个变量height表示圆柱高度。定义getVolume()方法求圆柱体积。定义默认构造方法和带radius和height两个参数的构造方法。Java面向对象程序设计模拟试题2参考答案一、单项选择题(本大题共15小题,每小题1分,共15分)1. B 2. D 3. A 4. D 5. D6. D 7. D 8. C 9. B 10. D11.
17、 C 12. B 13. C 14 C 15. D二、多项选择题(本大题共5小题,每小题2分,共10分)16. A, B, E 17. A, C, F 18. A, D 19. A, D 20. B, E三、填空题(本大题共.10小题,每小题1分,共10分)21. void22. java HelloWorld23. 1424. super或super()25 final26. interface27. Integer.parseInt()或 Integer.parseInt28. 自动类型转换29. setSize()或setSize30. run或run()四、简答题(本大题共3小题,每小
18、题5分,共15分)31. 参考答案:基本数据类型包括字节型(byte)、短整型(short)、整型(int)、长整型(long)、布尔型(loolean)、字符型(char)、单浮点型(float)和双浮点型(double)。引用数据类型包括类(class)、数组、抽象类、接口。32. 参考答案:没有使用static修饰的成员称为实例成员,使用static修饰的成员称为类成员。实例成员必须使用实例变量访问,类成员属于类,既可以通过类名访问,也可以通过对象名访问。33. 参考答案:相同之处:(1)都包含抽象方法(2)都不能被实例化(3)都是引用数据类型。不同点如下:(1)一个类只能继承一个类,一
19、个类可实现多个接口(2)抽象类访问权限同普通类,接口访问权限有public和默认,成员访问权限是public(3)抽象类可抽象方法、普通方法、构造方法,接口只能声明抽象方法和常量。五、程序分析题(本大题共4题,每小题5分,共20分)34.答案:缺少一个数扣1分。1011 35. 答案:若答案格式与结果不同,扣1分,缺少行可酌情扣分。0 1 2 3 4 5 6 7 8 936. 答案:BBs callme() 有一行给3分,若多一行扣1分。BBs metoo() 37. 答案:若答案格式与结果不一致,可酌情扣分。AEBECE六、编程题(本大题共3小题,第38,39题各8分,第40题14分,共30
20、分)38.本小题满分8分,参考程序如下:public class Fibonacci public static void main(String args) long f1 = 1, f2 = 1; for(int i = 1; i 10; i+) System.out.print(f1 + + f2 + ); f1 = f1 + f2; f2 = f1 + f2; 39. 本小题满分8分,参考程序如下:public static String toBinary(int value) String s = ;while( value != 0) int r = value % 2; / 反复
21、除以2取余数 s = r + s;value = value / 2;return s;40本小题满分14分,参考程序如下:参考程序如下:public class Circle double centerX; double centerY; double radius; public Circle() / 4分 this(1.0); public Circle(double radius) this.radius = radius; public double getArea() / 4分 double area = 3.14 * radius * radius; return area; p
22、ublic double getPerimeter() double perimeter = 2 * 3.14 * radius; return perimeter; public class Cylinder extends Circle / 6分 private double height; public Cylinder() public Cylinder(double radius,double height) this.radius = radius; this.height = height; public double getVolume() return super.getArea()*height;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1