二级JAVA笔试314
(总分:100.00,做题时间:90分钟)
一、{{B}}选择题{{/B}}(总题数:35,分数:70.00)
1.下列说法中,错误的是( )。
(分数:2.00)
 A.Java的数据类型必须通过常量来实例化后才可使用 
 B.Java中的常量和变量一样也有各种类型
 C.Java中的变量由变量名、变量类型、变量属性、变量初始值组成
 D.Java中的变量分为两大类型:基本类型和复合类型
解析:[解析] Java的数据类型必须实例化后才能使用,但是通过变量也可实例化,而不是必须要常量才能实例化。
2.软件调试的目的是( )。
(分数:2.00)
 A.改善软件的性能
 B.改正错误 
 C.发现错误
 D.验证软件的正确性
解析:[解析] 软件调试的核心目的是改正软件中存在的错误。
3.下面代码的执行结果是( )。 public class test { public static void main (String args[]) { float m=5.0f; int n=4; System.out.println((++m)*(n--)); } }
(分数:2.00)
 A.20.0
 B.20
 C.24.0 
 D.24
解析:[解析] 本题考查自增(自减)运算和类型的自动转换。由于++m表达式中++在变量之前,所以先对m进行自增运算,将m加上1.0,再将m的值作为表达式++m的值,即(++m)的值是 6.0;而在n--表达式中,--在变量n之后,所以先取变量n的值作为表达式的值,变量n再自减,即 (n--)的值是4,然后作6.0*4运算,此时整数4会自动转换为实型数据再参与运算,所以结果是24.0而不是24。故选C。
4.下列说法中,错误的是( )。
(分数:2.00)
 A.线程就是程序 
 B.线程是一个程序的单个执行流
 C.多线程是指一个程序的多个执行流
 D.多线程用于实现开发
解析:[解析] 将一个程序转换成为多个独立运行的子任务,每个子任务就是一个线程。线程是程序的一个执行流,它是一个以CPU为主体的行为。在Java中,线程的模型就是一个CPU、程序代码和数据的封装体。
5.软件是指( )。
(分数:2.00)
 A.程序
 B.程序和文档
 C.算法加数据结构
 D.程序、数据和相关文档的集合 
解析:[解析] 软件是程序、数据和相关文档的集合。
6.下列说法中错误的是( )。
(分数:2.00)
 A.可串行化的类必须实现Serializable接口
 B.可串行化的类中的静态变量可以不被串行化
 C.private数据访问权限能够限制数据不被串行化 
 D.对象串行化使用Java语言提供的默认机制
解析:[解析] 一般的数据访问权限,如public、protected、package或private等,对数据的串行化没有影响,只有static和transient关键字修饰的数据才可以不被串行化。
7.调用线程的下列方法中,不能使线程暂停的方法是( )。
(分数:2.00)
 A.sleep()
 B.yield()
 C.stop() 
 D.join()
解析:[解析] sleep()方法的功能是使线程暂停,让出CPU,使更低优先级的线程运行;yield()方法的功能是使线程暂停,让出CPU,使同优先级的其他线程运行;join()方法的功能是使当前线程暂停,等待到某线程类对象运行结束;stop()方法的进程是强行中止线程运行。
8.下面不属于条件语句关键字的是( )。
(分数:2.00)
 A.else
 B.switch
 C.while 
 D.if
解析:[解析] 条件语句主要由if-else结构和switch多分支语句,while属于循环语句的关键字。
9.下列叙述中正确的是( )。
(分数:2.00)
 A.数据库系统是一个独立的系统,不需要操作系统的支持
 B.数据库技术的根本目标是要解决数据的共享问题 
 C.数据库管理系统就是数据库系统
 D.以上三种说法都不对
解析:[解析] 一个数据库系统是由操作系统、数据库管理系统和应用程序在一定的硬件支持下构成的。所以,数据库系统不仅指数据库本身,也不仅是指数据库管理系统,而是指计算机系统中引进数据库以后的系统,故选项A和C都是错误的。数据库技术的根本目标是要解决数据的共享问题,因此,选项B正确。
10.下列关于equals()方法和==运算符的说法,不正确的是( )。
(分数:2.00)
 A.equals()方法可以用来比较复合数据类型的数值是否相等
 B.==运算符可以用来比较简单数据类型的数据值是否相同
 C.==运算符和equals()方法的功能一样,可以相互替换 
 D.==运算符和equals()方法的功能不一样,不可以相互替换
解析:[解析] ==运算符一般适合简单数据类型之间的比较,而equals()方法一般用于比较复合类型的数据,两者不可以相互替换。
11.下列叙述中正确的是( )。
(分数:2.00)
 A.程序执行的效率与数据的存储结构密切相关 
 B.程序执行的效率只取决于程序的控制结构
 C.程序执行的效率只取决于所处理的数据量
 D.以上三种说法都不对
解析:[解析] 程序执行的效率与算法和计算对象(数据)的存储结构密切相关。java变量的数据类型分为两种
12.下列叙述中,不符合良好程序设计风格的是( )。
(分数:2.00)
 A.程序的效率第一,清晰第二 
 B.程序的可读性好
 C.程序中有必要的注释
 D.输入数据前要有提示信息
解析:[解析] 选项B、C、D都属于良好程序设计风格的内容,选项A与程序良好设计风格相悖。
13.一个int类型变量和一个byte类型的常量做加法,结果是( )类型。
(分数:2.00)
 A.int 
 B.byte
 C.char
 D.无法计算
解析:[解析] int类型常量和byte类型常量做加法,首先byte类型常量自动转换为int类型,因此最后的结果应该是int类型的数值。
14.在面向对象方法中,实现信息隐蔽是依靠( )。
(分数:2.00)
 A.对象的继承
 B.对象的多态
 C.对象的封装 
 D.对象的分类
解析:[解析] 在面向对象方法中,实现信息隐蔽的技术是对对象的封装。
15.下列( )选项操作是Applet可以做的。
(分数:2.00)
 A.访问客户端系统的一部分信息 
 B.访问客户端的文件系统
 C.在客户端调用本地动态链接库
 D.在客户端访问地址
解析:[解析] Applet在客户端运行时,受到安全限制,除了一部分系统信息之外的敏感信息都不可以访问,比如地址、文件系统和动态链接库都不能直接访问。
16.冒泡排序在最坏情况下的比较次数是( )。
(分数:2.00)
 A.n(n+1)/2
 B.nlog2n
 C.n(n-1)/2 
 D.n/2
解析:[解析] n个数据的冒泡排序需要进行n-1趟排序,速度较慢,最坏情况下的比较次数为 n(n-1)/2。
17.下列叙述中正确的是( )。
(分数:2.00)
 A.数据的逻辑结构与存储结构必定是一一对应的
 B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
 C.程序设计语言中的数组一般是顺序存储结构,,因此,利用数组只能处理线性结构 
 D.以上三种说法都不对
解析:[解析] 一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,所以,数据的逻辑结构与存储结构不一定是一一对应的,故选项A错误。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构(例如,线性链表是线性表的链式存储结构。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的),因此,数据的存储结构不一定是线性结构,选项B的说法错误。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性结构,但可以按层序进行顺序存储,即利用程序设计语言中的数组来存储。故选项C错误。
18.下列关于构造方法的特点,不正确的说法是( )。
(分数:2.00)
 A.构造方法名与类名必须相同
 B.构造方法是给对象赋初值,无返回值,所以返回类型为void 
 C.构造方法不能被程序调用
 D.构造方法可以重载
解析:[解析] 选项A,构造方法名与类名必须相同,这是正确说法;构造方法不能被程序调用,只能通过new自动调用,选项C正确;构造方法可以重载实现不同的初始化方法,调用时按参数决定调用哪个方法,选项D也正确;选项B的前半部分正确:构造方法是给对象赋初值,无返回值,但后半部分不正确:构造方法虽然没有返回值,但不用void来声明。
19.如果局部变量与实例变量同名,那么如何在局部变量的作用域内引用实例变量?( )
(分数:2.00)
 A.无法引用,必须更名使两者名字不同
 B.在实例变量前加关键字this,使用this访问该实例变量 
 C.在实例变量前加关键字super
 D.不影响,系统可以自己区分
解析:[解析] 关键字this表示当前对象。
20.下面说法中正确的是( )。
(分数:2.00)
 A.Java程序不需编译也可直接执行
 B.Java程序经过编译后的字节代码仍然是ASCII文件
 C.Java程序经过编译后的字节代码是二进制文件,可以在操作系统上直接执行
 D.Java程序经过编译后的字节代码是二进制文件,可以在Java虚拟机上执行 
解析:[解析] Java语言的执行模式是半编译和半解释型,未经编译的Java程序不能直接执行。 Java程序编过编译后的字节代码是二进制文件,但不能直接在操作系统上执行,它可看作虚拟机的机器码,由Java虚拟机解释执行。
21.Frame默认的布局管理器是( )。
(分数:2.00)
 A.FlowLayout
 B.BorderLayout 
 C.GridLayout
 D.CardLayout
解析:[解析] FlowLayout是Pane和Applet的默认布局管理器,构件在容器中从上到下、从左到右进行放置;BorderLayout是Window、Frame和Dialog的默认布局管理器,在BorderLayout布局管理器中,构件分成5个区域,每个区域只能放置一个构件;GridLayout使容器中各个构件呈网状布局,平均占据容器的空间;CardLayout把容器分成许多层,每层只能放置一个构件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。