数据结构第一章习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题

1. 算法的计算量的大小称为计算的( )

A.效率 B. 复杂性 C. 现实性 D. 难度

3.计算机算法指的是(1),它必须具备(2)这三个特性。

(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法

(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性

C. 确定性、有穷性、稳定性

D. 易读性、稳定性、安全性

4.一个算法应该是()

A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构

C.线性结构、非线性结构 D.初等结构、构造型结构

6.以下数据结构中,哪一个是线性结构()?

A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串

7.以下那一个术语与数据的存储结构无关?()

A.栈 B. 哈希表 C. 线索树 D. 双向链表

8.在下面的程序段中,对x的赋值语句的频度为()

FOR i:=1 TO n DO

FOR j:=1 TO n DO

x:=x+1;

A. O(2n) B.O(n) C.O(n2) D.O(log2n)

9.程序段 FOR i:=n-1 DOWNTO 1 DO

FOR j:=1 TO i DO

IF A[j]>A[j+1]

THEN A[j]与A[j+1]对换;

其中 n为正整数,则最后一行的语句频度在最坏情况下是()

A. O(n)

B. O(nlogn)

C. O(n3)

D. O(n2)

10.以下哪个数据结构不是多型数据类型()

A.栈 B.广义表 C.有向图 D.字符串

11.以下数据结构中,()是非线性数据结构

A.树 B.字符串 C.队 D.栈

12. 下列数据中,()是非线性数据结构。

A.栈 B. 队列 C. 完全二叉树 D. 堆

13.连续存储设计时,存储单元的地址()。

A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续

14.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表

二、判断题

1. 数据元素是数据的最小单位。( )

2. 记录是数据处理的最小单位。 ( )

3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( )

4.算法的优劣与算法描述语言无关,但与所用计算机有关。( )

5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。( )

6.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。( )

7.程序一定是算法。( )

8.数据的物理结构是指数据在计算机内的实际存储形式。( )

9. 数据结构的抽象操作的定义与具体实现有关。( )

10. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。( )

11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )

12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。( )

13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( )

三、填空题

13. 下面程序段中带有下划线的语句的执行次数的数量级是( )

i:=n*n WHILE i<>1 DO i:=i div 2;

14. 计算机执行下面的语句时,语句s的执行次数为 _______ 。

FOR(i=l;i

FOR(j=n;j>=i;j--)

s;

15. 下面程序段的时间复杂度为________。(n>1)

sum=1;

for (i=0;sum

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。

①以下是该函数的程序段,请将未完成的部分填入,使之完整

int f(m,n)

int m,n;

{ if(m==1)

return (1) ;

if(n==1){

return (2) ;}

if(m

{return f(m,m);}

if (m==n)

{return 1+ (3) ;}

return f(m.n-1)+f(m-n, (4) );

}

②执行程序,f(6,4)= 。

17. 在有n个选手参加的单循环赛中,总共将进行______场比赛。

四.问答及应用

1什么是数据它与信息是什么关系

2什么是数据结构有关数据结构的讨论涉及哪三个方面

3数据的逻辑结构分为线性结构和非线性结构两大类。线性结构包括数组、链表、栈、队列、优先级队列等; 非线性结构包括树、图等、这两类结构各自的特点是什么?

4 什么是抽象数据类型?试用C++ 的类声明定义“复数”的抽象数据类型。要求

(1) 在复数内部用浮点数定义它的实部和虚部。

(2) 实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。

(3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。

(4) 定义重载的流函数来输出一个复数。

5 用归纳法证明:

(1)

(2)

(3)

6 什么是算法算法的5个特性是什么试根据这些特性解释算法与程序的区别。

7 设n为正整数, 分析下列各程序段中加下划线的语句的程序步数。

(1) for (int i = 1; i <= n; i++) (2) x = 0; y = 0;

for (int j = 1; j <= n; j++) { for (int i = 1; i <= n; i++)

c[i][j] = 0.0; for (int j = 1; j <= i; j++)

for (int k = 1; k <= n; k++) for (int k = 1; k <= j; k++)

c[i][j] = c[i][j] + a[i][k] * b[k][j]; x = x + y;

}

(3) int i = 1, j = 1; (4) int i =1;

while (i<=n && j<=n) { do {

i = i + 1; j = j + i; for (int j = 1; j <= n; j++)

} i = i + j;

} while ( i < 100 + n );

相关文档
最新文档