21秋西电《JAVA程序设计》模拟试题2满分
学习中心 姓名 学 号 西安电子科技大学网络教育学院200 学年第 学期《Java程序设计》模拟试题2
( 90 分钟)题号
一
二
三
四
总分
题分
20
35
20
25
100
得分
一、选择题(4分/题,共5个,共20分)
1. 关于抽象类下列哪个描述正确?
抽象类不能包含抽象方法。
接口和抽象类是一回事。
抽象类不能实例化,即不能生成对象。
抽象类可以实例化对象。
答案:C。
解析:抽象类可以包含抽象方法,A错。设计上,接口用来规范类的行为,抽象类更偏向于定义类别;语法上,抽象类只能继承一个,接口可以实现多个。抽象类不可以实例化,D错。2. 如果你要做GUI编程,要在窗口上放置一个按钮,当点击按钮时使得窗口关闭,程序退出,则你应该怎样写import语句才正确?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
答案:D。
解析:进行图形界面开发必须引入包awt和event下的类。3. 下列哪个说法是错误的。
程序员可以定义新的异常类
Exception可以用try/catch进行捕获处理
Exception可以递交给上一级调用方处理
类似像IOException等异常, 程序可以忽略不进行捕获和处理
答案:D。
解析: Java中只要继承Exception类,就可以自己定义异常类,A说法正确。B、C说法是常识,均正确。Java中异常必须处理,D错误,选D。4. 如果有一个对象myListener (其中myListener对象实现了 ActionListener接口), 下列哪条语句使得myListener对象能够接受处理来自于smallButton按钮对象的动作事件?
smallButton.add(myListener);
smallButton.addListener(myListener);
smallButton.addActionListener(myListener);
smallButton.addItem(myListener);
答案:C。
解析:添加监听器必须用addActionListener方法。其他选项均不符合。5. 如果有一个对象myListener, 为了使myListener对象能够接受并处理来自于smallButton按钮对象的点击动作事件,myListener对象应该实现哪个接口?
ActionListener
ItemListener
MouseListener
WindowListener
答案:A。
解析:为了使自己定义的myListener对象能够接受并处理动作事件,必须实现Java自带的ActionListener接口。其他选项均为干扰项。
二、简答题(共35分)
请你列举出Java语言的三个特点。(9分)
答案:动态语言特性;纯粹的面向对象;“一次编译,到处运行”;可以进行解释执行;面向对象程序设计语言的三大特性是什么(9分)
答案:封装,多态,继承。什么是抽象类?举例说明。(6分)
答案:含有abstract方法的类。什么是接口?举例说明。(6分)
答案:接口是定义了一系列方法。请你说出import java.net.*;语句中“*”的含义以及包的作用。(5分)
答案:表示该包下所有的类,但不包括子包的类。
三、读程题,改错题 ( 5分/题,共4个,共20分)
1. 下列程序编译运行后输出什么?
public class Test {
public static void main(String[] args) {
int x=1, a=0, b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
System.out.println("a=" + a + "," + "b=" + b);
}
}答:a=2, b=1
解释:由于case中没有break语句,所以case1和case2都会被执行。
下列程序有一个错,请找出并说明错误原因。
public class FinalData {
final int m = 9;
public static void main(String[] args) {
FinalData fd1 = new FinalData();
fd1.m++;
System.out.println(fd1.m);
}
}
答:m被定义为常量,所以fd1.m++;这条语句有错误,不能修改常量的值。
下列程序有一个错,请找出并说明错误原因。
class test {
public static void main(String[] arg){
compute (3);
}
void compute(int n){
int x=n;
System.out.println( x * x);
}
}
答:main方法是static方法,所以不能直接调用非static方法,所以compute方法应该被定义成static方法,即static void compute(int n)。下列程序有一个错,请找出并说明错误原因。
public class test {
public static void main(String[] args){
first f = new first();
second s = new second();
s.second=3;
f.firstNo=2;
}
}
class first{
private int firstNo=1;
}
class second{
public int second=2;
}
答案:firstNo为私有成员,所以main方法中的f.firstNo=2;这条语句有错误。
四. 阅读程序,回答问题:(25分)
import java.io.*;
public class FileIO {
public static void main(String[] argvs) {
try{
BufferedReader in = new BufferedReader(new FileReader("in.txt"));
PrintWriterout =
new PrintWriter(new BufferedWriter(new FileWriter("outp.txt")));
String s;
int i=1;
while((s=in.readLine())!=null) {
out.println("line "+ i +"="+s);
i++;
}
in.close();
out.close();
}catch(FileNotFoundException e) {
System.err.println("cannot open in.txt");
}catch(IOException e) {
System.err.println("IO exception");
}
}
}
(1)说出这段程序的功能?(5分)
答:这个程序读in.txt输入文件,然后对读入内容进行处理,再将处理结果写到outp.txt文件中。(2)如果在当前运行目录下存在一个文件in.txt,则这个程序输出什么?(5分)In.txt 文件 的内容如右图 :答:输出一个文件outp.txt,该文件内容为
line1=first
line2=second
line3=third(3)如果在当前运行目录下没有文件in.txt,则这个程序输出什么? (5分)
答:输出cannot open in.txt(4)怎样编译程序?(5分)
答:javac FileIO.java(5)怎样运行程序?(5分)
答:java FileIO
页:
[1]