1、二级 JAVA 笔试-17 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列有关 Java 语言的叙述中,正确的是(分数:2.00)A.可以有 2 个以上 package 语句B.可以有 2 个以上 import 语句C.可以有 2 个以上 public 类D.只能有 1 个类定义2.下面程序段的输出结果是public class Testpublic static void main(String args)int x,y;x=(int)Math.sqrt(5)/2+(int)Math.random()*5/2;y=(int)Math
2、.sqrt(3)/2+(int)Math.random()*3/2;if(xy)System.out.println(“xy“);else if(x=y)System.out.println(“x=y“);elseSystem.out.println(“xy“);(分数:2.00)A.xyB.x=yC.xyD.编译错误3.用来实现 Java 虚拟机的语言是(分数:2.00)A.JavaB.CC.C+D.汇编4.通常我们使用哪个方法来为一个部件注册事件监听器(分数:2.00)A.addXXXListellerB.XXXListenerC.ListenerXXXD.XXXListeneradd5.
3、下列选项默认的布局管理器不是 BorderLayout 的是(分数:2.00)A.WindowB.PanelC.FrameD.Dialog6.铰运算符的功能划分,运算符“+=”的类型是(分数:2.00)A.算术运算符B.关系运算符C.逻辑运算符D.赋值运算符7.下面程序段的输出结果是class Baseint i;Base()add(1);void add(int v)i+=v;void print()System.out.println(i);class Extension extends BaseExtension()add(2);void add(int v)i+=v*2;public
4、class Testpublic static void main(String args)bogo(new Extension();static void bogo (Basc B) b.add(8);b.print();(分数:2.00)A.9B.18C.20D.228.在 Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用下列哪个语句(分数:2.00)A.import java.awt.event.*;B.import java.io.*;C.import java.awt.*;D.import java.applet.*;9.下面对对象概念描述错误的是(分数
5、:2.00)A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性10.执行下面程序后输出的正确结果是public class Testpublic stoic void main (String args)byte x=3, y=4;long r=80L;System.out.print(r/y);System.out.print(“,“);System.out.print(x/y);(分数:2.00)A.20.0, 1B.20.0, 1.0C.20,0D.20, 1.011.在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是(
6、分数:2.00)A.static boolean matches()B.boolean marcher.find()C.int matcher.start()D.int matcher.end()12.下列关于线程和进程的说法正确的是(分数:2.00)A.进程结构的所有成分都在用户空间内B.用户程序能够直接访问进程涉及的数据C.线程是内核级的实体D.线程结构驻留在用户空间中13.下列关于 Applet 生命周期的说法,正确的是(分数:2.00)A.void init()在 Applet 下载前调用B.void start()只在初始化之后调用C.void stop()在关闭浏览器时调用D.st
7、op()总在 void destroy()之前被调用14.下列叙述中正确的是(分数:2.00)A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的15.有一个接口定义如下,下列选项中实现了该接口并且不是抽象的是interface Aint method1 (int i);int method2 (int j);(分数:2.00)A.class B implements Ain
8、t method1()int method2()B.class Bint method1(inti)int method2(intj)C.class B implements Aint method1(int 1)int method2(intj)D.class B extends Aint method1(inti)int method2(intj)16.对于下面语句的说法,不正确的是Thread thrObj=new Thread();(分数:2.00)A.系统没有为该线程对象分配资源B.只能启动或者终止C.创建了一个空的线程对象D.可以调用其他方法17.在 Java 中,线程是(分数:2
9、.00)A.分时的B.抢占式的C.非抢占式的D.非分时的18.下列关于栈的叙述正确的是(分数:2.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表19.下列关于 E-R 图的描述中正确的是(分数:2.00)A.E-R 图只能表示实体之间的联系B.E-R 图只能表示实体和实体之间的联系C.E-R 图只能表示实体和属性D.E-R 图能表示实体、属性和实体之间的联系20.下列关于内部类的说法,正确的是(分数:2.00)A.内部类可以与它包含的类名相同B.内部类只能使用它所在类的静态成员变量,不能使用它所在类的方法中的局部变量C.内部类可以用 abst
10、ract 修饰定义为抽象类,不能用 private 或 protected 定义D.外部使用内部类时必须给出类的全名21.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为(分数:2.00)A.221B.219C.231D.22922.定义一个表示 10 个值为 null 的字符串数组、下面选项正确的是(分数:2.00)A.String a;B.String a C.char a10;D.String a=new String10;23.下面程序段的输出结果为public class Testint a, b;Test()a=100;b=200;Test(
11、int x,int y)a=x;b=y;public static void main(String args)Test Obj1=new Test(12,45);System.out.println(“a=+Obj1.a+“ b=“+Obj1.B) ;Test Obj2=new Test();System.out.println(“=“+Obj2.a+“ b=“+Obj2.B) ;(分数:2.00)A.a=100 b=200a=12 b=45B.a=12 b=45a=100 b=200C.a=12 b=200a=100 b=45D.a=100 b=45a=12 b=20024.下面程序段的输
12、出结果为package test;public class Class Aint x=20;static int y=6;public static void main(String args)Class B b=new Class B();b.go(10);System.out.println(“x“+b.x);class ClassBint x;void go(int y)ClassA a=new ClassA();x=a.y;(分数:2.00)A.x=10B.x-20C.x=6D.编译不通过25.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是(分数:2.00
13、)A.选择B.连接C.投影D.并26.下面属于面向对象语言的是(分数:2.00)A.Java 语言B.机器语言C.C 语言D.汇编语言27.下列代表十六进制整数的是(分数:2.00)A.0XA6B.1234LC.440D.014428.下列说法正确的是(分数:2.00)A.共享数据的所有访问都必须作为临界区B.用 synchronized 保护的共事数据可以是共有的C.Java 中对象加锁不具有可重入性D.对象锁不能返还29.关于 Applet 执行的操作,下面说法正确的是(分数:2.00)A.在运行时调用其他程序B.可以进行文件读写操作C.不能装载动态连接库和调用任何本地方法D.试图打开一个
14、 socket 进行网络通信,但是所连接的主机并不是提供 Applet 的主机30.下面语句会产生编译错误的是(分数:2.00)A.float F=1024.0F;B.double D=1024.0;C.byte B=1024;D.char C=1024;31.在关系模型中,(分数:2.00)A.为了建立个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表32.下列叙述中错误的是(分数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据处理的效率无关C.数据的存储结构
15、与数据处理的效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的33.下列叙述中正确的是(分数:2.00)A.接口复杂的模块,其藕合程度一定低B.耦合程度弱的模块,其内聚程度一定低C.耦合程度弱的模块,其内聚程度一定高D.上述三种说法都不对34.在结构化设计方法中生成的结构图(SC) 中,带有箭头的连线表示(分数:2.00)A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向35.下列关于 Java 安全性的说法正确的是(分数:2.00)A.有严格的访问权限检查B.对程序执行前要检查C.不允许使用指针D.可防止对内存的非法入侵二、填空题(总题数:15,分数:
16、30.00)36.在深度为 5 的完全二叉树中,度为 2 的结点数最多为上 【1】 。(分数:2.00)填空项 1:_37.在面向对象方法中,允许作用于某个对象上的操作称 【2】 。(分数:2.00)填空项 1:_38.软件生命周期包括 8 个阶段。为了使各时期的任务更明确,又可分为 3 个时期:软件定义期、软件开发期、软件维护期。编码和测试属于 【3】 期。(分数:2.00)填空项 1:_39.在关系运算中, 【4】 运算是对两个具有公共属性的关系所进行的运算。(分数:2.00)填空项 1:_40.实体之间的联系可以归结为一对一的联系、一对多的联系与多对多的联系。如果一个学校有许多学生,而一
17、个学生只归属于一个学校,则实体集学校与实体集学生之间的联系属于 【5】 的联系。(分数:2.00)填空项 1:_41.多线程是 Java 语言的 【6】 机制,只能够处理同步共享数据和各种不同的事件。(分数:2.00)填空项 1:_42.如果有一个类 MyFrame 是 Frame 的子类,但它不能被实例化,请写出该类的声明头: 【7】 。(分数:2.00)填空项 1:_43.执行下面的赋值语句后,a 的值为 【8】 。a=Float.valueOf(“12.34“)floatValue();(分数:2.00)填空项 1:_44.Java 运行时系统通过 【9】 周期性地释放无用对象所使用的内
18、存,以完成对象的消除。(分数:2.00)填空项 1:_45.要使处于不同层次,甚至是互不相关的类可以具有相同的行为采用 【10】 。(分数:2.00)填空项 1:_46.Java 语言的循环语句包括 for 语句、do-while 语句和 do-while 语句,先循环后判断,循环至少被执行一次的是 【11】 。(分数:2.00)填空项 1:_47.下面程序段是创建一个 Date 类的对象并把它串行化保存到文件中,该对象表示的是运行时刻的日期及时间,请将程序补充完整。import java.util.*;import Java.io.*;public class SerializeDateDa
19、te d;SerializeDate()d=new Date();tryFileOutputStream f=new EileOutputStream(“date.ser“);ObjectOutputStream s=new ObjectOutputStream(f);【12】 f.close();catch(IOException e)e.printStackTrace();public static void main(String args)SerializeDate b=new SerializeDate();System.out.println(“The saved date is;
20、“+b.d.to String();(分数:2.00)填空项 1:_48.编译 Java Applet 源程序文件产生的字节码文件的扩展名为 【13】 。(分数:2.00)填空项 1:_49.关于文件名的处理中,测试当前文件是否目录用 【14】 函数。(分数:2.00)填空项 1:_50.下面的程序是列出目录 c:/Test 中所有的.txt 文件,请将程序补充完整。import java.io.*;/引入 java.io 包中所有的类public class FileFilterTestpublic static void main(String args)File dir=new File
21、(“C:/Test“);Filter filter=new Filter(“txt“);System.out.println(“list java files in directory“+dir);String files=dir.list(filter);for(int i=0;ifiles.length;i+)File f= 【15】 ;/为目录 dir 下的文件或目录创建一个 File 对象if(f.is File()System.out.println(“file“+f);elseSystem.out.println(“sub directory“+f);class Filter im
22、plements FilenameFilterString extent;Filter(String extent)this.extent=extent;public boolean accept(File dir,String name)return name.endsWith(“.“+extent):/返回文件的后缀名(分数:2.00)填空项 1:_二级 JAVA 笔试-17 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列有关 Java 语言的叙述中,正确的是(分数:2.00)A.可以有 2 个以上 package 语句B.可以有
23、2 个以上 import 语句 C.可以有 2 个以上 public 类D.只能有 1 个类定义解析:解析 本题考查考生对 Java 语言概念的理解。属于考试重点内容,考生应注意理解这些基本概念。考生应该明确,Java 语言中可以有 package 语句,用来指定源文件存入所指定的包中,只能有。或 1 个,所以选项 A 说法错误;可以有。或多个以上 import 语句,但必须在所有类定义之前引入标准类,所以选项 B 说法正确;源文件中最多只能有一个 public 类,其他类的个数不限,所以选项 c 和选项 D 说法错误。2.下面程序段的输出结果是public class Testpublic
24、static void main(String args)int x,y;x=(int)Math.sqrt(5)/2+(int)Math.random()*5/2;y=(int)Math.sqrt(3)/2+(int)Math.random()*3/2;if(xy)System.out.println(“xy“);else if(x=y)System.out.println(“x=y“);elseSystem.out.println(“xy“);(分数:2.00)A.xy B.x=yC.xyD.编译错误解析:解析 本题考查 Java 语言中 if-else 分支结构和几个标准函数语句的用法。J
25、ava 语言的控制结构是考试重点,考生应该多读相关程序。这里重点理解程序中的两个赋值语句,赋值号右边的两个表达式分别求两个标准函数的值,再进行整除,判断出。与 y 的大小。Math.sqrt 计算一个数的平方根,Math.random()输出0,1之间的随机数,本题中经过两条赋值语句后 x=1,y=0。进入分支结柯后,满足if 条件执行相应 System.out.println(“xy”);操作。3.用来实现 Java 虚拟机的语言是(分数:2.00)A.JavaB.C C.C+D.汇编解析:解析 本题考查 Java 语言的虚拟机。Java 本身的编译器用 Java 语言编写,运行系统的虚拟机
26、用C 语言实现。Java 语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由Java 虚拟机去解释执行,字节代码实际上可以看作是虚拟机的机器代码。考生应当理解 Java 语言的实现机制,这属于考试重点。正确答案为选项 B。4.通常我们使用哪个方法来为一个部件注册事件监听器(分数:2.00)A.addXXXListeller B.XXXListenerC.ListenerXXXD.XXXListeneradd解析:解析 本题考查事件监听器的概念。每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。AWT 的构件类中提供注册和注销监听器的方法。注册监听器;pu
27、blic void addListenerType(ListenerTypelistener):注销监听器:public void removeListenerType(ListenerTypelistener)。由此可见,选项 A 正确。5.下列选项默认的布局管理器不是 BorderLayout 的是(分数:2.00)A.WindowB.Panel C.FrameD.Dialog解析:解析 本题考查 Java 中的布局管理器。panel 和 Applet 默认的布局管理器是 FlowLayout,构件在容器中放置规律是从上到下、从左到右进行放置;BorderLayout 是 Window、F
28、rame 和 Dialog 的默认布局管理器,在 BorderLayout 布局管理器中构件分成 5 个区域 North、South、East、West 和 Center,每个区域只能放置一个构件,考生应注意区分各个布局管理器的区别和联系,各个布局管理器的特点。6.铰运算符的功能划分,运算符“+=”的类型是(分数:2.00)A.算术运算符B.关系运算符C.逻辑运算符D.赋值运算符 解析:解析 本题考查 Java 中的运算符。按照功能划分,运算符可以分为算术运算符:+, -,*,/,%,+,;关系运算符:,=,=,=,!=:布尔逻辑运算符:!, 位运算符:,Base()add(1);void a
29、dd(int v)i+=v;void print()System.out.println(i);class Extension extends BaseExtension()add(2);void add(int v)i+=v*2;public class Testpublic static void main(String args)bogo(new Extension();static void bogo (Basc B) b.add(8);b.print();(分数:2.00)A.9B.18C.20D.22 解析:解析 本题考查继承和构造函数的用法。首先要明确对一个类的继承是指在父类的基
30、础上构建了一个子类,子类继承了父类的方法和状态。题目所给程序段创建的是 Extension 类的实例,在运行时,从main()函数进入程序,所有调用 add()方法的过程将始终和 Extension 类的 add()方法动态绑定。初始值:i=0;创建实例 new Extension();先调用父类的默认构造函数 Base(),井在父类的默认构造函数中执行 add(1),i=0+i2,所以 i=2,再调用于类的默认构造函数 Extension(),子类的默认构造函数中执行add(2),i-2+22,所以 i=6:执行 add(8):i=6+82,因此,最终 i=22,正确答案为选项 D。8.在
31、Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用下列哪个语句(分数:2.00)A.import java.awt.event.*; B.import java.io.*;C.import java.awt.*;D.import java.applet.*;解析:解析 本题考查对 java 常用的各种包所包含的一些类的基本功能的理解。java.awt 包是抽象窗口工具包,里面包括各种容器、组件、窗口布局管理器以及一些常用的类如 Color、Font 等,选项 A 满足题意。而 javaapplet 包里面包括了小程序执行时必须要重载的一个类 Apptet,也就只有这
32、一个类,选项 D 错误。java.io 包主要是提供一些输入/输出类的,选项 B 不满是题意。java.awt.event 包就包含了一些能够对事件做出响应和处理的一些标准类,选项 D 不满足题意。9.下面对对象概念描述错误的是(分数:2.00)A.任何对象都必须有继承性 B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态属性解析:解析 继承是面向对象的方法的一个主要特征。继承是使用已有的类定义作为基础建立新类的定义技术。已有的类可当做基类采引用,则新类相应地可当做派生类来引用。但并不是所有的对象都必须有继承性。因此,选项 A 中的说法是错误的,应为所选。10.执行下面
33、程序后输出的正确结果是public class Testpublic stoic void main (String args)byte x=3, y=4;long r=80L;System.out.print(r/y);System.out.print(“,“);System.out.print(x/y);(分数:2.00)A.20.0, 1B.20.0, 1.0C.20,0 D.20, 1.0解析:解析 本题考查 Java 语言的二元运算符的使用。Java 中的二元运算符适用于所有数值型数据类型,包括整型和浮点型。但考生需要注意,如果两个操作数全为整型,那么,只要其中一个为 long 型,
34、则表达式结果为 long 型:其他情况下,即使两个操作数全是 byte 或 short 型,表达式结果也是 int 型;如果操作数为浮点型,那么只要其中一个为 double 型,表达式结果就是 double 型;只有两个操作数全是float 型或其中一个是 float 型而另外一个是整型时,表达式结果是 float 型。所以选项 C 为正确答案。考生如果理解了 L 的含义,就能很容易回答。考生务必注意操作数类型不同时,运算结果的类型,同时注意当“/”和“%”运算中除数为。时会产生异常。11.在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是(分数:2.00)A.static bo
35、olean matches()B.boolean marcher.find() C.int matcher.start()D.int matcher.end()解析:解析 本题考查考生对 Java 中的匹配器(Marcher)类的理解。Marcher 类用于将一个输入字符串input 和模式串 pattern 相比较。boolean mateher,find()方法用于寻找下一个模式匹配牢:int marcher.start()方法用于返回匹配串的一个起始索引整数值;int matcher.end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是 static b
36、oolean matches(),选项 B 正确。12.下列关于线程和进程的说法正确的是(分数:2.00)A.进程结构的所有成分都在用户空间内B.用户程序能够直接访问进程涉及的数据C.线程是内核级的实体D.线程结构驻留在用户空间中 解析:解析 本题考查线程和进程的概念。线程与进程在概念上是相关的,进程由代码、数据、内、核状态和一组寄存器组成,而线程是由表示程序运行状态的寄存器,如程序计数器、栈指针以及堆栈组成,线程不包括进程地址空间中的代码和数据,线程是计算过程在某一时刻的状态。进程是一个内核级的实体,进程结构的所有成分都在内核空间中一个用户程序不能直接访问这些数据。线程是一个用户级的实体,线
37、程结构驻留在用户空间中,能够被普通的用户级方法直接访问。13.下列关于 Applet 生命周期的说法,正确的是(分数:2.00)A.void init()在 Applet 下载前调用B.void start()只在初始化之后调用C.void stop()在关闭浏览器时调用D.stop()总在 void destroy()之前被调用 解析:解析 本题考查 Applet 生命周期的概念。Applet 生命周期是考试重点考查内容,应该加以重视。void int()在 Applet 下载时调用,而不是下载前调用,选项 A 错误。 void start()在初始化之后以及在Applet 被重新访问时调用
38、,不仅仅只是在初始化之后调用,选项 B 错误。void stop()在停止执行时调用,关闭浏览器时调用的是 void destroy(),选项 C 错误。void destroy()在关闭浏览器 Applet 从系统中撤出时调用,此时 Applet 必然调用 stop()方法停止其运行,然后才能调用 void destroy()方法从内存卸载并释放该 Applet 的所有资源。注意理解 Applet 的执行过程。14.下列叙述中正确的是(分数:2.00)A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不
39、一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 解析:解析 在线性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项 D 正确。15.有一个接口定义如下,下列选项中实现了该接口并且不是抽象的是interface Aint method1 (int i);int method2 (int j);(分数:2.00)A.class B implements Aint method1()int
40、 method2()B.class Bint method1(inti)int method2(intj)C.class B implements Aint method1(int 1)int method2(intj)D.class B extends Aint method1(inti)int method2(intj)解析:解析 本题考查在 Java 中接口的实现。接口是一种只含有抽象方法或变量的特殊的抽象类。在类的声明中用 implements 子句来表示个类使用某个接口。选项 A 在方法内没有参数值;选项 B 只是定义了一个类,并没有实现与 A 的接口;选项 C 中使用关键宇 imp
41、lements 实现了该接口,这里接口中的方法并没有使用 abstract 修饰,所以不是抽象的;选项 D 中 extends 是用来继承父类的,而 A 并不是一个类,不能用 extends。16.对于下面语句的说法,不正确的是Thread thrObj=new Thread();(分数:2.00)A.系统没有为该线程对象分配资源B.只能启动或者终止C.创建了一个空的线程对象D.可以调用其他方法 解析:解析 本题考查线程的创建。通过 new 命令创建一个线程对象后,该线程对象就处于创建状态,上面的语句只是创建了一个空的线程对象,选项 C 说法正确。此时,系统并没有为该线程对象分配资源,选项 A
42、 说法正确。处于这种状态的线程,只能启动或者终止,选项 B 说法正确,该线程此时并不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理,选项 D 说法错误,故应选。17.在 Java 中,线程是(分数:2.00)A.分时的B.抢占式的 C.非抢占式的D.非分时的解析:解析 本题考查线程的调度,Java 的线程调度策略是一种基于优先级的抢占式调度,选项 B 正确。Java 这种抢占式调度可能是分时的,即每个等待池中的轮流执行,也可以不是,即线程逐个运行,具体采用哪种方式,由具体 3VM 而定。线程一般通过使用 sleep()等方法保证给其他线程运行事件。18.下列关于栈的叙述正确的是(分
43、数:2.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表 解析:解析 栈是一种特殊的线性表,其插入与删除运算都只在线性表的一端进行。在这种线性表的结构中一端封闭,不允许插入与删除元素;另一端开口,允许插入与删除元素。在栈中不仅能插入数据,也能删除数据,选项 A 与 B 都错。栈是后进先出的线性表,而不是先进先出的线性表,选项 c 的说法错误,选项 D 正确。19.下列关于 E-R 图的描述中正确的是(分数:2.00)A.E-R 图只能表示实体之间的联系B.E-R 图只能表示实体和实体之间的联系C.E-R 图只能表示实体和属性D.E-R 图能表示
44、实体、属性和实体之间的联系 解析:解析 E-R 图中,用 3 种图框分别表示实体、属性和实体之间的联系;矩形框表示实体,框内标明实体名:椭圆状框表示实体的属性,框内标明属性名:菱形框表示实体间的联系,框内标明联系名;实体与其属性之间以无向边连接,菱形框与相关实体之间也用无向边连接,井在无向边旁标明联系的类型。综上所述,用 E-R 图不仅可以简单明了地描述实体及其相互之间的联系,还可以方便地描述多个实体集之间的联系和一个实体集内部实体之间的联系。选项 A、B,C 的说法都错误,本题的正确答案是 D。20.下列关于内部类的说法,正确的是(分数:2.00)A.内部类可以与它包含的类名相同B.内部类只
45、能使用它所在类的静态成员变量,不能使用它所在类的方法中的局部变量C.内部类可以用 abstract 修饰定义为抽象类,不能用 private 或 protected 定义D.外部使用内部类时必须给出类的全名 解析:解析 本题考查内部类的概念。在一个类的内部嵌套定义的类称为内部类,它的类名在定义它的类或程序段中或在表达式内部可以匿名使用,外部使用它时必须给出类的全名,所以选项 D 说法正确。内部类的类名不允许与它包含的类名相同,选项 A 说法错误。内部类可以使用它所在类的静态成员变量和实例成员变量,也可以使用它所在类的方法中的局部变量,选项 B 说法错误。内部类不仅可以用 abstract修饰定
46、义为抽象类,也可用 private 或 protected 定义,选项 C 说法错误。同时还要注意,内部类可作为其他类的成员,而且可访问它所在类的成员,除 static 内部类外,不能在类中声明 static 成员。21.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为(分数:2.00)A.221B.219 C.231D.229解析:解析 在任意一棵二叉树中,度为 0 的结点(也就是叶子结点)总比度为 2 的结点多一个。由于本题中的二叉树有 70 个叶子结点,所以有 69 个度为 2 的结点。该二叉树中总结点数为;度为 2 的结点数+度为 1 的结点数+
47、度为 0 的结点数 =69+80+70=219。22.定义一个表示 10 个值为 null 的字符串数组、下面选项正确的是(分数:2.00)A.String a;B.String a C.char a10;D.String a=new String10; 解析:解析 本题考查字符串数组变量的声明。选项 A 和选项 B 的效果是一样的,都是用来定义一个字符串数组,但没有指明数组个数,不满足题目要求。选项 C 是一个二维的字符数组,在 C 语言中,一个二维的字符数组就可以表示一个一维的字符串数组,而在 Java 中,字符 char 是基本类型,字符串 String则是以对象的形式来表示的。选项 D
48、 正确,它定义了一个含有 10 个元素的字符串数组,如果没有给字符串数组赋值,则默认为 null。23.下面程序段的输出结果为public class Testint a, b;Test()a=100;b=200;Test(int x,int y)a=x;b=y;public static void main(String args)Test Obj1=new Test(12,45);System.out.println(“a=+Obj1.a+“ b=“+Obj1.B) ;Test Obj2=new Test();System.out.println(“=“+Obj2.a+“ b=“+Obj2.B) ;(分数:2.00)A.a=100 b=200a=12 b=45B.a=12 b=45a=100 b=200 C.a=12 b=200a=100 b=45D.a=100 b=45a=12 b=200解析:解析 本题考查构造方法及构造方法重载。Test 类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1