计算机二级考试公共基础知识题库|2017年计算机二级考试公共基础知识冲刺试题及答案3

副标题:2017年计算机二级考试公共基础知识冲刺试题及答案3

时间:2023-11-07 19:33:01 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(41) 在下列选项中,哪个不是一个算法一般应该具有的基本特征______。

  A. 确定性

  B. 可行性

  C. 无穷性

  D. 拥有足够的情报

  (41)

  [答案]C

  [考点]程序设计基础

  [评析]

  算法具有确定性、可行性,并拥有足够的情报。

  (42) 希尔排序法属于哪一种类型的排序法______。

  A. 交换类排序法

  B. 插入类排序法

  C. 选择类排序法

  D. 建堆排序法

  (42)

  [答案]B

  [考点]数据结构与算法

  [评析]

  Shell排序法 输入:数组名称(也就是数组首地址)、数组中元素个数思想为:在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点, 并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。

  下面的函数是一个希尔排序算法的一个实现,初次取序列的一半为增量,

  以后每次减半,直到增量为1。以C语言为例。

  void shell_sort(int *x, int n)

  {

  int h, j, k, t;

  for (h=n/2; h>0; h=h/2) /*控制增量*/

  {

  for (j=h; j  {

  t = *(x+j);

  for (k=j-h; (k>=0 && t<*(x+k)); k-=h)

  {

  *(x+k+h) = *(x+k);

  }

  *(x+k+h) = t;

  }

  }

  }

  故属于插入类排序法。

  (43) 下列关于队列的叙述中正确的是______。

  A. 在队列中只能插入数据

  B. 在队列中只能删除数据

  C. 队列是先进先出的线性表

  D. 队列是先进后出的线性表

  (43)

  [答案]C

  [考点]数据构与算法

  [评析]

  队列是先进先出的,栈是先进后出的,2者的区别一定要搞清楚。

  (44) 对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。

  A. N+1

  B. N

  C. (N+1)/2

  D. N/2

  (44)

  [答案]B

  [考点]数据结构与算法

  [评析]

  很简单,我们的二级程序设计语言书中都有此算法,另外还要掌握二分法查找,这也是我们二级中常考的。

  那么二分法最坏的情况为多少次呢?

  >log2 n的最小整数值。

  比如n为4,最坏的情况要比较3次;

  n为18,最坏的情况要比较5次。

  二分法适用于已排序的顺序表(我们二级语言中都是数组),考二级书里的,这里不再罗嗦。

  (45) 信息隐蔽的概念与下述哪一种概念直接相关______。

  A. 软件结构定义

  B. 模块独立性

  C. 模块类型划分

  D. 模拟耦合度

  (45)

  [答案]B

  [考点]软件工程基础

  [评析]

  模块独立性越强,则信息隐蔽性越好。

  举个例,

  VB:

  在多重窗体设计时,每个窗体里的变量尽量与其它窗体里变量无关,比如少用Public声明的变量,即全局变量,当多个窗体共享全局变量越多时,窗体的独立性就越差。

  C:

  头文件里的一些函数,一般不用到全局变量,否则在主程序里出乱子的情况很多,我们在模块化开发时,尽量使每个模块独立,强功能内聚,分工明确,调试程序也要方便得多。

  C++:

  考此项的朋友估计不用我多讲,类的封装性就是一个很好的说明。

  (46) 面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。

  A. 模拟现实世界中不同事物之间的联系

  B. 强调模拟现实世界中的算法而不强调概念

  C. 使用现实世界的概念抽象地思考问题从而自然地解决问题

  D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

  (46)

  [答案]C

  [考点]软件工程基础

  [评析]

  我们举个例,

  从各种语言的结构体类型出发,我们知道,结构体中可以定义很多变量,对每个变量执行相同的操作,挨个挨个写出,很麻烦。假设该结构体有如下变量:

  草鱼、田鱼、鲫鱼……

  它们都在一口池塘里,现在执行:它们都上来

  传统的程序设计是:

  草鱼上来

  田鱼上来

  鲫鱼上来

  ……

  一条一条都写出,是不是很麻烦?

  改进一下,我们用个循环:

  n等于从1到10(假设共有10种鱼)

  第n种鱼上来

  还是很麻烦,现实中我们很易想到用"面向对象的思想",池塘里所有的鱼都是一个结构体变量,名为鱼,执行:

  鱼上来

  意思即所有的鱼都上来。

  现特定于面象对象语言中的类,鱼,就可以看作为一类。

  这就属于 C 项:

  使用现实世界的概念抽象地思考问题从而自然地解决问题

  这样罗嗦的解释望大家别晕,旨在帮助部分人的确难想通的,为应试,你能背下答案也行。

  (47) 在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。

  A. 详细设计

  B. 需求分析

  C. 总体设计

  D. 编程调试

  (47)

  [答案]C

  [考点]软件工程基础

  [评析]

  从先到后一排,是:

  需求分析、总体设计、详细设计、编程调试

  需求分析远离在计算机上的实现,谈不上功能的分解;

  有了需求分析的报告,软件设计员可以思考我要让软件怎么做,开始总体设计,其间将软件的功能分解,确定模块之间的接口;

  有了每个模块功能的分解,再对每个模块进入详细设计阶段;

  接下来再是程序员的任务,编写代码,开始编程调试。

  (48) 软件调试的目的是______。

  A. 发现错误

  B. 改正错误

  C. 改善软件的性能

  D. 挖掘软件的潜能

  (48)

  [答案]B

  [考点]软件工程基础

  [评析]

  倒!

  一个程序调试是为了干什么?

  还不是为了改正错误?

  发现错误?这只是一个过程,改正错误之前必须先发现错误,总不能目的就仅为发现错误吧。

  (49) 按条件f对关系R进行选择,其关系代数表达式为______。

  A. R|X|R

  B. R|X|R

  f

  C. бf(R)

  D. ∏f(R)

  (49)

  [答案]C

  [考点]数据库设计基础

  [评析]

  C是选择一行,D是投影一列,二者要区分开。

  如果不仅谈此题的话,有关关系代数,内容有些多,这里不是一两句能说清,可以看看相关《数据库》的资料中的关系代数,里面写得很详细。为应试,情急之下能记住几个题答案就行。

  (50) 数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。

  A. 自顶向下

  B. 由底向上

  C. 由内向外

  D. 由整体到局部

  (50)

  [答案]D

  [考点]数据库设计基础

  [评析]

  通常有如下几种方法:

  1、自顶向下。先全局框架,然后逐步细化

  2、自底向上。先局部概念结构,再集成为全局结构

  3、由里向外。先核心结构,再向外扩张

  4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构

  (51) 在计算机中,算法是指______。

  A. 查询方法

  B. 加工方法

  C. 解题方案的准确而完整的描述

  D. 排序方法

  (51)

  [答案]C

  [考点]数据结构与算法

  [评析]

  A、B、D都过于片面,此题直接选答案也很简单。

  (52) 栈和队列的共同点是______。

  A. 都是先进后出

  B. 都是先进先出

  C. 只允许在端点处插入和删除元素

  D. 没有共同点

  (52)

  [答案]C

  [考点]数据结构与算法

  [评析]

  栈是先进后出的,队列是先进先出的,共同点是只允许在端点处插入和删除元素。栈都是在一端进与出,而队列是在一端进在另一端出。

  (53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。

  A. cedba

  B. acbed

  C. decab

  D. deabc

  (53)

  [答案]A

  [考点]数据结构与算法

  [评析]

  后序又叫后根,一次递归过程是先左再右最后根;中序是先左再根最后右。

  比如下图:

  前序是:abc

  中序是:bac

  后序是:bca

  题中据后序遍历序列,一眼得知c结点是根,那么据中序deba结点都在一边,或都在根结点左边,或右边;据中序遍历序列得知全在根结点的左边。

  接下来据后序得出e结点是紧挨着c结点的左子女,再据中序得知d是e的左子女,ba是右子树。

  再据后序得b是e的右子女,再据中序得a是b的右子女。

  分析结果得二叉树图示如下:

  因为我茂叶数据结构是自学的,分析此类型的题我都是用自己的方法(递归分析的方法),要边分析边画图,一步一步连结起来,最后再根据题中的遍历检查图是否画对,如果都符合题目,最后再可根据图来得所求的遍历。

  再次声明,此所有二级公基题全是我一人的思路写的,如果你觉得不可靠,可以看其它的书。

  (54) 在下列几种排序方法中,要求内存量的是______。

  A. 插入排序

  B. 选择排序

  C. 快速排序

  D. 归并排序

  (54)

  [答案]D

  [考点]数据结构与算法

  [分析]

  我们对比一个排序方法的优越性有"平均时间"、"最坏情况时间"和"辅助空间"。其中辅助空间一般是排序中需要额外的内存开销,这些内存开销一般据一些如中间变量(暂存变量)、比较与交换等等来决定。

  插入排序和选择排序的辅助空间都是o(1),快速排序是o(nlog2n),归并排序是o(n)。

  可知归并排序要求内存量,我们也可以从其变量及循环个数也以看出归并排序要求内存量。

  (55) 在设计程序时,应采纳的原则之一是______。

  A. 程序结构应有助于读者理解

  B. 不限制goto语句的使用

  C. 减少或取消注解行

  D. 程序越短越好

  (55)

  [答案]A

  [考点]程序设计基础

  [评析]

  前面的题中已解释过,二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到。

  其中A,即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们进行开发时非常重要的一点。

  (56) 下列不属于软件调试技术的是______。

  A. 强行排错法

  B. 集成测试法

  C. 回溯法

  D. 原因排除法

  (56)

  [答案]B

  [考点]软件工程基础

  [评析]

  耍个小聪明:)

  我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。不用说答案就是B了 :)

  A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。

  测试有单元测试、集成测试、确认测试、系统测试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。

  题外话:

  很多人学软件工程时认为软件工程太无聊了,似乎全部都是些背背记记的东西,但对于一个软件构架师,软件工程是非常重要的,这就不能是些背背的东西了,最重要的是理解,要彻底地理解,还得有些开发经验才行。《软件工程》这学科是从实践中得出来的,同样也需要赋予给实践中去,这样才有用!

  (57) 下列叙述中,不属于软件需求规格说明书的作用的是______。

  A. 便于用户、开发人员进行理解和交流

  B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据

  C. 作为确认测试和验收的依据

  D. 便于开发人员进行需求分析

  (57)

  [答案]D

  [考点]软件工程基础

  [评析]

  A、B、C都是作用,D说法有一定的错误,开发人员包括很多,比如程序员的工作就不是进行需求分析。

  (58) 在数据流图(DFD)中,带有名字的箭头表示______。

  A. 控制程序的执行顺序

  B. 模块之间的调用关系

  C. 数据的流向

  D. 程序的组成成分

  (58)

  [答案]C

  [考点]软件工程基础

  [评析]

  顾名思义,数据流图就是带有方框(外部实体)、圆圈(变换/加工)和带有名字的箭头以表示数据的流向。需求分析中常用的分析图,它远离计算机上的具体实现,软件人员和用户都能看懂,有益于和用户交流。

  (59) SQL语言又称为______。

  A. 结构化定义语言

  B. 结构化控制语言

  C. 结构化查询语言

  D. 结构化操纵语言

  (59)

  [答案]C

  [考点]数据库设计基础

  [评析]

  学VF和ACCESS的朋友轻而易举选出答案,考其它的朋友们若没学数据库技术这一章节,则要记一下了。

  Structured Query Language

  结构化 查询 语言(语句)

  (60) 视图设计一般有3种设计次序,下列不属于视图设计的是______。

  A. 自顶向下

  B. 由外向内

  C. 由内向外

  D. 自底向上

  (60)

  [答案]B

  [考点]数据库设计基础

  [评析]

  通常有如下几种方法:

  1、自顶向下。先全局框架,然后逐步细化

  2、自底向上。先局部概念结构,再集成为全局结构

  3、由里向外。先核心结构,再向外扩张

  4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构

2017年计算机二级考试公共基础知识冲刺试题及答案3.doc

本文来源:https://www.wddqw.com/epUO.html