1、国家二级( JAVA)机试模拟试卷 83及答案与解析 一、基本操作题( 30分) 1 下列程序中,给出两个整数 4和 6,分别求 4除以 6和 4乘以 6的结果,要求调用类 exl的方法 method()来输出相应的结果,请将程序补充完整。程序运行结果如下: 0.6666666666666666 24 注意:不改动程序结构,不得增行或删行。 public class ex1 public static void main(String args) int n1=2,n2=3; ex1 obj1=new ex1(); obj1._; public void method(int x, int y
2、) System.out.println(_); System.out.println(_); 二、简单应用题( 40分) 2 下列程序使用 FlowLayout布局管理器管理 3个 Button构件在 Frame中的位置。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.awt.*; public class ex2 private Frame frm; private Button btn1; private Button btn2; private Button btn3; public static void main(String args) ex2
3、 t=new ex2(); t.method(); public void method() frm=new Frame(“ex2“) _ Btn1=new Button(“Button1“); btn2=new Button(“Button2“); btn3=new Button(“Button3“); frm.add(btn1); frm.add(btn2); _ frm.pack(); frm.setVisible(true); 三、综合应用题( 30分) 3 下面是一个 Applet程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区域按钮,用来清除已经绘制的图像。请改
4、正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: import.java.awt.*; import.java.applet.*; /* applet code=exl_3.class width=800 height=400 /applet */ public class exl_3 extends Applet private Button btn; private Boolean bDraw, bClear; private int upX,upY,downX,downY; public void init()
5、setLayout(null); bClear=false; bDraw=false; btn=new Button(”clear”); btn.reshape(250,150, 70,30); add(btn); public void paint(Graphics g) if(bClear) g.clearRect(0,0,getSize().width,getSize().height); bClearr=false; if(bDraw) g.drawLine(upY,upX,downY,downX) bDraW=false; public void update(Graphics g)
6、 paint(g); Public boolean mouseDown(Event event,int x,int y) downX=x; downY=y; return true; public boolean mouseUp(Event event,int x,int y) upX=x; upY=y; bDraw=false; repaint(); return true; public boolean action(Event event,Object Object) if(event.target!=clear) bClear=true; repaint() return true;
7、ex1_3.html HTML HEAD TITLE ex1_3 /TITLE /HEAD BODY applet code=“exl_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 83答案与解析 一、基本操作题( 30分) 1 【正确答案】 method(n1,n2) (double)x/y x*y 【试题解析】 本题主要考查 Java语言的数据类型和结构以及不同数据类型之间的转换,对象调用方法以及基本的运算操作。解题关键是熟悉 Java语言的基本数据类型和类型之间的转换,用类的对象来调用方法,以及熟悉
8、 Java语言的基本运算。在本题中,第 1空通过类 ex1的对象。 obj1调用类 ex1的方法 method(),将变量 n1和 n2作为参数传递给方法。第 2空由于 x, y都是 int,则 x/y的结果为0.666 ,这会转换为 int,其值为 0。所以要对数据进行类型转换,将 x转换为double型则 y也转换为 double型,因 此结果为 double型,值为 0.666 。第 3空无须做类型转换,直接输出 x*y的值 24即可。 二、简单应用题( 40分) 2 【正确答案】 frm.setLayout(newFlowLayout(); frm.add(btn3); 【试题解析】
9、本题考查对图形用户界面的掌握。第 1空应该填入的语句的功能是设置布局管理器为 FlowLayout,程序中的容器就是 Frame的对象 frm,设定 frm的布局管理器,用 newFlowLayout()作为参数调用frm.setLayout(newFlowLayout()实现了上述功能,因此,第 1空填写frm.setLayout(newFlowLayout();。第 2空应该填入的语句的功能是将 btn3放入对象名为 frm的 Frame中,因此,第 2空填写 frm.add(btn3);。 三、综合应用题( 30分) 3 【正确答案】 g.drawLine(downX,downY,upX
10、,upY) bDraw=true event.target= =btn 【试题解析】 本题主要考查 Applet的图形绘制、鼠标事件处理和用户界面的相关知识点以及 会使用 boolean类型的变量控制程序的流程。解题关键是 ,熟悉Applet的图形绘制,会用 Graphics类的基本绘图方法,例如 drawLine()方法;熟悉鼠标事件处理,并能与图形绘制和用户界面设计相结合做简单的综合应用;掌握一定的程序流程的控制思想。本题中,主要的思想是首先判断用户将鼠标按下与放开的坐标位置,然后使用 drawLine()方法绘制由鼠标按下点到放开点的直线。第 1处,将 drawLine()方法的几个参数颠倒,要明白此方法的几个参数的确切含义才能正确修改。第 2处,将 bDraw变量的值设为 false,这导致程序在调用paint()方法时不能进入 g.drawLine语句,应改为 true。第 3处,有两个错误:首先要明确 clear是 btn对象显示在用户界面的名称,而不是作为对象来与event.target做比较,因此应改为 btn,这在调试时就会出现变量无法解析的错误;其次,符号 !=应改为符号 = =,这里要确定单击 btn事件发生才能做清除,否则不能达到预期效果。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1