1、二级 JAVA 机试-185 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,给出两个整数 4 和 6,分别求 4 除以 6 和 4 乘以 6 的结果,要求调用类 exl 的方法method()来输出相应的结果,请将程序补充完整。程序运行结果如下:0.666666666666666624注意:不改动程序结构,不得增行或删行。public class ex1public static void main(String args)int n1=2,n2=3;ex1 obj1=new ex1();obj1._;public voi
2、d method(int x, int y)System.out.println(_);System.out.println(_);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.分析两个字符串,分别输出每个字符串的单词并统计出单词个数。阅读程序,填写空行。注意:不改动程序结构,不得增行或删行。import java.util.*;public class ex2public static void main(String args)String s1=“I am Chinese,she is my girlfriend“;String s2=“Oh,really,f
3、ine“;StringTokenizer fenxi_1=new StringTokenizer(s1,“,“);StringTokenizer fenxi_2=new StringTokenizer(s2,“,“);int n1=fenxi_1.countTokens();int n2=fenxi_2.countTokens();while(fenxi_1.hasMoreTokens()String s=fenxi_1.nextToken();System.out.println(s);System.out.println(“s1 单词:“+n1+“个“);while(fenxi_1.has
4、MoreTokens()String s=_;System.out.println(s);System.out.println(“s2 单词:“+n2+“个“);(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.以下程序实现的功能是从文件 file.txt 中读取字符,然后判断每个字符在字母表中的顷序是否位于“A”和“Z”之间,若是,则计数器 cnt 加 1,否则继续读取字符直到文件结束。请将程序补充完整。注意:不改动程序结构,不得增行或删行。package ch3;import java.io*;public class ex3public static void m
5、ain(String args)int cnt=0;try_f=new_(“ch3/file.txt“);int Ch;while( )if( )_;System.out.println(“count=“+cnt);f._();catch(Exception e)e.printStackTrace();(分数:30.00)_二级 JAVA 机试-185 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,给出两个整数 4 和 6,分别求 4 除以 6 和 4 乘以 6 的结果,要求调用类 exl 的方法method()来输出相应的
6、结果,请将程序补充完整。程序运行结果如下:0.666666666666666624注意:不改动程序结构,不得增行或删行。public class ex1public static void main(String args)int n1=2,n2=3;ex1 obj1=new ex1();obj1._;public void method(int x, int y)System.out.println(_);System.out.println(_);(分数:30.00)_正确答案:(method(n1,n2)(double)x/yx*y)解析:讲解 本题主要考查 Java 语言的数据类型和结
7、构以及不同数据类型之间的转换,对象调用方法以及基本的运算操作。解题关键是熟悉 Java 语言的基本数据类型和类型之间的转换,用类的对象来调用方法,以及熟悉 Java 语言的基本运算。在本题中,第 1 空通过类 ex1 的对象。obj1 调用类 ex1 的方法method(),将变量 n1 和 n2 作为参数传递给方法。第 2 空由于 x,y 都是 int,则 x/y 的结果为 0.666,这会转换为 int,其值为 0。所以要对数据进行类型转换,将 x 转换为 double 型则 y 也转换为 double 型,因此结果为 double 型,值为 0.666。第 3 空无须做类型转换,直接输出
8、 x*y 的值 24 即可。二、2简单应用题(总题数:1,分数:40.00)2.分析两个字符串,分别输出每个字符串的单词并统计出单词个数。阅读程序,填写空行。注意:不改动程序结构,不得增行或删行。import java.util.*;public class ex2public 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,“,“);String
9、Tokenizer fenxi_2=new StringTokenizer(s2,“,“);int n1=fenxi_1.countTokens();int n2=fenxi_2.countTokens();while(fenxi_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
10、(“s2 单词:“+n2+“个“);(分数:40.00)_正确答案:(fenxi_2.nextToken()解析:讲解 本题是考查处理字符串的考题,一般使用 StringTokenizer 类来分析字符串。 StringTokenizer(String s)尽为字符串 s 构造一个分析器。一个分析器可以使用 nextToken()方法逐个获取字符串中语言符号,每当调用 nextToken()时,都将在字符串中获得下一个语言符号。通常用 while循环来逐个获取语言符号,为了控制循环,还可以使用 StringTokenizer 类中的 hasMoreTokens()方法,只要字符串还有语言符号,
11、该方法就返回 true,否则返回 false。另外还可以调用 countTokens()方法得到字符串一共有多少个语言符号。因此在本题目中的空白处应该填写 fenxi_2.nextToken()。三、3综合应用题(总题数:1,分数:30.00)3.以下程序实现的功能是从文件 file.txt 中读取字符,然后判断每个字符在字母表中的顷序是否位于“A”和“Z”之间,若是,则计数器 cnt 加 1,否则继续读取字符直到文件结束。请将程序补充完整。注意:不改动程序结构,不得增行或删行。package ch3;import java.io*;public class ex3public static
12、void main(String args)int cnt=0;try_f=new_(“ch3/file.txt“);int Ch;while( )if( )_;System.out.println(“count=“+cnt);f._();catch(Exception e)e.printStackTrace();(分数:30.00)_正确答案:(FileInputStreamFileInputStreamch=f.read()!=-1ch=A&ch=Zcnt+close)解析:讲解 本题是考查输入输出、文件操作及控制语句。输出流采用 FileOutputStream,因此,第 1空和第 2 空都填写 FilelnputStream。第 3 空要填写的是一个条件表达式,返回值为布尔类型,含义是对象 f 从文件中读取一个字节的数据,并将该数据存入 int 类型变量 ch 中,同时判断是否已经读到文件末尾,因此,第 3 空填写 ch=f.read()!=-1。依题意,判断每个字符在字母表中的顺序是否位于“A”和“Z”之间,若是,则计数器 cnt 加 1,因此,第 4 空和第 5 空填写 ch=A&ch=Z和 cnt+。最后完成文件的读写操作时,相应的对象需要关闭自己所关联的文件,因此,第 6 空填写 close。