1、计算机二级( JAVA) Java编程技术基础章节练习试卷 1及答案与解析 1 下列选项中,不属于线程生命周期的状态是 _。 ( A)可运行状态 ( B)创建状态 ( C)暂停状态 ( D)不可运行状态 2 Runnable接口中包括的抽象方法是 _。 ( A) run() ( B) sleep() ( C) start() ( D) isAlive() 3 下列情况中,不会使线程转入不可运行状态的是 _。 ( A)调用 wait()方法等候一个条件变量 ( B)调用 yield()方法 ( C)调用 sleep()方法 ( D)方法输入输出流发生线程阻塞 4 关于定制串行化,下列叙述正确的是
2、 _。 ( A)定制串行化就是定义自己读取数据流的方式 ( B)在需要按照某种顺序和种类将数值写入到文件时,可以使用定制串行化 ( C)通过在实现 Serializable接口的类中重写 write()和 readObject()方法,可以控制读取数据流的方式 ( D)定制串行化将按照名称的上升排列顺序写入数值 5 当输入一个字节流时,要 _。 ( A)实现 Datalnput接口 ( B)实现 Serializable接口 ( C)实现 Objectlnput接口 ( D)继承 Reader抽象类 6 下列接口中,继承了 Collection接口的是 _。 ( A) Set ( B) Map
3、 ( C) Iterator ( D) AbstractCollection 7 如下程序完成的功能是 _。 import java.io.*; public class ex7 public static void main(String args) File f = null; boolean b = false; try f = new File(“r.txt“); catch (Exception e) System. out.println ( “errors“); b = f.delete(); if(b) System.out.print in( “文件删除了 “); else
4、System.out.println (“文件没有被删除 “); ( A)删除指定的文件,并显示相应的结果 ( B)编译出错 ( C)查看文件内容 ( D)以上都不对 8 下列 _不属于计算机常用的外部设备。 ( A)网络 ( B)显示器 ( C)内存 ( D)键盘 9 与 InputStream流相对应的 Java系统的标准输入对象是 _。 ( A) System.in ( B) System.out ( C) System.exit() ( D) System.err 10 下列 _不是 Matcher类的方法。 ( A) find() ( B) matches() ( C) start(
5、) ( D) matcher() 11 下面 _可用于 处理 Unicode码。 ( A) Writer ( B) BufferedReader ( C) ByteArraylnputStream ( D) PipedlnputStream 12 FileOutputStream类的父类是 _。 ( A) FileOutput ( B) File ( C) OutputStream ( D) InputStream 13 下列程序实现对 ZIP文件 filel4.zip的检索,在横线处填入正确的语句。 package ch1; import java.io.*; import java.uti
6、l.*; import java.util.zip.*; public class exl4 publio static void main(String args try FileInputStream fis = new FileInputStream(“chl/filel4.zip“); ZipInputStream zis = new zipInputStream(fis); ZipEntry en; while(_) ! = null) en.getName(); zis.clcseEntry(); zis.close(); catch(Exception e) e.printSta
7、ckTrace(); ( A) en = zis.getNexTEnTRY() ( B) en = zis.getEntry() ( C) en=zis.getNextEntry() ( D) zis.getNextEntry() 14 下列代码实现从文件 file.dat中读出第 5个字节到变量 c中,横线处应该填入下列项中的 _。 import java.io.*; public class exl5 public static void main(String args) try System.out.println(char)c); catch(Exception e) e.print
8、StackTrace(); ( A) FileInputStream in = new FileInputStream(“chl/file.dat“); in.skip(4); int c = in.read(); ( B) FileInputStream in = new FileInputStream(“chl/file.dat“); in.skip(5); int c = in.read(); ( C) Fi2eInputStream in = new FileInputStream(“file.dat“); int c = in.read(); ( D) RandomAccessFil
9、e in = new RandomAccessFile (“chi/file. dat “); in.skip (4); int c = in.readByte(); 15 LineNumberReader类提供了 _功能。 ( A)压缩 ( B)数据校验 ( C)摘要 ( D)文本行计数 16 ZipOu中 utStream类的对象可以作为 _类的构造方法的参数。 ( A) ZiplnputStream ( B) InputStreamReader ( C) OutputStreamReader ( D) FileOuutStream 17 已知文件 filel8.txt中的内容是:一共有
10、3行,每行分别是实型的数值 1.0,2.1, 3.2,则下列程序执行之后,输出的结果是 _。 package ch1; import java.io.*; public class exl8 static String strName = “ch1file18.txt“; public static void main(String args) try FileReader fr = new FileReader(strName); BufferedReader br = new BufferedReader(fr); String str; while(str = br.readLine()
11、 != null) float f = Float.parseFloat(str); System.out.println(f); br.close (); fr.close (); catch(Exception e) System.out.print (e.getMessage (); ( A) 1.0 2.1 3.2 ( B) 1.0 ( C) 2.1 3.2 ( D)显示异常信息 18 CharArrayReader类以下列项中的 _作为输入流。 ( A)字节 ( B)文本 ( C)字节数组 ( D)字符数组 19 下列关于流类和 File类的说法中错误的一项是 _。 ( A) Fil
12、e类可以重命名文件 ( B) File类可以修改文件内容 ( C)流类不可以新建目录 ( D)流类可以修改文件内容 20 现有一个文件 file21.txt,其内容是 : abCdEf, 执行下列程序之后,输出的结果是_。 package ch1; import java,io.*; public class ex21 static String name = “ch1file21.txt“; public static void main(String args) try readFile (); catch(IOException ioe) System.out.println(ioe.g
13、etMessage(); static void readFile () throws IOException BufferedReader br = null; try File f = new File(name); FileReader fr = new FileReader(f); br = new BufferedReader(fr); String str= br.readLine(); System.out.println(str.toLowerCase(); finally if(br != null) br.close (); ( A) AbCdEf ( B) abcdef
14、( C) aBcDeF ( D) ABCDEF 21 下列程序执行后的结果 是 _。 package ch1; import java.io.*; public class ex22 static, String filename = “ch1kfile22.txt“; public static void main(String args) try FileWriter fr = new FileWriter(filename); PrintWriter pr = new PrintWriter(fr); String name = “xiaoming“; String phone = “1
15、23456“; String age = “12“; pr.println(name + , + phone + , + age); pr.close(); fr.close(); catch(IOException ioe) ioe.printStackTrace() ( A)在包 ch1 中新建一个文件 file22.txt, 并且在其中写入一行字符串“xiaomingl2345612” ( B)在包 ch1中新建一个文件 file22.txt,并且在其中写入一行字符串 “xiaoming, 123456,12” ( C)在包 chi中新建一个文件 file22.txt,并且在其中写入一行
16、字符串 “xiaoming ( D)抛出 IOException 22 下列说法中,不正确的一项是 _。 ( A)可以用 FileWriter对象作为 PrintWfite类的构造方法的参 数 ( B)可以用 FileOutputStream对象作为 PrintWrite类的构造方法的参数 ( C) PrintWriter类的 println()方法不可以刷新输出缓冲区 ( D) PrintWriter类的 println()方法可以刷新输出缓冲区 23 下列抽象类中,处理字节输入流的是 _。 ( A) OutputStream ( B) InputStream ( C) Writer ( D
17、) Reader 24 如果要创建一个包含父目录的目录,需要使用 File的 _方法。 ( A) mkdir() ( B) mkdirs() ( C) ifFile() ( D) list() 25 下列程序使用系统标准输入 System.in从键盘获得输入字符串,请选择正确的一项填入下列程序的横线处。 import java.io.*; public class ex26 public static void main(String args) byte buffer = new byte128; int n; try n = for(int i = 0; i n; i+) System.o
18、ut .print ( (char)buffer i ); catch (IOException e) System.out.print (e); ( A) System.in.read(buffer) ( B) system.in.read(buffer) ( C) System.in.read0 ( D) System.in(buffer) 26 在下列程序的横线处填入正确的语句,实现 RandomAccessFile类使用。 package ch1; import java. io. *; public class ex27 public static void main(String
19、args ) try RandomAccessFile in = new in.close ( ); catch (Exception e) e.printStackTrace (); ( A) RandomAccessFileC“ch1/file.dat“, “read“) ( B) RandomAccessFile(“r“, “ch1/file.dat“) ( C) RandomAccessFile(“ch1/file.dat“ , “r“) ( D) RandomAecessFile(“read“, “ch1/file.dat“) 27 下列程序的运行结果是 _。 package ch1
20、; import java.io. *; public class ex28 public static void main (String args ) throws IOException try File f1 = new File(“ch1dir28“); f1.mkdir(); File f2 = new File(f1, “file59.txt“); FileOutputStream fos = new FileOutputStream(f2); for(int i = 0; i 2; i+) String s= i + “times“; byte b = s.getBytes()
21、; fos.write(b,0,b.length); catch(IOException ioe) ioe.printStackTrace(); ( A)在目录 ch1下建立一个目录 dir28,并且建立文件 file28.txt,在文件中写入“Otimes 1 times“ ( B)在目录 ch1下建立一个目录 dir28,并且建立文件 file28.txt,在文件中写入 “l times” ( C)在目录 chi下建立一个目录 dir28,并且建立文件 file28.txt,在文件中写入“Otimes” ( D)抛出 IOExceptin异常 28 下面 _语句能够正确地创建一个 hput
22、StreamReader的实例。 ( A) new lnputStreamReader(new FileReader(“data“); ( B) new lnputStreamReader(“data“); ( C) new lnputStreamReader(new FilelnputStream(“data“); ( D) new lnputStreamReader(new BufferedReader(“dam“); 29 下列说法中,错误的一项是 _。 ( A)线程一旦创建,则立即自动运行 ( B)线程创建后需要调用 start()方法,将线程置于可运行状态 ( C)线程处于可运行状态
23、,意味着它可以被调度 ( D)调用线程的 start()方法后,线程也不一定能立即执行 30 下列说法中,错误的一项是 _。 ( A)在 Java程序中,关键字 synchronized标志一个临界区 ( B)临界区可以是一个语句块,但是不可以是一个方法 ( C)在 Java程序中,对象锁是设置在 synchronized(Object)语句指定的对象上的 ( D) Java语言中的对象锁是一种排他锁 31 下列说法中错误的一项是 _。 ( A) readExtemal()方法用于从对象流读取通过 writeExtemal()方法写入的对象 的数据 ( B)实现完全串行化的类必须实现 writ
24、eExtemal()方法 ( C)实现完全串行化的类必须定义一个具有 public访问权限的不带参数的构造方法 ( D) writeExtemal()方法的访问权限是 private 32 Runnable接口中定义的方法是 _。 ( A) start() ( B) Runnable() ( C) run() ( D) init() 33 下列说法中错误的一项是 _。 ( A)当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他线程无法访问 ( B)当线程获得了某个对象的排他锁时,它可以独自访问该对象,其他线程也可以通过某种策略访问 ( C)临界区可以是一个方法 ( D)程序中单独并发
25、的线程可以对同一个对象进行访问 34 下列说法中,错误的一项是 _。 ( A)一个线程组中可以包含若干线程 ( B)一个 Java应用程序启动时, Java运行系统为该程序创建一个名为 main的线程 ( C)一个线程组中不可以再包含线程组 ( D)一个 Java应用程序的最顶层线程组是 main 35 在对象串行化中,可以用来保护类中敏感信息的关键字是 _。 ( A) transient ( B) protected ( C) final ( D) public 36 下列说法中,错误的一项是 _。 ( A)线程有其产生、存在和消亡的过程 ( B)一个进程可以创建多个线程 ( C) Java
26、需要利用外部的线程支持库来实现多线程 ( D)在 Java语言中支持多线程 37 下列程序的执行结果是 _。 class A1 implements Runnable public void run() for(iht i = 0; i 10; i+) System.out.println(“i =“ + i); if(i = 3) break; public class ex38 public static void main(String args) Thread th1 = new Thread(new A1(); th1.start (); ( A) i=1 i=2 i=3 i=4 (
27、 B) i=1 i=1 i=1 i=1 ( C) i=0 i=1 i=2 i=3 ( D) i=1 i=2 i=3 38 下列关于对象加锁的注意点的说法中,错误的一项是 _。 ( A) synchronized关键字标识的共享数据必须是私有的 ( B) synchronized关键字可以放在方法声明中 ( C)共享数据的所有访问都必须作为临界区 ( D)若一个进程持有一个对象锁后,就不能在此请求获得该锁 39 下列程序通过实现 Runnable接口创建一个线程,选择正确的语句填入程序的横线处。 class MyRun implements Runnable String str; MyRun(
28、String s) str = s; public void run() System.out.println(str); public class ex40 public static void main(String args) String name = “实现阶段 Runnable 接口 “; MyRun my = new MyRun(name); Thread th = th. start ( ); ( A) new MyRun(my) ( B) new Thread() ( C) new Thread(my) ( D) Thread(my) 40 下列说法中错误的一项是 _。 (
29、A)通过执行 Thread.currentThrea )返回当前线程的引用 ( B) currentThread()方法是静态方法 ( C) stop()方法强行终止线程的执行,线程结束后,仍然可以再运行 ( D)线程 a通过 a.suspend()方法暂停执行,通过调用 a.resume()恢复执行 41 下列程序将 Date对象写入 文件 file42.txt中,选择正确的语句填入下列程序中的横线处。 package ch1; impbrt java. io. *; import java. util. *; public class ex42 static String fileName
30、 = “ch1file42.txt“; static Date date = null; public static void main(String args) date = new Date(); try FileOutputStream fos = new FileOutputStream(file Name); ObjectOutStream oos = new ObjectOutputStream(fos); oos._; oos.close(); fos.close(); System.out.println(date.toString(); catch(Exception e)
31、System.out.println(e.getMessage(); ( A) writeObject() ( B) writeObject(date) ( C) write(date) ( D) writeByte(date) 42 下列关于 Thread类的说法中,错误的一项是 _。 ( A)任何实现 Runnable接口的对象都可以作为 Thread类构造方法的 target参数 ( B) name参数若为 null, Java会给线程赋予一个惟一的名称 ( C) Thread类本身没有实现 Runnable接口 ( D)当线程启动时, target参数表示的对象的 run()方法将被调
32、用 43 下列程序的输出结果是 _。 class T44 implements Runnable public void run() System.out.print in (Thread.currentThread ( ).getName ( ) + “运行 “ ); public class ex44 public static void main(String args) Thread t1 = new Thread(new T44(), “t1“); Thread t2 = new Thread(new T44 () , “t2“); t1 .setPriority(Thread. M
33、AX_PRIORITY); t2.setPriority(Thread.MIN_PRIORITY); t2. start (); t1 .start (); ( A) t1 运行 t2 运行 ( B) t2 运行 t1 运行 ( C) t1 运行 t1 运行 ( D) t2 运行 t2 运行 44 选择正确的语句填在下列 程序的横线处,使程序正常运行。 package ch1; import java. io. *; import j ava. util. *; class C45 implements Seritizable _Public Thread t = new Thread(new
34、 T45(), “t“); public intcnt = 0; public C45() t. start ( ) class T45 implements Runnable public int a = new int4; public void run() for(int i - 0; i 4; i+) ai - i +4; public class ex45 static String fileName = “ch1file45.txt“; public static void main(String args) throws Exception C45 obj = new C45 (
35、); FileOutputStream fos = new FileOutputStream(fileName); ObjectOutputStream oos = new ObjectOutputStream(fos); oos. writeObject (obj); oos.clese (); fos.close (); System. out, println (obj . toString ( ) ); ( A) transient ( B) protected ( C) package ( D) final 45 下列说法中,错误的一项是 _。 ( A)多个线程对同一个对象进行访问时
36、,则共享数据 ( B)多个线程执行同一个类的实例代码时,则共享相同的代码 ( C)在 Java中,线程模型被定义在类 java.lang.Serilizable中 ( D) Java线程模型中的数据和代码是相互独立的 46 下列方法中可以用来创建一个新线程的是 _。 ( A)实现 java.lang.Runnable接口并重写 start()方法 ( B)实现 java.lang.Runnable接口并重写 run()方法 ( C)继承 java.lang.Thread类并重写 run()方法 ( D)实现 java.lang.Thread类并实现 start()方法 47 当方法遇到异常 又
37、不知如何处理时,下列哪种做法是正确的 ? ( A)捕获异常 ( B)抛出异常 ( C)声明异常 ( D)嵌套异常 48 下列方法中建议使用的是 _。 ( A) stop() ( B) Suspend() ( C) restume() ( D) wait() 计算机二级( JAVA) Java编程技术基础章节练习试卷 1答案与解析 1 【正确答案】 C 【知识模块】 Java编程技术基础 2 【正确答案】 A 【知识模块】 Java编程技术基础 3 【正确答案】 B 【知识模块】 Java编程技术基础 4 【正确答案】 A 【知识模块】 Java编程技术基础 5 【正确答案】 A 【知识模块】
38、Java编程技术基础 6 【正确答案】 A 【知识模块】 Java编程技术基础 7 【正确答案】 A 【知识模块】 Java编程技术基础 8 【正确答案】 C 【知识模块】 Java编程技术基础 9 【正确答案】 A 【知识模块】 Java编程技术基础 10 【正确答案】 D 【知识模块】 Java编程技术基础 11 【正确答案】 B 【知识模块】 Java编程技术基础 12 【正确答案】 C 【知识模块】 Java编程技术基础 13 【正确答案】 A 【知识模块】 Java编程技术基础 14 【正确答案】 A 【知识模块】 Java编程技术基础 15 【正确答案】 D 【知识模块】 Java
39、编程技术基础 16 【正确答案】 C 【知识模块】 Java编程技术基础 17 【正确答案】 A 【知识模块】 Java编程技术基础 18 【正确答案】 D 【知识模块】 Java编程技术基础 19 【正确答案】 B 【知识模块】 Java编程技术基础 20 【正确答案】 B 【知识模块】 Java编程技术基础 21 【正确答案】 B 【知识模块】 Java编程技术基础 22 【正确答案】 C 【知识模块】 Java编程技术基础 23 【正确答案】 B 【知识模块】 Java编程技术基础 24 【正确答案】 B 【知识模块】 Java编程技术基础 25 【正确答案】 A 【知识模块】 Java编程技术基础 26 【正确答案】 C 【知识模块】 Java编程技术基础 27 【正确答案】 A 【知识模块】 Java编程技术基础 28 【正确答案】 C 【知识模块】 Java编程技术基础 29 【正确答案】 A 【知识模块】 Java编程技术基础 30 【正确答案】 B 【知识模块】 Java编程技术基础 31 【正确答案】 D 【知识模块】 Java编程技术基础 32 【正确答案】 C 【知识模块】 Java编程技术基础 33 【正确答案】 B 【知识模块】 Java编程技术基础 34 【正确答案】 C 【知识模块】 Java编程技术基