《Java面向对象程序设计》模拟试题(B卷)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java面向对象程序设计》模拟试题(B卷)
专业年级: 学号: 姓名: 日期:
一、判断题(24’)
1.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。错
2.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。错
3.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。错
4.使用方法length( )可以获得字符串或数组的长度。字符串用属性length
5.一个容器中可以混合使用多种布局策略。 对
6.Java中,并非每个事件类都只对应一个事件。-----
7.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。对
10.Java的字符类型采用的是ASCII编码。对
11.Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关 对
13.System类不能实例化,即不能创建System类的对象。对
15.Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。对
16.Java中的String类的对象既可以是字符串常量,也可以是字符串变量。对
二、选择题 (24)
1、编译运行以下程序后,关于输出结果的说明正确的是 ( )
public class Conditional{
public static void main(String args[]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9 :9));
}
}
A、输出结果为:value is 99.99 B、输出结果为:value is 9
C、输出结果为:value is 9.0 D、编译错误
2、以下声明合法的是( )
A、default String s; B、public final static native int w( )
C、abstract double d; D、abstract final double hyperbolicCosine( )
3、关于以下application的说明,正确的是( )
1. class StaticStuff
2. {
3. static int x=10;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. System.out.println(“x=” + x);
8. }
9. static { x/=3;}
10. }
A、 4行与9行不能通过编译,因为缺少方法名和返回类型
B、 9行不能通过编译,因为只能有一个静态初始化器
C、 编译通过,执行结果为:x=5
D、编译通过,执行结果为:x=3
4、关于以下程序代码的说明正确的是( )
1.class HasStatic{
2. private static int x=100;
3. public static void main(String args[ ]){
4. HasStatic hs1=new HasStatic( );
5. hs1.x++;
6. HasStatic hs2=new HasStatic( );
7. hs2.x++;
8. hs1=new HasStatic( );
9. hs1.x++;
10. HasStatic.x- -;
11. System.out.println(“x=”+x);
12. }
13. }
A、 5行不能通过编译,因为引用了私有静态变量
B、 10行不能通过编译,因为x是私有静态变量
C、 程序通过编译,输出结果为:x=103
D、程序通过编译,输出结果为:x=102
5、以下选项中循环结构合法的是( )
A、while (int i<7)
{ i+
+;
System.out.println(“i is “+i);
}
B、 int j=3;
while(j)
{ System.out.println(“ j is “+j);
}
C、int j=0;
for(int k=0; j + k !=10; j++,k++)
{ System.out.println(“ j is “+ j + “k is”+ k);
}
D、 int j=0;
do{
System.out.println( “j is “+j++);
if (j = = 3) {continue loop;}
}while (j<10);
6、类Test1定义如下:
1.public class Test1{
2. public float aMethod(float a,float b){ }
3.
4.}
将以下哪种方法插入行3是不合法的。( )
A、public float aMethod(float a, float b,float c){ }
B、 public float aMethod(float c,float d){ }
C、public int aMethod(int a, int b){ }
D、 private float aMethod(int a,int b,int c){ }
7、类Test1、Test2定义如下:
1. public class Test1
2.{ public float aMethod(float a,float b) throws
3. IOException { }
4. }
5. public class Test2 extends Test1{
6.
7.}
将以下哪种方法插入行6是不合法的。( )
A、float aMethod(float a,float b){ }
B、 public int aMethod(int a,int b)throws Exception{ }
C、public float aMethod(float p,float q){ }
D、 public int aMethod(int a,int b)throws IOException{ }
8、关于以下程序段,正确的说法是( )
1. String s1=”abc”+”def”;
2. String s2=new String(s1);
3. if(s1= =s2)
4. System.out.println(“= = succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() succeeded”);
A、行4与行6都将执行 B、行4执行,行6不执行
C、行6执行,行4不执行 C、行4、行6都不执行
三、改错题(20’)
判断下面的程序片断是否正确。若有错,指出错在哪里并改正;若正确,打“√”。
1、class parent
{
private int mine;
int getMine( )
{
return mine;
}
}
class child extends parent
{
int mine;
int getMine( )
{ return super.getMine(); }
}
2、 class AmIWrong
{
int data1,data2;
AmIWrong()
{ data1=-1; }
AmIWrong(int d)
{ data2=d;
this();//和上句交换位置。this()调用应在函数的第一行
}
}
3、interface MyInterface
{
void method1();
}
abstract class Parent implements MyInterface
{
}
class Child extends Parent
{
public void method1()
{
System.out.println(“I am implemented now!”);
}
}
4、public static void main(String args[ ])
{
try{
char ch=(char)System.in.read();
. . .//其他语句
}
catch(Exception e)
{
return;
}
catch(IOException e)
{
System.out.println(e.toString());
}
}
//两个catch语句交换位置
catch(IOException e)
{
System.out.println(e.toString());
}
catch(Exception e)
{
return;
}
5、public class AmIWrong implements Runnable
{
Thread mt=new Thread(this);
mt.start();
public void run()
{
System.out.println(“I am alive now”);
}
}
四、程序阅读 (20’)
1、 阅读以下程序段:
class Parent
{
void printMe()
{
System.out.println(“parent”);
}
}
class Child extends Parent
{
v
oid printMe()
{
System.out.println(“child”);
}
void printAll()
{
super.printMe();
this.printMe();
printMe();
}
}
public class Test_this
{
public static void main(String args[ ])
{
Child myC=new Child();
myC.printAll();
}
}
输出结果为:
2、以下程序段的输出结果为 。
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1= =n2);
System.out.print(“,”);
System.out.println(n1! =n2);
}
}
3、已有Bird类的定义如下:
package abcde;
public class Bird {
protected static int referenceCount=0;
public Bird(){referenceCount++;}
protected void fly(){ }
static int getReCount(){return referenceCount;}
}
有类Nightingale的定义如下,请写出它的输出结果 。
package singers;
class Nightingale extends abcde.Bird {
Nightingale( ) { referenceCount++;}
public static void main( String args[ ]){
System.out.print(“Before:”+referenceCount);
Nightingale florence=new Nightingale( );
System.out.println(“ After:”+referenceCount);
florence.fly( );
}
}
4、以下程序段的输出结果为 。
class Cruncher{
void crunch( int i ){
System.out.println(“int version”);
}
void crunch(String s){
System.out.println(“String version”);
}
public static void main(String args[ ]){
Cruncher crun=new Cruncher ( );
char ch=’p’;
crun.crunch(ch);
}
}
五.编程(12’)
打印出所有的“水仙花数“。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如:153是一个“水仙花数“,因为153=13+53+33。