《分析《JAVA程序设计》期末考试试题-(四)(共9页).doc》由会员分享,可在线阅读,更多相关《分析《JAVA程序设计》期末考试试题-(四)(共9页).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上JAVA程序设计期末考试试题 (四)*不用考的直接删了, 不浪费大家时间一、 单选题1、下列程序段执行后的结果是( )。 String s = new String(abcdefg);for (int i=0; is.length(); i+=2) System.out.print(s.charAt(i); A) aceg B) ACEG C) abcdefg D) abcd 2、有整型数组:int x=12,35,8,7,2;,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( ).A) 2 7 8 12 35 B) 12 35 8 7 2 C) 3
2、5 12 8 7 2 D) 8 7 12 35 2分析: public static void sort(int a)对指定的 int 型数组按数字升序进行排序。3、下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。File f = new File(填代码处);file =new FileReader(f);in=new BufferedReader(file);A) ./1.txt B) ./my/1.txt C) c:my1.txt D) c: my1.txt 分析: 也可以是c:
3、/my/1.txt ; c:my1.txt其中第一个为转移字符4、应用程序的main方法中有以下语句,则输出的结果是 ( )。 String s1=new String(abc); String s2=new String(abc); boolean b1=s1.equals(s2); boolean b2=(s1=s2); System.out.print(b1+ +b2); A)true false B) false true C) true true D)false false 分析: equal比较的是两个对象所表示的字符是否相等, 而= 比较的是两个对象是否相等. 5、应用程序的ma
4、in方法中有以下语句,则输出的结果是 ( )。 Hashtable hashtable=new Hashtable(); hashtable.put(x,12345); hashtable.put(y,67890); hashtable.put(a,abcde); System.out.println(hashtable.get(a); A) a B) abcde C) 12345 D) 67890 分析: 存入名值对(put), 再按照名字取出其中的值(get)下面说一下HashMap和Hashtable的区别:Hashtable继承自Dictionary类,而HashMap是Java1.2
5、引进的Map interface的一个实现 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许 还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在 多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能
6、不会有很大的差异 6、下面语句的功能是( )。RandomAccessFile raf2 = new RandomAccessFile(1.txt,rw ); A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。 B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。D) 以上说法都不对。 分析: 没用过额 下面有个例子, 自己看看它的用法吧import java.io.IOException;import java.io.File;import java.io.Ran
7、domAccessFile;class RandomFileTestpublic static void main(String args) throws ExceptionStudent s1=new Student(1, zhangsan, 90.5);Student s2=new Student(2, lisi, 98.5);Student s3=new Student(3, wangwu, 96.5);File userDir=new File(System.getProperties().getProperty(user.dir);File tempFile=File.createT
8、empFile(student, .tmp, userDir);tempFile.deleteOnExit();RandomAccessFile raf=new RandomAccessFile(tempFile, rw);s1.write(raf);s2.write(raf);s3.write(raf);raf.seek(0);Student s=new Student();for(long i=0;iraf.length();i=raf.getFilePointer()s.read(raf);System.out.println(lenth:+raf.length()+,i=+i+ + s
9、);raf.close();Thread.sleep(5000);class Studentint num;String name;double score;public Student()public Student(int num, String name, double score)this.num=num;this.name=name;this.score=score;public void write(RandomAccessFile raf) throws IOExceptionraf.writeInt(num);raf.writeUTF(name);raf.writeDouble
10、(score);public void read(RandomAccessFile raf) throws IOExceptionnum=raf.readInt();name=raf.readUTF();score=raf.readDouble();public String toString()return num=+num+,name=+name+,score=+score; 7、应用程序的main方法中有以下语句,则输出的结果是 ( )。String s=12345#aaa#bbb#67890;int n=s.indexOf(#); int k=s.indexOf(#,n+1);int
11、m=s.indexOf(#,k+1);String s2=s.substring(m+1);System.out.println(s2);A) B) 67890 C) aaa D) bbb 分析: public int (int ch) 返回指定字符在此字符串中第一次出现处的索引。所以int n=s.indexOf(#); n 的值为5;public int indexOf(int ch, int fromIndex)返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 所以k为9, m为13public substring(int beginIndex)返回一个新的字符串,它是
12、此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。所以从第十四位到最后一位字符串是678908、下面程序段执行后b的值是( )。Integer integ =new Integer(9); boolean b = integ instanceof Object; A) 9 B) true C) 1 D) false分析: instanceof是判断前面的对象是不是后面的类创建的, 而Object是所有类的祖先类, 所以为true, 有点多态的感觉(上转型)9、应用程序Test.java的源程序如下,在命令行键入:java Test aaa bb c回车后输出的结果是
13、( )。public class Test public static void main(String args) int k1=args.length; int k2=args1.length(); System.out.print(k1+ +k2); A) 3 2 B)1 2 C) 1 3 D) 3 3 分析: 好像这种题目经常考: args.length;求的是数组的的元素个数, args1.length();求的是数组中某一个元素的长度. 10、应用程序的main方法中有以下语句,则输出的结果是 ( )。 int b=1, 2,2, 2,2,2; int sum=0; for(int
14、 i=0;ib.length;i+) for(int j=0;jbi.length;j+) sum*=bij; System.out.println(sum=+sum);A) 32 B)11 C) 2 D) 3 分析: 二维数组, 依次相乘便可, 注: java中二维数组中的一维长度可以不同, 比如这里的b0的长度为1; 而b1的长度为2, 可以不同, 因为二维数组本质上还是以一维数组的形式组织的. 11、应用程序的main方法中有以下语句,则执行后输出的结果是 ( )。int x=125,21,5,168,98;int max=x0;for(int i=1;i max)max =xi;Sys
15、tem.out.println(max);A) 125 B) 5 C) 98 D) 168 12、程序Test.java编译运行后输出的结果是( )。public class Test String s1=java; public static void main(String args) int z=2; Test t=new Test(); System.out.println(t.s1+z); A) java2 B)2 C)没有输出结果 D)java 13、应用程序的main方法中有以下语句,则输出的结果是 ( )。String s1=0.5, s2=12; double x=Doubl
16、e.parseDouble(s1); int y=Integer.parseInt(s2); System.out.println(x+y);A) 12.5 B) 120.5 C) 12 D) “12.5” 14、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。import java.io.*;public class Test public static void main(String args) try String s=A
17、BCDE;byte b=s.getBytes();FileOutputStream file=new FileOutputStream(test.txt,true);file.write(b); file.close();catch(IOException e) System.out.println(e.toString();A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE 分析: public FileOutputStream( file, boolean append) throws 创建一个向指定 File 对象表示的文件中写入数据的文件输出
18、流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。创建一个新 FileDescriptor 对象来表示此文件连接。 15、下面那些方法不是接口Collection中已声明的方法( )?A)添加元素的add(Object obj) 方法B)删除元素的remove(Object obj)方法C)得到元素个数的length()方法D)返回迭代器的iterator()方法,迭代器用于元素遍历分析: 只有这个方法: () 返回此 collection 中的元素数。没有length()这个方法 二、 多选题多选题都是知识点, 自己看吧, 好好辨析下1、下面main()方法的定义
19、哪些是正确的( )?A) public static void main(String args) B) public static void main(String) C) public static void main(String args) D)public static void main(String x) 分析: public static void main(String) 少了变量名 2、线程对象的生命周期中,通常经历下面哪些状态( )。A)新建 B)运行 C)就绪 D)死亡 3、下面说法正确的是( )。A) final 可修饰类、属性(变量)、方法。 B) abstract
20、可修饰类、方法。C) 抽象方法只有方法头,没有方法体。 D) 关键字final和abstract不能同时使用。 4、下面关于java中输入/输出流的说法正确的是( )。A) FileInputStream与FileOutputStream类用读、写字节流。 B) Reader与Writer类用来读、写字符流。C) RandomAccessFile既可以用来读文件,也可以用来写文件。 D) File类用来处理与文件相关的操作。5、下面说法正确的是( )。A)如果某公共接口被声明在一个源文件中,则接口必须与源文件具有相同名字。B)如果源文件包含import语句,则该语句必须是除空行和注释行外的第一
21、个语句行。C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D)接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。6、下面关于Java中异常处理try块的说法正确的是( )?A) try块后通常应有一个catch 块,用来处理try块中抛出的异常。 B) catch 块后必须有finally块。C)可能抛出异常的方法调用应放在try块中。 D)对抛出的异常的处理必须放在try块中7、下面关于进程、线程的说法正确的是( )。A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程多线程,形成多条执行线索。B)线程是比进程更小的执行单位,
22、是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。C)Java多线程的运行与平台相关。D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。8、关于BufferedReader类的readLine()方法,以下说法正确的是()。A)方法readLine()每次读取一行数据。 B)方法readLine()每次读取一个字节。C)该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。D)如果读到流的末尾,
23、该方法返回的结果为null。三、程序阅读题2、阅读下面的程序,回答问题(u问3分,v问3分,共6分)。import java.util.*;public class T public static void main(String args) Set set = new TreeSet(); set.add(new Integer(10); set.add(new Integer(5); set.add(new Integer(15); set.add(new Integer(5); set.add(new Integer(10); System.out.println(size = + se
24、t.size(); Iterator it=set.iterator(); while(it.hasNext() System.out.print(it.next()+ ); u程序运行后输出的结果如何?v说明java中的集合(Set接口)和映射(Map接口)的主要区别。答案:usize = 35 10 15vSet接口是不包含重复元素的集合;Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。分析:Set接口是有序不能重复的.Map接口是无序可以重复的.TreeSet类不仅实现了Set接口,还实现了java.util.SortedSet接口,从而保证在遍历集合时按照递增的顺序获得
25、对象。遍历对象时可能是按照自然顺序递增排列,所以存入用TreeSet类实现的Set集合的对象必须实现Comparable接口;也可以是按照指定比较器递增排列。换句话说,TreeSet中的元素,肯定可以通过某种方式,比较“大小”,进而实现对象的排序。3、阅读下面的程序,并回答问题(u问3分,v问3分,共6分)。import java.io.*;public class Test public static void main(String args) throws IOException BufferedReader buf=new BufferedReader( new InputStreamReader(System.in); while(true) String str=buf.readLine(); if(str.equals(quit) break; int x=Integer.parseInt(str); System.out.println(x*x); 编译运行上面的程序:u从键盘输入5,回车后输出的结果如何?v从键盘输入quit,回车后程序执行情况如何?答案:u25 v终止应用程序的运行。分析: 就是输入一行数据, 读取一行, 如果是quit就退出, 不是quit就把它转换为int类型, 求平方.专心-专注-专业
限制150内