1、国家二级( JAVA)笔试模拟试卷 176及答案与解析 1 对长度为 N的线性表进行顺序查找,在最坏情况下所需要的比较次数为 ( )。 ( A) N+1 ( B) N ( C) (N+1)/2 ( D) N/2 2 阅读下面代码 public class Test implements Runnable public void run(Thread t) System.out.println(“Running“); public static void main(String args) Thread tt=new Thread(new Test(); tt.start(); 代码运行的结果是
2、 ( A)将抛出一个异常 ( B)没有输出并正常结束 ( C)输出 “Running”并正常结束 ( D)程序第 2行将出现一个编译错误 3 Thread类中能运行线程体的方法是 ( A) start() ( B) resume() ( C) init() ( D) run() 4 下列方法能够用来实现线程之间通信的是 ( A) notify() ( B) run() ( C) sleep() ( D) join() 5 下列对于严格控制 goto语句的使用理解错误的是 ( )。 ( A)用一种非结构化的程序设计语言实现一个结构化的构造 ( B)若不使用 goto语句会使功能模糊 ( C)在某
3、种可以改善而不是损害程序可读性的情况下,可以使用该语句 ( D) goto语句可以完全不用 6 设有定义语句 int a=66, 88, 99;,则以下对此语句的叙述错误的是 ( )。 ( A)定义了一个名为 a的一维数组 ( B) a数组有 3个元素 ( C) a数组的下标为 1 3 ( D)数组中的每个元素都是整型 7 下列叙述中,不属于数据库系统的是 ( A)数据库 ( B)数据库管理系统 ( C)数据库管理员 ( D)数据库应用系统 8 下列不属于软件工程的 3个要素的是 ( A)工具 ( B)过程 ( C)方法 ( D)环境 9 在一棵二叉树上第 5层的结点数最多是 ( A) 8 (
4、 B) 16 ( C) 32 ( D) 15 10 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 ), 下面属于系统软件 的是 ( )。 ( A)编辑软件 ( B)操作系统 ( C)教务管理系统 ( D)浏览器 11 下列说法中错误的一项是 _。 ( A)下拉菜单可以被添加到 MenuBar或者其他菜单中 ( B) MenuItem对象可以添加 ActionListener 监听器 ( C) MenuBar和 Menu都可以不用注册监听器 ( D)若要对 MenuItem添加监听器,也必须对 MenuBar添加监听器 12 下面程序段的输出结果是 ( )。 public cl
5、ass Test public static void main ( String args) int result=0; for ( int i=1;i =5;i+) if ( i%2=0 ) continue; result + =i; System. out. println (“result is “ + result ); ( A) result is 7 ( B) result is 8 ( C) result is 9 ( D) result is 10 13 下列运算符中,不可以和字符类型数据组合成运算表达式的是 ( )。 ( A) + ( B) - ( C) + ( D) x
6、=(int)Math.sqrt(5)/2+(int)Math.random()*5/2; y=(int)Math.sqrt(3)/2+(int)Math.random()*3/2; if (x y) System.out.println(“x y“); else if (x=y) System.out.println(“x=y“); else System.out.println(“x y“); ( A) x y ( B) x=y ( C) x y ( D)编译错误 23 下列叙述中,错误的是 ( )。 ( A) Java Application与 Applet所用编译命令相同 ( B)通常情
7、况下 Java Application只能有一个 main()方法 ( C) Java Applet必须有 HTML。 文件才能运行 ( D) Java Applet程序的 .class文件可用 java命令运行 24 在下面附属类方法中的下划线处应填入的正确参数是 ( )。 public void writeData(_) throws IOException GregorianCalendar calendar=new GregorianCalendar(); calendar.setTime(hireDay); out.println(name+“|“+salary+“|“ +calen
8、dar.get(Calendar.YEAR)+“|“ +(calendar.get(Calendar.MONTH)+1)+“|“ +calendar.get(Calendar.DAY_OF_MONTH); ( A) Employeee ( B) employee.dat ( C) PrintWriter out ( D) BufferedWriter 25 下列叙述中,正确的是 ( )。 ( A)声明变量时必须指 定一个类型 ( B) Java认为变量 number与 Number相同 ( C) Java中唯一的注释方式是 “/” ( D)源文件中 pubic类可以有 0或多个 26 下列循环
9、执行的次数为 ( )。 int y=2,x=4; while(-x!=x/y) ( A) 1 ( B) 2 ( C) 3 ( D) 0 27 表达式 -31 5 5 5 5 5 5值为 ( )。 ( A) NULL ( B) -1 ( C) 3 ( D) 1024 28 Java中用于提供 Java语言、 Java虚拟机的核心的类和接口的包是 ( A) java io包 ( B) java applet包 ( C) java lang包 ( D) java net包 29 下列关于 HTML标记的说法,正确的是 ( A) URL getDocumentBase()返回 Applet主类的 UR
10、L ( B) URL getCOdeBase()返回包含 Applet的 HTML文件的 URL ( C)在 HTML中不说明 Stringget Parameter(string name)的参数,该方法将返回 “0” ( D) HTML标记方法用 于获取 HTML文件中关于 Applet的信息 30 使用下列哪个选项可以调用基类中的特定构造方法 ? ( ) ( A) final ( B) this ( C) super ( D) static 31 下列语句片断中, four的值为: ( )。 int three=3; char one=“1“; char four=(char)(thre
11、e+one); ( A) 3 ( B) 1 ( C) 31 ( D) 4 32 下列关于对象的加锁说法不正确的是 ( A)对象的加锁技术有效的预防了死锁的 发生 ( B)共享数据的所有访问都必须作为临界区,使用 synchronized关键字进行加锁控制 ( C)用 synchronized 保护的共享数据必须都是私有的 ( D) Java语言中对象加锁具有可重入性 33 下列哪个选项是正确计算 42度 (角度 )的余弦值 ? ( A) double d=Math.cos(42); ( B) double d=Math.cosine(42); ( C) double d=Math.cos(Ma
12、th.toRadians(42) ); ( D) double d=Math.cos(Math.toDegrees(42) ); 34 下列哪项是将一个十六进制值赋值给一个 long型变量 ? ( A) long number = 123L; ( B) long number = 0123; ( C) long number = 0123L; ( D) long number = 0xl23L; 35 下列叙述中,错误的是 ( A) Java Application与 Applet 所用编译命令相 ( B)通常情况下 Java Application 只能有一个 main()方法 ( C) J
13、ava Applet 必须有 HTML文件才能运行 ( D) Java Applet程序的 .class文件可用 java命令运行 36 面向对象的模型中,最基本的概念是对象和 _。 37 下列软件系统结构图的宽度为【 】。 38 某二叉树中度为 2的结点有 n个,则该二叉树中有【 】个叶子结点。 39 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块 (桩模块 )。其中【 】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 40 在 Java语言中,用 _修饰符定义的类为抽象类。 41 在 Java语言中,用来分配内存的运算符是 _。 42 能将
14、显示空间分成很多层的布局管理器是【 】。 43 按照流的方向来分, I/0流包括【 】和输出流。 44 自定义异常类都是【 】及其子集,除了在运行时产生或不易预测外,都定义为非运行时的异常。 45 创建一个显示 “选项 ”的菜单项对象 mi的正确语句是 _。 46 线程在生命周期中要经历 5种状态,分别是新建状态、可运行状态、运行状态、【 】状态和终止状态。 47 多个 方法具有相同的名字而含有不同的参数时,便产生了【 】。 48 FileChanne1类为磁盘文件映射入【 】提供了一个通道。 49 微机中 ROM的中文意义是 _存储器。 50 Java输入 /输出流中包括字节流、【 】、文件
15、流、对象流及管道流。 国家二级( JAVA)笔试模拟试卷 176答案与解析 1 【正确答案】 B 【试题解析】 在顺序查找中,如果被查元素不在线性表中,或是线性表中的最后一个,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。 2 【正确答案】 D 3 【正确答案】 A 【试题解析】 控制线程启停类的方法有: start(),线程体开始运行; stop(),强行中止线程运行; suspend(),挂起线程,挂起后的线程将不能自动恢复,只能在其他线程中调用 resume()方法恢复线程的状态; resume(),恢复线程执行。所以答案为 A。选项 D中 run()方法定义
16、了线程体和线程的具体行为。 4 【正确答案】 A 【试题解析】 在 java.lang.object中,实现线程通信有两个方法: wait()和notify(),它们可以完成线程间同步。其中 wait()方法使线程等待,并且暂时释放其占有的对象锁。 notify()方法通知因调用 wait()方法而等待的线程重新占有该对象锁。 5 【正确答案】 D 【试题解析】 goto语句会造成程序的混乱,但在某些地方 goto语句还是需要的,若不使用 goto语句会使功能模糊。 6 【正确答案】 C 7 【正确答案】 B 【试题解析】 数据库系统 (Database System,简称 DBS)由如下几部
17、分组成,即数据库、数据库管理系统、数据库管理员、硬件和软件。 8 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。 9 【正确答案】 B 【试题解析】 根据二叉树的性质,在二叉树的第 K层上,最多有 2的 k-1次方个结点。所以,第 5层的结点数最多为 16。 10 【正确答案】 C 【试题解析】 编辑软 件和浏览器属于工具软件,教务系统是应用软件。 11 【正确答案】 D 【知识模块】 编写用户界面程序 12 【正确答案】 C 【试题解析】 continu
18、e语句跳过循环体中下面尚未执行的语句,回到循环体的开始继续下轮循环。所以题目中程序实现的是求 1到 5的所有奇数的和,即1+3+5=9,所以选 C。 13 【正确答案】 D 【试题解析】 选项 A可以实现字符的增量运算;选项 B可以实现字符的减量运算;选项 C可以实现字符间的加法运算;选项 D&运算符的操作数只能是布尔类型的值, int或 char类型的数值都不可以作为其操作数。 14 【正确答案】 D 【试题解析】 对象是类的实例化,两者不能等同。 15 【正确答案】 C 【试题解析】 本题考查 Java中多重继承的概念。首先要区分选项中各个概念。内部类是在一个类的内部嵌套定义的类,主要用来
19、生成事件适配器。适配器定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器 (Adapter),它包装的对象就是适配器,适配器提供客户类需要的接口。接口是一种只含有抽象方法或常量的一种特殊的抽象类,因为接口不包括任何实现,所以 与存储空间没有任何关系,将多个接口合并,即多重继承就可以很容易实现,选项 C正确。同步主要用在多线程程序设计中。 16 【正确答案】 B 【试题解析】 public boolean delete ()的功能是删除当前文件并释放资源,因此 B为正确答案。其余选项中,选项 A的功能由 public void deleteOnExit ()实现;选项 C的功能由
20、public long lastModified ()实现;选项 D的功能由 public long length()实现。 17 【正确答案】 D 【试题解析】 本题考查 Java语言中的进制表示与换算。首先要清楚各种进制的表示方法,整型常量有 3种书写格式:十进制数,如 123、 -50;八进制整数:以 0开头,如 012表示十进制的 10;十六进制整数:以 Ox或 OX开头,如 Ox12表示十进制的 18。选项 A是十进制 15,选项 B和选项 C是十六进制中的 F,相当于十进制的 15,选项 D为八进制, 015相当于十进制的 13,与其他选项不同。 18 【正确答案】 B 【试题解析
21、】 本题考查 Java线程中对象的加锁及其操作。对象加锁的使用非常灵活,一定要注意。对象的锁 在如下几种情况下由持有线程返还:当synchronized()语句块执行完后,所以选项 A错误;当在 synchronized()语句块中出现异常 (exception),所以选项 B错误;当持有锁的线程调用该对象的 wait()方法,此时该线程将释放对象的锁,所以选项 D错误。而当调用了线程的 suspend()方法只是使线程暂时停止执行,可以使用其他线程调用 resume()方法恢复执行,所以选项 B正确。 19 【正确答案】 C 【试题解析】 本题考查 System类的基本知识。 System类
22、是一个 final类,所有的方法都用类变量来调用,妈对 Systel类不可能实例化。 System类主要用来提供标推输入 /输出和系统环境信息的访问设置。而 System类的属性有: (mblicstaticfinal lnputStrem in;标准输入, publicstaticfinalOutputSaem out;标准输出, publicstaticfinalPrintStremerr;标准错误输出。 20 【正确答案】 B 【试题解析】 不能直接建立接口的实例,只能通过实现接口的相应的类来实现接口。所以只 有 B选项是正确的。 21 【正确答案】 C 【试题解析】 实例方法指出一个特
23、定的对象行为,而类方法指出的则是属于该类的所有对象的行为。 22 【正确答案】 A 23 【正确答案】 D 24 【正确答案】 C 【试题解析】 本题考查考生对附属类的掌握。题目看起来很难,其实不用去理解程序即可回答,按照 Java中的语法规则,只有选项 C满足题目。在题目中出现了“out”变量,只有选项 C中 “PrintWriter out”有该变量。选项 A只是用来定义一个数组,选项 B 是一个常量,不能用在这 里,选项 D中 “BufferedWriter”后缺少参数。这个题目考点有些含糊,容易让考生莫名其妙,如果将程序整个给出也许更好一些,了解即可,本题的关键是明白附属类的概念。 2
24、5 【正确答案】 A 【试题解析】 本题考查 Java中的基本概念。关于 Java的基本概念是考试重点,应该重视。在 Java中,声明变量时,必须指定类型,否则将会出错,所以选项 A说法正确。 Java标识符是区分大小写的,这是与 C语言不同的,变量 number和Number对 Java来说是不同的,选项 B说法错误。 Java中有 3种注释方 式:文档注释 /* */ ,被 javadoc处理,可以建立类的一个外部说明性文件: C语言注释风格 /*/ ,用于去掉当前不再使用但仍想保留的代码等;单行注释 /,格式上要求注释符 /后必须紧跟一个空格,然后才是注释信息,选项 C说法错误。源文件中
25、public类可以有 0或 1个,不能多于 1个,选项 D说法错误。 26 【正确答案】 C 【试题解析】 首先判断终止条件,执行 -X之后, x=3,x/y=1,满足条件,执行第1次循环;再判断终止条件,执行 -x之后, x=2, x/y=1,满足条件,执行第 2次循 环;依此类推可知一共执行了 3次循环。 27 【正确答案】 C 【试题解析】 此题可采用排除法。由题目中的表达式,一定会得出一个有效整数,故选项 A不对。由于第 1个运算符是无符号右移运算符 ,故运算结果不可能为负数,选项 B错误。而且,由于初始值最多会被右移 31次,故不可能产生一个运算结果等于 1024的数,选项 D也错误
26、。此题应选 C。 28 【正确答案】 C 【试题解析】 本题考查考生对 Java语言中的类和接口的理解。 java lang包提供了构成 Java语言、 Java虚拟机核心的类和接口 。例如,类 Objet类 String和类 Thread 等。对任何一个 Java程序来说,这些类几乎都是必不可少的。java lang还包含了许多由 Java虚拟机发出的异常,这些异常也是 “类 ”的一种。另外, java lang 包还包含一些用于访问系统资源的类,如 ClassLoader等。java lang包具有极其重要的作用,在程序开头可以不必明文编写装载它的代码。 29 【正确答案】 D 【试题解析
27、】 本题考查 Applet中 HTML 标记方法。 URLgetDocumentBase0 返回包含 Applet的 HTML 文件的 URL,而不是返回 Applet主类的 URL,选项 A错误。 URLgetCOdeBase()返回 Applet主类的 URL,而不是返回包含 Applet的HTML 文件的 URL,选项 B错误。 StringgetParameter(stringname)返回定义在HTML 文件的指定参数,如果指定参数在 HTML 中无说明,该方法将返回“null”,而不是 “0”,因此选项 C错误。 30 【正确答案】 C 31 【正确答案】 D 32 【正确答案】
28、A 【试题解析】 如果程序中多个线程相互等待对方持 有的锁,而在得到对方持有的锁之前都不会释放自己的锁,这就造成了都想得到资源而又都得不到,线程不能继续运行,这样便产生了死锁,所以对象的加锁技术没有预防死锁的发生,而是导致了死锁的发生。 33 【正确答案】 C 【试题解析】 public static double cos(double a)是 Math 类中返回以弧度 a为单位的 cos值的,应先用 toRadians( )方法将 42度转换为弧度值。 34 【正确答案】 D 【试题解析】 十六进制数以 0x开头, long型数以 L(大小写均可,一般使 用大写,因为小写的 1和数字 1不易
29、区分 )。注意八进制数是以 0开头的。 35 【正确答案】 D 【试题解析】 本题考查的是 Java中的 Applet以及 Applt与 Application 的区别。选项 A, Applet的运行方式和 Java Application 不同,但是 Applet在运行前也必须被编译为类文件,这点和 Application是一样的。因此,它们都用 javac进行编译。因此,选项 A的说法是正确的。选项 B,在每个应用程序 Application 中可以包含多个方法,但应用程序都是以 main()方法 为入口点执行,因此必须有且只能有一个 main 方法。故选项 B的说法是正确的。选项 C,
30、Applet是能够嵌入HTML 语言中,并能够在浏览器中运行的类。 Applet的运行环境是 Web 浏览器,所以必须建立 HTML文件,告诉浏览器如何加载与运行 Applet。所以,选项 C的说法是正确的。选项 D,根据选项 C的分析, Applet是不能直接通过 Java命令行启动运行的。因此,选项 D的说法是错误的。 36 【正确答案】 类 【知识模块】 程序设计基础 37 【正确答案】 3 或 三 【试题解析】 软件系 统结构图的宽度:整体控制跨度 (最大模块数的层 )的表示。 38 【正确答案】 n+1 39 【正确答案】 驱动模块 【试题解析】 由于模块不是一个独立的程序,不能单独
31、运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是模拟被测试模块的下层模块。通常,承接模块有多个。 40 【正确答案】 abstmct 【试题解析】 抽象类应使用 absstuct定义。 41 【正确答案】 new 【知识模块】 Java简单数据类型及运算 42 【正确答案】 CardLayout 【试题解析】 CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许
32、放置一个构件。 43 【正确答案】 输入流 【试题解析】 流可以看作是一个流动的数据缓冲区,数据从数据源流向数据目的地。流是串行的。凡是从外部设备流向主机的数据流,称之为输入流;反之,称为输出流。 44 【正确答案】 Throwable 【试题解析】 ava语言的类库中提供一个 Throwable类,所有的异常对象都必须是它的实例或其子类的实例。 Throwable 类中的方法对抛出异常进行描述。Throwable是直接从 Object类继承来的,是所有异常类的父类。 45 【正确答案】 Menultem mi=newMenultem(“选项 ”); 【试题解析】 本题考查 Menultem的
33、概念和应用。 Menultem是菜单树中 “叶子结点 ”,通常被添加到一个 Menu 中,对于 Menultem对象可以 添加到ActionListener,使其能够完成相应的操作。 46 【正确答案】 阻塞 47 【正确答案】 重载 48 【正确答案】 内存 【试题解析】 该类是封装在 java.nio.channels 包中的,提供文件和内存映射的类。 49 【正确答案】 只读 50 【正确答案】 【 】字符流 【试题解析】 Java中的流主要分为两种:字节流和字符流,分别由四个抽象类来表示 (每种流包括输入和输出两种,所以一共四个 ): InputStream、OutputStream、 Reader和 writer。 Java中其他多种多样变化的流均是由它们派生出来的,其中包括文件流、对象流及管道流。