1、国家二级( JAVA)机试模拟试卷 52及答案与解析 一、基本操作题( 30分) 1 下列程序中,要求计算 1+2+3+100 的值,并显示计算结果。请将程序补充完整。程序运行结果如下: 5050 源程序代码文件清单如下: public class ex20_1 public static void main(String args) ex20_1 obj20_1=new ex20_1(); obj20_1.method20_1(); public void method20_1() int sum; _; for(int i=1; i =100; i+) _; _; 二、简单应用题( 40分
2、) 2 请完成下列 Java程序。程序的功能是显示用户在命 令行方式下指定的任意驱动器文件夹的内容。 提示: public string()list(); /将文件夹中所有文件名保存在字符数组中返回。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。 源程序文件代码清单如下: import java.io.*; public class FindDirectories public static void main(String args) if(args.length=0) args=new String()“; try _; String fileNam
3、e=pathName.list(); for(int i=0; i fileName.length; i+) File f=new File(pathName.getPath(), fileNamei); if(_) System.out.println(f.getCanonicalPath(); main(new String f.getPath() ); catch(IOException e) e.printStackTrace(); 三、综合应用题( 30分) 3 下面是一个 Applet程序,其 功能是实现网页上的电子时钟,要求显示的格式为hh:mm:ss如 02:04:50。提示:
4、通过获取当前系统时间来实现。请改正程序中的错误(有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件清单如下: import java.applet.*; import java.awt.*; import java.util.Date; public class ex03_3 extends Applet implements Runnable private Thread thTimer=null; private String strTime; private int tHour, tMin, tSec; public void init()
5、 setFont(new Font(“Times New Roman“, Font BOLD, 20); public void paint(Graphics Graph) Date dNow=new Date(); tHour=dNow.getHours(); tMin=dNow.getMinutes(); tSec=dNow.getSeconds(); if(tHour =9) strTime=“0“+tHour+“:“; else strTime=tHour+“:“; if (tMin =9) strTime=“0“+strTime+tMin+“:“; else strTime=strT
6、ime+tMin+“:“; if(tSec =9) strTime=“0“+strTime+tSec; else strTime=StrTime+tSec; Graph.drawString(StrTime, 80, 80); public void Start if(thTimer=null) thTimer=new Thread(); thTimer.start(); public void run() while(thTimer!=null) repaint(); try Thread.sleep(1000); catch (InterruptedException ie) ex03_3
7、.html HTML HEAD TITLE ex03_3 /TITLE /HEAD BODY applet code=“ex03_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 52答案与解析 一、基本操作题( 30分) 1 【正确答案】 sum=0 sum+=i或者 sum=sum+i System.out.println(sum) 【试题解析】 本题主要考查整型变量的初始化、累加和输出操作,以及 for循环语句的用法。解题关键是熟悉整型变量的基本操作,熟悉并能利用 for循环语句解决一些简单的数学问题。
8、本题中,第 1个空,需要对变量 sum进行初始化,否则以后进行累加时会产生错误;第 2个空,填入累加的表达式;第 3个空,调用基本 I/O方法将运算结果显示出来。 二、简单应用题( 40分) 2 【正确答案】 File pathName=new File(args0) f.isDirectory() 【试题解析】 本题主要考查文件操作的基本知识。解答本题的关键是熟练掌握对文件操作的基本知识。其中, File pathName=new File(args0)语句的功能是生成File类对象 pathName; if(f.isDirectory()语句的功能是判断生成的 f对象是否为文件夹。 三、综
9、合应用题( 30分) 3 【正确答案】 strTime=strTime+“0“+tMin+“:“ strTime=strTime+“0“+tSec new Thread(this) 【试题解析】 本题主要考查 Java多线程与 Applet的图形绘制相结合解决实际问题的综合应用。解题关键是熟悉 Java多线程的程序设计思想,必须在程序中编写线程类内 start()、 stop()和 run()方法的相关程序,利用线程类的 sleep()方法,让每次显示的时间延迟 1秒,使电子时钟看起来像是每一秒跳动一次的样子,同时还要熟悉 Date类的 getHours()等方法获得时间。本题中,包含两个线程,一个是程序中 Runnable得到的线程,另一个是程序本身。第 1处和第 2处错误相似,一个是在不足 10的小时数的前一位补上 0,如 tHotur=9,则显示出来的应该是 09:第3处,用 Thread类的构造函数创建新的线程时,需要把 this作为参数传递给新的线程,否则程序不会动态执行。