上海交大网络2017 面向对象程序设计(Java) 第一、二、三次作业最新答案
第一次作业
1、 下列关于构造方法的叙述中,错误的是( B ) A) Java 语言规定构造方法名与类名必须相同
B) Java 语言规定构造方法没有返回值,但不可用void 声明 C) Java 语言规定构造方法不可重载
D) Java 语言规定构造方法只能通过new自动调用
2、作为Java应用程序入口的main方法,其声明格式可以是( B ) A) public void main(String [] args)
B) public static void main(String [] args) C) public static void Main(String * args) D) public int main(String [] args)
3、 Java 中,能实现多重继承效果的方式是( C ) A) 内部类 B) 适配器 C) 接口 D) 同步
4、 在Java中,用package 语句声明一个包时,该包的层次结构必须是( B ) A) 与文件结构相同
B) 与文件目录的层次相同 C) 与文件类型相同 D) 与文件大小相同
、 在Java 中,所有类的公共基类是( A ) A) java.lang.Object B) java.lang.Class C) java.applet.Applet D) java.awt.Frame
6、 下列叙述中,错误的是(D )
A) java 中,方法的重载是指多个方法共享同一名称
B) java 中,用abstract 修饰的类称为抽象类,它不可实例化 C) java 中,接口是不包含成员变量和方法实现的抽象类 D) java 中,构造函数可以有返回值
7、 下列叙述中,错误的是( D ) A) 接口与类的层次无关
B) 通过接口说明类所实现的方法
C) 通过接口可以了解对象的交互界面 D) 接口与存储空间有关
8、 阅读和理解下面的程序段
class Manager extends Employee {
public Manager(String n, double s, int year, int month, int day) {
super(n, s, year, month, day); bonus = 0; }
public double getSalary() {
double baseSalary = super.getSalary(); return baseSalary + bonus; }
public void setBonus(double b) {
bonus = b; }
private double bonus; }
Manager 是Employee 的子类,其理由是(B ) A) Manager 的适用范围较宽 B) extends 关键字声明 C) Manager 的域减小了 D) 雇员是一个经理
9、 “X extends Y”是正确的,如果( C ) A) 当且仅当X 是一个类,Y 是一个接口时 B) 当且仅当X 是一个接口,Y 是一个类时 C) 当X 和Y 都是类或都是接口时 D) X 和Y 是类或接口的任意组合时
10、 下面关于抽象类的声明中正确的是( B )
A) public abstract class Canine { public void speak(); } B) public abstract class Canine { public void speak() { }} C) public class Canine { public abstract void speak(); }
D) public class Canine abstract { public abstract void speak(); }
11、 在下列代码的第9 行插入哪条语句可使程序编译通过?(C )
1. class X { void do1() { } }
2. class Y extends X { void do2() { } } 3.
4. class Chrome { 5. 6. 8.
7. 9. 10. 11.}
public static void main(String [] args) { }
X x1 = new X(); X x2 = new Y(); Y y1 = new Y(); // 插入代码
A) x2.do2(); B) (Y)x2.do2(); C) ((Y)x2).do2();
D) 以上A、B、C 均可。
12、 下列关于java 对import 语句规定的叙述中,错误的是( C ) A) 在java 程序中,import 语句可有多个 B) 在java 程序中,import 语句可以没有 C) 在java 程序中,import 语句必须有一个
D) 在java 程序中,import 语句必须引入在所有类定义之前
13、 若特快订单是一种订单,则特快订单类和订单类的关系对应于面向对象编程(OOP)中的术语( C ) A) 使用关系 B) 包含关系 C) 继承关系 D) 无关系
14、Java的继承属于哪种类型?( A )
A) 单继承 B) 双继承 C) 多继承 D) 类继承
15、在构造函数中使用super引用时有什么限制?( D ) A) 只能用在父类的构造函数中。 B) 只有一个子类可以用。
C) 必须出现在构造函数的最后一条语句。 D) 必须出现在构造函数的第一条语句。 16、
一个抽象类中能否既定义抽象方法又定义非抽象方法?( D )
A) 不能,只能含有其中一种。 B) 不能,只能含有抽象方法。 C) 能,但子类不能继承抽象方法。 D) 能,子类可以继承上述两种方法。 17、
在一个程序中,一个类可以有多少个对象?(C )
A. 每个自定义的类只能有一个对象。 B. 每个构造函数的定义只能针对一个对象。 C. 需要多少可以有多少。
D. 每个main()方法中只能有一个。 18、
下列哪个不是继承的优点?( D )
A. 被不同类共享的代码只需编写一次。 B. 使得相似的类的行为是一致的。 C. 对基类的改进将直接作用于派生类。 D. 可以用一个大的基类替代许多小类。
第二次作业
1、 当使用File类中的方法操作文件系统时,下列功能中的哪个不能做到?(D) A) 改变当前工作路径 B) 删除某个文件 C) 创建某个文件
D) 修改文件的安全级别
2、 对File类实例化时,在文件系统中便相应有一个文件被创建。该句话是否正确?(A) 正确 B) 错误
3、 下面哪种流类允许您从一个文件中读取基本数据类型的数据?(A) A) DataInputStream和FileInputStream B) DataInputStream
B) C) FileInputStream D) FileReader
4、 下列说法中错误的是(B)
A) Reader类和Writer类及其派生类都可用于16位Unicode字符的输入输出
B) FileInputStream类和FileOutputStream类均可用于处理16位Unicode字符的输入输出 C) FileInputStream类和FileOutputStream类可用于读取图像文件 D) FileInputStream类和FileOutputStream类可用于读取文本文件
5、 下列代码的运行结果为(A)
FileOutputStream out = new FileOutputStream(“objectStore.ser”); ObjectOutputStream os = new ObjectOutputStream(out); os.writeObject(“Object on the fly!”);
A) 字符串“Object on the fly!”被写入文件objectStore.ser B) 第3行导致编译错误
C) 代码可以编译通过,但在运行时第3行将抛出一个异常 D) 第2行将出现一个异常
6、 考虑如下代码段:
FileOutputStream fo = new FileOutputStream(“myFile.txt”); DataOutputStream do = new DataOutputStream(fo); do.writeByte(9); do.writeFloat(4.20f); do.close();
上述代码执行后,有多少字节(8位)被写入文件?(B) A) 2 B) 5 C) 3 D) 10
7、 考虑如下代码段:
1) import java.io.*;
2) public class QuestionEight {
3) public static void main(String[] args) throws IOException { 4) File inputFile = new File(“javaCourse.txt”);
5) File outputFile = new File(“javaCourseCopy.txt”); 6) BuffferedReader in = new BufferedReader(inputFile);
7) BufferedWriter out = new BufferedWriter(new FileWriter(outputFile)); 8) String line;
9) while((line = in.readLine()) != null) { 10) out.write(line); 11) out.newLine(); 12) }
13) in.close();