21秋西电《JAVA程序设计》模拟试题3答案
学习中心 姓名 学 号 西安电子科技大学网络教育学院200 学年第 学期《Java程序设计》模拟试题3
( 90 分钟)题号
一
二
三
总分
题分
45
35
20
100
得分
选择题(3分/题,共15个,共45分)
1. 请说出下列代码的执行结果:
public class test {
public static void main(String[] args) {
Integer a1 = new Integer(20);
Integer a2 = new Integer(20);
if(a1= =a2)
System.out.println("a1= =a2");
if(a1.equals(a2))
System.out.println("equals");
}
};
equals
a1= =a2
什么都不输出
程序错误
答案:A。
解析:new出来的对象存储在堆中,所以a1和a2指向不同的内存区域,用操作符“==”比较的结果是false,使用equals则是比较内容,所以返回true。2. 下面哪种注释方法能够支持javadoc命令:
/** ……………..**/
/*………………..*/
//
/**………………*/
答案:D。
解析:A中是干扰项,没有这种注释。B中是注释代码块的语法。C是注释单行代码。3. 下面关于Applet的说法正确的是:
Applet也需要main方法
Applet必须继承java.awt.Applet
Applet能访问本地文件
Applet程序不需要编译
答案:A。
解析:因为Applet不需要main方法,只需要Applet的容器即可。B正确。Applet为了安全性,禁止Applet访问本地文件。Applet程序需要编译。
4. 下面的说法正确的是:
Java语言里的线程不是对象
Applet需要main方法
Java语言的对象都是java.lang.Object的子类
Java支持多重继承
答案:C。
解析:Java中线程是Thread对象,A错。Applet不需要main方法,B错。Java不支持多重继承,D错。5. 定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:
private class MyCLass extends Object
class MyCLass extends Object
public class MyCLass
protected class MyCLass extends Object
答案:C。
解释:A和D编译错误,类前面的修饰符只能是public,abstract和final。B中默认修饰符只能让同一个包内的类访问。6. 欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的 ?
ArrayList myList=new Object();
List myList=new ArrayList();
ArrayList myList=new List();
List myList=new List();
答案:B。
解析:A错误,不能向下转型,会发生不可预知的错误。C同A,也错。D中构造的是List的实例。7. 哪个关键字可以对对象加互斥锁?
transient
synchronized
serialize
static
答案:B。
解析:A中transient修饰不需要序列化的变量,不是加互斥锁。C为干扰项,没有这个关键字。D中static是修饰静态变量的。8. 哪个关键字用来定义一个抽象类?
violate
class
abstract
virtual
答案:C。
解析:violate修饰不需要序列化的变量。关键字class用来定义一个类。D为干扰项,Java中没有这个关键字。9. 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(????? )。A. static?void?method()?B. public void method()??? C. final void method()?? D. abstract void method()、
答案:A。
解析:静态方法可以直接使用类的名字进行调用。所以只能选A。10、下列代码执行结果是什么?
String s1 = "ccc";
s1.concat("fff");
System.out.println(s1);The string "ccc".
The string "cccfff".
The string "fff".
The string "fffccc"
答案:A。
解析:concat函数不改变原变量的值。所以还是ccc。其他选项为干扰项。11. 如果在一个Java源程序中要使用 java.sql.Date类和 java.util.Date类,下面哪个用法是正确的?
Date date1 = new Date();
Date date2 = new Date();
java.sql.Date date1 = new java.sql.Date();
java.util.Date date2 = new java.util.Date();
不能区分出这两个类,所以不能在一个java源文件中同时使用这两个类。
Date date1 = new Date();
java.sql.Date date2 = new java.sql.Date();
答案:B。
解析:A中没有加上包名,引用相同名字的类,编译报错。同理C说法也错误。D中也错误。12. 当变量x是哪些值的时候输出包括"Message 2",选出最完整的答案?
switch(x)
{ case 1 :
System.out.println("Message 1");
case 2 :
case 3 :
System.out.println("Message 2");
case 4 :
System.out.println("End");
}
(A) 3 (B) 1 或 2 或 3 或 4
(C) 1 或 2 或 3 (D) 4
答案:C。
解析:由于没有break,会执行所有的case语句块。所以有可能是1,2,3。13.下列哪个不是面向对象的三大特性之一:
封装性
继承性
多态性
函数
答案:D。
解析:函数在任何语言都有。面向对象三大特征是封装、继承、多态。14. 选出不是java循环语句的选项?
for
while
repeat
do while
答案:C。
解析:java中没有repeat关键字。15. 下面哪种语言不是面向对象语言?
(A) java
(B) C++
(C ) C
(D) Smalltalk
答案:C。
解析:C语言是面向过程的。其他均是面向对象语言。二、读程题 ( 5分/题,共7个,共35分)
1. 下列程序编译运行后输出什么?
public class Arrays {
public static void main(String[] args) {
int[] a1 = { 1, 2, 3, 4, 5 };
int[] a2;
a2 = a1;
for(int i = 0; i < a2.length; i++)
a2++;
for(int i = 0; i < a1.length; i++)
prt("a1[" + i + "] = " + a1);
}
static void prt(String s) {
System.out.println(s);
}
}
答:
a=2
a=3
a=4
a=5
a=6
解释:考察java的for循环遍历数组。2. 下面的代码执行结果是什么?
class Aclass{ void go(){ System.out.println("Aclass"); } } public class Bclass extends Aclass{ void go(){ System.out.println("Bclass"); } public static void main(String args[]){ Aclass a=new Aclass(); Aclass a1=new Bclass(); a.go(); a1.go(); }
} 答:Aclass
Bclass阅读下列代码,写出运行结果。(5分)
class Instrument {
public void play() {
System.out.println("Instrument.play()");
}
}
class WindextendsInstrument {
public void play() {
System.out.println("Wind.play()");
}
}
public class Music {
public static void tune(Instrumentk ) {
k.play();
}
public static void main(String[] args) {
Wind flute = new Wind();
tune(flute);
}
} 答案:Wind.play()读程序,写出正确的运行结果。(5分)
class Test extends Thread{
public void run(){
System.out.println("1");
yield();
System.out.println("2");
suspend();
System.out.println("3");
resume();
System.out.println("4");
}
public static void main(String []args){
Test t = new Test();
t.start();
}
}
答案: 1
2
读程序,写出正确的运行结果。(5分)
public class Example{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+" and "); System.out.print(ex.ch); } public void change(String str,char ch[]){ str="test ok"; ch='g'; } }
答案: good and gbc读程序,写出正确的运行结果。(5分)
class A{ class Dog{ private String name; private int age; public int step; Dog(String s,int a) { name=s; age=a; step=0; } public void run(Dog fast) { fast.step++; }}public static void main (String args[]){ A a=new A(); Dog d=a.new Dog("Tom",3); d.step=25; d.run(d); System.out.println(d.step); }
}
答案: 26
解释:考察内部类的应用读程序,写出正确的运行结果。(5分)
public class test {
static int m = 9;
public static void main(String[] args) {
test fd1 = new test();
fd1.m++;
test fd2 = new test();
System.out.println(fd1.m + “,” + fd2.m);
}
}
答案: 10,10
解释:考察static变量的用法。fd1和fd2两个对象公用了整型数m,所以在fd1中的修改对fd2也是可见的。
三、阅读程序,回答问题:(20分)
import java.awt.*;
import ____ ____________;class MyFirstFrame extends Frame implements _ ________{
private static final int FRAME_WIDTH=300;
private static final int FRAME_HEIGHT=200;
private static final int FRAME_X_ORIGIN=150;
private static final int FRAME_Y_ORIGIN=250;
private static final int BUTTON_WIDTH=60;
private static final int BUTTON_HEIGHT=30;
ButtonokButton; public MyFirstFrame()
{
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setResizable(false);
setTitle("Program MyFirstFrame");
setLocation(FRAME_X_ORIGIN, FRAME_Y_ORIGIN);setLayout(null);
okButton = new Button("OK");
okButton.setBounds(100,150,BUTTON_WIDTH,BUTTON_HEIGHT);
add(________________);//添加按钮okButton.addActionListener(__________________);
}public void actionPerformed (ActionEvent event)
{
Button clickButton = (Button)event.getSource();
if(clickButton == okButton)
setTitle("you clicked OK ");
}
}1.填写程序中的空白。(2分/空, 2*4=8分) (答案写在下面空白处)
答案:(2)java.awt.event.*
(3) ActionListener
(20)okButton
(21)this2.说明程序14)行的功能?(3分)
答案:使得窗口大小固定,不能伸缩。3.说明程序17)行的功能?(3分)
答案:不使用布局管理器。4.说明程序21)行的功能?(3分)
答案:注册鼠标点击事件的侦听对象。5.说明程序23)-28)行的功能?(3分)
答案:对鼠标点击事件的处理方法,当点击鼠标左键时,窗口标题栏变为you clicked OK.
页:
[1]