.一、选择题1.算法的计算量的大小称为计算的(B)。【北京邮电大学2000二、3(20/8分)】A.效率B.复杂性C.现实性D.难度2.算法的时间复杂度取决于(C)【中科院计算所1998二、1(2分)】A.问题的规模B.待处理数据的初态C.A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。(1)A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法(2)A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性D.易读性、稳定性、安全性【南京理工大学1999一、1(2分)【武汉交通科技大学1996一、1(4分)】4.一个算法应该是(B)。【中山大学1998二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5.下面关于算法说法错误的是(D)【南京理工大学2000一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C.算法的可行性是指指令不能有二义性D.以上几个都是错误的6.下面说法错误的是(C)【南京理工大学2000一、2(1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度nO(2)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4A.(1)B.(1),(2)C.(1),(4)D.(3)7.从逻辑上可以把数据结构分为(C)两大类。【武汉交通科技大学1996一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是(D)【。北方交通大学2000二、1(2分)】..A.循环队列B.链表C.哈希表D.栈9.以下数据结构中,哪一个是线性结构(D)?【北方交通大学2001一、1(2分)】A.广义表B.二叉树C.稀疏矩阵D.串10.以下那一个术语与数据的存储结构无关?(A)【北方交通大学2001一、2(2分)】A.栈B.哈希表C.线索树D.双向链表11.在下面的程序段中,对x的赋值语句的频度为(C)【北京工商大学2001一、10(3分)】FORi:=1TOnDOFORj:=1TOnDOx:=x+1;A.O(2n)B.O(n)C.O(n2)D.O(log2)D.O(logn)212.程序段FORi:=n-1DOWNTO1DOFORj:=1TOiDOIFA[j]A[j+1]THENA[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是(D)A.O(n)B.O(nlogn)C.O(n3)D.O(n2)【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型(D)【中山大学1999一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,(A)是非线性数据结构【中山大学1999一、4】A.树B.字符串C.队D.栈4.下列数据中,(C)是非线性数据结构。【北京理工大学2001六、1(2分)】A.栈B.队列C.完全二叉树D.堆16.连续存储设计时,存储单元的地址(A)。【中山大学1999一、1(1分)】A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续17.以下属于逻辑结构的是(C)。【西安电子科技大学应用2001一、1】A.顺序表B.哈希表C.有序表D.单链表..二、判断题5.数据元素是数据的最小单位。(X)【北京邮电大学1998一、1(2分)】【青岛大学2000一、1(1分)】【上海交通大学1998一、1】【山东师范大学2001一、1(2分)】6.记录是数据处理的最小单位。(X)【上海海运学院1998一、5(1分)】7.数据的逻辑结构是指数据的各数据项之间的逻辑关系;(X)【北京邮电大学2002一、1(1分)】4.算法的优劣与算法描述语言无关,但与所用计算机有关。(X)【大连海事大学2001一、10(1分)】5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。(O)【大连海事大学2001一、11(1分)】6.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。(X)【西安交通大学1996二、7(3分)】7.程序一定是算法。(X)【燕山大学1998二、2(2分)并改错】8.数据的物理结构是指数据在计算机内的实际存储形式。(O)【山东师范大学2001一、2(2分)】7.数据结构的抽象操作的定义与具体实现有关。(X)【华南理工大学2002一、1(1分)】8.在顺序存储结构中,有时也存储数据结构中元素之间的关系。(X)【华南理工大学2002一、2(1分)】9.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。(X)【上海海运学院1999一、1(1分)】10.数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。(O)【华南理工大学2002一、5(1分)】11.数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构.(X)【上海海运学院1998一、1(1分)】三、填空1.数据的物理结构包括数据元素的表示和数据元素间关系的表示。【燕山大学1998一、1(2分)】2.对于给定的n个元素,可以构造出的逻辑结构有集合线性结构树形结构图状结构(或网状结构)四种。【中科院计算所1999二、1(4分)】3.数据的逻辑结构是指数据的组织形式,即数据元素之间逻辑关系的总体。..而逻辑关系是指数据元素之间的关联方式或称“邻接关系”。【北京邮电大学2001二、1(2分)】4.一个数据结构在计算机中表示(又称映像)称为存储结构。【华中理工大学2000一、1(1分)】5.抽象数据类型的定义仅取决于它的一组逻辑特性,而与在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。【山东大学2001三、3(2分)】6.数据结构中评价算法的两个重要指标是算法的时间复杂度和空间复杂度【北京理工大学2001七、1(2分)】7.数据结构是研讨数据的_逻辑结构和物理结构,以及它们之间的相互关系,并对与这种结构定义相应的操作(运算),设计出相应的算法。【西安电子科技大学1998二、2(3分)】8.一个算法具有5个特性:(1)有穷性(2)确定性(3)可行性,有零个或多个输入、有一个或多个输出。【华中理工大学2000一、2(5分)】【燕山大学1998一、2(5分)】9.已知如下程序段FORi:=nDOWNTO1DO{语句1}BEGINx:=x+1;{语句2}FORj:=nDOWNTOiDO{语句3}y:=y+1;{语句4}END;语句1执行的频度为n+1;语句2执行的频度为n;语句3执行的频度为n(n+3)/2;语句4执行的频度为n(n+1)/2【。北方交通大学1999二、4(5分)】10.在下面的程序段中,对x的赋值语句的频度为1+(1+2++(1+2+3)+⋯+(1+2+⋯+n)=n(n+1)(n+2)/6O(n3)(表示为n的函数)FORi:=1TOnDOFORj:=1TOiDOFORk:=1TOjDOx:=x+delta;【北京工业大学1999一、6(2分)】12.下面程序段中带下划线的语句的执行次数的数量级是:log2n【合肥工业大学1999三、1(分)】i:=1;WHILEinDOi:=i*2;..8.下面程序段中带下划线的语句的执行次数的数量级是(nlog2n)。【合肥工业大学2000三、1(2分)】i:=1;WHILEinBEGINFORj:=1TOnDOx:=x+1;i:=i*2END;2)13.下面程序段中带有下划线的语句的执行次数的数量级是(log2n【合肥工业大学2001三、1(2分)】i:=n*nWHILEi1DOi:=idiv2;13.计算机执行下面的语句时,语句s的执行次数为(n+3)(n-2)/2。【南京理工大学2000二、1(1.5分)】FOR(i=l;in-l;i++)FOR(j=n;j=i;j--)s;14.下面程序段的时间复杂度为___O(n)_____。(n1)sum=1;for(i=0;sumn;i++)sum+=1;【南京理工大学2001二、1(2分)】16.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。①以下是该函数的程序段,请将未完成的部分填入,使之完整intf(m,n)intm,n;{if(m==1)return1;if(n==1){return1;}if(mn){returnf(m,m);}if(m==n){return1+f(m,n-1);}returnf(m.n-1)+f(m-n,n);}②执行程序,f(6,4)=9。【中科院软件所1997二、1(9分)】3.在有n个选手参加的单循环赛中,总共将进行n(n-1)/2场比赛。【合肥工业大学1999三、8(2分)】四、应用题1.数据结构是一门研究什么内容的学科?【燕山大学1999二、1(4分)】..数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。9.数据元素之间的关系在计算机中有几种表示方法?各有什么特点?【燕山大学1999二、2(4分)】四种表示方法(1)顺序存储方式。数据元素顺序存放,每个存储结点只含一个元素。存储位置反映数据元素间的逻辑关系。存储密度大,但有些操作(如插入、删除)效率较差。(2)链式存储方式。每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。指针反映数据元素间的逻辑关系。这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。(3)索引存储方式。除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。(4)散列存储方式。通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。10.数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类型的主要特点是什么?使用抽象数据类型的主要好处是什么?【北京邮电大学1994一(8分)】数据类型是程序设计语言中的一个概念,它是一个值的集合和操作的集合。如C语言中的整型、实型、字符型等。整型值的范围(对具体机器都应有整数范围),其操作有加、减、乘、除、求余等。实际上数据类型是厂家提供给用户的已实现了的数据结构。“抽象数据类型(ADT)”指一个数学模型及定义在该模型上的一组操作。“抽象”的意义在于数据类型的数学抽象特性。抽象数据类型的定义仅取决于它的逻辑特性,而与其在计算机内部如何表示和实现无关。无论其内部结构如何变化,只要它的数学特性不变就不影响它的外部使用。抽象数据类型和数据类型实质上是一个概念。此外,抽象数据类型的范围更广,它已不再局限于机器已定义和实现的数据类型,还包括用户在设计软件系统时自行定义的数据类型。使用抽象数据类型定义的软件模块含定义、表示和实现三部分,封装在一起,对用户透明(提供接口),而不必了解实现细节。抽象数据类型的出现使程序设计不再是“艺术”,而是向“科学”迈进了一步。11.回答问题(每题2分)【山东工业大学1997一(8分)】..(1)在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的运算之间存在着怎样的关系?数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。数据的运算是对数据定义的一组操作,