1、二级 JAVA 机试 36 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.请在下面程序中的每条横线处填写一个语句,使程序的功能完整。程序的输出结果为: TIME=1867 b=9 i=123 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 import javaio*; public class DataType public_void main(String args) byte b; int i;/定义变量 i 为 int 类型 _ /定义常量 TIME 为整型,且值为 1867 i=12
2、3;/给变量 i 赋值,该值为十进制的 123 _/给变量赋值,改值为,八进制的 11,十进制的 9 Systemoutprintln(“TIME”+TIME); Systemoutprintln(“b=“+b); Systemoutprintln(“i=“+i); (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:生成一个窗口,包含一个长度为 100 的横向滚动条,实现对这个滚动条状态的监视,计算出滚动条的位置在整个长度的百分比,并通过画布将该值输出在滚动条上方的区域中。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划
3、线处填入适当的语句。 程序运行结果如下: (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是构造 n 阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如三阶魔方阵为: 8 1 6 3 5 7 4 9 2 要求用 Applet 实现上述魔方阵,窗口中包括提示栏,提示输入 015 之间的奇数:输入框,输入方阵的阶数:按钮,点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。程序运行结果如下: (分数:30.00)_二级
4、 JAVA 机试 36 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.请在下面程序中的每条横线处填写一个语句,使程序的功能完整。程序的输出结果为: TIME=1867 b=9 i=123 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 import javaio*; public class DataType public_void main(String args) byte b; int i;/定义变量 i 为 int 类型 _ /定义常量 TIME 为整型,且值为 1867 i=123;/
5、给变量 i 赋值,该值为十进制的 123 _/给变量赋值,改值为,八进制的 11,十进制的 9 Systemoutprintln(“TIME”+TIME); Systemoutprintln(“b=“+b); Systemoutprintln(“i=“+i); (分数:30.00)_正确答案:()解析:Static final int TIME=1867; b=011; 解析 本题主要考查 main()主方法的使用以及如何定义常量。static 修饰符是说明 main()方法是静态方法,final int TIME=1867;语句的功能是定义一个整型的常量 TIME,并且其值为 1867,b=
6、011;语句是给变量 b 赋值为八进制的 11,十进制的 9。二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:生成一个窗口,包含一个长度为 100 的横向滚动条,实现对这个滚动条状态的监视,计算出滚动条的位置在整个长度的百分比,并通过画布将该值输出在滚动条上方的区域中。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_正确答案:()解析:mwrepaint() val*100/sbgetMaximum() 解析 本题主要考查 AWT 基本构件滚动条的简单操作和事件处理。解题关键是
7、熟悉 ScrollBar 构件的创建设置和相关事件的处理,会使用 Scrollbar 的基本方法如用 getMaximum()得到滚动条的长度等。本题中,第 1 个空,调用 mpaint()方法,由于这里是在画布中实现绘图操作,因此,应该使用画布的对象 mw 来调用此方法;第 2 个空,计算滚动条当前位置占整体长度的百分比,用到了 getMaximum()方法,注意由于是求百分比,因此需要再乘 100,否则结果为 0。三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是构造 n 阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,
8、例如三阶魔方阵为: 8 1 6 3 5 7 4 9 2 要求用 Applet 实现上述魔方阵,窗口中包括提示栏,提示输入 015 之间的奇数:输入框,输入方阵的阶数:按钮,点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。程序运行结果如下: (分数:30.00)_正确答案:()解析:btnaddActionListener(this) a1j=1 int k=2;k=n*n;k+ 解析 本题主要考查Applet 图形界面编程和 for 循环语句的使用以及对数组操作。解题关键是明白魔方阵的基本原理,并能看得
9、懂这个问题的算法,熟悉数组操作,for 循环语句以及 Applet 界面构件及其事件处理机制。魔方阵的排列规律是:首先将 1 放在第一行中间一列;然后从 2 开始直到 n*n 为止,各数依次按如下规则存放:每一个数存放的行比前一个数的行数减 1、列数加 1;然后如果上一个数的行数为 1,则下一个数的行数为 n;再次当上一个数的列数为 n 时,下一个数的列数应改为 1,行数减 1;最后如果按以上规则确定的位置上的已有数,或上一个数是第 1 行第 n 列时,则把下一个数放在上一个数的下面。本题中,第一处,事件监听器应该是 btn 对象的,不是 pane 对象;第二处,应该按照上述规则第一条,将 1 放在第一行中间一列;第二处,循环变量应该从 2 开始,如果是 1 得不到正确答案。