1、国家二级( JAVA)笔试模拟试卷 174及答案与解析 1 下面叙述中正确的是 ( )。 ( A)算法的执行效率与数据的存储结构无关 ( B)算法的空间复杂度是指算法程序中指令 (或语句 )的条数 ( C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( D)以上三种描述都不对 2 下列有关 Java布尔类型的描述中,正确的是 ( A)一种基本的数据类型,它的类型名称为 boolean ( B)用 int表示类型 ( C)其值可以赋给 int类型的变量 ( D)有两个值, 1代表真, 0代表假 3 数据库设计 中反映用户对数据要求的模式是 ( A)内模式 ( B)概念模式 ( C)外模式
2、 ( D)设计模式 4 在一棵二叉树上第 5层的结点数最多是 ( )。 ( A) 8 ( B) 16 ( C) 32 ( D) 15 5 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)执行算法所需要的存储空间 6 数据库关系模型中可以有三类完整性约束,下列选项中不属于三类完整性约束的是 ( )。 ( A)实体完整性规则 ( B)参照完整 性规则 ( C)对象完整性规则 ( D)用户自定义完整性规则 7 对一个已经排好序的序列进行排序,采用 ( )比较适宜。 ( A)冒泡法 ( B)直接选择法 ( C)直接插入法 (
3、 D)归并法 8 在待排序的元素序列基本有序的前提下,效率最高的排序方法是 ( )。 ( A)插入排序 ( B)选择排序 ( C)快速排序 ( D)堆排序 9 在关系模型中,一个关系对应即是我们通常所说的 ( )。 ( A)一张表 ( B)数据库 ( C)图 ( D)模型 10 Java中的基本数据类型 int在不同的操作系统平台的字长是 ( )。 ( A)不同的 ( B) 32位 ( C) 64位 ( D) 16位 11 下列关于 main的说法,错误的是 _。 ( A) main方法必须放在一个类中定义 ( B) main方法表示一个 Java应用程序执行的入口点 ( C)在 applic
4、ation环境下有一个类 (只能有一个类 )必须定义一个 main方法 ( D) Java Applet和 Java Application中都有 main方法 12 下列关于 char类型的数据的说法中,正确的是 ( )。 ( A) r表示换行符 ( B) n表示回车符 ( C) char类型在内存中占 16位 ( D)凡是 Unicode字符都可以用单引号括起来作为 char类型常量。 13 在 J2SE1.4中,文件通道类 FileChannel 所属的包是 ( )。 ( A) java.io ( B) java.nio.Charset ( C) java.nio.channels (
5、D) java.awt 14 java程序与数据库的连接机制是 ( )。 ( A) ODBC ( B) JDBC ( C) ODBCAPI ( D) SQL/CLI 15 清阅读下面程序,说明该程序创建线程使用的方法是 ( )。 publicclassThreadTest publicstaticvoidmain(Stringargs) Threadt1=newThread(newHolloWorld(); Threadt2=newThread(newHolloWorld(); t1.start(); t2.start(); classHolloWorldimplementsRunnable
6、inti; publicvoidrun() while(true) System.out.println(“HolloWorld“+i+); if(i=5)break; ( A)继承 Thread类 ( B)实现 Runnable接口 ( C) t1.start() ( D) t2.stan() 16 当查询一个压缩文件时,首 先要建立压缩文件输入流的对象是 _。 ( A)以选中的压缩文件为参数 ( B)以 FileInputStream对象为参数 ( C)以 InputStreamReader对象为参数 ( D)以 BufferedReader对象为参数 17 下面说法中错误的是 ( )。
7、( A)凡是语法错误,都属于编译错误 ( B)异常是程序无法控制的 ( C)对程序而言,一般有编译错误和运行错误两类 ( D) Java语言中,异常为一种对象 18 不允许作为类及类成员的访问控制符的是 ( )。 ( A) public ( B) private ( C) static ( D) pratected 19 下列说法错误的是 ( )。 ( A) Java的字符类型采用的是 Unicode编码,每个 Unicode码占 16位比特 ( B) Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关 ( C) Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个
8、类是主类 ( D) Java Application只能在字符界面下工作 20 下列用于 Java解析类文件的命令是 ( )。 ( A) java ( B) javac ( C) javap ( D) jar 21 在线程的同步过程中,不建议使用的是 ( )。 ( A) start() ( B) wait() ( C) notify() ( D) stop() 22 下列关于 Java变量作用域的说法中,不正确的是 ( )。 ( A)在 Java程序中要使用一个变量,必须先对其进行声明 ( B)变量声明语句可以在程序的任何地方,只要在变量使用之前即可 ( C)变量不可以在其作用域之外使用 (
9、D)局部变量在使用之前可以不初始化,系统使用 默认的初始值 23 阅读下列代码段,选出该代码段的正确的文件名 ( )class A void methodl() System.out.println(“methodl in class A“); public class B void method2() System.out.println(“method2 in class B“); public static void main(String args) System.out.println(“main()in class B“); ( A) A.java ( B) A.class ( C
10、) B.class ( D) B.java 24 下列叙述中,错误的是 ( )。 ( A) File类能够存储文件 ( B) File类能够读写文件 ( C) File类能够建立文件 ( D) File类能够获取文件、文件夹信息 25 下列关于线程优先级的说法中,正确的是 ( )。 ( A)线程的优先级是不能改变的 ( B)线程的优先级是在创建线 程时设置的 ( C)在创建线程后的任何时候都可以设置 ( D) B和 C 26 下面程序的输出结果是 ( )。 public class Sun public static void main(String args) int a=1,2,3,4);
11、 int j=1,s=0; for(int i=3;i =0;i-) s=s+ai*j; j=j*10; System.out.println(s); ( A) 1234 ( B) 21 ( C) 43 ( D) 4321 27 在编写 Java Applet程序时,若需要对发生的事件做出响应和处理,一般需要在程序的开头写上 ( )语句。 ( A) import java.awt.*; ( B) import java.applet.*; ( C) import java.io.*; ( D) import java.awt.evcnt.*; 28 Applet类的直接父类是 ( ) ( A)
12、 Component类 ( B) Container类 ( C) Frame类 ( D) panel类 29 下列 ( )数代表十六进制整数。 ( A) 0123 ( B) 1900 ( C) fa00 ( D) 0xa2 30 在 Java语言中,下列属于合法标识符的是 ( )。 ( A) _book ( B) 5file ( C) #NAME? ( D) -3.14159 31 下列哪个方法可以使具有与当前线程相同优先级的线程有运行的机会 ? ( A) sleep( ) ( B) yield( ) ( C) interrupt( ) ( D) stop( ) 32 下列有关线程的叙述哪个是
13、正确的 ? ( A)一旦一个线程被创建,它就立即开始运行 ( B)调用 start( )方法可以使一个线程成为可运行的,但是它不一定立即开始运行 ( C)主线程不具有默认优先级 ( D) Java中线程的优先级从低到高以整数 0 9表示 33 阅读下面程序 class Test implements Runnable public static void main(String args) Test t = new Test(); t.startO; public void run() 下列关于上述程序的叙述正确的是 ( A)程序不能通过编译,因为 start()方法在 Test类中没有定义
14、( B)程序编译通过,但运行时出错,提示 start()方法没有定义 ( C)程序不能通过编译,因为 run()方法没有定义方法体 ( D)程序编译通过,且运行正常 34 线程生命周期中正确的状态是 ( A)新建状态、 运行状态和终止状态 ( B)新建状态、运行状态、阻塞状态和终止状态 ( C)新建状态、可运行状态、运行状态、阻塞状态和终止状态 ( D)新建状态、可运行状态、运行状态、恢复状态和终止状态 35 下列关于线程调度的叙述中,错误的是 ( A)调用线程的 sleep()方法,可以使比当前线程优先级低的线程获得运行机会 ( B)调用线程的 yeild()方法,只会使与当前线程相同优先级
15、的线程获得运行机会 ( C)当有比当前线程的优先级高的线程出现时,高优先级线程将抢占 CPU并运行 ( D)具有相同优先级的多个线程的 调度一定是分时的 36 数据的逻辑结构在计算机存储空间中的存放形式称为数据的【 】。 37 冒泡排序算法在最好情况下的元素交换次数为【 】。 38 一个关系表的行称为 _。 39 在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为【 】。 40 在程序设计阶段应该采取【 】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。 41 关系模型的数据操纵即是建立在关系上的数据操纵,一般有 _、增加、
16、删除和修改四种操作。 42 异常处理在内存中采用 _机制。 43 下列程序的功能是创建了一个实现 5个 “Hello!”的线程并启动运行,请将程序补充完整。 public class Test extends Thread public static void main(String args) Test t = new 【 】 ; t.start( ); public void run( ) int i = 0; while (true) System.out.println( “Hello“ ); if (i+ =4) break; 44 通过实现 Applet类的【 】方法,可以定义关于
17、参数的信息。 45 每个 Applet程序必须有一个类是【 】类的子类。 46 下列 JApplet对鼠标单击事件进行处理,当鼠标在 JPanel中单击时,在 JLabel中显示单击次数。请在横线处填写正确的代码【 】。 import java.awt.event.*; import javax.swing.*; import java.awt.*; public class Test extends JApplet static int cnt; public void init() Container cp = getContentPane(); MyPane jp = new MyPan
18、e1(); _; jp.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent me) cnt +; jb.setText(Integer.toString(cnt); ); cp.add(“South“,jB) ; cp. add (“Center“, jp); class MuPanel extends JPanel public MyPanel() public void paintComponent(Graphics g) super.panitComponent(g); g.drawRect(0,
19、0,getSize() .width-1,getSize() .hight-1); 47 设有数组定义: int MyIntArray=10, 20, 30, 40, 50, 60, 70; 则执行下面几个语句后的输出结果是【 】。 int s=0; for(int i=0; i MyIntArray length; i+) s+=MyIntArrayi; System.out.println(s); 48 面向对象的语言将客观世 界都看成由各种对象组成,共同特征和行为的对象组成类,类是变量和【 】的集合体。 49 求自然数 1到 n的和的递归定义如下: sum(1)=1 若 n=1 sum(
20、n)=sum(n-1)+n; 若 n 1 下列定义的方法的功能是用递归的算法完成自然数 1到 n的累加和,请补充程序。 int sum (int num if( num = =1)return1; else return【 】 50 布尔逻辑运算符包括: !、 &和【 】。 国家二级( JAVA)笔试模拟试卷 174答案与解析 1 【正确答案】 C 【试题解析】 算法的执行效率与数据的存储结构有关;算法在运行过程中需要的存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限步骤以后结束。 2 【正确答案】 A 【试题解析】 Java语言中 boolean 型数据只有两个值:
21、 true(真 )和 false(假 )。它不对应任何数值,也不能与数字进行相互转换。 3 【正确答案】 C 4 【正确答案】 B 【试题解析】 根据二叉树的性质:二叉树第 i(i1)层上至 多有 2i-1个结点。由此得到第 5层的结点数最多是 16。 5 【正确答案】 D 【试题解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。 6 【正确答案】 C 7 【正确答案】 C 【试题解析】 若从排序所用的比较时间来看,直接插入法和归并法都比较少,对于 N个元素的序列,大约需要比
22、较 N-1次;但归并法要占用较大的存储空间,所以用直接插入法比较好。 8 【正确答 案】 A 【试题解析】 插入排序通过数据元素的交换来逐步消除线性表中的逆序,所以关键字比较的次数与记录的初始排列次序有关,在待排序的元素序列基本有序的前提下,效率最高。而选择排序和堆排序的关键字比较的次数与记录的初始排列次序无关。快速排序虽然与记录的初始排列次序有关,但在待排序的元素序列基本有序的前提下,效率低于插入排序。 9 【正确答案】 A 10 【正确答案】 B 【试题解析】 Java的基本数据类型的字长是平台无关的, int型字长为 32。 11 【正确答案】 D 【知识 模块】 Java语言中面向对象
23、的特性 12 【正确答案】 C 【试题解析】 r表示回车符, n表示换行符。不是所有的 Unicode字符都可以直接用作 char类型常量的,比如选项 A、 B中的字符,需要用反斜杠做转义才可以。 13 【正确答案】 C 【试题解析】 文件通道是 J2SE1.4提供的新的输入输出功能之一,被收集在java.nio 包中。 java.nio.channels 包中的 FileChannel(文件通道类 )就是磁盘文件映入内存的一个通道。 14 【正确答案】 B 【试题解析】 本题考查 Java程序与数据库的连接。 JDBC(Java Data BaseConnectivity)是 Java程序与
24、数据库连接的一种机制。在 Java虚拟机中有个特殊模块 JDBCDriverManager,既负责管理针对各种类型数据库软件的 JDBC驱动程序,也负责和用户应用程序交互。 15 【正确答案】 B 【试题解析】 本题考查线程的创建。在 Java中,创建线程有两种方法: 通过实现 Runnable接口创建线程。 Rurmable接口中只定义了一个 rail()方法作为线程体。 通过继承 Thread 类创建线程, Thread类本身实现了 Runnable接口。创建的新的线程不会自动运行,必须调用 start()方法才能运行;本题中 HolloWorld 类实现了 Runnable 接口。 16
25、 【正确答案】 B 【试题解析】 当输入一个 zip文件时,要将 zip 文件作为 FileInputStream构造方法的参数,所以选项 B 正确。 17 【正确答案】 B 【试题解析】 异常是在程序编译或运行中所发生的可预料或不可预料的异常事件,是不可避免的。异常处理,将错误处理的控制流从正常 运行的控制流中分离开,使我们再也不用检查一个特定的错误,并在程序的多处地方对其进行控制。 18 【正确答案】 C 19 【正确答案】 D 20 【正确答案】 C 【试题解析】 Java基本命令包括: javac、 java、 javadoc、 appletviewer、 jar、jdb、 javah
26、、 javap、 extcheck。其中,命令 javap是 Java类文件解析器,用于解析类文件。如果没有使用选项, javap将输出类的 public域及方法。 21 【正确答案】 D 【试题解析】 在线程的同步过程中,不建议使用的方法有 stop()、 suspend()和resume()。 stop()强行终止线程的运行,容易造成数据的不一致: suspend()和resume()这两种方法使得一个进程可以直接控制另外一个进程的执行,容易造成死锁。 22 【正确答案】 D 【试题解析】 局部变量在使用之前必须初始化,否则编译错误,类的成员变量则不一定要在使用之前初始化,系统赋予其默认的
27、初始值。 23 【正确答案】 D 【试题解析】 该题考查文件的命名问题。源代码的文件名必须同工友类的 名字相同,且必须以 java作为扩展名,注意文件名的大小写要一致。本题中,首先应该找 main,它是在 class B 中,所以文件名应为 B.java。选项 D正确。 24 【正确答案】 B 【试题解析】 本题考查考生对 Java中 File类的理解。文件 File是 java.io包中的一个重要的非流类,以一种系统无关的方式表示一个文件对象的属性。通过 File所提供的方法,可以得到文件或文件夹的描述信息 (包括名字、路径、长度、可读、可写等 ),也可以生成新文件、文件夹,修改文件和文件夹
28、,查询文件属性,重命名文件 或者删除文件。 File描述了文件本身的属性, File类中封装了对文件系统进行操作的功能。简单说, File类所关心的是文件在磁盘上的存储,而要对文件进行读写,就是流类所关心的文件内容,应该掌握相关概念以及相关方法。 25 【正确答案】 C 【试题解析】 本题考查线程优先级的概念。首先应该了解 Java的线程是有优先级的,并且可以控制其优先级,可以排除选项 A;选项 B和选项 C本身就矛盾,故选顶 D是错误的, B和 C不能同时选择。线程的优先级在创建线程时可以设置,也可以通过 getPriority()方法来获得线 程的优先级,通过 setPriority()方
29、法来设定线程的优先级。线程的优先级属于考试重点内容,应该重点掌握。 26 【正确答案】 A 【试题解析】 本题考查对 for循环语句和数组的理解。 for语句中步长为 -1即每循环一次,循环变量 i的值减 1,数组进行反运算,即 ai取值 4、 3、 2、 1。故本题答案是 A。 27 【正确答案】 D 【试题解析】 本题考查事件响应的基本知识。选项 A错误,引入的是 awt下级的类;选项 B错误,引入的是关于 applet的类;选项 C错误,引入的是系统输入输出包; 选项 D正确,对事件做出响应,需要引入 java.awt. event.*包。 28 【正确答案】 D 29 【正确答案】 D
30、 30 【正确答案】 A 31 【正确答案】 B 【试题解析】 如果有其他的线程与当前线程具有相同的优先级并且是可运行的,该方法将把调用 yield()的线程放人可运行线程池并允许其他线程运行;如果没有同等优先级的线程是可运行状态, yield()方法什么也不做,即该线程继续运行。 32 【正确答案】 B 【试题解析】 一个新创建的线程并不是自动开始运行的,必 须调用它的 start( )方法使之将线程放入可运行态。不同优先级的线程间是抢先式的,而同级线程间是轮转式的。主线程具有默认优先级。 Java中线程的优先级从低到高以整数 1-10表示,分 10级。 33 【正确答案】 A 【试题解析】
31、 本题考查线程的使用。 Java中可以通过实现 Runnable 接口来创建线程。通过这种方式创建线程是把 Runnable的一个对象作为参数传递给 Thread类的一个构造方法,该对象提供线程体 run()。而题目中的程序只是实现了Runnable接口,而并没有调用 Thread 类的构 造方法创建线程对象。程序只是生成一个 Test类对象 t,不是线程对象。然后调用该对象的 start()方法,而在 Test类中没有定义 start()方法。因此,题目中的程序不能通过编译,因为 start()方法在Test类中没有定义。本题的正确答案是选项 A。 34 【正确答案】 C 【试题解析】 线程
32、的状态与生命周期如下图所示:由上图可知,线程生命周期中出现的状态包括:新建状态、可运行状态、运行状态、阻塞状态、终止状态。因此正确答案是 C。 35 【正确答案】 D 【试题解析】 本题考查对线程调度的 理解。线程属于考试难点,概念不容易理解,需多下功夫。 调用线程的 sleep()方法,可以使比其低的优先线程运行,所以选项 A说法正确:调用线程的 yeild()方法,只让给同优先级运行,所以选项 B 说法正确; Java的线程调度策略是一种基于优先级的抢先式调度,所以选项 C说法正确:具有相同优先级的多个线程的调度可能是分时的,也可能是线程逐个运行,由具体 JVM而定,选项 D说法错误,故为
33、所选。 36 【正确答案】 模式 或 逻辑模式 或 概念模式 【试题解析】 模式也称逻辑模式或概念模式,是数据库中全 体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等。 37 【正确答案】 0 【试题解析】 根据冒泡排序算法思想可知,若待排序的初始序列为 “正序 ”序列,则只需进行一趟排序,在排序过程中进行 n-1次关键字间的比较,且不移动和交换元素,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为 0。 38 【正确答案】 记录或元组 【试题解析】 关系是关系数据模型的核心。关系可以用一个表来直观地
34、表示,表的每一列表 示关系的一个属性,每一行表示一个元组或记录。因此,本题的正确答案是元组或记录。 39 【正确答案】 数据字典 40 【正确答案】 自顶而下 【试题解析】 在程序设计阶段应采取自顶而下和逐步求精的方法,把一个模块的功能逐步分解。 41 【正确答案】 查询 【知识模块】 数据库设计基础 42 【正确答案】 堆栈 【知识模块】 Java语言的基本语句 43 【正确答案】 Test( ) 【试题解析】 程序通过继承 Thread 类来创建进程,必须重写 run( )方法。题目中 缺少创建进程的语句,因此填写 Test( )。 44 【正确答案】 getParameterInfo(
35、) 【试题解析】 可以利用这个方法直接向用户返回 Applet参数的全部信息。 45 【正确答案】 Applet 46 【正确答案】 final JLabel jb=new JLabel(“ok“) 【试题解析】 在匿名类中的扣对象的属性必须是 final,否则编译会出错。 47 【正确答案】 280 【试题解析】 本题中数组的元素个数是 7个,则它的下标范围是 0 6,所以本题表示的意思是计算数组中元素的和。 48 【正确答案】 方法 【试题解析】 本题考查 Java中面向对象的概念。 Java语言的特点是考试重点,利用面向对象技术是其中之一。面向对象的语言将客观世界都看成由各种对象组成,共同特征和行为的对象组成类,类是变量和方法的集合体,每个类都有自己的特性和操作,也就是变量和方法。 49 【正确答案】 【 】 num +sum(num-1); 【试题解析】 num= =1 是递归的结束条件,而 num+sum(num-1)是递归体。 50 【正确答案】 【试题解析】 本题考查布尔逻辑运算符。 Java中,布尔逻辑运算符共有三种,即逻辑与 (&)、逻辑或 ()、逻辑非 (!)。因此,划线处应填入 “”。