1、国家二级( JAVA)机试模拟试卷 74及答案与解析 一、基本操作题( 30分) 1 请在每条横线处填写一个语句,使程序的功能完整,且输出结果为 91 1。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: public class Outer public static void main (String args Outer i = new Outer(); i,taskInner(); public class Inner private int size; public void doSomething(int size) _
2、/访问局部变量 this. size+; /访问内部类的成员变量 _/访问外部类的成员变量 System.out.println(size+“ “+this.size+“ “+Outer.this.size); public void taskInner() _ k.doSomething(8); private static int size; 二、简单应用题( 40分) 2 本程序的功能是,根据用户输入的文件名,在相应的文件内容中查找匹配给定模式的字符串,并将这些字符串显示出来。模式串为 “href=“” 。请填写横线处的内容。 注意:请勿改动 main()主方法和其他已有语句内容,仅在横
3、线处填入适当语句。 import java.io.*; import java.util.regex.*; import javax.swing.*; public class Example2_10 public static void main(String argv) final String patternString = “hrefs*=s*(“*“|s )s*; String fileName ; try System. out. print ( “请输入 html 文件的文件名 : “); InputStreamReader in = new InputStreamReader(
4、System.in); BufferedReader imput = new BufferedReader(in); fileName = imput.readLine(); if(fileName.equals(“ “) return; StringBuffer buffer = new StringBuffer(); File file = new File(fileName); FileInputStream readfile = new FileInputStream(file); for(int c = 0; (c = readfile.read() != -1; ) buffer.
5、append(char)c); Pattern pattern = Ppile( _ Pattern.CASE_INSENSITIVE); Matcher matcher =_; while (marcher. find () int start = matcher.start(); int end = matcher.end(); String match = buffer.substring(start, end); System.out.println (match); catch (Exception excption) System. out.println (excption. g
6、etMessage (); System.exit(O); 三、综合应用题( 30分) 3 下面是一个 Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件清单如下: import java.awt.*; import java.applet *; /* applet code=“ex11_3 class“width=800 height=400 /applet */ public class ex11_3 ex
7、tends Applet int x = 15,50,100,160,120,190 ; int y = 15,100,30, 15, 80, 50 ; public void init() setBackground (Color. lightGray); public void paint (Graphics g) int y2 = new int6; g. setColor (Color. red); Rectangle rect = getBounds(); g.drawPolygon (x, y2,6); for(int i=0; i 6; i+) y2i = yi + (rect.
8、height / 2); g. fillPolygon (x, y, 6); ex11_3. html HTML HEAD TITLE ex11_3 /TITLE /HEAD BODY applet code=“ex11_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试 模拟试卷 74答案与解析 一、基本操作题( 30分) 1 【正确答案】 size+; Outer this size+: Inner k=new Inner(); 【试题解析】 本题主要考查内部类的概念, super,this关键字的用法。解答本题的
9、关键是熟练掌握 super, this关键字的用法。在本题中 size+;语句是访问局部变量 size, Outer this size+;语句的功能是访问外部类的成员变量 size,InnerK=new Inner();语句的功能是生成内部类 Inner的对象 K。 二、简单应用题( 40分) 2 【正确答案】 patternString pattern matcher(buffer) 【试题解析】 本题考查知识点:输入输出流和正则表达式解题思路:程序首先使用 InputStreamReader的实例 “in”从标准输入中获取用户输入的文件名,并将结果存放在 “fileName”字符串中。
10、if语句用来判断用户输入的文件名是否为空,如果为空则退出程序,不做任何处理。然后根据文件名读取相应的文件内容存放在StringBuffer的实例 “buffer”中。然后建立起与正则表达式对应的模式对象“pattem”,并与 “buffer”帮定,生成一个匹配器 “matcher”。最后使用 while循环查找到相应的字符串。 Patter的 compile方法用来将正则表达式编译成模式对象。 compile方法的第一个参数是正则表达式字符串,所以第一个空的答案是 “patternString”。 第二个空用来建立一个匹配器。模式对象建立匹配器的方法是 matcher(string),其中 s
11、tring是需要做模式匹配的兑现,本题中需要做模式匹配的对象是 “buffer”。 三、综合应用题( 30分) 3 【正确答案】 g.drawPolygon(x,y,6) y2i+=yi+(rect.height/2) g fillPolygon(x,y2,6) 【试题解析】 本题主要考查 Applet窗口编程和图形绘制的综合应用。解题关键是熟悉上述考点的基本要求,使用 Graphics类的 drawPolygon()和 fillPolygon()方法绘制任意形状的图形,并且能结合数组进行编程实现。本题中第 1处,第 2个参数应该是 y,而不是 y2。 y2还没有初始 化;第 2处,注意 y2数组中的值是需要进行累加的,因此需要使用符号 +=;第 3处, fillPolygon()方法的第 2个参数应该是 y2,绘制新的图形,并填充,若是 y则不能绘制新的图形。