1、国家二级( JAVA)机试模拟试卷 31及答案与解析 一、基本操作题( 30分) 1 请在每条横线处填写一个语句,使程序的功能完整,且输出结果为 911。 注意:请勿改动 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) _访问局部变量 this si
2、ze+;访问内部类的成员变量 _访问外部类的成员变量 System out println(size+“ “+this size+“ “+Outer this size); public void taskInner() _ k doSomething(8); private static int size; 二、简单应用题( 40分) 2 请完成下列 Java程序:用树 构件展示计算机等级考试二级的简单目录组织结构,包含三级目录,第一级是根目录 (计算机二级 );第二级包含 2个目录,一个是c+,一个是 java; c+目录中,只有一项就是简介,而 java目录中包含三项,一个简介,一个大纲
3、,一个第三级目录 (参考书 );参考书目录中包含两项,一个是指导书,一个是上机习题集。要求,根据上述目录结构给出图形用户界面的表示。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; public class ex23_2 extends JPanel static JFrame jfrm; public ex23_
4、2() setLayout(new BorderLayout(); DefaultMutableTreeNode root = addNode(); JTree jt = new JTree(root); jt.setRootVisible(true); JScrollPane jsp = new JScrollPane(); jsp.setViewportView(jt); add(jsp); public DefaultMutableTreeNode addNode() DefaultMutableTreeNode root = new DefaultMutableTreeNode(“计算
5、机二级 “); DefaultMutableTreeNode sub1 =new DefaultMutableTreeNode(“java“); DefaultMutableTreeNode sub2 = new DefaultMutableTreeNode(“c+“); root.add(sub2); root.add(sub1); DefaultMutableTreeNode magazines = new DefaultMutableTreeNode(“参考书 “); sub1.add(new DefaultMutableTreeNode (“简介 “); sub1.add(new De
6、faultMutableTreeNode (“大纲 “); _; magazines.add(new DefaultMutableTreeNode (“指导书 “); magazines.add(new DefaultMutableTreeNode (“上机习题集 “); _.add(new DefaultMutableTreeNode(“简介 “); return root; public static void main(String args) jfrm = new JFrame(“ex23_2“); ex23_2 obj23_2 = new ex23_2(); jfrm.getCont
7、entPane().add(“Center“,obj23_2); jfrm.setSize(400,250); jfrm.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); jfrm.setVisible(true); 三、综合应用题( 30分) 3 下面是一个 Applet程序,其功能是在窗口中绘制 3个半径递增的圆,并用 RGB三原色对这 3个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制
8、。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: import java.applet.*; import java.awt.*; import java.awt.*; /* applet code=“ex22_3.class“ width=800 height=400 /applet */ class CanvasCircle extends Canvas private Color cCircle; public CanvasCircle(Color c) cCircle = c; public void p
9、aint(Graphics g) int dimCricle, xCircle, yCircle; Dimension sizeCurrent = getSize(); if (sizeCurrent.width sizeCurrent.height) dimCricle = sizeCurrent.width; else dimCricle = sizeCurrent.height; g.setColor(cCircle); xCircle = (sizeCurrent.height - dimCricle) / 2; yCircle = (sizeCurrent.width - dimCr
10、icle) / 2; g.fillOval(xCircle, yCircle, dimCricle, dimCricle); public class ex22_3 extends Applet public void init() GridBagLayout gbl = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); CanvasCircle circleNew; setLayout(gbl); gbc.weightx = 1.0; gbc.weighty = 1.0; gbc.fill = Gr
11、idBagConstraints.BOTH; circleNew = new CanvasCircle(Color.red); gbl.setConstraints(circleNew, gbc); add(circleNew); gbc.weightx = 1.5; gbc.weighty = 1.5; circleNew = new CanvasCircle(Color.green); gbl.setConstraints(circleNew, gbc); add(circleNew); gbc.weightx = 2.0; gbc.weighty = 2.0; circleNew = n
12、ew CanvasCircle(Color.blue); gbl.setConstraints(circleNew, gbc); add(circleNew); ex22_3, h tml HTML HEAD TITLE ex22_3 /TITLE /HEAD BODY applet code=“ex22_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 31答案与解析 一、基本操作题( 30分) 1 【正确答案】 size+; Outer this size+; Inner k=new Inner(); 【
13、试题解析】 本题主要考查内部类的概念, super,this关键字的用法。解答本题的关键是熟练掌握 super,this关键字的用法。在本题中 size+;语句是访问局部变量 size, Outer.this.size+;语句的功能是访问外部类的成员变量 size, Inner K=new Inner();语句的功能是生成内部类 Inner的对象 K。 二、简单应用题( 40分) 2 【正确答案】 sub1.add(magazines) sub2 【试题解析】 本题主要考查使用 swing的基本构件进行图形用户界面编程。解题关键是熟练掌握 JTree构件和 DefaultMutableTree
14、Node构件相结合创建分级目录的基本使用方法。本题中,第 1个空,知道 magazines对象是代表了第三级目录的,而 sub1对象定义了 java目录,所以这里应该是 sub1 add(maganizes);第 2个空, sub2对象定义了第二级目录的 c+目录,因此这里应该是 c+目录中的项“简介 ”。 三、综合应用题( 30分) 3 【正确答案】 sizeCurrent width sizeCurrent height xCircle= (sizeCurrent width-dimCricle) /2 yCircle=(sizeCurrent height-dimCricle)/2 【试
15、题解析】 本题主要考查根据需要设计能完成绘制圆的 Canvas子类的编程,以及与 Applet图形绘制的基本操作相结合的综合应用。 解题关键是 CanvasCircle类的编写,颜色作为对外的接口,根据颜色参数来确定绘制圆的颜色,因此通过类的构造方法从外界获得这个参数, paint()是重载了Canvas的方法,初始化 CanvasCircle对象之后,自动执行实现绘制。本题中,第1处,根据条件判断式的含义,很容易得到答案;第 2处,要明白窗口getSize() width属性,对应的参数应该是 xCircle,同理第 3处 getSize() height属性对应的参数是 yCircle。