1、二级 JAVA 机试-123 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面程序是判断某一个是否为闰年,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。(闰年的条件是符合下面两者之一:能被 4 整除,但不能被 100 整除;能被 4 整除,又能被 100 整除)。注意:不改动程序的结构,不得增行或删行。import java.io.*;public class LeapYearpublic static void main(String args)int year=1979;if(year %4= =0 | year
2、 % 100 !=0) | (year % 400= =0)System.out.println(year+“是闰年.“);elseSystem.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;elseleap=true;if(_)System.out.println(year+“是闰年。“);elseSystem.out.println(year+“不是闰年
3、。“);year=2010;if(year % 4= =0)if(year % 100= =0)if(year % 400= =0)leap=true;else_elseleap=false;if(1eap= =true);System.out.println(year+“是闰年。“);elseSystem.out.println(year+“不是闰年。“);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.下列程序建立一个 file.dat 的文件,并且允许按照不同的数据类型向里面输入数据,请将程序补充完整。注意:不改动程序结构,不得增行或删行。package ch3
4、;import java.io.*;public class Testpublic static void main(String args)try_fos=new_(“ch3/file.dat“);_catch(IOException ioe)ioe.printStackTrace();(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下列程序的功能是对两个整数进行比较,由考生通过输入窗口分别输入两个整数,程序比较出结果。例如:输入第 1 个整数为 12,第 2 个整数为 33。比较结果显示:12!=33123312=33程序有多个遗漏和错误。本题要求改一个错,填三个
5、空。注意:不改动程序结构,不得增行或删行。import javax.swing.JOptionPane;public class ex3public static void main(String args)String firstNumber, /用户输入第 1 个字符串secondNumber, /户输入第 2 个字符串result; / a string containing the outputint number1, /较的第 1 个数number2; /的第 2 个数/读用户输入的第 1 个字符串 read first number from user as a stringfir
6、stNumber=JOptionPane.showlnputDialog(“Enter first integer:“);/用户输入的第 2 个字符串 read second number from user as a stringsecondNumber=JOptionPane.showInputDialog(“Enter second integer:“);/字符串类型转换成整数类型number1=Integer.parseInt(firstNumber);number2=Integer.parseInt(secondNumber);result=“;if(String.valueOf(n
7、umberl)=String.valueOf(number2)result=String.valueOf(numberl)+“= =“+String.valueOf(number2);if(String.valueOf(number1)!=String.valueOf(number2)result=String.valueOf(number1)+“ !=“+String.valueOf(number2);if(String.valueOf(numberl) String.valueOf(number2)result=result+“/n“ +String.valueOf(numberl)+“+
8、String.valueOf(number2);if(String.valueOf(numberl)String.valueOf(number2)result=result+“/n“ +String.valueOf(numberl)+“ “+String.valueOf(number2);if(String.valueOf(numberl)=String.valueOf(number2)result=result+“/n“+String.valueOf(numberl)+“ =“+String.valueOf(number2);if(String.valueOf(numberl)=String
9、.valueOf(number2)result=result+“/n“+String.valueOf(numberl)+ “=“+String.valueOf(number2);_(null,result,“比较结果“,_INFORMATION_MESSAGE);/程序正常退出_;(分数:30.00)_二级 JAVA 机试-123 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面程序是判断某一个是否为闰年,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。(闰年的条件是符合下面两者之一:能被 4 整除,但不能被 100 整
10、除;能被 4 整除,又能被 100 整除)。注意:不改动程序的结构,不得增行或删行。import java.io.*;public class LeapYearpublic static void main(String args)int year=1979;if(year %4= =0 | year % 100 !=0) | (year % 400= =0)System.out.println(year+“是闰年.“);elseSystem.out.println(year+“不是闰年。“);year=2000;boolean leap;if(year % 4 !=0)leap=false;
11、else if(year % 100 !=0)leap=true;else if(year % 400 !=0)leap=false;elseleap=true;if(_)System.out.println(year+“是闰年。“);elseSystem.out.println(year+“不是闰年。“);year=2010;if(year % 4= =0)if(year % 100= =0)if(year % 400= =0)leap=true;else_elseleap=false;if(1eap= =true);System.out.println(year+“是闰年。“);elseS
12、ystem.out.println(year+“不是闰年。“);(分数:30.00)_正确答案:(year%4= =0import java.io.*;public class Testpublic static void main(String args)try_fos=new_(“ch3/file.dat“);_catch(IOException ioe)ioe.printStackTrace();(分数:40.00)_正确答案:(FileOutputStreamFileOutputStreamDataOutputStream dos=new DateOutputStream(fos);)
13、解析:讲解 本题考查 Java 语言的输入输出流,这是一道简单应用题。这里用文件输出流 FileOutputStream 创建向文件 file.txt 中写入字节数据的输出流。允许按照不同数据类型进行输出,应该使用 DataOutputStream 流,并且要使用 FileOutputStream 类的对象 fos 作为该类的构造方法的参数。因此,3 个空的答案分别是 FileOutputStream、FileOutputStream、DataOutputStream dos=new DateOutputStream(fos);。三、3综合应用题(总题数:1,分数:30.00)3.下列程序的功
14、能是对两个整数进行比较,由考生通过输入窗口分别输入两个整数,程序比较出结果。例如:输入第 1 个整数为 12,第 2 个整数为 33。比较结果显示:12!=33123312=33程序有多个遗漏和错误。本题要求改一个错,填三个空。注意:不改动程序结构,不得增行或删行。import javax.swing.JOptionPane;public class ex3public static void main(String args)String firstNumber, /用户输入第 1 个字符串secondNumber, /户输入第 2 个字符串result; / a string contai
15、ning the outputint number1, /较的第 1 个数number2; /的第 2 个数/读用户输入的第 1 个字符串 read first number from user as a stringfirstNumber=JOptionPane.showlnputDialog(“Enter first integer:“);/用户输入的第 2 个字符串 read second number from user as a stringsecondNumber=JOptionPane.showInputDialog(“Enter second integer:“);/字符串类型
16、转换成整数类型number1=Integer.parseInt(firstNumber);number2=Integer.parseInt(secondNumber);result=“;if(String.valueOf(numberl)=String.valueOf(number2)result=String.valueOf(numberl)+“= =“+String.valueOf(number2);if(String.valueOf(number1)!=String.valueOf(number2)result=String.valueOf(number1)+“ !=“+String.v
17、alueOf(number2);if(String.valueOf(numberl) String.valueOf(number2)result=result+“/n“ +String.valueOf(numberl)+“+String.valueOf(number2);if(String.valueOf(numberl)String.valueOf(number2)result=result+“/n“ +String.valueOf(numberl)+“ “+String.valueOf(number2);if(String.valueOf(numberl)=String.valueOf(n
18、umber2)result=result+“/n“+String.valueOf(numberl)+“ =“+String.valueOf(number2);if(String.valueOf(numberl)=String.valueOf(number2)result=result+“/n“+String.valueOf(numberl)+ “=“+String.valueOf(number2);_(null,result,“比较结果“,_INFORMATION_MESSAGE);/程序正常退出_;(分数:30.00)_正确答案:(if(String.valueOf(number1= =St
19、ring.valueOf(number2)JOptionPane.showMessageDialogJOptionPaneSystem.exit(0)解析:讲解 本题综合考查 Java 语言的数据类型及运算、基本语句和图形用户界面。 if(String.valueOf(number1)=String.valueOf(number2)是题中的错误。两个变量进行比较应该使用双等号,正确的语句是 if(String.valueOf(numberl)=String.valueOf(number2)。第 1 空填写 JOptionPane.showMessageDialog。调用 JOptionPane 类的 showMessageDialog 方法显示信息。第 2 空填写 JOptionPane。JOptionPane.INFORMATION_MESSAGE 是 JOptionPane 自带的参数,用来控制显示在信息框上的图标。要显示惊叹号的图标应使用 INFORMATION_MESSAGE 参数。第 3 空应填写 System.exit(0)。Java 中退出程序使用 System 的 exit 方法,该方法需要一个整数参数。