1、二级 JAVA 机试-231 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面程序的功能是找出所有三位数中,个、十、百位数字的立方和等于该数本身的三位数并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。public class LiFangHepublic static void main(String args)System.out.println(“个、十、百位数字的立方和等于该数本身的三位数有:“);for(int n=100;n1000;n+)int a,b,c;_b=n/10%10;_if(_)System.
2、out.println(n);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序。程序的功能是复制文件并显示文件,将每个字符读入,并写入另一个文件,同时显示出来。(注意:在本题中,是将 D 盘的 JDK 目录下的 README.txt 文件打印在屏幕上,并写入另一个文件 temp.txt 中)注童:请勿改动 main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。import java.io.*;public class FileCopyBypublic static void main(String args)tryFileRea
3、der input=new FileReader(“FileCopyBy.java“);FileWriter output=new FileWriter(“temp.txt“);int c=input.read();while(_)_System.out.print(charc);c=input.read();input.close();output,close();catch(IOException e)System.out.println(e);(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下面的 Applet 程序,其功能为画一个正方形,大小 140*140,
4、其背景色为蓝色(其填充色为 pink 色,各边离 Applet 的边为 10 像素)和一个在填充的正方形中自右上到左下来回移动的小球(半径 15)。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。注意:不改动程序的结构,不得增行或删行。程序的执行结果为:(分数:30.00)_二级 JAVA 机试-231 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面程序的功能是找出所有三位数中,个、十、百位数字的立方和等于该数本身的三位数并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。public class
5、LiFangHepublic static void main(String args)System.out.println(“个、十、百位数字的立方和等于该数本身的三位数有:“);for(int n=100;n1000;n+)int a,b,c;_b=n/10%10;_if(_)System.out.println(n);(分数:30.00)_正确答案:(a=n/100;c=n%10;a*a*a+b*b*b+c*c*c=n)解析:解析 本题主要考查 for 循环语句的基本用法及条件运算符“=”的用法。解答本题的关键是熟练掌握 for 循环语句的基本用法及条件运算符“=”的用法在本题中,a=n
6、/100;语句的功能是获取三位数字的百位上的数字并赋给变量 a,c=n%10;语句的功能是获取三位数的个位上的数字并赋给变量b,a*a*a+b*b*b+c*c*c=n 语句的功能是判断三位数的每个位置上的立方和是否等于这个三位数。二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序。程序的功能是复制文件并显示文件,将每个字符读入,并写入另一个文件,同时显示出来。(注意:在本题中,是将 D 盘的 JDK 目录下的 README.txt 文件打印在屏幕上,并写入另一个文件 temp.txt 中)注童:请勿改动 main()主方法和其他已有的语句内容,仅在下划线处填入适当的
7、语句。import java.io.*;public class FileCopyBypublic static void main(String args)tryFileReader input=new FileReader(“FileCopyBy.java“);FileWriter output=new FileWriter(“temp.txt“);int c=input.read();while(_)_System.out.print(charc);c=input.read();input.close();output,close();catch(IOException e)System
8、.out.println(e);(分数:40.00)_正确答案:(c!=-1output.write(c);)解析:解析 本题主要考查对文本文件的操作及 while 循环语句的使用。解答本题的关键是掌握对文本文件的操作。Reader 类与 InputStream 类相似,都是输入流,但差别在于 Readr 类读入的是字符(char),而不是字节。不带参数的 read()方法功能是将读入的字符转为整数返回。若不能读到字符,返回-1 Writer 类与outputStream 类相似,都是输出流,但差别在于 Writer 类写出的是字符(char),而不是字节。在本题中,while 循环语句的功能
9、是循环对字符进行读入和写出操作。c!=-1 条件是判断 read()方法能否读入字符,output.write(c);语句的功能是写入一个字符 c。三、3综合应用题(总题数:1,分数:30.00)3.下面的 Applet 程序,其功能为画一个正方形,大小 140*140,其背景色为蓝色(其填充色为 pink 色,各边离 Applet 的边为 10 像素)和一个在填充的正方形中自右上到左下来回移动的小球(半径 15)。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。注意:不改动程序的结构,不得增行或删行。程序的执行结果为:(分数:30.00)_正确答案:(this.setB
10、ackground(Color.blue);animThread=nullrepaint();)解析:解析 本题主要考查 Java Applet 程序的设计,Java 语句的线程机制以及 for 循环语句。解答本题的关键是比较熟练的掌握 JavJava 语句的线程机制以及 for 循环语句的有关知识。线程是程序中的一个执行流。一个执行流是由 CPU 运行程序的代码、操纵程序的数据所形成的。创建线程的两种基本方法:(1)通过实现Runnable 接口创建线程。(2)通过继承 Thread 类创建线程。控制线程运行的基本方法有:(1)sleep(),使比其低的优先级线程运行。(2)stop(),强行终止线程。(3)run(),创建线程体。(4)start()使新创建的线程处于可运行状态等。在本题中,this.setBackground(Color.blue);语句的功能是设置 Applet 显示区的背景色为蓝色,if(animThread !=null)语句的功能是判断线程 animThread 是否存在,语句的功能是重新绘制 Applet。