1、国家二级( JAVA)机试模拟试卷 48及答案与解析 一、基本操作题( 30分) 1 下面程序的功能是显示已定义的一个 3行 3列的二维数组每行的元素,并求所有元素的和并输出。请在程序的每条横线处填写一个适当的语句,使程序的功能完整。 public class ShuZu public static void main(String args) int sum=0; int b=11, 12, 13, 21, 22, 23, 31, 32, 33; for(int i=0;_i+) System out, print(“b“+i+“: “); for(int j=0; _j+) System.
2、out.print(bij+“ “); _ System.out.println(); System.out.println(“Sum=“+sum); 二、简单应用题( 40分) 2 请完成下列 Java程序。程序的功能是复制文件并显示文件,将每个字符读入,并写入另一个文件,同时显示出来。 (注意:在本题中,是将 D盘的 JDK目录下的README.txt文件打印在屏幕上,并写入另一个文件 temp.txt中 ) 注童:请勿改动 main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。 import java.io.*; public class FileCopyBy public
3、 static void main(String args) try FileReader 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); 三、综合应用题( 30分) 3 下面是
4、一个 Applet程序,程序的功能是显示一个圆心在 Applet的中心,半径从 0到 100像素的不断变大的蓝色球的动画。请改正程序中的错误 (有下划线的语句 ),使程序执行后,能得到预期的结果。 注意:不改动程序的结构,不得增行或删行。 程序的执行结果为: import java.awt.*; import java.applet.*; /* applet code=XiaoQiu width=800 height=600 /applet */ public class XiaoQiu extends Applet implements Runnable int currentX=0, cu
5、rrentY=0; Thread m_Draw=null; public void init() m_Draw=new Thread (super); public void paint(Graphics g) g.setColor(Color.blue); mycircle(g,getSize().width/2,getSize().height/2,currentX,currentY); public void start() m_Draw.start(); try Thread.sleep(500); catch(InterruptedException e) public void s
6、top() if(m_Draw.isAlive() m_Draw. stop(); public void run() try while(true) currentX+; currentY+; if(currentX i00 currentY=0; paint(); Thread.sleep(100); catch(InterruptedException e) public void mycircle(Graphics g,int x,int y,int rx, int ry) g.filloval(x-rx,y-ry,2*rx,2*ry); ex3 9_3. html: html hea
7、d title A Simple Program /title /head body applet cede=“ XiaoQiu.class“ width=800 height=400 /applet /body /html 国家二级( JAVA)机试模拟试卷 48答案与解析 一、基本操作题( 30分) 1 【正确答案】 i b.length; j bi.length; sum+=bij; 【试题解析】 本题主要考查 for循环语句。解答本题的关键是热练掌握 for循环语句的用法。在本题中, 外层 for循环控制语句 for(int i=0; i b.length; i+)的功能是控制数组的行
8、元素的值的输出,内层 for循环控制语句 for(int j=0; jbj.length; j+)的功能是控制二维数组每行元素的输出, sum+=bij;语句的功能是累加求和。 二、简单应用题( 40分) 2 【正确答案】 c!=-1 output.write(c); 【试题解析】 本题主要考查对文本文件的操作及 while循环语句的使用。解答本题的关键是掌握对文本文件的操作。 Reader 类与 InputStream类相似,都是输入流,但差别在于 Readr类读入的是字符 (char),而不是字节。不带参数的 read()方法功能是将读入的字符转为整数返回。若不能读到字符,返回 -1 Wr
9、iter类与outputStream类相似,都是输出流,但差别在于 Writer类写出的是字符 (char),而不是字节。在本题中, while循环语句的功能是循环对字符进行读入和写出操作。c!=-1条件是判断 read()方法能否读入字符, output.write(c);语句的功能是写入一个字符 c。 三、综合应用题( 30分) 3 【正确答案】 m_Draw=new Thread(this), if (currentX 100 | | (currentY 100) repaint(); 【试题解析】 本题主要考查 Java Applet程序的设计, Java语句的线程机制以及for循环语句。解答本题的关键是比较熟练的掌握 Java Applet程序的设计, Java语句的线程机制以及 for循环语句的有关知识。 m_Draw=new Thread(this);语句的功能是以当前对象为参数创建线程对象 m_Draw, if(currentX 100|(currentY 100)语句的功能是获取小球的坐标, repaint();语句的功能是重新绘制小球。