1. 算法的时间复杂度取决于(C )
A.问题的规模 B. 待处理数据的初态 C. A和B
解释:
这个是概念性问题,容易失误就是平时做题时考虑的只是算法本身的循环结构,从而只选A
2. 计算机算法指的是(1 C),它必须具备(2 B) 这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法
(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性
C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性
解释:
第一个空也是概念性问题,就考你记不记得住;
第二个空,算法的特性,一共有五个:
有穷性 确定性 可行性 输入 输出
注意的是,输入和输出不是必须具备的,比如一个函数只打印一句话,没有任何输入;一个函数只计算两个数之和,但不输出。
要区分的是算法的设计要求:
正确性 可读性 健壮性 效率与低存储量需求
3.一个算法应该是( B )。
A.程序 B.问题求解步骤的描述 C.要满足五个基本性 D.A和C.
解释:
和上面一题一样,考的也是概念,B是对的;
A不对是因为程序包括算法和数据结构,算法是程序的灵魂;
C不对是因为满足前三个特性就好,输入和输出不必要;
D不说了,两个错误选项的集合。
4.以下与数据的存储结构无关的术语是( D )。
A.循环队列 B. 链表 C. 哈希表 D. 栈
在这几题开始之前,先来回忆一下几点知识。
数据结构分为逻辑结构和存储结构,其中
逻辑结构包括:集合,线性结构,树形结构,图状结构;
存储结构包括四类:顺序存储,链式存储,散列,索引。
逻辑结构与存储结构相互独立(不会的可以看我另一篇文章),当一种结构被局限于存储方式时,它就不是逻辑结构了。
A:队列既可以是通过数组来实现顺序存储,也可以通过链表实现链式存储,但是本题中是循环队列,而循环队列的实现方式只能是顺序存储,被限制死了,所以与存储结构挂钩;
B:链表不用说了,就是链式存储,也被限制死了;
C:哈希表内容有点多,不细述,但也被限制于散列存储;
D:栈和队列一样,既可以顺序存储,也可以是链式存储,不受存储方式的限制。
5.以下那一个术语与数据的存储结构无关?( A )
A.栈 B. 哈希表 C. 线索树 D. 双向链表
解释:
先看第四题在看这题会容易理解;
A:栈和队列一样,既可以顺序存储,也可以是链式存储,不受存储方式的限制。
B:哈希表内容有点多,不细述,但也被限制于散列存储;
C:线索树的存储方式是链式存储,被限制死了;
D:双向链表的存储方式是链式存储,被限制死了;
6.连续存储设计时,存储单元的地址( A )。
A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续
解释:
这题问的是存储单元的地址是指单个结点存储单元的地址,不是结点与结点之间的地址。
存储单元的地址与存储空间不同,前者指的是单个结点的存储地址,单个结点是不可分割的,所以地址是一定连续的。
7.以下属于逻辑结构的是( C )。
A.顺序表 B. 哈希表 C.有序表 D. 单链表
解释:
先看第四题会更容易理解;
A:顺序表只能是顺序存储;
B:哈希表只能是散列存储;
C:存储方式不受限制,也就是独立于存储结构,所以是逻辑结构;
D:单链表只能是链式存储;
还有注意区分有序表,顺序表和线性表这仨家伙,极易混淆。
有序表:既可以是是顺序存储,也可以是链式存储;
顺序表:是线性表的一种,只能是顺序存储;
线性表:既可以是是顺序存储,也可以是链式存储
8.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。( B )
A.对 B.错
解释:
这句话前面没错,错在最后一句话“算法实际上就是程序了”,这个前面第三题已经说了,算法是程序的一部分,不是程序的全部,程序包括算法和数据结构两个才算得上程序。
9. 数据结构的抽象操作的定义与具体实现有关。( B )
A.对 B.错
解释:
抽象操作是外部怎样使用该数据结构,而具体实现是数据结构内部的事情,一个内一个外,两者互不相关
10. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。( B )
A.对 B.错
解释:
四种存储结构:顺序存储结构 链式存储结构 散列存储结构 索引存储结构
顺序存储结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,不存储数据元素之间的关系,不要和链式存储结构混为一谈了
11. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。( A )
A.对 B.错
解释:
程序是算法和数据结构,是逻辑结构的体现,而逻辑结构和存储结构相互独立,所以正确