(21) 算法分析的目的是______。
A. 找出数据结构的合理性
B. 找出算法中输入和输出之间的关系
C. 分析算法的易懂性和可靠性
D. 分析算法的效率以求改进
[答案]D
[考点]数据结构与算法
[评析]
为什么要讲各种各样的算法,只要达到功能不就行了吗?
有些场合为了让程序效率更高,必须改进算法。
我们二级熟悉的算法改进,如二分法查找比顺序查找更快,仔细分析这些算法以求效率改进。
再比如选择排序、插值排序、冒泡排序,哪个效率高?
我们分析算法,可知如果序列初始比较有序的情况下,冒泡法效率最高。
各种例子都说明D是正确答案。
(22) n个顶点的强连通图的边数至少有______。
A. n-1
B. n(n-1)
C. n
D. n+1
[答案]C
[考点]数据结构与算法
[评析]
此题超纲不用看啦!
图这一节超纲,软考的程序员的难度也不考的,等考三级也考不到,只有计算机四级与高级程序员或以上级别才考到。
关于图的概念,我们在这里结合树来讲。
通过前面的一些题,我们了解了树与二叉树,其实树也算是图的一种,树从上到下是一对多关系的,而图不单从上到下,而且可以是任意的多对多联系,它还可以有回路(结点与线合成回路),无方向的叫无向图,有箭头方向的叫有向图。
连通图(又叫弱连通图):有顶点间存在通路(就是2点间有条路径,从这可到那)(如果是有向图,则略去方向)。
强连通图:图中任何两点都可相互到达(有向图不能略去方向)。强连通图一定是弱连通图。
此题问要是强连通图至少应有的边数,我们可以设想个一个环的特例,假设箭头全部是顺时针(或逆时针),可以构成任何两点都可到达的强连通图,假设有n个顶点,我们很快得出它的边数也为n。
(23) 已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。
A. 堆排序
B. 直接插入排序
C. 快速排序
D. 直接选择排序 考试大论坛
[答案]B
[考点]数据结构与算法
[评析]
做此题时,我们可以回想一下每个选项的排序原理。
堆排序是边建堆边排序的过程,而建堆排序时的效率元素距其最终位置的远近关系不大。
插入排序是把每个元素挨个比较之前的元素,插入到合适的位置,这种排序的比较次数很不固定,它决定于每个元素距其最终位置。
快速排序的每一趟可确定一个元素的最终位置,但以某个元素为标准的比较次数还是得比较剩下所有的,它的最大的特点是序列初始无序的情况下排序最快。(初始有序并不是每个元素距其最终位置不远,而是有一些最终相邻的元素初始已经相邻了或大致左右的顺序已经好了)。
直接选择排序,就是每一趟选择序列剩下的元素的一个最大值(或最小值)挨个排在首端(或尾端),是人脑最常使用的方法,所以被人脑最易理解。在电脑上,这种排序效率不受其初始位置的影响。
茂叶特注:上述解释都是我自己的理解,书上并没有如此解释,有错误还望大侠们指正!
(24) 用链表表示线性表的优点是______。
A. 便于插入和删除操作
B. 数据元素的物理顺序与逻辑顺序相同
C. 花费的存储空间较顺序存储少
D. 便于随机存取
[答案]A
[考点]数据结构与算法
[评析]
我们知道,如果是紧凑排列的话,数组在删除一个其中一个元素时极为不方便,因为它需要把后面的元素都要往前移一个位置(插入的话则往后移)。而用链表就绝然不同了,它只需要改变指针的指向,指向这指向那的,其它元素都不用动。
所以便于插入和删除操作。
(25) 下列不属于结构化分析的常用工具的是______。
A. 数据流图
B. 数据字典
C. 判定树
D. PAD图
[答案]D
[考点]软件工程基础
[评析]
通过前面题的解释,数据流图属于分析阶段相信大家都有所了解了。
数据字典也是一种分析阶段的工具。什么叫数据字典,我们可以这样理解。假设给了你一个数据流图,但上面的文字说明,比如"看书"、"练习"、"考试"、"拿证书"…(假设这些是数据(知识)的处理过程,但可能有些人认为有个"测试",实际上他的意思是"考试",如果写在数据流图上,其它人认为是"练习测试"的意思,这就造成了数据流图不一致的理解,而数据流图是开发人员和用户都能看懂的,理解肯定是一致的。所以必须有个数据字典,它标识了数据流图的所有名词述语,就好比我们用英汉词典一样,不会再有不一致的理解了。
判定树和判定表都是加工描述方法,当然也是分析阶段的。
PAD图(问题分析图)是详细设计阶段的工具,它的作用类似于程序流程图和N-S图。
关于程序流图和N-S图,二级很多科目都有介绍,前面的题中我也解释过。
(26) 软件开发的结构化生命周期方法将软件生命周期划分成______。
A. 定义、开发、运行维护
B. 设计阶段、编程阶段、测试阶段
C. 总体设计、详细设计、编程调试
D. 需求分析、功能定义、系统设计
[答案]A
[考点]软件工程基础
[评析]
我们可从一个软件的从无到有的过程来看,就是分析人员先分析,开发人员再开发,最终运行和维护。
(27) 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。
A. 循环的集合
B. 地址的集合
C. 路径的集合
D. 目标的集合
[答案]C
[考点]软件工程基础
[评析]
白盒测试,我们要深入源代码的内部;而黑盒测试,我们只关心输入与输出数据是否符合要求。
(28) 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。
A. 数据无冗余
B. 数据可共享
C. 专门的数据管理软件
D. 特定的数据模型
[答案]D
[考点]数据库设计基础
[评析]
文件根据一些压缩技术也可减少冗余,数据库也有冗余,只是比文件少;
文件也可共享,只是比数据库共享性能差;
也有专门的文件管理软件;
数据库发展的模型依次是:
层次模型、网状模型、关系模型、面向对象模型。
其中关系模型目前应用最广泛。
(29) 分布式数据库系统不具有的特点是______。
A. 分布式
B. 数据冗余
C. 数据分布性和逻辑整体性
D. 位置透明性和复制透明性
[答案]B
[考点]数据库设计基础
[评析]
如果论特点,当然是优点,数据冗余是种害处,怎能论特点?
何况分布式数据库还减少了冗余。
(30) 下列说法中,不属于数据模型所描述的内容的是______。
A. 数据结构
B. 数据操作
C. 数据查询
D. 数据约束
[答案]C
[考点]数据库设计基础
[评析]
数据模型的三要素
1.数据结构
数据结构用于描述系统的静态特性。在数据库系统中,通常按照其数据结构的类型来命名数据模型。
2.数据操作
数据操作用于描述系统的动态特征。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。操作有检索、插入、删除、修改。
3.数据完整性约束
数据完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束。此外,数据模型还应该提供定义完整性约束的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |