1、国家二级( JAVA)机试模拟试卷 111及答案与解析 一、基本操作题( 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
2、Parent 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类的对象定义的 u
3、rl地 址作为入口参数,该类实现根据 url参数指定的地址进行连接和读取数据,并且能显示在一个文本区域内。 注童;请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 源程序文件代码清单如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; import .*; import java.io.*; public class ex15_2 public static void main(String args) UrlFrame page = new UrlFrame(“http:/“);
4、 page.show(); class UrlFrame extends JFrame JTextArea jta = new JTextArea(“正在读取文件 .“); 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 window
5、Closing(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 st
6、rBuf = 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 (IOExc
7、eption e) System.out.println(“IO错误 :“ + e.getMessage(); 三、综合应用题( 30分) 3 下面是一个 Applet程序,程序的功能是用鼠标点击画图。本题是通过点击鼠标后画出一个 “Java”字。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或减行。 import java. awt.* import java. awt. event.*; import java. applet.* /* applet code= SimpleHitMouse. java width= 800 heigh
8、t= 400 /applet */ public class SimpleHitMouse implements Applet private java. util. Vector points= new java. util. Vector(); public void init() addMouseListener(new MouseAdapter () public void mousePressed(MouseEvent e) ( points, add (new Point (e. getX( ), e. getY ( ) ) ); paint( ); ); public void
9、update(Graphics g) repaint(g); public void paint(Graphics g) for(int i=0;i points, size() ;i+) Point dot= (Point)points. elementAt(i); g. drawString(“x“ ,dot. x,dot, y), public static void main(String args) Frame fram=new Frame(“CelayTree“); SimpleHitMouse dot=new SimpleHitMouse(); dot. init( ); dot
10、. start(); fram. add( “Center“, dot) fram. setSize(400,300); fram. addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System. exit(0); ); fram.show() exl_2, html: html head title A Simple program /title /head body applet code=“SimpleHitMouse, class“ width=800 height=400 /
11、applet /body /html 国家二级( JAVA)机试模拟试卷 111答案与解析 一、基本操作题( 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构件的使用,以及包中的基本方法的使用。解题关键是能够从题目意思中提取有用信息,并抽象成自己制作的类 ,并实现这个类,完成一些基本功能。本题中,第 1个空,调用类 UrlFrame内部的方法 getData,根据参数 url所指出的地址获得文件数据:第 2个空,将 strBuf中的数据显示到 jta对象所指定的文本区域中。 三、综合应用题( 30分) 3 【正确答案】 extends repaint()
13、 paint(g) 【试题解析】 本题主要考查 Java Applet程序的编写、 Java程序事件处理机制。编写 Applet小程序必须要用到 java appelt包中的 Applet类, java applet Appletjava awt Panel的子类。在 Applet中, Applet的显示更新是由一个专门的 AWT线程控制的。与 Applet显示相关的 3个方法: (1)paint()方法。 Applet的 paint()方法具体执行 Applet的绘制。该方法的定义如下: public void paint(Graphics g), paint()方法有一个参数 g是 Gra
14、phics类的实例,该实例对象由浏览器生成,它包含了 Applet的图形上下文信息,通过它向 Applet中显示信息,该对象相当于 Applet的画笔。 (2)update()方法。该方法的定义如下: public void update(Graphics g), update()方法用于更新 Applet的显示。该方法将首先清除背景,再调用 paint()方法完成 applet的具体绘制。 (3)repaint()方法。 repaint()方法的定义如下: public void repaint(),该方法主要用于 Applet的重新显示,它调用 update()方法实现对 Applet的更新。在本题中, extends关键字用于继承父类, repaint(), paint()方法都用于 Applet的重新显示。