Java面向对象程序设计模拟试题2及答案
- 格式:docx
- 大小:57.72 KB
- 文档页数:11
面向对象程序设计》模拟试题及答案( 2)一、单项选择题(每小题 2 分,共1.字符串 ”a+b=12\n ”的长度为(A. 6B. 7C. 8D. 9若使 p 指向包含 30 个整型元素的动态数组空间,则使用的定义语句为( B. int *p=new int (30); D. *p=new int[30];2. 假定一个二维数组的定义语句为 的值为( A. 0 B. 4 C. 8 D. 6 inta[3][4]={{3,4},{2,8,6}};”,则元素 a[2][1]3.A.B. C. D.)。
以下正确的描述是( )。
函数的定义可以嵌套,函数的调用不可以嵌套 函数的定义不可以嵌套,函数的调用可以嵌套 函数的定义和函数的调用均可以嵌套 函数的定义和函数的调用均不可以嵌套 设有定义“ double array[10]; 4.果为 array 数组的 ( ) 。
A. C.”,则表达式 sizeof(array)/sizeof(array[0]) 的结首地址 B. 每个元素所占的字节数元素个数 D. 总字节数20 分))。
5.A. int *p=new int[30];C. int *p=new [30]; )。
6. A.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的可维护性 B. 可复用性 C. 兼容性 D.正确性)。
7. A. 在多文件结构的程序中,通常把类的声明单独存放于( 主文件 B. 实现文件 C. 库文件 D.)中。
头文件8.长度为 在一个用数组实现的队列类中,假定数组长度为length ,则队首的后一个位置为 ( )。
A. first+1B. (first+1)%MSC. (first-1)%MSD. (first+length )%MSMS 队首元素位置为 first ,队列9.语句后, A. 1 假定一个类的构造函数为 “ A(int aa=1, int bb=0) {a=aa; b=bb;} ”,则执行“ A x(4); ”x.a 和 x.b 的值分别为 ( )。
模拟试题二《 Java 程序设计》模拟试题 2( 120 分钟)一、判断题1 . Java 程序里 , 创建新的类对象用关键字 new ,回收无用的类对象使用关键字free 。
2 .对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3 .有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4 .类及其属性、方法可以同时有一个以上的修饰符来修饰。
5 . Java 的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点 .6 .抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7 . final 类中的属性和方法都必须被 final 修饰符修饰。
8 .最终类不能派生子类,最终方法不能被覆盖。
9 .子类要调用父类的方法,必须使用 super 关键字。
10 .一个 Java 类可以有多个父类。
11 .如果 p 是父类 Parent 的对象,而 c 是子类 Child 的对象,则语句 c = p 是正确的。
12 .一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。
13 .当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
14 .接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
15 .用“ + ”可以实现字符串的拼接,用 - 可以从一个字符串中去除一个字符子串。
16 .使用方法 length( ) 可以获得字符串或数组的长度。
17 .设 String 对象s=”Hello ” ,运行语句System.out.println(s.concat(“World!”)); 后 String 对象 s 的内容为”Hell o world!” ,所以语句输出为Hello world!18 .创建 Vector 对象时构造函数给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值。
19 .所有的鼠标事件都由 MouseListener 监听接口的监听者来处理。
Java 面向对象编程练习题及答案题目一:洗衣机类设计描述:设计一个洗衣机类,具有以下属性和方法:属性:- 品牌(brand):字符串类型,表示洗衣机的品牌- 容量(capacity):整型,表示洗衣机的容量(以公斤为单位)- 是否开机(isOn):布尔类型,表示洗衣机是否处于开机状态方法:- 开机(turnOn):将洗衣机的状态设置为开机- 关机(turnOff):将洗衣机的状态设置为关机- 洗衣服(washClothes):接收一个整型参数 clothesWeight,表示待洗衣物的重量(以公斤为单位)。
如果洗衣机处于开机状态,并且洗衣机容量足够洗这些衣物,则打印出洗衣机正在洗衣服;否则,打印出洗衣机无法洗衣物。
答案一:```javapublic class WashingMachine {private String brand;private int capacity;private boolean isOn;public WashingMachine(String brand, int capacity) { this.brand = brand;this.capacity = capacity;this.isOn = false;}public void turnOn() {this.isOn = true;}public void turnOff() {this.isOn = false;}public void washClothes(int clothesWeight) {if (isOn && clothesWeight <= capacity) {System.out.println("洗衣机正在洗衣服");} else {System.out.println("洗衣机无法洗衣物");}}}```题目二:学生类设计描述:设计一个学生类,具有以下属性和方法:属性:- 姓名(name):字符串类型,表示学生的姓名- 年龄(age):整型,表示学生的年龄- 成绩(score):整型,表示学生的成绩方法:- 构造方法(Constructor):接收姓名、年龄和成绩作为参数,创建一个学生对象- 获取姓名(getName):返回学生的姓名- 获取年龄(getAge):返回学生的年龄- 获取成绩(getScore):返回学生的成绩答案二:```javapublic class Student {private String name;private int age;private int score;public Student(String name, int age, int score) { = name;this.age = age;this.score = score;}public String getName() {return name;}public int getAge() {return age;}public int getScore() {return score;}}```题目三:图书馆管理系统设计描述:设计一个图书馆管理系统,包含图书(Book)、图书馆(Library)和借阅者(Borrower)三个类。
java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。
答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。
面向对象编程的主要特点包括封装、继承和多态。
封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。
继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。
多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。
面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。
通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。
2. 试题二题目:什么是类?请简要描述类的特点和组成部分。
答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。
类是用来创建对象的蓝图,可以通过实例化类来创建对象。
类的特点包括了封装、继承和多态。
类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。
继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。
多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。
类的组成部分包括了属性(Field)和方法(Method)。
属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。
方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。
3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。
答案:传值和传引用是在方法调用时,参数传递的两种方式。
《JAVA语言程序设计》练习题 1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;System.out.println (test.aMethod()) ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3、设x = 2 ,则表达式( x + + )/3 的值是0 。
4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。
java面向对象试题及答案一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于定义类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 局部变量B. 实例变量C. 静态变量D. 全局变量答案:B3. 在Java中,构造方法的特点是什么?A. 必须有返回值B. 必须有返回类型C. 没有返回值D. 可以有任意返回类型答案:C4. 以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于实现多重继承?A. extendsB. implementsC. import答案:B6. 以下哪个关键字用于定义一个抽象类?A. abstractB. finalC. nativeD. strictfp答案:A7. 在Java中,以下哪个关键字用于定义一个静态方法?A. staticB. finalC. abstractD. synchronized答案:A8. 在Java中,以下哪个关键字用于定义一个私有方法?B. protectedC. publicD. default答案:A9. 在Java中,以下哪个关键字用于定义一个受保护的方法?A. privateB. protectedC. publicD. default答案:B10. 在Java中,以下哪个关键字用于定义一个公共方法?A. privateB. protectedC. publicD. default答案:C二、填空题(每题2分,共20分)1. 在Java中,一个类可以继承另一个类的______属性和方法。
答案:public2. Java中的构造方法必须与______同名。
答案:类名3. 在Java中,______关键字用于实现类的多态性。
答案:extends4. 在Java中,______关键字用于实现接口。
面向对象程序设计考试模拟题含参考答案一、单选题(共50题,每题1分,共50分)1、下列数据结构中,哪一个是ArrayList类的底层实现()A、数组结构B、链表结构C、哈希表结构D、红黑树结构正确答案:A答案解析:ArrayList的底层是数组实现的。
2、Java属于以下哪种语言()A、机器语言B、汇编语言C、高级语言D、以上都不对正确答案:C答案解析:Java是一门高级编程语言。
3、下面关于path和classpath的说法中,错误的是()A、path用来指定java虚拟机(JVM)所在的目录B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件)所在的目录C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同D、只要设置了classpath这个环境变量系统就不会再在当前目录下查询某个类正确答案:C答案解析:classpath和path环境变量的查看与配置的方式完全相同,都是通过 set关键字实现的。
4、若double val = Math.ceil(-11.9);,则val的值是()A、11.9B、-11.0C、-11.5D、-12.0正确答案:B答案解析:ceil是天花板的意思,表示向上取值,永远是得到大于参数的最小整数。
5、下列集合中,不属于Collection接口的子类的是()A、ArrayListB、LinkedListC、TreeSetD、Properties正确答案:D答案解析:Properties集合属于Map集合的子类。
6、下列关于类与对象的说法中,错误的是()A、类是对某一类事物的抽象描述,而对象则是该类事物的个体。
B、对象是类的实例化。
C、类用于描述多个对象的共同特征,它是对象的模板。
D、类与对象没有什么实际关系。
正确答案:D答案解析:对象是通过类来创建的。
7、下列关于List接口的描述中,错误的是()A、List接口继承自Collection接口,是单列集合。
Java面向对象程序设计模拟试题2一、单项选择题(本大题共15小题,每小题1分,共15分)1. JVM是指A. Java开发工具B. Java虚拟机C. Java运行环境D. Java编程接口2. Java字节码文件的扩展名是A. cB. exeC. javaD. class3. 在Java中,byte型变量所占的字节数是A. 1B. 2C. 4D. 84. 给定下面代码段,输出j的值是多少int i = 1, j = 0 ;switch(i) {case 1: j += 6;case 2: j += 1;default: j += 2;}System.out.println(j);A. 2B. 6C. 7D. 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 = 1B. i = 2C. i = 3D. i = 46. 执行下列程序段后a和b的值为class AB{int a , b ;public 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 = 5B. a = 0 b = 0C. a = 6 b = 5D. a = 6 b = 07. 下列程序段的运行结果为int [][]x ={{1,2},{3,4,5},{6,7,8,9}};int[][]y = x;System.out.println(y[2][1]);A. 3B. 4C. 6D. 78. 执行下列语句后输出的结果是String s = "COMPUTER";System.out.println(s.indexOf(‘M’));A. 0B. 1C. 2D. 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 void main(String[] args){BB b = new BB("hello");}}A. 该程序有编译错误B. 88helloC. hello88D. 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");System.out.println(sub.i);}}A. 该程序有编译错误B. 编译成功输出0C. 编译成功输出1D. 编译成功输出211.下面代码在运行时会产生什么异常int m = 100;System.out.println(m / 0);A. ClassNotFoundExceptionB. MathExceptionC. ArithmeticExceptionD. NullPointerException12.有下列一段代码,执行后输出结果为。
()import java.util.*;public class SortOf{public static void main(String[]args){ArrayList<String> 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, 2]13.如果要求其中不能包含重复的元素,使用哪种结构存储最合适?( )A. CollectionB. ListC. SetD. Map14 一个类要具备什么条件才可以序列化?()A. 继承ObjectStream类B. 具有带参数构造方法C. 实现Serializable接口D. 定义了writeObject()方法15. Thread 类的哪个方法用来使线程睡眠一段时间A. run()B. start()C. begin()D.sleep()二、多项选择题(本大题共5小题,每小题2分,共10分)16. 下面选项哪些是合法的Java标识符A. MyGameB. _isRightC. 2JavaProgramD. Java-Virtual-MachineE. _$12ab17. 下面选项哪些是合法的对float变量的声明和赋值A. float foo = -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 foo[10];C. Object[] foo;D. int foo[];E. Object foo[10];19. 下面哪两个方法不能被子类覆盖?A. final void methodA(){}B. void final methodA(){}C. static void methodA(){}D. static final void methodA(){}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. 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. 要声明一个接口,应该使用关键字________________。
27. 若将一个数字字符串转换为int型值,应该使用什么方法____________________。
28. 设a是父类A的一个实例,b是A的子类B的一个实例,语句a = b;是自动转换还是强制转换_______________。
29. 定义同步的方法应该使用关键字___________________。
30. Runnable接口中定义的唯一方法是___________________。
四、简答题(本大题共3小题,每小题5分,共15分)31. 简述Java语言有哪几种基本数据类型和引用数据类型。
32.试说明实例变量和类(静态)变量的主要区别,实例方法和类(静态)方法的区别。
33.试说明抽象类和接口的相同之处和不同之处。
五、程序分析题(本大题共4题,每小题5分,共20分)34. 写出下列程序的运行结果。
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(String[]args){Animal myDog = new Animal();int values = 10;for(int i = 0; i < 10; i++)increment(values, myDog);System.out.println(values);System.out.println(myDog.age);}}35. 写出下列程序的运行结果。
public class ArrayDemo{public static void main(String[] args){int a[][] = new int[4][];a[0] = new int[1];a[1] = new int[2];a[2] = new int[3];a[3] = new int[4];int i, j, k = 0;for(i = 0; i < 4 ; i++)for(j = 0; j < i+1; j++){a[i][j] = k;k++;}for(i = 0; i < 4; i++){for(j = 0; j < i+1; j++)System.out.print(a[i][j]+" ");System.out.println();}}}36. 写出下列程序的运行结果。