1、二级 JAVA 机试-184 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.下列程序中,分别计算 1,2,3,10 的阶乘,并输出计算结果,请将程序补充完整。程序运行结果如下:1!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800public class ex10_1 public static void main(Stringargs) long 1 Factorial;for(int i=1;i=10;i+) _;for(int j=2;_;j+)_;Sys
2、tem.out.println(i+ “ ! =“ + 1Factorial);(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 Java 程序:输出某年的某月有多少天数,要求生成 2 个输入对话框,一个输入年份,一个输入月份,并且能检查输入的数字是否符合要求,如果符合要求,则根据输入的年份和月份计算出这一年的这一月有多少天。提示:闰年为年数能被 4 整除但是不能被 100 整除。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:(分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.下面是
3、一个 Applet 程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示 10 条“Welcome to the NCR Examination!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_二级 JAVA 机试-184 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.下列程序中,分别计算 1,2,3,10 的阶乘,并输出计算结果,请
4、将程序补充完整。程序运行结果如下:1!=12!=23!=64!=245!=1206!=7207!=50408!=403209!=36288010!=3628800public class ex10_1 public static void main(Stringargs) long 1 Factorial;for(int i=1;i=10;i+) _;for(int j=2;_;j+)_;System.out.println(i+ “ ! =“ + 1Factorial);(分数:33.00)_正确答案:(1Factorial=1j=i1Factorial*=j)解析:解析本题主要考查 for
5、 循环语句和简单的数学计算。解题要点是熟练掌握 for 循环语句,会解决一些简单的数学问题,熟悉求阶乘的算法,并用程序实现这一算法。本题中,第 1 个空,要对 1Factorial 变量进行初始化,因为需要计算 1 到 10 一共 10 个数的阶乘,所以最外层循环共执行 10 次,每次都需要将1Factorial 重新初始化为 1:第 2 个空,内层循环实现某个数的阶乘,因此循环变量的上界应该是 i=i;第3 个空,阶乘算法的公式,做累乘。二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 Java 程序:输出某年的某月有多少天数,要求生成 2 个输入对话框,一个输入年份,一个输入
6、月份,并且能检查输入的数字是否符合要求,如果符合要求,则根据输入的年份和月份计算出这一年的这一月有多少天。提示:闰年为年数能被 4 整除但是不能被 100 整除。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:(分数:33.00)_正确答案:(nMonth0 | nMonth12(nYear%4 =0)&!(nYear%100 = 0) | (nYear%400 = 0)解析:解析本题主要考查 swing 图形用户界面设计和 case 语句的简单应用。解题关键是会用 swing 的容器面板构造对话框,熟悉判断闰年的条件语句的设计,判断输入是否
7、符合程序要求的条件语句设计,case 语句的设计。本题中,第 1 个空,判断输入的月份值应该在 1 到 12 月之间,否则给出提示信息并退出;第 2 个空,闰年的判断,将题干中的提示用代码实现。三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示 10 条“Welcome to the NCR Examination!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得
8、增行或删行。程序运行结果如下:(分数:34.00)_正确答案:(jtp.setText(jtp.getText() + “ Welcome to the NCR Examination!/n“)cp.add(BorderLayout.SOUTH,jb)frm.getContentPane().add(obj10_3)解析:解析本题主要考查 Applet 和 swing 结合进行图形用户界面设计的综合应用。解题关键是掌握 swing 的基本构件 JTextPanel, JButton,JScrollPanel 的用法,掌握 BorderLayout 布局管理器的使用方法,以及熟练掌握最基本的对象概念。本题中,第 1 处, JTextPanel 的 2 个基本的方法,setText()和 getText()的功能,熟悉这 2 个功能,则很容易就能将错误改正;第 2 处,应该是通过 BorderLayout 布局管理器在窗口的最下方添加一个 JBuRon 对象,需要清楚程序中每个对象所对应的类;第 3 处,应该是将类 ex10_3 的对象。obj10_3 加入容器中,而不是把类作为参数传递给 add()方法。