1、Java 编程技术基础及答案解析(总分:138.00,做题时间:90 分钟)一、B选择题/B(总题数:48,分数:96.00)1.下列_不属于计算机常用的外部设备。(分数:2.00)A.网络B.显示器C.内存D.键盘2.Runnable 接口中包括的抽象方法是_。(分数:2.00)A.run()B.sleep()C.start()D.isAlive()3.下列程序实现对 ZIP 文件 filel4.zip 的检索,在横线处填入正确的语句。 package ch1; import java.io.*; import java.util.*; import java.util.zip.*; pub
2、lic 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.printStackTrace(); (分数:2.00)A.en = ziget
3、NexTEnTRY()B.en = zigetEntry()C.en=zigetNextEntry()D.zigetNextEntry()4.下列说法中错误的一项是_。(分数:2.00)A.当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他线程无法访问B.当线程获得了某个对象的排他锁时,它可以独自访问该对象,其他线程也可以通过某种策略访问C.临界区可以是一个方法D.程序中单独并发的线程可以对同一个对象进行访问5.下面_可用于处理 Unicode 码。(分数:2.00)A.WriterB.BufferedReaderC.ByteArraylnputStreamD.PipedlnputS
4、tream6.下列说法中,错误的一项是_。(分数:2.00)A.线程有其产生、存在和消亡的过程B.一个进程可以创建多个线程C.Java 需要利用外部的线程支持库来实现多线程D.在 Java 语言中支持多线程7.如果要创建一个包含父目录的目录,需要使用 File 的_方法。(分数:2.00)A.mkdir()B.mkdirs()C.ifFile()D.list()8.选择正确的语句填在下列程序的横线处,使程序正常运行。 package ch1; import java. io. *; import j ava. util. *; class C45 implements Seritizable
5、_Public Thread t = new Thread(new 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 = “ch1/file45.txt“; public static void main(String args) th
6、rows Exception C45 obj = new C45 (); FileOutputStream fos = new FileOutputStream(fileName); ObjectOutputStream oos = new ObjectOutputStream(fos); oos. writeObject (obj); oos.clese (); fos.close (); System. out, println (obj . toString ( ) ); (分数:2.00)A.transientB.protectedC.packageD.final9.下列_不是 Mat
7、cher 类的方法。(分数:2.00)A.find()B.matches()C.start()D.matcher()10.下列选项中,不属于线程生命周期的状态是_。(分数:2.00)A.可运行状态B.创建状态C.暂停状态D.不可运行状态11.下面_语句能够正确地创建一个 hputStreamReader 的实例。(分数:2.00)A.new lnputStreamReader(new FileReader(“data“);B.new lnputStreamReader(“data“);C.new lnputStreamReader(new FilelnputStream(“data“);D.n
8、ew lnputStreamReader(new BufferedReader(“dam“);12.LineNumberReader 类提供了_功能。(分数:2.00)A.压缩B.数据校验C.摘要D.文本行计数13.下列情况中,不会使线程转入不可运行状态的是_。(分数:2.00)A.调用 wait()方法等候一个条件变量B.调用 yield()方法C.调用 sleep()方法D.方法输入输出流发生线程阻塞14.当输入一个字节流时,要_。(分数:2.00)A.实现 Datalnput 接口B.实现 Serializable 接口C.实现 Objectlnput 接口D.继承 Reader 抽象类
9、15.下列说法中,错误的一项是_。(分数:2.00)A.一个线程组中可以包含若干线程B.一个 Java 应用程序启动时,Java 运行系统为该程序创建一个名为 main 的线程C.一个线程组中不可以再包含线程组D.一个 Java 应用程序的最顶层线程组是 main16.下列程序通过实现 Runnable 接口创建一个线程,选择正确的语句填入程序的横线处。 class MyRun implements Runnable String str; MyRun(String s) str = s; public void run() System.out.println(str); public cl
10、ass ex40 public static void main(String args) String name = “实现阶段 Runnable 接口“; MyRun my = new MyRun(name); Thread th = th. start ( ); (分数:2.00)A.new MyRun(mB.new Thread()C.new Thread(mD.Thread(m17.下列说法中,错误的一项是_。(分数:2.00)A.多个线程对同一个对象进行访问时,则共享数据B.多个线程执行同一个类的实例代码时,则共享相同的代码C.在 Java 中,线程模型被定义在类 javlanSe
11、rilizable 中D.Java 线程模型中的数据和代码是相互独立的18.下列说法中,不正确的一项是_。(分数:2.00)A.可以用 FileWriter 对象作为 PrintWfite 类的构造方法的参数B.可以用 FileOutputStream 对象作为 PrintWrite 类的构造方法的参数C.PrintWriter 类的 println()方法不可以刷新输出缓冲区D.PrintWriter 类的 println()方法可以刷新输出缓冲区19.下列程序使用系统标准输入 System.in 从键盘获得输入字符串,请选择正确的一项填入下列程序的横线处。 import java.io.*
12、; 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.out .print ( (char)buffer i ); catch (IOException e) System.out.print (e); (分数:2.00)A.Systeiread(buffeB.systeiread(buffeC.Systeiread0D.Systein(buffe20.下列程序执行后的结果是_。 packa
13、ge ch1; import java.io.*; public class ex22 static, String filename = “ch1/kfile22.txt“; public static void main(String args) try FileWriter fr = new FileWriter(filename); PrintWriter pr = new PrintWriter(fr); String name = “xiaoming“; String phone = “123456“; String age = “12“; pr.println(name + ,
14、+ phone + , + age); pr.close(); fr.close(); catch(IOException ioe) ioe.printStackTrace() (分数:2.00)A.在包 ch1 中新建一个文件 file22.txt, 并且在其中写入一行字符串“xiaomingl2345612”B.在包 ch1 中新建一个文件 file22.txt,并且在其中写入一行字符串“xiaoming, 123456,12”C.在包 chi 中新建一个文件 file22.txt,并且在其中写入一行字符串“xiaomingD.抛出 IOException21.下列说法中,错误的一项是_。
15、(分数:2.00)A.在 Java 程序中,关键字 synchronized 标志一个临界区B.临界区可以是一个语句块,但是不可以是一个方法C.在 Java 程序中,对象锁是设置在 synchronized(Objec 语句指定的对象上的D.Java 语言中的对象锁是一种排他锁22.与 InputStream 流相对应的 Java 系统的标准输入对象是_。(分数:2.00)A.SysteinB.SysteoutC.Systeexit()D.Systeerr23.如下程序完成的功能是_。 import java.io.*; public class ex7 public static void
16、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 System.out.println (“文件没有被删除“); (分数:2.00)A.删除指定的文件,并显示相应的结果B.编译出错C.查看文件内容D.以上都不对24.现有一个文件 file21.txt,其内容是: abC
17、dEf, 执行下列程序之后,输出的结果是_。 package ch1; import java,io.*; public class ex21 static String name = “ch1/file21.txt“; public static void main(String args) try readFile (); catch(IOException ioe) System.out.println(ioe.getMessage(); static void readFile () throws IOException BufferedReader br = null; try Fi
18、le 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 (); (分数:2.00)A.AbCdEfB.abcdefC.aBcDeFD.ABCDEF25.下列说法中错误的一项是_。(分数:2.00)A.通过执行 ThreacurrentThrea)返回当前线程的引用B.currentThr
19、ead()方法是静态方法C.stop()方法强行终止线程的执行,线程结束后,仍然可以再运行D.线程 a 通过 suspend()方法暂停执行,通过调用 resume()恢复执行26.关于定制串行化,下列叙述正确的是_。(分数:2.00)A.定制串行化就是定义自己读取数据流的方式B.在需要按照某种顺序和种类将数值写入到文件时,可以使用定制串行化C.通过在实现 Serializable 接口的类中重写 write()和 readObject()方法,可以控制读取数据流的方式D.定制串行化将按照名称的上升排列顺序写入数值27.下列程序的运行结果是_。 package ch1; import java
20、.io. *; public class ex28 public static void main (String args ) throws IOException try File f1 = new File(“ch1/dir28“); 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(); fos.write(
21、b,0,b.length); catch(IOException ioe) ioe.printStackTrace(); (分数:2.00)A.在目录 ch1 下建立一个目录 dir28,并且建立文件 file28.txt,在文件中写入“Otimes 1 times“B.在目录 ch1 下建立一个目录 dir28,并且建立文件 file28.txt,在文件中写入“l times”C.在目录 chi 下建立一个目录 dir28,并且建立文件 file28.txt,在文件中写入“Otimes”D.抛出 IOExceptin 异常28.在对象串行化中,可以用来保护类中敏感信息的关键字是_。(分数:2
22、.00)A.transientB.protectedC.finalD.public29.当方法遇到异常又不知如何处理时,下列哪种做法是正确的?(分数:2.00)A.捕获异常B.抛出异常C.声明异常D.嵌套异常30.下列关于流类和 File 类的说法中错误的一项是_。(分数:2.00)A.File 类可以重命名文件B.File 类可以修改文件内容C.流类不可以新建目录D.流类可以修改文件内容31.下列关于 Thread 类的说法中,错误的一项是_。(分数:2.00)A.任何实现 Runnable 接口的对象都可以作为 Thread 类构造方法的 target 参数B.name 参数若为 null
23、,Java 会给线程赋予一个惟一的名称C.Thread 类本身没有实现 Runnable 接口D.当线程启动时,target 参数表示的对象的 run()方法将被调用32.在下列程序的横线处填入正确的语句,实现 RandomAccessFile 类使用。 package ch1; import java. io. *; public class ex27 public static void main(String args ) try RandomAccessFile in = new in.close ( ); catch (Exception e) e.printStackTrace (
24、); (分数:2.00)A.RandomAccessFileC“ch1/fildat“, “read“)B.RandomAccessFile(“r“, “ch1/fildat“)C.RandomAccessFile(“ch1/fildat“ , “r“)D.RandomAecessFile(“read“, “ch1/fildat“)33.下列方法中建议使用的是_。(分数:2.00)A.stop()B.Suspend()C.restume()D.wait()34.下列代码实现从文件 file.dat 中读出第 5 个字节到变量 c 中,横线处应该填入下列项中的_。 import java.io.
25、*; public class exl5 public static void main(String args) try System.out.println(char)c); catch(Exception e) e.printStackTrace(); (分数:2.00)A.FileInputStream in = new FileInputStream(“chl/fildat“); iskip(4); int c = iread();B.FileInputStream in = new FileInputStream(“chl/fildat“); iskip(5); int c = i
26、read();C.Fi2eInputStream in = new FileInputStream(“fildat“); int c = iread();D.RandomAccessFile in = new RandomAccessFile (“chi/fil dat “); iskip (4); int c = ireadByte();35.下列程序的输出结果是_。 class T44 implements Runnable public void run() System.out.print in (Thread.currentThread ( ).getName ( ) + “运行“
27、); 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. MAX_PRIORITY); t2.setPriority(Thread.MIN_PRIORITY); t2. start (); t1.start (); (分数:2.00)A.t1 运行 t2 运行B.t2 运行 t1 运行C.t1 运行 t1 运行D.t2 运行
28、t2 运行36.下列说法中错误的一项是_。(分数:2.00)A.readExtemal()方法用于从对象流读取通过 writeExtemal()方法写入的对象的数据B.实现完全串行化的类必须实现 writeExtemal()方法C.实现完全串行化的类必须定义一个具有 public 访问权限的不带参数的构造方法D.writeExtemal()方法的访问权限是 private37.下列接口中,继承了 Collection 接口的是_。(分数:2.00)A.SetB.MapC.IteratorD.AbstractCollection38.下列说法中,错误的一项是_。(分数:2.00)A.线程一旦创建
29、,则立即自动运行B.线程创建后需要调用 start()方法,将线程置于可运行状态C.线程处于可运行状态,意味着它可以被调度D.调用线程的 start()方法后,线程也不一定能立即执行39.已知文件 filel8.txt 中的内容是:一共有 3 行,每行分别是实型的数值 1.0,2.1,3.2,则下列程序执行之后,输出的结果是_。 package ch1; import java.io.*; public class exl8 static String strName = “ch1/file18.txt“; public static void main(String args) try Fi
30、leReader fr = new FileReader(strName); BufferedReader br = new BufferedReader(fr); String str; while(str = br.readLine() != null) float f = Float.parseFloat(str); System.out.println(f); br.close (); fr.close (); catch(Exception e) System.out.print (e.getMessage (); (分数:2.00)A.1.0 2.1 3.2B.1.0C.2.1 3
31、.2D.显示异常信息40.下列程序将 Date 对象写入文件 file42.txt 中,选择正确的语句填入下列程序中的横线处。 package ch1; impbrt java. io. *; import java. util. *; public class ex42 static String fileName = “ch1/file42.txt“; static Date date = null; public static void main(String args) date = new Date(); try FileOutputStream fos = new FileOutp
32、utStream(file Name); ObjectOutStream oos = new ObjectOutputStream(fos); oos._; oos.close(); fos.close(); System.out.println(date.toString(); catch(Exception e) System.out.println(e.getMessage(); (分数:2.00)A.writeObject()B.writeObject(datC.write(datD.writeByte(dat41.下列关于对象加锁的注意点的说法中,错误的一项是_。(分数:2.00)A
33、.synchronized 关键字标识的共享数据必须是私有的B.synchronized 关键字可以放在方法声明中C.共享数据的所有访问都必须作为临界区D.若一个进程持有一个对象锁后,就不能在此请求获得该锁42.Runnable 接口中定义的方法是_。(分数:2.00)A.start()B.Runnable()C.run()D.init()43.下列方法中可以用来创建一个新线程的是_。(分数:2.00)A.实现 javlanRunnable 接口并重写 start()方法B.实现 javlanRunnable 接口并重写 run()方法C.继承 javlanThread 类并重写 run()方
34、法D.实现 javlanThread 类并实现 start()方法44.下列程序的执行结果是_。 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 (); (分数:2.00)A.i=1 i=2 i=3 i=4B.
35、i=1 i=1 i=1 i=1C.i=0 i=1 i=2 i=3D.i=1 i=2 i=345.FileOutputStream 类的父类是_。(分数:2.00)A.FileOutputB.FileC.OutputStreamD.InputStream46.下列抽象类中,处理字节输入流的是_。(分数:2.00)A.OutputStreamB.InputStreamC.WriterD.Reader47.CharArrayReader 类以下列项中的_作为输入流。(分数:2.00)A.字节B.文本C.字节数组D.字符数组48.ZipOu 中 utStream 类的对象可以作为_类的构造方法的参数。
36、(分数:2.00)A.ZiplnputStreamB.InputStreamReaderC.OutputStreamReaderD.FileOuutStream二、B填空题/B(总题数:21,分数:42.00)49.线程的 1 方法只给具有与当前线程相同优先级的线程运行的机会。(分数:2.00)填空项 1:_50.RandomAccessFile 类实现的接口是 1 和 DateOutput 接口。(分数:2.00)填空项 1:_51.关于文件名的处理,测试当前文件是否是文件(不是目录)用函数 boolean isFile1,测试当前文件是否是目录用函数 2。(分数:2.00)填空项 1:_5
37、2.File 类中,获得文件路径的方法是 1。(分数:2.00)填空项 1:_53.通过实现 Rmmable 接口创建线程,请在下面横线处填写代码完成此程序。 public class ThreadTest public static void main(String args ) Thread testObj1 = new Thread (new Hello (); Thread testObj2 = new Thread (new Hello (); testObj 2.start ( ); class Hello implements Runnable int j; public voi
38、d run() System.out.println(“Hello“ + j +); (分数:2.00)填空项 1:_54.从对象流中读取对象,请在下面横线处填写代码完成此程序。 import java.util. *; import java. io. *; public class UnSerializeDate date d = null; UnSerializeDate ( ) try FileInputStream f1 = new FileInputStream(“date.ser“); d = (Date) s. readobject (); f1,close(); catch
39、(Exceptin e) e. printStackTrace (); public static main(String args ) System.out.println(“The date read is: “+ a.d.toString(); (分数:2.00)填空项 1:_55.向文件对象写入字节数据应该使用 1 类,而向一个文件里写入文本应该使用 FileWriter 类。(分数:2.00)填空项 1:_56. 1 类是 java.io 包里的一个重要的非流类,封装了操作文件系统的功能。(分数:2.00)填空项 1:_57. 1 类同时实现了 Datalnput 接口和 DataO
40、utput 接口。(分数:2.00)填空项 1:_58.字符输入流的父类是_,字符输出流的父类是_。(分数:2.00)填空项 1:_59.所有的输出过滤流都是抽象类 1 的子类。(分数:2.00)填空项 1:_60.Java 中的字节输入流都是抽象类 1 的子类。(分数:2.00)填空项 1:_61.在 Java 线程模型中,一个线程是由_、_和_三部分组成。(分数:2.00)填空项 1:_62.Thread 类中表示最高优先级的常量是_,而表示最低优先级的常量是_。(分数:2.00)填空项 1:_63.若要获得一个线程的优先级,可以使用方法_,若要修改一个线程的优先级,则可以使用方法_。(分
41、数:2.00)填空项 1:_64.Java 语言中用于定义线程具体行为的方法是 Thread 类的 1 方法。(分数:2.00)填空项 1:_65. 1 是指在 Java 程序中用 synchronized(Object 语句指定的对象上设置的锁。(分数:2.00)填空项 1:_66.将一个对象 wait poll 中的一个线程移入 lock pool 中的方法是 1。(分数:2.00)填空项 1:_67.创建一个线程之后,通过调用该线程对象的 1 方法将潜入该线程的虚拟 CPU 置于可运行状态。(分数:2.00)填空项 1:_68.Java 对象中行化技术,主要是通过 Objectlnput
42、Stream 类和 1 类来实现。(分数:2.00)填空项 1:_69.Java 的线程调度策略是一种基于优先级 1。(分数:2.00)填空项 1:_Java 编程技术基础答案解析(总分:138.00,做题时间:90 分钟)一、B选择题/B(总题数:48,分数:96.00)1.下列_不属于计算机常用的外部设备。(分数:2.00)A.网络B.显示器C.内存 D.键盘解析:2.Runnable 接口中包括的抽象方法是_。(分数:2.00)A.run() B.sleep()C.start()D.isAlive()解析:3.下列程序实现对 ZIP 文件 filel4.zip 的检索,在横线处填入正确的
43、语句。 package ch1; import java.io.*; import java.util.*; 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.clcseE
44、ntry(); zis.close(); catch(Exception e) e.printStackTrace(); (分数:2.00)A.en = zigetNexTEnTRY() B.en = zigetEntry()C.en=zigetNextEntry()D.zigetNextEntry()解析:4.下列说法中错误的一项是_。(分数:2.00)A.当线程获得了某个对象的排他锁时,它可以独自访问该对象,而其他线程无法访问B.当线程获得了某个对象的排他锁时,它可以独自访问该对象,其他线程也可以通过某种策略访问 C.临界区可以是一个方法D.程序中单独并发的线程可以对同一个对象进行访问解析
45、:5.下面_可用于处理 Unicode 码。(分数:2.00)A.WriterB.BufferedReader C.ByteArraylnputStreamD.PipedlnputStream解析:6.下列说法中,错误的一项是_。(分数:2.00)A.线程有其产生、存在和消亡的过程B.一个进程可以创建多个线程C.Java 需要利用外部的线程支持库来实现多线程 D.在 Java 语言中支持多线程解析:7.如果要创建一个包含父目录的目录,需要使用 File 的_方法。(分数:2.00)A.mkdir()B.mkdirs() C.ifFile()D.list()解析:8.选择正确的语句填在下列程序的
46、横线处,使程序正常运行。 package ch1; import java. io. *; import j ava. util. *; class C45 implements Seritizable _Public Thread t = new Thread(new 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 = “ch1/file45.txt“; public static void main(String