1、国家二级( JAVA)机试模拟试卷 91及答案与解析 一、基本操作题( 30分) 1 在程序中,用户输入一个文件名,根据用户输入显示相应文件的信息。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 _java.io.*; public class basic public static void main(String args) InputStreamReader reader; BufferedReader in; System.out.println(“请输入文件名 : “); try reader=new InputStreamReader(_); in
2、=new BufferedReader(reader); String filename=in.readLine(); File file=new File(filename); System.out.println(“文件名 :“+file._); System.out.println(“路径 :“+file.getAbsolutePath(); System.out.println(“大小 :“+file.length(); catch(Exception e) e.printStackTrace(); 二、简单应用题( 40分) 2 请完成下列 Java程序。程序的功能是显示用户在命令行
3、方式下指定的任意驱动器目录的内容。 提示: public Stringlist(); /将目录中所有文件名保存在字符数组中返回。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。 源程序文件代码清单如下: import java.io.*; public class FindDirectories public static void main(String args) if(args.length=0) args=new String“; try _ String fileName=pathName.list(); for(int i=0;i fileNa
4、me.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程序,其功能是从 3 100之间 (包括 3和 100)每隔 0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。请更正题中带下划线的部分。 注意:不改
5、变程序的结构,不得增行或删行。 import java.awt.*; import java.applet.Applet; /* applet code=“exl5_3.class“width=800 height=400 /applet */ public class ex15_3 extends Applet public Color color15_3=Color.black; private int n15_3=3; public myPrime thPrimel5_3; public void init() thPrimel5_3=new myPrime(this); thPrime
6、l5_3.start(); public void paint(Graphics g) g.setColor(Colorl5_3); g.drawString(n15_3,50,50); public int getInt() return n15_3; class myPrime extends Thread ex15_3 objl5_3; myPrime(ex15_3 o) this.objl5_3=o; public boolean isPrime(int n) boolean bPrime=true; int i=2; if(n 3|n 100) return false; while
7、(i n-1 i+; return bPrime; public void run() int i; for(i=3;i 100;i+) if(isPrime(i) objl5_3.color15_3=Color.gray; else objl5_3.color15_3=Color.green; obj15_3.n15_3; objl5_3.repaint(); try sleep(500); catch(InterruptedException ie) exl5_3.html HTML HEAD TITLE exl5_3 /TITLE /HEAD BODY applet code=“exl5
8、_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 91答案与解析 一、基本操作题( 30分) 1 【正确答案】 import System.in getName() 【试题解析】 本题考查知识点: Java类库中常用类和接口、文件和文件 I/0、输入输出。解题思路:题中 reader从系统获得输入流,从这个流中得到用户输入的字符串作为文件名,找到文件,进而得到文件的相关信息。 Java的类库需要引入以后才能使用,关键字 import就是声明需要引入的类或包。因此第 1个空的答案是 import。 Java的
9、 输入输出是以流的形式来完成的。 InputStreamReader的对象reader从系统输入中读取输入流,保存在相应的缓冲区中,因此第 2个空的答案是 System.in。 BufferedReader对象则是从这个缓冲区中读取数据,使用BufferedReader类的 readLine()方法即可获得输入流中的一行输入。在 Java程序中,文件作为类的一个实例来处理, File类具有很多与文件相关的方法,比如获得上级目录名 (getParent()方法 )、路径 (getPath()方法 )等,第 3个空就是使用getName()方法获取文件的文件名。 二、简单应用题( 40分) 2 【
10、正确答案】 File pathName=new File(args0); f.isDirectory() 【试题解析】 本题主要考查对文件操作的基本知识。解答本题的关键是熟练掌握对文件操作的基本知识。其中, File pathName=new File(args0);语句的功能是生成 File类对象 pathName; if(f.isDirectory()语句的功能是判断生成的 f对象是否为目录。 三、综合应用题( 30分) 3 【正确答案】 String.valueOf(n15_3) i 101或 i =100 obj15_3.setInt(i) 【试题解析】 本题主要考查线程的概念和使用,
11、 Applet的执行过程和窗口, for循环语句,字符串和血型的数据转换,以及面向对象编程的基本思想。解题关键是熟练地将 Applet的执行和线程的基本思想结合,完成一定的综合性的应用;熟练掌握线程的建立、运行以及线程类与封装类之间的信息传递方式,即通过对象调用封装的方法来进行,如语句。 obj15_3.repaint()。本 题中,第 1处,不可以直接填入 n15_3,会导致参数类型不符合的错误,应该用 String类的 valueOf()方法对血型数据进行转换得到 String类型数据;第 2处,注意题目要求,需要包括 3和 100,因此循环变量的上界应该是 i 101或者 i100;第 3处,由于 n15_3是类exl5_3的私有成员变量,因此不可以直接用对象。 obj15_3来调用这个成员变量,需要通过类 exl5_3的方法 setInt()来实现对私有成员变量的修改。