1、二级 JAVA 机试-13 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.System.out.println(“ “ +year+ “ “年不是闰年.“);(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.System.out.print(Integer.toString(ai);(分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划
2、线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_二级 JAVA 机试-13 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.System.out.println(“ “ +year+ “ “年不是闰年.“);(分数:33.00)_正确答案:(InputStreamReader ir;SysteminIntegerparseInt(S);)解析:解析本题主要考查 I/O 流。解答本题的关键是理解和使用 I/O 流。在本题中,InputStreamReader ir;语句的功
3、能是声明一个字符输入流对象 ir,ir=new InputStreamReader(Systemin);语句的功能是生成一个字符输入流对象 ir(InputStreamReader();方法以标准输入流对象为参数)。int year=Integer,parseInt(s);语句的功能是定义一个整型变量 year,这里 Integer 是包装类,parseInt(s)方法是将字符串数据转换成整型数据。二、2简单应用题(总题数:1,分数:33.00)2.System.out.print(Integer.toString(ai);(分数:33.00)_正确答案:(ai=aji+)解析:解析本题主要考
4、查数组操作 while 语句的嵌套。解题关键是会使用双向查找方法查找数组中的数,使用 2 个下标变量 i,j 分别从数组的第一个和最后一个元素开始向中间进行搜索,提高搜索效率,若 ai为偶数,aj为奇数,则交换,同时 i+,j-,即 i 向右、j 向左扫描;若 ai为奇数,aj为偶数,则 i+,j-;若 ai为奇数,aj为奇数,则 j 不变,i+;若 ai为偶数,aj为偶数,则 i 不变,j-;当 i=j 时结束扫描。本题中,第 1 个空,交换 ai和 aj,是上述算法中的第一种情况;第 2 个空, i+下标变量 i 向右移动。三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 A
5、pplet 程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_正确答案:(gdrawPolygon(x,y,6)y2i+=yi+(rectheight/2)gfillPolygon(x,y2,6)解析:解析本题主要考查 Applet 窗口编程和图形绘制的综合应用。解题关键是熟悉上述考点的基本要求,使用Graphics 类的 drawPolygon()和 fillPolygon()方法绘制任意形状的图形,并且能结合数组进行编程实现。本题中第 1 处,第 2 个参数应该是 y,而不是 y2。y2 还没有初始化;第 2 处,注意 y2 数组中的值是需要进行累加的,因此需要使用符号+=;第 3 处,fillPolygon()方法的第 2 个参数应该是 y2,绘制新的图形,并填充,若是 y 则不能绘制新的图形。