【计算机二级Java语言】卷014

选择题

公共知识

【1】下列叙述中错误的是()。
〖A〗算法的时间复杂度与问题规模无关
〖B〗算法的时间复杂度与计算机系统无关
〖C〗算法的时间复杂度与空间复杂度没有必然的联系
〖D〗算法的空间复杂度与算法运行输出结果的数据量无关
算法的时间复杂度是指执行算法所需要的计算机工作量, 而算法的计算机工作量是用算法所执行的基本运算次数来度量的, 算法所执行的基本运算次数和问题的规模有关。算法的空间复杂度指执行这个算法所需要的内存空间。为降低算法的空间复杂度, 主要应减少输入数据所占的存储空间及额外空间, 通常采用压缩存储技术。由于在编程时要受到计算机系统运行环境的限制, 因此, 程序的编制通常不可能优于算法的设计。算法执行时所需要的计算机资源越多算法复杂度越高, 因此算法的复杂度和问题规模成正比。算法设计时要考虑算法的复杂度, 问题规模越大越是如此。 算法的时间复杂度与空间复杂度没有必然的联系。算法的空间复杂度与算法运行输出结果的数据量无关。故本题答案为A选项。
【2】设表的长度为20。则在最坏情况下, 冒泡排序的比较次数为()。
〖A〗190
〖B〗20
〖C〗19
〖D〗90
对长度为n的线性表排序, 在最坏情况下, 冒泡排序需要比较的次数为n(n - 1) / 2。本题中n = 20, 20×(20 - 1) / 2 = 190。故本题答案为A选项。
【3】下列叙述中正确的是()。
〖A〗带链栈的栈底指针是随栈的操作而动态变化的
〖B〗若带链队列的队头指针与队尾指针相同, 则队列为空
〖C〗若带链队列的队头指针与队尾指针相同, 则队列中至少有一个元素
〖D〗带链栈的栈底指针是固定的
由于带链栈利用的是计算机存储空间中的所有空闲存储结点, 因此随栈的操作栈顶栈底指针动态变化。带链的队列中若只有一个元素, 则首尾指针相同。故本题答案为A选项。
【4】设一棵树的度为3, 共有27个结点, 其中度为3, 2, 0的结点数分别为4, 1, 10。该树中度为1的结点数为()。
〖A〗12
〖B〗13
〖C〗11
〖D〗不可能有这样的树
在树结构中, 一个结点所拥有的后件个数称为该结点的度, 所有结点中最大的度称为树的度。 根据题意, 度为3的树第1层1个根结点, 第2层3个子结点, 每个子结点下各3个子结点, 所以第3层共9个子结点, 前3层共13个结点。第3层有一个结点度为2即有2个子结点, 本层其他结点各1个子结点; 即第4层共10个结点。前4层共23个结点。第4层中的两个结点下各有一个子结点, 即第5层有2个结点, 此2个结点下各有一个子结点。 第3层有8个度为1的结点, 第4层有2个度为1的结点, 第5层有2个度为1的结点, 8 + 2 + 2 = 12。故本题答案为A选项。
【5】下面描述中正确的是()。
〖A〗好的软件设计应是高内聚低耦合
〖B〗内聚性和耦合性无关
〖C〗内聚性是指多个模块间相互连接的紧密程度
〖D〗耦合性是指一个模块内部各部分彼此结合的紧密程度
软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求, 以保证模块划分合理, 并进一步保证以此为依据开发出的软件系统可靠性强, 易于理解和维护。模块之间的耦合应尽可能的低, 模块的内聚度应尽可能的高。故本题答案为A选项。
【6】某系统总体结构如下图所示

该系统结构图的最大扇出数、最大扇入数的总和是()。
〖A〗5
〖B〗7
〖C〗4
〖D〗8
模块的扇出是指本模块的直属下层模块的个数。或者说是由一个模块直接调用的其他模块数。模块的扇入是指有多少个上级模块调用它。题干中某系统为一个模块, 其扇出数目为3, 功能2模块扇出数为3, 功能3模块扇出数为2, 功能2.2扇出数目为2, 故最大扇出数为3。功能2.2.2有2个上级模块调用, 为最大扇入数。3 + 2 = 5。故本题答案为A选项。
【7】下面属于应用软件的是()。
〖A〗人事管理系统
〖B〗Oracle数据库管理系统
〖C〗C++编译系统
〖D〗ios操作系统
系统软件是管理计算机的资源, 提高计算机的使用效率, 为用户提供各种服务的软件, 包括各种系统开发、维护工具软件。应用软件是为了应用于特定的领域而开发的软件。人事管理系统属于应用软件。Oracle数据库管理系统、C++编译系统、ios操作系统是系统软件。故本题答案为A选项。
【8】下面选项中不是关系数据库基本特征的是()。
〖A〗不同的列应有不同的数据类型
〖B〗不同的列应有不同的列名
〖C〗与行的次序无关
〖D〗与列的次序无关
二维表由每行数据组成, 每行数据包含若干属性值, 每个属性都有指定的类型和取值范围。数据行数是有限的, 每行数据互不相同(元组唯一性), 每行的次序可以任意交换(元组的次序无关性); 表中属性名各不相同即字段名不重复, 属性名(字段名)次序可任意交换。故本题答案为A选项。
【9】工厂生产中所需的零件可以存放在多个仓库中, 而每一仓库中可存放多种零件。则实体仓库和零件间的联系是()。
〖A〗多对多
〖B〗一对多
〖C〗多对一
〖D〗一对一
零件可以存放在多个仓库中, 而每一仓库中可存放多种零件, 则实体仓库和零件间的联系是多对多。故本题答案为A选项。
【10】学生和课程的关系模式定义为
S(S#, Sn, Sd, Dc, SA)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);
C(C#, Cn, P#)(其属性分别为课程号、课程名、先选课);
SC(S#, C#, G)(其属性分别学号、课程号和成绩)。
关系中包含对主属性传递依赖的是()。
〖A〗S#→Sd, Sd→Dc
〖B〗S#→Sd
〖C〗S#→Sd, (S#, C#)→G
〖D〗C#→P#, (S#, C#)→G
设X、Y、Z是关系R中互不相同的属性集合, 存在X→Y(Y!→X), Y→Z, 则称Z传递函数依赖于X。在S中S#→Sd, Sd→Dc, 则Dc传递函数依赖于S#。故本题答案为A选项。

专业知识

【11】下列选项中, 能将Java源程序编译为字节码的命令是
〖A〗javac
〖B〗javap
〖C〗java
〖D〗javah
javap, javah, java不是java的工具, javac是编译java的工具将源程序 编译为字节码; 故答案选A.
【12】下列方法能够通过编译的是
〖A〗Public void add() { }
〖B〗public Void Add() { }
〖C〗public void Add() { }
〖D〗Public Void Add() { }
java官方规定中public 是权限修饰符, 应全部小写, 返回值类型void也应全部小写, 故答案选 C.
【13】下列变量定义中, 错误的是
〖A〗int x = 3;
〖B〗double f = 2.5;
〖C〗String s = "Hello!";
〖D〗boolean b = 1;
boolean值类型的值只能是true和false, 故D错误, 本题答案为D。
【14】在Java中, 若要使用一个包中的类, 首先要对该包进行引入, 引入的关键字是
〖A〗import
〖B〗package
〖C〗include
〖D〗packet
java中引入包的关键字为import. Package是包, packet也是包, 不过比Package小, 指令include的写法如下: <%@ include file = "xxxxx"%>它就是一种简单的包含以实现代码重用, JSP编译时就会包含进来, 不会产生请求, 故本题选A
【15】下列选项中, 不属于关系运算符的是
〖A〗!=
〖B〗==
〖C〗&&
〖D〗>
&&属于逻辑运算符, 故C错。本题答案为C。
【16】下列代码段执行后, t的值为
int a = 3, b = 2, c = 8, t = 0;
t = a < b ? a : b < c ? b : c;
〖A〗0
〖B〗2
〖C〗3
〖D〗8
a < b ? 结果是false, 则得到的值是b, b < c ? 结果是true, 故得到的值是b, 将b赋值给t, 故t为2, 选项B正确, 本题答案为B。
【17】下列代码段执行后, y的值为
int x = 128, y;
y = 0;
while (x > 1) {
    x = x / 2;
    y++;
}
〖A〗0
〖B〗6
〖C〗7
〖D〗8
/运算符在java做取整操作, x / 2总共进行了6次, y++中++在后先参与运算再自身 + 1, 本题答案为C。
【18】下列代码段执行后, s的值为
int s = 0;
for (int i = 1; i <= 10; i++) {
    if (i % 5 == 0) break;
    s = s + i;
}
〖A〗10
〖B〗15
〖C〗50
〖D〗55
for循环中i进行到5时, break跳出循环不进行s = s + i操作, 之前累加为s = 0 + 1; s = 1 + 2; s = 3 + 3; s = 6 + 4故选A。本题答案为A。
【19】下列代码段执行后, n的值为
int n = 0;
for (int i = 6; i >= 1; i -= 2) {
    n = 0;
    for (int j = 1; j <= 2 * i - 1; j++)
    n++;
}
〖A〗1
〖B〗3
〖C〗6
〖D〗12
第一次循环 i = 6, i >= 1; i -= 2就是i = i - 2, 故i = 4; 此时n = 0, 进入内循环 j = 1, j < 7, n = 1依次类推直到不满足条件为止, 最终结果为3, 本题答案为B。
【20】下列代码段执行后的结果是
int[] a = new int[5];
for (int i = 0 ; i < 5 ; i++)
a[i] = 2 * i - 1;
for (int i = 0 ; i < 5 ; i++)
if (a[i] == i)
System.out.println("" + i);
〖A〗0
〖B〗1
〖C〗2
〖D〗4
for循环不加 { } 默认里面只有一个语句, 故当第一个for循环执行完毕时a[0] = -1, a[1] = 1, a[2] = 3, a[3] = 5, a[4] = 7, 当第二个for循环进行到i = 1 a[1] = 1进入if语句才能打印一条语句, 打印为1, 故选B。本题答案为B。
【21】若有语句Class c0 = Class.forName("java.util.Date"), 下列选项中可得到Date父类的是
〖A〗c0.getModifiers()
〖B〗c0.getSuperclass()
〖C〗c0.getMethod()
〖D〗c0.getDeclaredMethods()
getModifiers()方法返回底层成员的Java语言修饰符, 选项A错误 getSuperclass()方法返回当前对象所表示的类的超类。选项B正确 GetMethod()该方法是获取本类以及父类或者父接口中所有的公共方法, 选项C错误 getDeclaredMethods()该方法是获取本类中的所有方法, 包括私有的(private、protected、默认以及public)的方法。选项D错误 本题答案为B。
【22】对象的特性在类中被表示为变量, 称为类的
〖A〗对象
〖B〗属性
〖C〗方法
〖D〗数据类型
对于java中的类, 每个类中都可以有属性和方法。 类属性又可以叫做成员变量, 本题答案为B
【23】下列语句执行后, a的值为
String str = "Programming";
char a = str.charAt(4);
〖A〗g
〖B〗r
〖C〗空格
〖D〗null
charAt()是String类的一个方法, 下标从0开始找对应下标的字符, 本题字符为r, 故本题选B
【24】语句String[][] s = new String[4][]; 定义了
〖A〗一维数组
〖B〗一个串
〖C〗十六个串
〖D〗二维数组
二维数组可以简单理解为在数组中又存储了数组 初始化可以有如下几种: 数据类型 数组名 [][] = new 数据类型[m][n] 数据类型 [][] 数组名 = new 数据类型[m][n] 数据类型 [] 数组名 [] = new 数据类型[m][n] 故本题答案为D。
【25】下列程序段的运行结果是
int[][] a = { { 1, 4, 3, 2 }, { 8, 6, 5, 7 }, { 3, 7, 2, 5 }, { 4, 8, 6, 1 } };
int i, j, k, t;
for (i = 0; i < 4; i++) {
    for (j = 0; j < 3; j++) {
        for (k = j + 1; k < 4; k++)
        if (a[j][i] > a[k][i]) {
            t = a[j][i];
            a[j][i] = a[k][i];
            a[k][i] = t;
        }
    }
}
for (i = 0; i < 4; i++)
System.out.print(a[i][i] + " ");
〖A〗1 6 5 7
〖B〗8 7 3 1
〖C〗4 7 5 2
〖D〗1 6 2 1
本题首先定义了一个4行4列的二维数组, 并用了三层for循环来进行由小到大的排序。外层循环变量i表示数组的列.第二层循环变量j表示数组的行, 第三层循环用于求第i列第j行的最小值, 其中通过if语句对相关数值进行比较和交换。最后通过for循环对排序后数组对角线上的元素输出。选项A正确, 本题答案为A。
【26】如果要处理捕获的异常, 应该采用的子句是
〖A〗catch
〖B〗throw
〖C〗try
〖D〗finally
B为抛出异常, try为寻找异常, finally是最终的意思, finally语句里面是无论如何都需要执行的, 经常用来关闭流等操作, 故本题选A
【27】下列程序段执行时会产生的异常是
int[] iArray = new int[5];
iArray[5] = 3;
〖A〗ArrayIndexOutOfBoundsException
〖B〗DividedByZeroException
〖C〗NullPointerException
〖D〗ArithmeticException
A为数组下标越界异常, B为被除数为0异常 比如4 / 0 C为空指针异常, D为ArithmeticException是出现异常的运算条件时, 抛出此异常, 本题答案为A
【28】下列选项中实现了Set接口的类是
〖A〗HashSet
〖B〗LinkedList
〖C〗Vector
〖D〗ArrayList
A实现了Set接口, B, C, D实现的是List接口, 本题答案为A
【29】下列关于字节流的说法中, 错误的是
〖A〗字节流又可以分为字节输入流和字节输出流
〖B〗字节流又称为二进制流
〖C〗字节流是抽象类Reader的子类
〖D〗字节流的类存在于java.io包中
字节流可以分为字节输入流和字节输出流, 且又称为二进制流 存在于java.io包中, 但不是Reader的子类, 故本题答案选C
【30】下列选项中属于抽象类的是
〖A〗InputStream
〖B〗FileStream
〖C〗FilterStream
〖D〗FlaterStream
本题考查Java的I / 0流。java.io包中处理字节流的抽象类有InputStream和OutputStream。InputStream用于输入, 它包含7个子类: Output用于输出, 它包含5个子类。因此, 本题的正确答案是选项A。
【31】下列叙述中正确的是
〖A〗Writer是一个写字符文件的接口
〖B〗Writer是一个写字符文件的抽象类
〖C〗Writer是一个写字节文件的一般类
〖D〗Writer是一个写字节文件的抽象类
Writer是一个抽象类, 并且它是通过字符来复制文件的, 本题答案为B
【32】下列代码实现了从一个文件中读取字符并输出的功能。下划线处应填入的代码是
import java.io.*;
public class test {
    public static void main(String[] args) {
        String str = "";
        String r = "";
        try {
            BufferedReader br = new BufferedReader(new ______________("d:\\test.txt"));
            while ((r = br.readLine()) != null) {
                Str += r;
            }
            System.out.println(str);
        } catch (IOException e) {
            System.out.println("文件读取错误!");
        }
    }
}
〖A〗Reader
〖B〗Buffer
〖C〗FileReader
〖D〗BufferedReader
FileReader用带有指定文件的String参数的构造方法。创建该输入流对象。并关联源文件读取文件中的字符。本题答案为C。
【33】下列选项中不属于MouseListener接口的方法是
〖A〗mouseDragged
〖B〗mousePressed
〖C〗mouseClicked
〖D〗mouseEntered
MouseMotionListener接口实现对鼠标移动事件的监听, 包括2个方法: mouse Moved(MouseEvent)和mouDragged(MouseEvent)。选项A说法错误, 本题答案为A。
【34】为窗口注册监听器所使用的方法是
〖A〗addActionListener
〖B〗addWindowListener
〖C〗addListenerAction
〖D〗addListenerWindow
本题考查事件监听器的概念。每类事件都有对应的事件监听器, 监听器是接口, 根据动作来定义方法。AWT的构件类中提供注册监听器的方法。注册监听器: public void add<ListenerType>(<ListenerType>listener)。由此可见, 选项B正确。本题答案为B。
【35】下面的代码运行后得到的结果是
import javax.swing.*;
public class test {
    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null,"Good Morning!","消息", JOptionPane.WARNING_MESSAGE);
    }
}
〖A〗
〖B〗
〖C〗
〖D〗
WARNING_MESSAGE属于警告, 故只有D是警告提示, A是错误提示 C没有提示, 故本题答案选D
【36】下列选项中, 反映Java并行程序设计特点的是
〖A〗简单性
〖B〗可移植
〖C〗安全性
〖D〗多线程
Java反映并行设计的特点是多线程, 可移植是java虚拟机机制, 简单是java面向对象由于面向过程。Java的安全体现在封装, 异常等, 故本题选D
【37】阅读下列程序:
public class ThreadTest4 extends Thread {
    int i = 0;
    public static void main(String[] args) {
        Thread t1 = new ThreadTest4();
        Thread t2 = new Thread();
        t1.start();
        t2.start();
    }
    public void run() {
        while (i <= 2) {
            System.out.println("i = " + i);
            i++;
        }
    }
}
下列选项中, 错误的是
〖A〗线程t1的线程体是ThreadTest4类中的run()方法
〖B〗线程t2的线程体是Thread类中的run()方法
〖C〗程序运行结果是 i = 0 i = 0 i = 1 i = 1 i = 2 i = 2
〖D〗程序运行结果是 i = 0 i = 1 i = 2
线程t1的线程体是ThreadTest4类中的run()方法, 线程t2的线程体是Thread类中的run()方法, 程序运行结果是, i = 0, i = 1, i = 2 选项C正确, 本题答案为C。
【38】线程在调用下列方法后, 其状态可能保持不变的是
〖A〗sleep()
〖B〗yield()
〖C〗join()
〖D〗stop()
C排队等待状态, D是停止状态, sleep()方法会给其他线程运行的机会, 而不考虑其他线程的优先级, 因此会给较低线程一个运行的机会; yield()方法只会给相同优先级或者更高优先级的线程一个运行的机会。选项B正确, 本题答案为B。
【39】下列方法中, 不属于Applet生命周期方法的是
〖A〗init()
〖B〗start()
〖C〗stop()
〖D〗paint()
Applet的生命周期中有四个状态: 初始态、运行态、停止态和消亡态。当程序执行完init()方法以后, Applet程序就进入了初始态; 然后马上执行start()方法, Applet程序进入运行态; 当Applet程序所在的浏览器图标化或者是转入其它页面时, 该Applet程序马上执行stop()方法, Applet程序进入停止态; 在停止态中, 如果浏览器又重新装载该Applet程序所在的页面, 或者是浏览器从图标中复原, 则Applet程序马上调用start()方法, 进入运行态; 当然, 在停止态时, 如果浏览器关闭, 则Applet程序调用destroy()方法, 进入消亡态, 故本题选D
【40】下列代码包括一个HTML文件和一个定义Applet类的Java程序。为了使HTML文件在浏览器中运行时显示" A nice day! ", 在下划线处应填入的代码是
/*hello2.html*/
<HTML>
<HEAD>
<TITLE > Hello </TITLE>
</HEAD>
<BODY>
<APPLET CODE = " __________ "WIDTH = 150 HEIGHT = 25>
</APPLET>
</BODY>
</HTML>
/* AppletTest2.java*/
import java.awt.*;
import javax.swing.*;
import java.applet.* ;
public class AppletTest2 extends  ______  {
    public void paint(Graphics g) {
        g.drawString("A nice day!", 25, 25);
    }
}
〖A〗AppletTest2.class, JApplet
〖B〗AppletTest2, JApplet
〖C〗AppletTest2.java, Applet
〖D〗AppletTest2, Applet
本题考查HTML和java结合的综合题, 想要输出"A nice day! CODE里面填的是下面的java文件, JApplet它的主要用处是: 镶嵌在网页中, 在网页中 < Applet> 标签之间加入自己继承了JApplet类的class文件的路径, 客户端如果有JVM的话就能够浏览你编写的程序了, 故本题答案为A

猜你喜欢

转载自www.cnblogs.com/mjios/p/12455880.html
今日推荐