1、二级 JAVA 机试-107 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.private static int size;(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.1.setText(“请正确输入! “);(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是输入 3 个双精度浮点数:a,b,c,构成一个一元二次方程,a*x*x+b*x+c=0,其判别式 d=b*b-4*a*c,若 d 为负数则输出“没有实根”,否则打印出 2 个实根。要求,
2、有 3 个输入框,输入 a,b,c,一个按钮,点击实现求根过程,一个不可编辑的文本区,用作输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:30.00)_二级 JAVA 机试-107 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.private static int size;(分数:30.00)_正确答案:(size+;Outerthissize+;Inner k=new Inner();)解析:解析本题主要考查内部类的概念,super,this
3、关键字的用法。解答本题的关键是熟练掌握 super,this 关键字的用法。在本题中 size+;语句是访问局部变量 size,Outer.this.size+;语句的功能是访问外部类的成员变量 size,Inner K=new Inner();语句的功能是生成内部类 Inner 的对象 K。二、2简单应用题(总题数:1,分数:40.00)2.1.setText(“请正确输入! “);(分数:40.00)_正确答案:(r=a%ba=b)解析:解析本题主要考查 AWT 基本构件和事件处理机制以及基本的求最大公因数的算法。解题关键是掌握Button,Panel,Label 等构件的使用方法,会处理
4、整数异常,熟练掌握 while 语句用法。本题中,第 1个空,r 为 a 除以 b 的余数;第 2 个空,a 更新为 b 的值。三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是输入 3 个双精度浮点数:a,b,c,构成一个一元二次方程,a*x*x+b*x+c=0,其判别式 d=b*b-4*a*c,若 d 为负数则输出“没有实根”,否则打印出 2 个实根。要求,有 3 个输入框,输入 a,b,c,一个按钮,点击实现求根过程,一个不可编辑的文本区,用作输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行
5、或删行。程序运行结果如下:(分数:30.00)_正确答案:(d=a2*a2-4.0*a1*a3x2=(-a2-Mathsqrt(d)/(2.0*a1)obj21_3doReal(a,b,c,tf4)解析:解析本题主要考查 Applet 窗口编程和 AWT 基本构件的使用和事件处理机制以及一元二次方程组的求根公式。解题关键是熟悉基本组件 Button,Panel,Label 等的用法和事件处理机制,熟悉一元二次方程组的求解,会使用 Math 类中给出的常用方法进行简单的数学计算。本题中,第 1 处,求判别式,注意判别式的公式是 d=b*b-4*a*c,弄清楚 doReal()方法中的参数对应的关系;第 2 处,求根公式的表示,应该-a2-Math.sqrt(d),否则,两个根一样;第 3 处,对象 obj21_3 调用 doReal()方法时,注意,最后 1 个参数是 TextField 类的对象,而不是 Label 类的对象。