面向对象程序设计练习题库(附参考答案).docx
面向对象程序设计练习题库(附参考答案)
一、单选题(共36题,每题1分,共36分)
1.下列关于IO流的说法中,错误的()
A、InputStream读文件时操作的都是字节
B、Reader是字符输入流
C、FileReader和FileWriter用于读写文件的字节流
D、BufferedReader和BufferedWriter是具有缓冲功能的字符流。
正确答案:C
答案解析:FileReader和FileWriter用于读写文件的字符流
2.下列关于JDK、JRE和JVM关系的描述中,正确的是()。
A、JDK中包含了JRE,JVM中包含了JRE。
B、JRE中包含了JDK,JDK中包含了JVM。
C、JRE中包含了JDK,JVM中包含了JRE。
D、JDK中包含了JRE,JRE中包含了JVM。
正确答案:D
答案解析:JVM是Java虚拟机,JRE是Java程序的运行时环境,JDK是Java程序的编译环境,包含范围递增。所以从小到大一次是JVM—JRE—JDK。
3.下列关于静态变量的描述中,错误的是()
A、静态变量指的是被static修饰的变量
B、静态变量是随着类的加载而加载
C、静态变量可以被所有的实例对象共享
D、静态变量同成员变量一样,都需要通过实例对象来调用
正确答案:D
答案解析:静态变量是通过“类名.变量名”“方式调用的。
4.以下关于类的描述中,错误的是()
A、在面向对象的思想中最核心就是对象,为了在程序中创建对象,首先需要定义一个类
B、定义类的关键字是Interface
C、类中的方法叫成员方法,成员方法又分为实例方法与类方法
D、类中的属性叫成员属性,成员属性又分为实例属性与类属性
正确答案:B
答案解析:定义类的关键字是class。
5.下面对于final修饰方法的描述中,正确的是()
A、final修饰的静态方法不能被类名调用
B、final修饰的方法不能被子类重写
C、final只能修饰非静态方法
D、以上说法都正确
正确答案:B
答案解析:final修饰的方法不能被子类重写。
6.下列关于foreach循环的描述,错误的是()
A、foreach循环只能用于遍历数组或集合中的元素
B、foreach循环可以直接用于遍历Map集合中的元素
C、相当于传统for循环来说,foreach循环简化了书写
D、foreach循环遍历过程中不能对集合或数组元素进行修改
正确答案:B
答案解析:数组或者实现Iterable接口的对象才能使用foreach循环,Map集合不符合要求,显然不能直接使用foreach循环。
7.下列数据结构中,哪一个是ArrayList类的底层实现()
A、数组结构
B、链表结构
C、哈希表结构
D、红黑树结构
正确答案:A
答案解析:ArrayList的底层是数组实现的。
8.以下关于File类的isDirectory()方法的描述,哪个是正确的()
A、判断该File对象所对应的是否是文件。
B、判断该File对象所对应的是否是目录。
C、返回文件的最后修改时间。
D、在当前目录下生成指定的目录。
正确答案:B
9.下面哪个方法可以实现获取字符在某个字符串中第一次出现的索引()
A、charAt(intindex)
B、indexOf(intch)
C、lastIndexOf(intch)
D、endsWith(Stringsuffix)
正确答案:B
10.如果父类的方法是静态的,则子类的方法被()修饰才能覆盖父类的静态方法。
A、protected
B、static
C、private
D、final
正确答案:B
答案解析:只有子类的方法为静态时才能重写父类的静态方法。
11.下列关于throws关键字的说法中,错误的是()
A、可以使用throws关键字一次抛出多种类型的异常
B、throws关键字用于抛出异常
C、使用throws关键字抛出的异常,后续调用者在使用时无需处理
D、使用throws关键字抛出异常后,程序可以编译通过
正确答案:C
12.如果jdk的安装路径为:c:\\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项()
A、c:\\jdk
B、c:\\jdk\\bin
C、c:\\jre\\bin
D、c:\\jre
正确答案:B
答案解析:path环境必须设为javac.exe和java.exe的上一级目录bin。
13.下列选项中,不属于InputStreamReader类的方法的是()
A、getEncoding()
B、close()
C、read()
D、flush()
正确答案:D
答案解析:flush()用于刷新流的缓冲不属于In