一、单选题
1、【学员回忆版】线性表采用链表存储结构的特点中不包括( )。
A、所需空间大小与表长成正比
B、可随机访问表中的任一元素
C、插入和删除操作不需要移动元素
D、无须事先估计存储空间大小
解析:
线性表采用链表存储结构的特点中,A选项正确,因为链表每增加一个节点,数据存储空间随着变大;B选项错误,因为链表元素由数据域和指针域组成,指针域用于指向直接后继的元素的地址,由于链表元素不一定是连续的,所以不能随机访问表中的任一元素;C选项正确,插入和删除操作不需要移动元素,只需改变指针域的指向即可;D选项也正确,链表不需要连续的存储空间存储,因此无需事先估计存储空间大小。
2、【学员回忆版】在双核处理器中,双核是指()。
A、执行程序时有两条指令流水线并行工作
B、在 一 个 CPU 中集成两个运算核心以提高运算能力
C、利用超线程技术实现的多任务并行处理
D、在主板上设置两个独立的 CPU 以提高处理能力
解析:
双核处理器中的“双核”是指在一个CPU中集成两个运算核心,以提高运算能力。这是通过并行处理的方式,让两个核心同时执行不同的任务,从而提高整体性能。因此,选项B是正确的。而选项A、C、D都与双核处理器的定义不符。
3、【学员回忆版】采用贪心策略求解( )问题, 一定可以得到最优解。
A、分数背包
B、0- 1 背包
C、旅行商
D、最长公共子序列
解析:
贪心算法是在求解问题时,总是做出在当前看来是最好的选择。对于分数背包问题,由于物品可以选择部分或全部放入背包,通过贪心算法求解可以将单位价值最大的物品优先放入背包,从而实现背包物品价值的最大化。因此,采用贪心策略求解分数背包问题,可以得到最优解。而对于其他选项,如0-1背包、旅行商和最长公共子序列问题,采用贪心策略不一定能够得到最优解。
4、【学员回忆版】统一过程模型的四个阶段中,在( )阶段进行需求分析和架构演进。
A、移交
B、精化
C、构建
D、起始
解析:
统一过程模型的四个阶段包括起始阶段、精化阶段、构建阶段和移交阶段。在精化阶段,进行需求分析和架构演进。因此,正确答案是B。
5、【学员回忆版】下列协议中,不属于安全协议的是( )。
A、IPsec
B、SNMP
C、SFTP
D、HTTPS
解析:
SNMP(简单网络管理协议)是一种用于网络设备管理的协议,早期的版本没有任何安全设计,因此不属于安全协议。而IPsec、SFTP和HTTPS都是常用的安全协议,用于保护网络通信的安全性。因此,选项B是不正确的选择。
6、【学员回忆版】以下关于汇编语言程序的叙述中,错误的是( )。
A、汇编程序的功能是将汇编语言源程序翻译为相应的目标程序
B、用汇编语言编写的程序可以直接被计算机硬件执行
C、汇编语言是低级程序设计语言
D、汇编语言与计算机硬件体系结构密切相关
解析:
关于汇编语言程序的叙述中,选项B是错误的。用汇编语言编写的程序不能直接被计算机硬件执行,而是需要经过汇编程序翻译成计算机所能识别的机器语言程序(即目标程序)后,才能被计算机执行。选项A、C、D都是正确的描述,因此答案为B。
7、【学员回忆版】以下关于方法重载 (Overload) 和方法覆盖 (Overide) 与多态的关系的叙述中,不正确的是 ( ) 。
A、覆盖通过动态绑定机制实现多态
B、重载通过动态绑定机制实现多态
C、重载属于编译时多态,在一个类中定义多个名称相同而参数表不同的方法
D、覆盖属于运行时多态,子类重新定义父类中已定义的方法
解析:
重载通过静态绑定机制实现多态。重载是在同一个类中定义多个名称相同但参数列表不同的方法,编译器在编译时根据传递的参数类型和数量来确定具体调用哪个重载方法,因此属于静态多态或编译时多态。而方法覆盖(重写)是通过动态绑定机制实现多态,子类重新定义父类中已定义的方法,运行时根据对象的实际类型(即运行时类型)来确定调用哪个方法,因此属于运行时多态。选项B描述不正确。
8、【学员回忆版】以下关于白盒测试原则的叙述中,不正确的是( )。
A、在所有的逻辑判断中,取“真”和取“假”的两种情况至少都能执行一次
B、程序模块中的所有独立路径至少执行一次
C、每个循环都应在边界条件和一般条件下各执行一次
D、在输入条件规定的取值范围的情况下,合理的输入和不合理的输入至少都能执行一次
解析:
在白盒测试中,原则D的描述不完全准确。原则D的意思是对于输入条件规定的取值范围,应该测试合理的输入以及边界值附近的输入,而不一定是“不合理的输入”。因此,选项D的叙述是不正确的。
9、【学员回忆版】对采用面向对象方法开发的系统进行测试时,通常从不同层次进行测试。 对类中定义的每个方法进行测试属于( ) 层 。
A、系统
B、算法
C、类
D、模板
解析:
:根据描述,对采用面向对象方法开发的系统进行测试时,通常从不同层次进行测试。对类中定义的每个方法进行测试属于类层。所以正确答案是C。
10、【学员回忆版】下列算法中,不属于公开密钥加密算法的是( )。
A、DSA
B、ECC
C、DES
D、RSA
解析:
本题考查公开密钥加密算法。公开密钥加密算法,也称为公钥加密或不对称加密,使用一对密钥进行加密和解密,其中一个是公开的公钥,另一个是私有的私钥。选项A的DSA(数字签名算法)、选项B的ECC(椭圆曲线密码学)和选项D的RSA都属于公开密钥加密算法。而选项C的DES(数据加密标准)是一种对称密钥加密算法,不属于公开密钥加密算法。因此,正确答案是C。
11、【学员回忆版】POP3服务默认的TCP端 口 号 是 ( ) 。
A、110
B、25
C、20
D、80
解析:
POP3服务的默认TCP端口号是110。因此,正确答案是A。
二、完形类单选题
12、【学员回忆版】以下关于折半查找的叙述中,不正确的是 ( )。采用折半查找等概率查 找某个包含8个元素的有序表,查找成功的平均查找长度为( )。
A、是一个分治算法
B、只能应用于有序表
C、查找成功和不成功的平均查找长度是一样的
D、若表长为n, 时间复杂度为0 (logn )
解析:
关于折半查找的叙述中,不正确的是C选项:查找成功和不成功的平均查找长度是一样的。折半查找是一种分治算法,适用于有序表。在有序表中查找特定元素时,如果查找成功,平均查找长度是将每个元素的查找次数相加后除以元素总数;而查找不成功时,最后的结果是空指针,需要计算的是每个空指针的查找次数再累加后除以空指针总数。因此,查找成功和不成功的平均查找长度不一定相同。其他选项A、B、D都是正确的描述。
13、【学员回忆版】以下关于折半查找的叙述中,不正确的是 ( )。采用折半查找等概率查 找某个包含8个元素的有序表,查找成功的平均查找长度为( )。
A、9/8
B、1/8
C、20/8
D、21/8
解析:
第一空:关于折半查找的叙述中不正确的是D选项。折半查找的前提是数据有序,而在折半查找过程中,比较的次数是与数据的顺序无关,所以选项D中的描述是不正确的。
第二空:对于包含8个元素的有序表进行折半查找,查找成功的平均查找长度是通过计算每个元素被查找的次数并求平均值得到的。根据解析中的计算方式,8个元素中,能一次命中的有1个元素,需要两次查找命中的有2个元素,需要三次查找命中的有4个元素,需要四次才能命中的有1个元素。因此,平均查找长度是(1+22+34+4)/8 = 21/8,所以答案是C选项。
三、单选题
14、【学员回忆版】某文件管理系统在磁盘上建立了位示图 (bitmap),记录滋盘的使用情况。 若计算机系统的字长为128位,磁盘的容量为1024 GB,物理块的大小为8MB,那么该位示图的大小为( ) 个 字 。
A、4096
B、1024
C、2048
D、4098
解析:
首先计算磁盘的总块数,已知磁盘容量为1024GB,物理块大小为8MB,那么磁盘的总块数就是1024GB/8MB=128GB块。由于系统字长为128位,所以每个字可以表示位示图中对应位置的128个块的使用情况。因此,位示图的大小就是磁盘总块数除以每个字表示的块数,即位示图大小 = 总块数 / 每个字表示的块数 = 128GB块 / 128 = 1GB块。由于题目要求位示图的大小以字为单位,而每个字包含多个块的信息,所以位示图的大小为磁盘总块数除以物理块大小再除以每个字包含的字节数(这里假设一个字包含多个字节),即位示图大小 = 总块数 / 物理块大小 / 字包含的字节数 = 128GB块 / 8MB / 字包含的字节数(假设一个字包含多个字节)。由于题目没有给出字包含的字节数,因此无法直接计算位示图的大小以字为单位的具体数值。但是根据题目给出的选项,我们可以推断出位示图的大小应该是最接近实际值的整数倍数的选项,即最接近磁盘总块数的选项,因此选择B选项,即位示图大小为 1 个字。
15、【学员回忆版】在项目开发过程中, ( )不属于项目估算的主要因素。
A、规模
B、类型
C、成本
D、工作量
解析:
项目估算主要对项目的规模、工作量、成本等进行预测和估算,以便为项目决策提供依据。而项目的类型并不是项目估算的主要因素。因此,选项B不属于项目估算的主要因素。
16、【学员回忆版】执行以下 Python 语句之后,列表x 为 ( )
x=[1,2,3]
x.append([4,5])
A、[1,2,3,4,5]
B、[1,2,3]
C、[4,5]
D、[1,2,3,[4,5]]
解析:
执行Python语句后,列表x原本为[1,2,3],通过执行x.append([4,5])后,列表x变为[1,2,3,[4,5]]。因此,正确答案是D。x.append()方法是在列表末尾追加一个元素,这里的元素是另一个列表[4,5],所以最终列表x包含了两个层次的列表结构。
17、【学员回忆版】防火墙不具备( ) 功 能 。
A、病毒防治
B、状态检测
C、代 理
D、包过滤
解析:
防火墙技术主要经历了包过滤、应用代理网关和状态检测等发展阶段,因此具备包过滤、状态检测和代理等功能,但不具备病毒防治功能。因此,选项A是正确答案。
18、【学员回忆版】 一棵哈夫曼树共有127个结点,对其进行哈夫曼编码,共能得到( ) 个 字符的编码。
A、64
B、127
C、63
D、126
解析:
根据哈夫曼树的构造原理,对于含有n个字符的哈夫曼树,其节点总数为n+n-1个。根据题目描述,哈夫曼树共有127个结点,由此计算出字符数为(127-n+1)个。根据题目给出的选项,字符数应为64个,因此答案为A。
19、【学员回忆版】浮点加(减)法运算过程中需要以下操作要素:
① 溢出判别
② 规格化及舍入处理
③ 尾 数 加 ( 减 ) 运 算
④ 对阶操作
正确的加(减)法操作流程是( )。
A、①③④②
B、①④③②
C、②①④③
D、④③②①
解析:
浮点加(减)法运算过程中,正确的操作流程是:首先进行对阶操作,使两个浮点数的阶码相等,然后进行尾数加(减)运算,接着进行结果规格化处理并判断是否有溢出,最后进行舍入处理。因此,正确的加(减)法操作流程是④对阶操作→③尾数加(减)运算→②规格化及舍入处理→①溢出判别。所以答案是D。
20、【学员回忆版】某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元 素 a 、b 、c 、d依次全部入队列,之后进行出队列操作,则不能得到的出队序列是( )。
A、dbac
B、cabd
C、acdb
D、bacd
解析:
根据题目描述,队列允许两端进行入队操作,但仅允许在一端进行出队操作。元素a、b、c、d依次全部入队列后的出队序列需要考虑各种可能的入队顺序和出队方式。分析各个选项:
A选项dbac:假设元素从左端开始入队,然后依次入队b、c、d,最后从左端出队,可以得到出队序列dbac。
B选项cabd:假设元素从右端开始入队,然后依次入队a、b、c,最后从左端出队,可以得到出队序列cabd。
D选项bacd:假设元素从左端开始入队,然后依次入队b、c,再入队d并从左端出队一个元素后,队列中的元素顺序为bac,之后再次从左端出队可以得到出队序列bacd。
而对于C选项acdb,根据题目描述的队列操作规则,无法以任何方式得到这个出队序列。因为按照规则,元素只能从队列的一端(左端或右端)依次出队,不可能出现中间元素先于两端元素出队的情况。因此,不能得到的出队序列是C选项acdb。
21、【学员回忆版】以下关于基于构件的开发模型的叙述中,不正确的是()。
A、本质上是演进模型,以迭代方式构建软件
B、必须采用面向对象开发技术
C、采用预先打包的软件构件构造软件
D、构件可以是组织内部开发的,也可以是商品化成品软件构件
解析:
基于构件的开发模型本质上是演进模型,以迭代方式构建软件,采用预先打包的软件构件构造软件,构件可以是组织内部开发的,也可以是商品化成品软件构件。这一模型并不必须采用面向对象开发技术,因此选项B是不正确的。
22、【学员回忆版】在 C/C++ 程序中,对于函数中定义的非静态局部变量,其存储空间在( )分配。
A、栈区
B、静态数据区
C、文本区
D、自由堆区
解析:
在C/C++程序中,对于函数中定义的非静态局部变量,其存储空间在栈区分配。非静态局部变量在函数调用时创建,调用结束后销毁,它们的生命周期与函数调用栈帧的生命周期相同,因此存储在栈区。
23、【学员回忆版】以下关于测试原则的叙述中,不正确的是()。
A、充分注意测试中的群集现象
B、设计测试用例时,应包括合理的输入条件和不合理的输入条件
C、应该由程序员测试自己编写的程序
D、严格执行测试计划,避免测试的随意性
解析:
关于测试原则的叙述中,不正确的是“应该由程序员测试自己编写的程序”。这是因为测试工作应该避免由原开发软件的人或小组承担,以降低测试的有效性。其他选项A、B、D都是正确的测试原则。
24、【学员回忆版】在微型计算机中,管理键盘最适合采用的 I/O 控制方式是( ) 方 式
A、DMA
B、无条件传送
C、程序查询
D、中断
解析:
在微型计算机中,管理键盘最适合采用的I/O控制方式是中断方式。这是因为键盘是慢速设备,无法预知I/O时间,采用中断方式可以异步地处理输入信号,提高系统的效率和响应速度。而其他选项如DMA、无条件传送、程序查询等并不适合管理键盘这样的慢速设备。
25、【学员回忆版】当一棵非空二叉树的( )时,对该二叉树进行中序遍历和后序遍历所得 的序列相同。
A、每个非叶子结点都只有左子树
B、每个非叶子结点都只有右子树
C、每个非叶子结点的度都为1
D、每个非叶子结点的度都为2
解析:
中序遍历的顺序是左根右,后序遍历的顺序是左右根。如果一个非空二叉树的每个非叶子节点都只有左子树,那么中序遍历和后序遍历的结果会相同,因为无论是中序遍历还是后序遍历,都会首先遍历到所有左子树节点,然后才是根节点和(可能存在的)右子树节点。因此,对该二叉树进行中序遍历和后序遍历所得的序列会相同。所以答案是A选项。
26、【学员回忆版】以下关于甘特图的叙述中,不正确的是( )。
A、一种进度管理的工具
B、易于看出每个子任务的持续时间
C、易于看出目前项目的实际进度情况
D、易于看出子任务之间的衔接关系
解析:
甘特图是一种进度管理工具,它能清晰地描述每个任务的开始和结束时间,以及任务的进展情况,但并不能清晰地反映出子任务之间的衔接关系。因此,叙述中不正确的选项是D。
27、【学员回忆版】以下关于软件工程标准化的叙述中,不正确的是( )。
A、可以提高开发人员之间的沟通效率
B、有助于提高管理水平
C、有助于提高软件产品质量
D、可以提高每一位开发人员的开发技能
解析:
软件工程标准化的主要目的是提高软件质量、提高开发效率、降低成本和风险,以及提高管理水平。虽然标准化可以提高开发人员之间的沟通效率,有助于提高软件产品质量,但它并不能直接提高每一位开发人员的开发技能。因此,选项D是不正确的叙述。
28、【学员回忆版】数据库的基本表、存储文件和视图的结构分别对应( )。
A、用户视图、内部视图和概念视图
B、用户视图、概念视图和内部视图
C、概念视图、用户视图和内部视图
D、概念视图、内部视图和用户视图
解析:
数据库的基本表对应概念视图,存储文件对应内部视图,视图对应用户视图。因此,正确答案为D。
29、【学员回忆版】 ( )模式可以给对象动态地添加一些额外的职责,而不改变该对象的结构。
A、装 饰 (Decorator)
B、外 观 (Facade)
C、组 合 (Composite )
D、享 元 (Flyweight)
解析:
装饰模式(Decorator)是一种用于动态地给对象添加一些额外的职责(功能或属性),而不需要改变该对象的结构或定义的方式。这种灵活性使得我们可以在运行时根据需要动态地扩展对象的功能,而不需要修改其原始代码。因此,选项A正确。
30、【学员回忆版】在 SQL 中,结束事务通常可以使用COMMIT 和 ROLLBACK 语句。若某事务T 执行 了 ( ) 。
A、ROLLBACK 语句,则可将T;对数据库的更新撤销
B、ROLLBACK 语句,则可将T;对数据库的更新写入数据库
C、COMMIT 语句,则T;对数据库影响可用ROLLBACK 语句来撤销
D、ROLLBACK 语句,则表示T;已正确地执行完毕
解析:
在 SQL 中,ROLLBACK 语句用于撤销事务中对数据库的更新操作。当执行 ROLLBACK 语句时,事务 T 对数据库的更新会被撤销,而不是写入数据库。因此,选项 A 正确,表示若事务 T 执行了 ROLLBACK 语句,则可将 T 对数据库的更新撤销。选项 B 错误,因为 ROLLBACK 是用于撤销更新而不是写入数据库。选项 C 也是错误的,因为一旦事务提交了(使用 COMMIT 语句),其对数据库的影响就不能再用 ROLLBACK 语句来撤销。选项 D 错误,因为 ROLLBACK 语句表示事务需要回滚,而不是表示事务已正确执行完毕,正确表示事务结束的是 COMMIT 语句。
31、【学员回忆版】利用报文摘要算法生成报文摘要的目的是( )。
A、防止发送的报文被篡改
B、对传输数据进行加密,防止数据被窃听
C、验证通信对方的身份,防止假冒
D、防止发送方否认发送过的数据
解析:
利用报文摘要算法生成报文摘要的目的是为了防止发送的报文被篡改。报文摘要是对长报文进行哈希运算得到的一个固定长度的字符串,它可以用于验证报文的完整性和真实性,确保报文在传输过程中没有被篡改。因此,选项A正确,其他选项如加密、身份验证和防止否认等与报文摘要的目的不符。
32、【学员回忆版】采用冒泡排序算法对序列(49,38,65,97,76,13,27,49)进行非降序排序,两趟后的序列为( )。
A、(49,38,65,13,27,49,76,97)
B、(38,49,65,76,13,27,49,97)
C、(38,49,65,13,27,49,76,97)
D、(49,38,65,97,76,13,27,49)
解析:
:根据冒泡排序算法的原理,两趟后的序列为通过不断地比较相邻元素并交换位置,使得较大的数逐渐向序列的尾部移动。在第一趟排序后,最大的数会移动到序列的尾部,在第二趟排序中,次大的数会移动到倒数第二的位置。根据这个原理,对序列(49,38,65,97,76,13,27,49)进行两趟非降序排序后,序列应为(38,49,65,13,27,49,76,97),因此,答案为C。
33、【学员回忆版】在设计模块 M 和模块N 时, ( )是最佳的设计。
A、M 和 N 通过通信模块传送数据
B、M 和 N 通过公共数据域传送数据
C、M 和 N 通过简单数据参数交换信息
D、M 直接访问N 的数据
解析:
在设计模块时,应遵循“高内聚,低耦合”的原则。数据耦合是一种较低的耦合度,其中模块之间通过简单数据参数交换信息。因此,选项C中的“M 和 N 通过简单数据参数交换信息”是最佳的设计。而选项A、B、D可能会增加模块之间的耦合度,不符合最佳设计原则。
34、【学员回忆版】程序员甲将其编写完成的软件程序发给同事乙并进行讨论,之后由于甲对该程序极不满意,因此甲决定放弃该程序,后来乙将该程序稍加修改并署自己名在某技术 论坛发布。下列说法中,正确的是( )。
A、乙对该程序进行了修改,因此乙享有该程序的软件著作权
B、乙的行为没有侵犯甲的软件著作权,因为甲已放弃程序
C、乙的行为未侵权,因其发布的场合是以交流学习为目的的技术论坛
D、乙的行为侵犯了甲对该程序享有的软件著作权
解析:
程序员甲编写完成的软件程序,自完成之日起,甲便享有该软件的著作权。尽管甲后来决定放弃该程序,但并不意味着甲放弃了其著作权。乙未经甲的许可,将该程序稍加修改并署自己名在某技术论坛发布,这一行为侵犯了甲对该程序享有的软件著作权。因此,选项D正确,而选项A、B、C均错误。
35、【学员回忆版】软件文档在软件生存期中起着重要的作用,其作用不包括( )。
A、提高软件运行效率
B、作为开发过程的阶段工作成果和结束标记
C、提高开发过程的能见度
D、提高开发效率
解析:
软件文档在软件生存期中起着重要的作用,其作用包括提高软件开发过程的能见度、提高开发效率、作为开发人员在一定阶段的工作成果和结束标记,以及记录开发过程中的有关信息、提供对软件的运行、维护和培训的相关信息,并非提高软件运行效率。因此,选项A是不正确的。
36、【学员回忆版】数据库概念结构设计阶段的工作步骤包括①~④,其正确的顺序为()。 ① 设计局部视图②抽象数据③修改重构消除冗余④合并取消冲突
A、①→②→④→③
B、①→②→③→④
C、②→①→③→④
D、②→①→④→③
解析:
数据库概念结构设计阶段的工作步骤正确的顺序为:首先抽象数据,然后设计局部视图,接着合并取消冲突,最后修改重构消除冗余。因此,正确的选项是D,即②→①→④→③。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!