1、国家二级( JAVA)机试模拟试卷 33及答案与解析 一、基本操作题( 30分) 1 下面程序是关于类的继承的用法。阅读下面程序,根据程序中的注释在每一条横线处填写一个语句,使程序的功能完整,且运行程序后的输出结果为: I am parentclass! I am childclass! I am childclass! 注意 : 请勿改动 main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。 class Parent void printMe() System.out.println(“I am parentclass!“); class Child extends Pare
2、nt void printMe() System.out.println(“I am childclass!“); void printAll() _.printMe ( ); / 调用父类的方法 _. printMe ( ); /调用本类的方法 printMe ( ); public class TestJieCheng public static void main(String args) _ myC.printAll(); 二、简单应用题( 40分) 2 请完成下列 Java程序:读取新浪首页文件的数据并且显示出来。要求编写JFrame扩展类,以 String类的对象定义的 url地址
3、作为入口参数 ,该类实现根据 url参数指定的地址进行连接和读取数据,并且能显示在 1个文本区域内。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; import .*; import java.io.*; public class ex25_2 public static void main(String arg) UrlFrame page = new UrlFrame(“http:/“); page.s
4、how(); class UrlFrame extends JFrame JTextArea jta = new JmextArea(“正在读取文件 “); URL url; public UrlFrame(String strAddr) super (strAddr); / 使用父类的构造方法。 setSize(450, 300); JScrollPane jsp = new JScrollPane(jta); getContentPane().add(jsp); WindowListener wl = new WindowAdapter() public void windowClosin
5、g(WindowEvent we) System.exit(0); ; addWindowListener(wl); try url = new URL(strAddr); _; catch (MalformedURLException murle) System.out.println(“不合适的 URL: “+ strAddr); void getData(URL url) URLConnection con = null; InputStreamReader isr; BufferedReader readBuf; String strLine; StringBuffer strBuf
6、= new StringBuffer(); try con = this.url.openConnection(); con.connect(); jta.setText(“打开连接 .“); isr = new InputStreamReader(con.getInputStream( ); readBuf = new BufferedReader(isr); jta.setText(“读取数据 .“); while (strLine = readBuf.readLine() != null) strBuf.append(strLine + “n“); _; catch (IOExcepti
7、on e) System.out.println(“IO 错误 :“ + e.getMessage(); 三、综合应用题( 30分) 3 下面是一个 Apple(程序,其功能是播放动画。要求根据给出的 3幅图片设计 1个动画。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: import java.awt.*; import java.applet.*; import java.awt.image.*; /* applet code=“ex24_3.class“ width=800 height=400 /appl
8、et */ public class ex24_3 extends Applet implements Runnable Image images=new Image4; Image image; int IMG onClick=over(this) title=放大 Number=3; int currentImage=0; Thread thisThread; public void init() for (int x=0;x IMG onClick=over(this) title=放大 Number;x+) imagesx= getImage(getCodeBase(),“IMG on
9、Click=over(this) title=放大 “+x+“.gif“); image=images0; public void paint(Graphics g) g.drawImage(image0,0,0,null); public void update(Graphics g) paint(g); public void start() thisThread = new Thread(this); thisThread.start(); public void stop() thisThread.stop(); thisThread=null; public void run() w
10、hile(true) currentImage+; currentImage=IMG onClick=over(this) title=放大 Number; image=imagesIMG onClick=over(this) title=放大 Number; repaint(); try thisThread.sleep(100); catch (Exception e) ex24_3, html HTML HEAD TITLE ex24_3 /TITLE /HEAD BODY applet code=“ex24_3.class“ width=800 height=400 /applet /
11、BODY /HTML 国家二级( JAVA)机试模拟试卷 33答案与解析 一、基本操作题( 30分) 1 【正确答案】 super this Child myC=new Child(); 【试题解析】 本题主要考查 super,this关键字以及如何生成对象。解答本题的关键是熟练 super,this的用法、对象的生成。在本题中, super.printMe(); 语句的功能是调用父类的 printMe()方法, this printMe();语句的功能是调用本类的printMe()方法, Child myC=new Child();语句的功能是生成 Child类的对象myC。 二、简单应用题
12、( 40分) 2 【正确答案】 getData(url) jta setText(strBuf toString() 【试题解析】 本题主要考查面向对象的基本编程思想, swing构件的使用,以及java net包中的基本方法的使用。解题关键是能够从题目意思中提取有用信息 ,并抽象成自己制作的类,并实现这个类,完成一些基本功能。本题中,第 1个空,调用类 UrlFrame内部的方法 getData,根据参数 url所指出的地址获得文件数据;第 2个空,将 strBuf中的数据显示到 jta对象所指定的文本区域中。 三、综合应用题( 30分) 3 【正确答案】 g.drawImage(image
13、, 0, 0, null) currentImage =IMG onClick=over(this) title=放大 Number image=imagescurrentImage 【试题解析】 本题主要考查 Applet图形绘制和多线程相结合制作动画的综合应用。解题关键是熟悉 Applet生命周期,熟悉线程的编程模式,熟悉 Graphics类的基本绘图方法和图像处理方法等。本题中,第 1处,应该是绘制当前的 1幅图片, image对象定义的就是这一幅图像;第 2处,将 currentImage对 imgNumber取模并把结果返回给 currentImage,作为当前图像的索引值;第 3处,将由currentImage索引的图像数组中的对象的值赋给 image对象,用于显示。