1、国家二级( JAVA)机试模拟试卷 81及答案与解析 一、基本操作题( 30分) 1 下面程序是判断某一个是否为闰年,请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 (闰年的条件是符合下面两者之一: 能被 4整除,但不能被 100整除; 能被 4整除,又能被 100整除 )。 注意:不改动程序的结构,不得增行或删行。 import java.io.*; public class LeapYear public static void main(String args) int year=1979; if(year %4= =0 | year % 100 !=0) | (ye
2、ar % 400= =0) System.out.println(year+“是闰年 .“); else System.out.println(year+“不是闰年。 “); year=2000; boolean leap; if(year % 4 !=0) leap=false; else if(year % 100 !=0) leap=true; else if(year % 400 !=0) leap=false; else leap=true; if(_) System.out.println(year+“是闰年。 “); else System.out.println(year+“不
3、是闰年。 “); year=2010; if(year % 4= =0) if(year % 100= =0) if(year % 400= =0) leap=true; else _ else leap=false; if(1eap= =true); System.out.println(year+“是闰年。 “); else System.out.println(year+“不是闰年。 “); 二、简单应用题( 40分) 2 分析两个字符串,分别输出每个 字符串的单词并统计出单词个数。阅读程序,填写空行。 注意:不改动程序结构,不得增行或删行。 import java.util.*; pu
4、blic class ex2 public static void main(String args) String s1=“I am Chinese,she is my girlfriend“; String s2=“Oh,really,fine“; StringTokenizer fenxi_1=new StringTokenizer(s1,“,“); StringTokenizer fenxi_2=new StringTokenizer(s2,“,“); int n1=fenxi_1.countTokens(); int n2=fenxi_2.countTokens(); while(f
5、enxi_1.hasMoreTokens() String s=fenxi_1.nextToken(); System.out.println(s); System.out.println(“s1单词: “+n1+“个 “); while(fenxi_1.hasMoreTokens() String s=_; System.out.println(s); System.out.println(“s2单词: “+n2+“个 “); 三、综合应用题( 30分) 3 现有磁盘文件 filea.txt和 fileb.txt,各存放一行字母,上述程序实现了将 2个磁盘文件中的内容合并,并按照字母的升序排
6、列,存放到一个新的文件 new.txt中。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 package ch3; import java.util.*; import java.io *; public class ex3 public static void main(String args) String s=“; try RandomAccessFile f1= new RandomAccessFile(“ch3/filea.txt“,“rw“); _f2=new _(“ch3/fileb.txt“,“rw“); s=f1.readLine()+f2.readLine();
7、 char c=s.toCharArray(); Arrays.sort(c); _Out=new_(“ch3/new.txt“); for(int i=0;i c.length;i+) Out._(ci); out._; f1.close(); f2.close(); catch(I0Exception ioe) ioe.printStackTrace(); 国家二级( JAVA)机试模拟试卷 81答案与解析 一、基本操作题( 30分) 1 【正确答案】 (year%4= =0&year%100!=0)|(year%400 =0) Year%4=0 【试题解析】 本题综合考查 Java语言的
8、数据类型及运算和分支语句。第 1处的错误是: (year%4=0|year%100!=0)|(year%400=0);闰年的条件是符合下面二者之一: 能被 4整除,但不能被 100整除; 能被 4整除,又能被 100整除。因此判断某一年是否为闰年的表达式应该为(year%4=0&year%100!=0)|(year%400=0)。第 2处的错误是 year%4!=0;应该填写 year%4=0,用来判断该年是否能被 4整除。 二、简单应用题( 40分) 2 【正确答案】 fenxi_2.nextToken() 【试题解析】 本题是考查处理字符串的考题,一般使用 StringTokenizer类
9、来分析字符串。 StringTokenizer(String s)尽为字符串 s构造一个分析器。一个分析器可以使用 nextToken()方法逐个获取字符串中语言符号,每当调用 nextToken()时,都将在字符串中获得下一个语言符号。通常用 while循环来逐个获取语言符号,为了控制循环,还可以使用 StringTokenizer类中的 hasMoreTokens()方法,只要字符串还有语言符号,该方法就返回 true,否则返回 false。另外还可以调用countTokens()方法得到字符串一共有多少个语言符号。因此在本题目中的空白处应该填写 fenxi_2.nextToken()。
10、三、综合应用题( 30分) 3 【正确答案】 RandomAccessFile RandomAccessFile FileOutputStream PileOutputStream write close 【试题解析】 本题是考查对文件输出流及其常用方法的理解。输入流采用了RandomAccessFile类,输出流采用了 FileOutputStream,存放到新的文件要调用write方法,最后完成文件的读写操作时,相应的对象需要关闭自己所关联的文件。 6个空的答案分别是 RandomAccessFile、 RandomAccessFile、FileOutputStream、 FileOutputStream、 write和 close.