数据结构期末复习:第一章绪论(选择题+判断题+程序题)时间复杂度分析
2026/6/6 19:37:55 网站建设 项目流程

数据结构期末复习 第一章 绪论

一、选择题

1、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(B)。

A. 给相关变量分配存储单元

B. 物理结构

C. 算法的具体实现

D. 逻辑结构

2、下列说法中,不正确的是(D)。

A. 数据项是数据中不可分割的最小可标识单位

B. 数据元素是数据的基本单位

C. 数据可有若干个数据元素构成

D. 数据项可由若干个数据元素构成

3、一个存储结点存储一个(A)。

A. 数据元素

B. 数据结构

C. 数据项

D. 数据类型

4、数据结构中,与所使用的计算机无关的是数据的(D)。

A. 存储结构

B. 物理和存储结构

C. 物理结构

D. 逻辑结构

5、下列的叙述中,不属于算法特性的是(C)。

A. 可行性

B. 输入性

C. 可读性

D. 有穷性

6、算法的时间复杂度与(B)有关。

A. 计算机的操作系统

B. 算法本身

C. 数据结构

D. 所使用的计算机。

7、下面程序段的时间复杂度是(B)。

i=s=0;

while (s<n){

i++;

s+=i;

}

A.O(n0.5) B. O(log2n) C. O(n) D.O(1)

8、下面程序段的时间复杂度是(B)。

int f(unsigned int n){

if (n==0||n==1) return 1;

else return n*f(n-1);

}

A.O(1) B. O(log2n) C. O(n!) D. O(n)

9、在数据结构中,从逻辑上可以把数据结构分为(D)。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构

C.内部结构和外部结构 D.线性结构和非线性结构

10、执行下面程序段时,执行S语句的次数为(D)。

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

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

S;

A.n2 B.n2/2 C.n(n+1) D.n(n+1)/2

11、数据的存储结构包括数据元素的表示和(A)。

A. 数据元素间的关系的表示

B. 数据处理的方法

C. 数据元素的类型

D. 相关算法

12、树状结构中数据元素的位置之间存在(D)的关系。

A. 一对一

B. 多对多

C. 每一个元素都有一个直接前驱和一个直接后继

D. 一对多

13、一种逻辑结构(C)。

A. 与存储该逻辑结构的计算机相关

B. 只能有唯一的存储结构

C. 可以有不同的存储结构

D. 是指某一种数据元素的性质

14、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(C)。

A. 逻辑结构

B. 数据元素的存储

C. 存储结构

D. 给数据元素分配存储空间

二、判断题

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

2. 数据的逻辑结构是指各数据元素之间的逻辑关系,是用户根据应用需要建立的。(√)

3. 算法和程序原则上没有区别,在讨论数据结构时二者是通用的。(×

4. 数据的逻辑结构与数据元素本身的内容和形式无关。(√)

5. 算法和程序都应具有下面一些特征:有输入,有输出,确定性,有穷性,有效性。(×

6. 只有用面向对象的计算机语言才能描述数据结构算法。(×

7. 数据元素可以有一个或多个数据项组成。(√)

8. 数据元素之间的抽象关系称为物理结构。(×

9. 数据的逻辑结构在计算机中的表示称为逻辑结构。(×

10. 数据的逻辑结构是与存储该结构的计算机相关的。(×

11.数据结构中,元素之间存在多对多的关系称为树状结构。(×

12. 通常可以把某城市中各公交站点间的线路图抽象成树型结构。(×

13. 通常可以把一本含有不同章节的书的目录结构抽象成线性结构。(×

14. 结构中的数据元素存在多对多的关系称为图形结构。(√)

15.数据结构中,数据可以由一个或多个数据项组成。(×

三、程序题

指出下列各算法的时间复杂度。

1、int prime(int n)

{

int i=1;

int x=(int) sqrt(n);

while (++i<=x)

if (n %i= =0) break;

if (i>x) return 1;

else return 0;

}

答案:O(log2n)

2、int suml(int n)

{

int p=1,s=0;

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

p*=i;

s+=p;

}

return s;

}

答案:O(log2n)

3、 int sum2(int n)

{

int s=0;

for (int I=1; I<=n; I++) {

int p=1;

for (int j=1; j<=I; j++)

p*=j;

s+=p;

}

return s;

}

答案:O(n!)

4、 int fun (int n)

{

int I=1, s=1;

while (s<n)

s+=++I;

return I;

}

答案:O(n)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询