21秋西南大学0837 面向对象程序设计在线作业题目及答案
0837 面向对象程序设计1.[单选题] 能够构造一个BufferedInputStream流的是( )。
A.new BufferedInputStream(new Reader("in.txt"))
B.new BufferedInputStream("in.txt")
C.new BufferedInputStream(new File("in.txt"))
D.new BufferedInputStream(new FileInputStream("in.txt"))
2.[单选题] 关于constructor,下列描述正确的是( )
A.class中的constructor不可省略
B.constructor在一个对象被new时执行
C.一个class只能定义一个constructor
D.constructor必须与class同名,但方法不能与class同名
3.[单选题] 以下程序编译运行的结果是( )。
import java.io.*;
public class Test {
public static void main(String[] args) {
try {
File f = new File("file.txt");
OutputStream out = new FileOutputStream(f, true);
int a = 38; //ASCII码38="&"
out.write(a);
out.close();
} catch(IOException e) {
}
}
}
A.运行后抛出异常,因为文件没有关闭
B.程序运行后文件没有变化
C.程序运行后文件增加了一个字符
D.程序不能编译
4.[单选题] 在下列程序的第2行中插入哪个方法会引起编译错误?( )
public class C extends B {
//第2行
}
class B {
public float getNum() {
return 1.0f;
}
}
A.public void getNum(double d) {}
B.public double getNum(float d) {return 4.0f;}
C.public float getNum() {return 4.0f;}
D.public void getNum() {}
5.[单选题] 下列语句执行后,k的值是( )。
int i = 6, j = 8, k = 10, m = 7;
if(!(i > j | m > k++))k++;
A.12
B.11
C.10
D.9
6.[单选题] 定义变量boolean b = true;,则String.valueOf(b)的返回值类型是( )。
A.String
B.false
C.Boolean
D.int
7.[单选题] 以下程序编译运行的结果是( )。
public class Test {
public static void main(String[] args) {
System.out.println("value=" + switchIt(4));
}
public static int switchIt(int x) {
int j = 1;
switch(x) {
case 1: j++;
case 2: j++;
case 3: j++;
case 4: j++;
case 5: j++;
default: j++;
}
return j + x;
}
}
A.value=3
B.value=4
C.value=5
D.value=8
8.[单选题] 若需要定义一个类属性或类方法,应使用哪种修饰符?( )
A.public
B.static
C.package
D.private
9.[单选题] 只包含一个带public修饰的类Abc的Java程序的正确命名是( )。
A.Abc
B.Abc.Java
C.一个任意的标识符后带后缀.java
D.abc.java
10.[单选题] 下列程序段的输出结果是( )。
int i = 1, b, c;
int[] a = new int;
b = a;
c = b + i;
System.out.println(c);
A.2
B.1
C.4
D.0
11.[单选题] while循环和do...while循环的区别是( )。
A.没有区别,这两个结构任何情况下效果一样
B.while循环是先循环后判断,所以循环体至少被执行一次
C.while循环比do...while循环执行效率高
D.do...while循环是先循环后判断,所以循环体至少被执行一次
12.[单选题] main方法中有以下语句,则输出的结果是( )。
Hashtable hashtable = new Hashtable();
hashtable.put("100", "aaa");
hashtable.put("200", "bbb");
hashtable.put("300", "ccc");
System.out.println(hashtable.get("300").toString()
+ hashtable.get("200").toString()
+ hashtable.get("100").toString());
A.cccbbbaaa
B.ccc
C.aaa
D.bbb
13.[单选题] 以下程序的输出结果是( )。
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
Person c = new Person("Peter", 17);
System.out.println(c.name + " is " + c.age + " years old!");
}
}
A.Peter is 17 years old!
B.Peter is 17!
C.Peter is 18 years old!
D.Peter is old!
14.[单选题] 下列程序编译运行的结果是( )。
public class Test {
public static void main(String[] args) {
String o1 = new String("ABV");
String o2 = new String("ABV");
if (o1.equals(o2)) { //第5行
System.out.println("Equal");
}
}
}
A.程序执行后出现异常
B.程序在第5行出现编译错误
C.程序执行后无输出
D.程序执行后输出"Equal"
15.[单选题] 下列程序段执行后,变量baz的值为( )。
int index = 1;
int foo[] = new int;
int bar = foo;
int baz = bar + index;
A.2
B.执行有错误
C.0
D.1
16.[单选题] 定义一个接口,必须使用的关键字是( )。
A.static
B.interface
C.public
D.class
17.[单选题] 关于super,正确的说法是( )。
A.是指当前对象的父类
B.可以用在main()方法中
C.是指当前对象的父类对象的内存地址
D.是指当前对象的内存地址
18.[单选题] 编译运行下列程序,产生的结果是( )。
public class A {
int a1 = 1;
int a2;
public static void main(String[] args) {
int a3 = 2;
A a = new A();
System.out.println("Result=" + a.a1 + a.a2 + a3);
}
}
A.Result=3
B.会产生编译错误
C.不会产生编译错误,但也没有结果输出
D.Result=102
19.[单选题] main方法中有以下语句,则输出的结果是( )。
Hashtable hashtable = new Hashtable();
hashtable.put("x", "12345");
hashtable.put("y", "67890");
hashtable.put("a", "abcde");
System.out.println(hashtable.get("a"));
A.E.a
B.67890
C.abcde
D.12345
20.[单选题] 下列哪个不是面向对象程序设计方法的特点?( )
A.抽象
B.结构化
C.继承
D.多态
21.[单选题] main方法中有以下语句,则输出的结果是( )。
String s = "xxxxxxxxxxxxxxx#123#456#zzzzz";
int n = s.indexOf("#");
int k = s.indexOf("#", n + 1);
String s2 = s.substring(n + 1, k);
System.out.println(s2);
A.123
B.zzzzz
C.123456
D.xxxxxxxxxxxxxxx
22.[单选题] 关于BufferedReader类的readLine()方法,下列说法错误的是( )。
A.方法readLine()每次读取一行数据
B.方法readLine()每次读取一个字节
C.如果读到流的末尾,该方法返回的结果为null
D.该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常
23.[单选题] 能用来修饰interface的修饰符是( )
A.protected
B.private
C.public
D.static
24.[单选题] 以下程序编译运行的结果是( )。
abstract class Shape {
abstract void display();
}
class Circle extends Shape {
void display() {
System.out.println("Circle");
}
}
class Rectangle extends Shape {
void display() {
System.out.println("Rectangle");
}
}
class Triangle extends Shape {
void display() {
System.out.println("Triangle");
}
}
public class AbstractClassDemo {
public static void main(String args[]) {
(new Circle()).display();
(new Rectangle()).display();
(new Triangle()).display();
}
}
A.Circle Cirle Cirle
B.Retangle Cirle Triangle
C.Triangle Retangle Circle
D.Circle Retangle Triangle
25.[单选题] 欲构造ArrayList类的一个实例,此类继承了List接口,下列正确的代码是( )
A.ArraylList myList = new List();
B.ArrayList myList = new Object();
C.List myList = new List();
D.List myList = new ArrayList();
26.[单选题] 有以下的方法定义。该方法的返回类型是( )。
ReturnType method(byte x, double y) {
return (short)x/y*2;
}
A.short
B.double
C.byte
D.int
27.[单选题] 在浏览器中执行applet程序,下列选项中的哪个方法将被最先执行?( )
A.init()
B.destroy()
C.start()
D.stop()
28.[单选题] 既能作为类的修饰符, 也能作为类成员的修饰符的是( )
A.public
B.extends
C.void
D.static
29.[单选题] 设有定义 int i=80, j=7; double d=80.7; 则下列语句中正确的赋值语句是( )
A.i = d;
B.i= (int)d + j;
C.j = (int)i - d;
D.i + j = (int)d;
30.[单选题] 下列不属于Java语言关键字的是( )
A.repeat
B.try
C.break
D.new
31.[单选题] 下列字符序列中可以作为Java语言标识符的是( )
A.true
B.123_xyz
C.x.y
D._x123
32.[单选题] 下列字符序列中不能作为Java语言标识符的是( )
A.abc_123
B.圆周率PI
C.false
D._123abc
33.[单选题] 下列语句序列给出了k,myArr和myMethod()的声明。当调用方法myMethod(myArr, k)之后,存储在myArr和k里的值分别是( )
int k = 7;
String myArr[] = {"love", "peace", "and"};
void myMethod(String a[], int m) {
String temp = a;
a = a;
a = temp;
m = a.length();
}
A.{"love", "and", "peace"},7
B.{"peace", "love", "and"},7
C.{"peace", "love", "and"},4
D.{"love", "and", "peace"},5
34.[单选题] 下列程序段执行后,t5的结果是( )。
int t1 = 5, t2 = 6, t3 = 7, t4, t5;
t4 = t1;
t5 = t4;
A.以上都不对
B.6
C.5
D.7
35.[单选题] 以下程序编译运行的结果是( )。
public class Father {
String name, address, tel;
int age;
public Father(String name, int age) {
this.name = name;
this.age = age;
}
void out() {
System.out.print("姓名:" + name);
System.out.print(" 年龄:" + age);
}
void outOther() {
System.out.print(" 家庭住址:" + address);
System.out.print(" 电话:" + tel);
}
}
class Son extends Father {
String school;
public Son(String name, int age) {
super(name, age);
}
void out() {
super.out();
super.outOther();
System.out.println(" 学校:" + school);
}
public static void main(String args[]) {
Son son = new Son("张三", 15);
son.address = "北碚区";
son.school = "朝阳中学";
son.tel = "68283421";
son.out();
}
}
A.姓名:张三 年龄:15 家庭住址:北碚区 电话:68283421 学校:朝阳中学
B.姓名:null 年龄:0 家庭住址:null 电话:null 学校:null
C.编译时将产生错误
D.编译时正确,运行时将产生错误
36.[单选题] 关于以下代码段的说法,正确的是( )。
String s = "abcde"; //第1行
StringBuffer s1 = new StringBuffer("abcde");
if(s.equals(s1)) //第3行
s1 = null;
if(s1.equals(s)) //第5行
s = null;
A.第1行编译错误,String的构造器必须明确调用
B.第3行编译错误,因为s与s1有不同的类型
C.编译成功,但执行时在第5行有异常抛出
D.编译成功,执行过程中也没有异常抛出
37.[单选题] 构造函数在何时被调用?( )
A.类定义时
B.使用对象的属性时
C.创建对象时
D.使用对象的方法时
38.[单选题] 以下程序编译运行的结果是( )。
public class Test {
public int aMethod() {
static int i = 0;
i++;
return i;
}
public static void main(String args[]) {
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
A.编译成功,执行后输出"0"
B.编译成功,执行后输出"1"
C.编译成功,执行后输出"2"
D.编译将失败
39.[单选题] 阅读下面的程序。要保证程序顺利执行,须在第1行填写的代码是( )。
// 第1行
public class GetImage extends Applet {
Image pic;
public void init() {
try {
URL u = new URL(this.getCodeBase(), this.getParameter("IMAGE"));
this.pic = this.getImage(u);
} catch(MalformedURLException e) {
System.err.println(e);
}
}
public void paint(Graphics g) {
g.drawImage(this.pic, 0, 0, this);
}
}
A.D.import java.applet.*; import java.awt.*;
B.import java.applet.*; import java.awt.*; import java.net.*;
C.import java.awt.*; import java.net.*;
D.import java.applet.*; import java.net.*;
40.[单选题] 关于接口,正确的说法是( )。
A.B.接口和抽象类是同一回事
B.一个类只能实现一个接口
C.实现一个接口必须实现接口的所有方法
D.接口间不能有继承关系
41.[单选题] 下列语句执行后,count的值是( )。
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
A.15
B.16
C.5
D.1
42.[单选题] 设已声明了一个类A的两个对象a1,a2。为了初始化a1和a2,下列语句正确的是( )。
A.a1,a2 = new A();
B.a1 = A.new(); a2 = A.new();
C.a1 = new(); a2 = new();
D.a1 = new A(); a2 = new A();
43.[判断题] System.exit(0)不能在Applet中使用。( )
A.正确
B.错误
44.[判断题] 开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。( )
A.正确
B.错误
45.[判断题] 所有的文件输入/输出流都继承于InputStream类/OutputStream类。( )
A.正确
B.错误
46.[判断题] Java所使用的字符集是Unicode。( )
A.正确
B.错误
47.[判断题] 如果类MyClass声明为public,它所在的文件名称必须是MyClass.java才能正常编译。( )
A.正确
B.错误
48.[判断题] 若要进行频繁的插入和删除操作,则ArrayList比LinkedList效率高。( )
A.正确
B.错误
49.[判断题] ArrayList集合对象中的元素是有序的,并且允许重复。( )
A.正确
B.错误
50.[判断题] Java语言中的布尔变量可以和整型变量相互强制转换。( )
A.正确
B.错误
51.[判断题] 在方法定义中,可能发生的异常都必须用try...catch...捕捉。( )
A.正确
B.错误
52.[判断题] final类中的属性和方法都必须是final的。( )
A.正确
B.错误
53.[判断题] abstract可修饰类、方法。( )
A.正确
B.错误
54.[判断题] 用Java虚拟机运行Hello.class的正确命令形式是:java Hello.class。( )
A.正确
B.错误
55.[判断题] 拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。( )
A.正确
B.错误
56.[判断题] 在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。( )
A.正确
B.错误
57.[判断题] 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。( )
A.正确
B.错误
58.[判断题] 如果准备按字符读取一个文件的内容,则可以使用Reader这个类创建对象。( )
A.正确
B.错误
59.[判断题] 实现一个接口,则在类中一定要实现接口中的所有方法。( )
A.正确
B.错误
60.[问答题] 用Java编写一个字符界面的Application程序。该程序逐一接收用户从键盘输入的字符串(输入一个字符串后按回车输入下一个),然后逐一输出至当前目录下的input.txt文件中,直至用户输入空行。
A.
61.[问答题] 用Java编写一个Application程序。在窗口中画出三个TextField(前两个用于接收用户输入的两个整数,第三个用于显示相加和),一个加号Label,一个等于号Button。当按下Button时,将相加之和放到第三个TextField中。
A.
62.[问答题] 用Java编写一个字符界面的Application程序。该程序从键盘接收用户输入的10个整数(输入一个整数后按回车输入下一个),然后将这10个整数中的最大值和最小值输出到屏幕。
A.
63.[问答题] 用Java编写一个字符界面的Application程序。该程序从键盘接收用户输入的10个整数(输入一个整数后按回车输入下一个),然后逆序输出这10个整数。
A.
页:
[1]