1、计算机二级(JAVA)上机考试 23 及答案解析(总分:-3.00,做题时间:90 分钟)1.基本操作题 下列程序中,定义了 3 个变量 l, s, b,类型分别为 long, short, byte 并赋了初始值,分别为-1,1,-1,要求对 l 做按位左移运算,对 s 做按位右移运算,对 b 做无符号按位右移运算,移动的位数均为 10 位。请将程序补充完整。 程序运行结果如下: -1024 0 -1 public class ex8_1 public static void main(String args) long l = -1; ; System.out.println(l); sh
2、ort s = 1; ; System.out.println(s); byte b = -1; ; System.out.println(b); (分数:-1.00)_2.简单应用题 请完成下列 Java 程序:对大写的 26 个英文字母加密,从键盘输入一个大写字母串,输出这个串加密后的结果。加密操作是将字母变换成倒序的大写字母,如 A-Z, B-Y。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: 输入一个大写字母串:ADFSDFFE 加密后的大写字母串:ZWUHWUUV import java.io.*; public class e
3、x12_2 public static void main (String args) char ch = A; String str; System.out.print(“输入一个大写字母串:“); try BufferedReader in = new BufferedReader(new InputStreamReader(System.in); str = in.readLine(); System.out.print(“加密后的大写字母串:“); for(int i=0;i_3.综合应用题 下面是一个 Applet 程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区
4、域按钮,用来清除已经绘制的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。程序运行结果如下: (分数:-1.00)_计算机二级(JAVA)上机考试 23 答案解析(总分:-3.00,做题时间:90 分钟)1.基本操作题 下列程序中,定义了 3 个变量 l, s, b,类型分别为 long, short, byte 并赋了初始值,分别为-1,1,-1,要求对 l 做按位左移运算,对 s 做按位右移运算,对 b 做无符号按位右移运算,移动的位数均为 10 位。请将程序补充完整。 程序运行结果如下: -1024 0 -1 public class ex8_1 public sta
5、tic void main(String args) long l = -1; ; System.out.println(l); short s = 1; ; System.out.println(s); byte b = -1; ; System.out.println(b); (分数:-1.00)_正确答案:(l = 10 b = 10 )解析:本题主要考查位运算符。解题要点是熟悉左移,右移和无符号右移运算的表达式。本题中,3 个空分别对应填上题目要求的运算表达式即可,注意无符号右移运算适合对负数进行右移运算。2.简单应用题 请完成下列 Java 程序:对大写的 26 个英文字母加密,从键
6、盘输入一个大写字母串,输出这个串加密后的结果。加密操作是将字母变换成倒序的大写字母,如 A-Z, B-Y。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: 输入一个大写字母串:ADFSDFFE 加密后的大写字母串:ZWUHWUUV import java.io.*; public class ex12_2 public static void main (String args) char ch = A; String str; System.out.print(“输入一个大写字母串:“); try BufferedReader in =
7、new BufferedReader(new InputStreamReader(System.in); str = in.readLine(); System.out.print(“加密后的大写字母串:“); for(int i=0;i_正确答案:(ch = str.charAt(i) ch = (char )(Z - ch + A) )解析:本题主要考查字符串的操作和 I/O 操作的简单应用。解题关键是,熟悉字符串的基本操作,会将字符作相应的转换,熟悉字符串的定位方法 charAt()以及基本的 I/O 操作。本题中,第 1 个空,定位 str对象中的字符,调用 str 对象的 charA
8、t()方法定位第 i 个字符并将该字符写给 ch 变量;第 2 个空,加密算法的实现,Z-ch 表示字符 ch 在字符表中和字符Z之间相隔多少字符,再加上字符A就得到了倒序的字符在字符表中的位置,然后进行类型转换,就得到了倒序的字符。3.综合应用题 下面是一个 Applet 程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区域按钮,用来清除已经绘制的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。程序运行结果如下: (分数:-1.00)_正确答案:(g.drawLine(downX, downY, upX, upY) bDraw = true event.
9、target = btn )解析:本题主要考查 Applet 的图形绘制,鼠标事件处理和用户界面的相关知识点以及会使用 boolean 类型的变量控制程序的流程。解题关键是,熟悉 Applet 的图形绘制,会用 Graphics 类的基本绘图方法,例如 drawLine()方法;熟悉鼠标事件处理,并能与图形绘制和用户界面设计相结合做简单的综合应用;掌握一定的程序流程的控制思想。本题中,主要的思想是首先判断用户将鼠标按下与放开的坐标位置,然后使用 drawLine()方法绘制由鼠标按下点到放开点的直线。第 1 处,将 drawLine()方法的几个参数颠倒,要明白此方法的几个参数的确切含义才能正确修改。第 2 处,将 bDraw 变量的值设为 false,这导致程序在调用 paint()方法时不能进入 g.drawLine 语句,应改为 true。第 3 处,有两个错误:首先要明确clear 是 btn 对象显示在用户界面的名称,而不能作为对象来与 event.target 做比较,因此应改为 btn,这在调试时就会出现变量无法解析的错误;其次,符号!=应改为符号=这里要确定点击 btn 事件发生才能做清除,否则不能达到预期效果。