第一篇绪论

绪论测验

1、单选题:
‍for (i=0; i<n; i++)
for (j=0; j<m; j++)
   A[i][j]=0;​‍上述算法的时间复杂度是(    )。​
选项:
A:
B:
C:

D:
答案: 【 

2、单选题:
‍程序段​‍for(j=0;j<n;j++)
    for(k=1;k<=n;k++)
        x=x+j;​‍其中 n为正整数,程序的时间复杂度为(   )​
选项:
A:
B:
C:
D:
答案: 【 

3、单选题:
​程序段‌​i=1; 
while(i<n)
   i=i*2;‌​的时间复杂度是(      )。‌
选项:
A:
B:
C:
D:
答案: 【 

4、单选题:
‌程序段‎‌s=i=0;
do 
{
  i=i+1;
  s=s+i;
}while(i<=n);‎‌的时间复杂度为(     )。‎
选项:
A: O(n)
B:
C:
D:
答案: 【 O(n)

5、单选题:
‌程序段sum=1;
for (i=0;sum<n;i++) 
  sum+=1;的时间复杂度是(     )‌
选项:
A:
B:
C:
D:
答案: 【 

6、单选题:
‎抽象数据类型的三个组成部分分别为(  )。‌
选项:
A: 数据对象、数据关系和基本操作
B: 数据元素、逻辑结构和存储结构
C: 数据项、数据元素和数据类型
D: 数据元素、数据结构和数据类型
答案: 【 数据对象、数据关系和基本操作

7、单选题:
‌从逻辑上可以把数据结构分为(     )两大类。 ​
选项:
A: 动态结构、静态结构
B: 顺序结构、链式结构
C: 线性结构、非线性结构
D: 初等结构、构造型结构
答案: 【 线性结构、非线性结构

8、单选题:
​度量一个程序的执行时间有(    )。 ‎
选项:
A: 事后统计的方法
B: 事前分析估算的方法
C: CPU的速度
D: 事前分析估算和事后统计的方法
答案: 【 事前分析估算和事后统计的方法

9、单选题:
‌非线性结构是数据元素之间存在一种(     )。‌
选项:
A: 一对多关系
B: 多对多关系
C: 多对一关系
D: 一对一关系
答案: 【 多对多关系

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: 易读性、稳定性、安全性
答案: 【 可执行性、确定性、有穷性

15、单选题:
​计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(    )等5个特性​
选项:
A: 可执行性、可移植性和可扩充性
B: 可执行性、有穷性和确定性
C: 确定性、有穷性和稳定性
D: 易读性、稳定性和确定性
答案: 【 可执行性、有穷性和确定性

16、单选题:
‎将数组称为随机存储结构是因为(     )。​
选项:
A: 数组元素是随机的
B: 随时可以对数组元素进行访问
C: 对数组的任一元素的存取时间是相等的
D: 数组的存储结构是不定的
答案: 【 随时可以对数组元素进行访问

17、单选题:
‎连续存储设计时,存储单元的地址(     )。‍
选项:
A: 一定连续
B: 一定不连续
C: 不一定连续
D: 部分连续,部分不连续
答案: 【 一定连续

18、单选题:

​某算法的语句执行频度为(),其时间复杂度表示(   )。

‌选项:
A:
B:
C:
D:
答案: 【 

19、单选题:
‍评价一个算法时间性能的主要标准是(    )。‍
选项:
A: 算法易于测试
B: 算法易于理解
C: 算法的稳定性和正确性
D: 算法的时间复杂度
答案: 【 算法的时间复杂度

20、单选题:
‍设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是(     )。‎
选项:
A: 线性结构
B: 树型结构
C: 物理结构
D: 图型结构
答案: 【 树型结构

21、单选题:
‎设数据集合为D={ 1,3,5,7,9 },D上的关系为R,下列数据结构B=(D,R)中为非线性结构的是(   )‏
选项:
A: R={ (5,1), (7,9), (1,7), (9,3) }
B: R={ (9,7), (1,3), (7,1), (3,5) }
C: R={ (1,9), (9,7), (7,5), (5,3) }
D: R={ (1,3), (3,5), (5,9) }
答案: 【 R={ (1,3), (3,5), (5,9) }

22、单选题:
​设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是(   )。​
选项:
A: R={(1,2),(3,4),(5,1)}
B: R={(1,3),(4,1),(3,2),(5,4)}
C: R={(1,2),(2,3),(4,5)}
D: R={(1,3),(2,4),(3,5)}
答案: 【 R={(1,3),(4,1),(3,2),(5,4)}

23、单选题:
‏设数据元素集合为{A,B,C,D,E,F},下列关系为线性结构的是(   )。‏
选项:
A: R={ (D,F),(E,C),(B,C),(A,B),(C,F) }
B: R={ (D,E),(E,A),(B,C),(A,B),(C,F) }
C: R={ (A,B),(C,D),(B,A),(E,F),(F,A) }
D: R={ (D,E),(E,A),(B,C),(F,B),(C,F) }
答案: 【 R={ (D,E),(E,A),(B,C),(A,B),(C,F) }

24、单选题:
‎数据的存储结构是指(   )。‍
选项:
A: 存储在内存储器中的数据。
B: 存储在外存储器中的数据
C: 数据存储所占据的存储空间量。
D: 数据的逻辑结构在计算机中的表示。
答案: 【 数据的逻辑结构在计算机中的表示。

25、单选题:
‏数据的逻辑关系是指数据元素的(     )。‌
选项:
A: 关联
B: 结构
C: 存储方式
D: 数据项
答案: 【 关联

26、单选题:
‎数据的逻辑结构可分为(   )​
选项:
A: 线形结构和树形结构
B: 线形结构与非线形结构
C: 线形结构与星形结构
D: 星形结构与树形结构
答案: 【 线形结构与非线形结构

27、单选题:
​数据的物理结构主要包括(     )。​
选项:
A: 顺序存储结构和链式存储结构
B: 顺序存储结构和树型存储结构
C: 顺序存储结构和网状存储结构
D: 线性存储结构和链式存储结构
答案: 【 顺序存储结构和链式存储结构

28、单选题:
‏数据的最小单位是(     )。‏
选项:
A: 数据类型
B: 数据项
C: 数据元素
D: 数据变量
答案: 【 数据项

29、单选题:
‍数据结构按逻辑结构可分为两大类,它们分别是(    )。‌
选项:
A: 数据和逻辑
B: 线性结构和逻辑结构
C: 非线性结构和逻辑结构
D: 线性结构和非线性结构
答案: 【 线性结构和非线性结构

30、单选题:
‍数据结构包括数据的(     )、数据的(       )和数据的(       )这三个方面的内容。‎
选项:
A: 逻辑结构,存储结构,运算
B: 关系结构,存储结构,逻辑
C: 存储结构,关系结构,逻辑
D: 逻辑结构,存储方式,运算
答案: 【 逻辑结构,存储结构,运算

31、单选题:
‎数据结构被形式地定义为一个二元组(D,S),其中D是(     )的有限集。‍
选项:
A: 算法
B: 数据元素
C: 数据操作
D: 逻辑结构
答案: 【 数据元素

32、单选题:
‏数据结构被形式地定义为一个二元组(D,S),其中S是D上(     )的有限集。​
选项:
A: 操作
B: 映象
C: 存储
D: 关系
答案: 【 关系

33、单选题:
​数据结构分为逻辑结构和存储结构,下列(   )不属于存储结构。​
选项:
A: 顺序表
B: 循环链表
C: 队列
D: 循环队列
答案: 【 队列

34、单选题:
​数据结构是(  )​
选项:
A: 一种数据类型
B: 数据的存储结构
C: 一组性质相同的数据元素的集合
D: 相互之间存在一种或多种特定关系的数据元素的集合
答案: 【 相互之间存在一种或多种特定关系的数据元素的集合

35、单选题:
‌数据结构是一门研究非数值计算的程序设计问题中计算机的(    )以及它们之间的关系和运算的学科 ‎
选项:
A: 操作对象
B: 计算方法
C: 逻辑存储
D: 数据映像
答案: 【 操作对象

36、单选题:
‍数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的(   )和运算的学科。‍
选项:
A: 结构
B: 关系
C: 运算
D: 算法
答案: 【 关系

37、单选题:
‏数据结构在计算机存储空间中的存放形式称为(  )。‌
选项:
A: 数据元素之间的关系
B: 数据结构
C: 数据的存储结构
D: 数据的逻辑结构
答案: 【 数据的存储结构

38、单选题:
‎数据结构中,与所使用的计算机无关的是数据的 (   )结构。‍
选项:
A: 存储
B: 物理
C: 逻辑
D: 物理和存储
答案: 【 逻辑

39、单选题:
‍数据结构主要研究数据的(     )。 ‍
选项:
A: 逻辑结构
B: 存储结构
C: 逻辑结构和存储结构
D: 逻辑结构和存储结构及其运算的实现
答案: 【 逻辑结构和存储结构及其运算的实现

40、单选题:
‍数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种逻辑结构进行的运算以及(     )‍
选项:
A: 数据的存储结构
B: 计算方法
C: 数据映像
D: 逻辑结构
答案: 【 数据的存储结构

41、单选题:
‏数据类型是一个值的集合和定义在这个值集上的一组(   )的总称。‍
选项:
A: 数据
B: 操作
C: 字符
D: 表达式
答案: 【 操作

42、单选题:
​数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为(     )。‍
选项:
A: 存储结构
B: 逻辑结构
C: 顺序存储结构
D: 链式存储结构
答案: 【 顺序存储结构

43、单选题:
​顺序存储结构的优点是(    )。​
选项:
A: 存储密度大
B: 插入运算方便
C: 删除运算方便
D: 可方便地用于各种逻辑结构的存储表示
答案: 【 存储密度大

44、单选题:
‍顺序存储结构中数据元素之间的逻辑关系是由(    )表示的。‏
选项:
A: 线性结构
B: 非线性结构
C: 存储位置
D: 指针
答案: 【 存储位置

45、单选题:
‌算法‏‌i=1;   
while(i<=n)  
  i=i*3;‏‌的时间复杂度是(     )。 ‏
选项:
A:

B:
C:
D:
答案: 【 

46、单选题:
‏算法的计算量的大小称为计算的(     )。‌
选项:
A: 效率
B: 复杂性
C: 现实性
D: 难度
答案: 【 复杂性

47、单选题:
‎算法的空间复杂度是指(   )‌
选项:
A: 算法程序的长度
B: 算法程序中的指令条数
C: 算法程序所占的存储空间
D: 执行算法所需要的内存空间
答案: 【 执行算法所需要的内存空间

48、单选题:
‎算法的时间复杂度取决于( )。 ‍
选项:
A: 问题的规模
B: 待处理数据的初态
C: 数据类型
D: 问题的规模和待处理数据的初态
答案: 【 问题的规模和待处理数据的初态

49、单选题:
‌算法的时间复杂度是指(   )‍
选项:
A: 执行算法程序所需要的时间
B: 算法程序的长度
C: 算法执行过程中所需要的基本运算次数
D: 算法程序中的指令条数
答案: 【 算法执行过程中所需要的基本运算次数

50、单选题:
‍算法的效率主要是指(   ) ‍
选项:
A: 算法的空间效率
B: 算法的时间效率
C: 算法的空间效率和时间效率
D: 以上说法都不对
答案: 【 算法的空间效率和时间效率

51、单选题:
‌算法的有穷性是指(   )。​
选项:
A: 算法程序的运行时间是有限的
B: 算法程序所处理的数据量是有限的
C: 算法程序的长度是有限的
D: 算法只能被有限的用户使用
答案: 【 算法程序的运行时间是有限的

52、单选题:
‏算法分析的两个主要方面是(     )。‎
选项:
A: 空间复杂性和时间复杂性
B: 正确性和简明性
C: 可读性和文档性
D: 数据复杂性和程序复杂性
答案: 【 空间复杂性和时间复杂性

53、单选题:
‎算法分析的目的是(   )。 ‎
选项:
A: 研究算法中的输入和输出的关系
B: 找出数据结构的合理性
C: 分析算法的易懂性和文档性
D: 分析算法的效率以求改进
答案: 【 分析算法的效率以求改进

54、单选题:
‍算法空间复杂度的度量方法是(   )。‌
选项:
A: 算法程序的长度
B: 算法所处理的数据量
C: 执行算法所需要的工作单元
D: 执行算法所需要的存储空间
答案: 【 执行算法所需要的存储空间

55、单选题:
‌算法能正确地实现预定功能的特性称为算法的(     )。‎
选项:
A: 正确性
B: 易读性
C: 健壮性
D: 高效率
答案: 【 正确性

56、单选题:
‎算法时间复杂度的度量方法是(   )。‍
选项:
A: 算法程序的长度
B: 执行算法所需要的基本运算次数
C: 执行算法所需要的所有运算次数
D: 执行算法所需要的时间
答案: 【 执行算法所需要的基本运算次数

57、单选题:
‎算法时间复杂度是以基本操作重复执行的(   )作为算法的时间量度。‍
选项:
A: 时间
B: 次数
C: 顺序
D: 过程
答案: 【 次数

58、单选题:
‎算法是()。​
选项:
A: 计算机程序
B: 解决问题的计算方法
C: 排序算法
D: 解决问题的有限运算序列
答案: 【 解决问题的有限运算序列

59、单选题:
‎算法在发生非法操作时可以作出处理的特性称为(      )。‍
选项:
A: 正确性
B: 易读性
C: 健壮性
D: 可靠性
答案: 【 健壮性

60、单选题:
‍通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着(       )。‎
选项:
A: 数据元素具有同一特点
B: 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C: 每个数据元素都一样
D: 数据元素所包含的数据项的个数要相等
答案: 【 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致

61、单选题:
‌通常用平均性态分析和(   )两种方式来确定一个算法的工作量‍
选项:
A: 最坏情况复杂性
B: 最好情况复杂性
C: 次好情况复杂性
D: 次坏情况复杂性
答案: 【 最坏情况复杂性

62、单选题:
‎我们在讨论某种数据结构时,主要讨论四个方面的问题: ①数据的逻辑结构②数据的存储结构③在数据的逻辑结构上定义的数据的基本操作;④基本操作算法的具体实现;这四个问题的讨论的先后顺序应该是怎样的(     )。‏
选项:
A: ①②③④
B: ①③②④
C: ②①③④
D: ②①④③
答案: 【 ①②③④

63、单选题:
‏下列不属于算法的性能标准的是(   )‍
选项:
A: 可行性
B: 正确性
C: 可读性
D: 健壮性
答案: 【 可行性

64、单选题:
‏下列程序段的时间复杂度为(     )。​‏for(i=0;i<m;i++) 
 for(j=0;j<t;j++) 
  c[i][j]=0;
for(i=0;i<m;i++) 
 for(j=0;j<t;j++) 
  for(k=0;k<n;k++) 
   c[i][j]=c[i][j]+a[i][k]*b[k][j];​
选项:
A:
B:
C:
D:
答案: 【 

65、单选题:
‎下列程序段的时间复杂度为(     )。‌‎i=0;s=0; 
while(s<n) 
{s=s+i;i++;}‌
选项:
A:
B:
C:
D:
答案: 【 

66、单选题:
‍下列程序段的时间复杂度为(   )。‏‍x=n;y=0;
while(x>=(y+1)*(y+1))
  y=y+1;‏
选项:
A:
B:
C:
D:
答案: 【 

67、单选题:
‎下列关于算法的描述中错误的是(   )。 ​
选项:
A: 算法强调动态的执行过程,不同于静态的计算公式
B: 算法必须能在有限个步骤之后终止
C: 算法设计必须考虑算法的复杂度
D: 算法的优劣取决于运行算法程序的环境
答案: 【 算法的优劣取决于运行算法程序的环境

68、单选题:
‎下列关于算法复杂度叙述正确的是(   )。​
选项:
A: 最坏情况下的时间复杂度一定高于平均情况的时间复杂度
B: 时间复杂度与所用的计算工具无关
C: 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的
D: 时间复杂度与采用的算法描述语言有关
答案: 【 时间复杂度与所用的计算工具无关

69、单选题:
​下列关于算法说法错误的是(   ) ‌
选项:
A: 算法是对特定问题求解步骤的一种描述
B: 算法是指令的有限序列
C: 算法是在存储结构上的操作实现方法
D: 算法就是数学中的计算方法
答案: 【 算法就是数学中的计算方法

70、单选题:
​下列说法错误的是(   )‎
选项:
A: 数据是指描述客观事物的特征及活动所采用的符号形式
B: 数据元素是数据的基本单位
C: 数据在计算机存储器内的存在形式称为机外表示
D: 数据处理方式总是与数据的表示形式相联系
答案: 【 数据在计算机存储器内的存在形式称为机外表示

71、单选题:
‏下列说法正确的是(   )‌
选项:
A: 时间性能是指存储空间的利用效率
B: 空间性能是指在一种存储结构上算法实现的时间复杂度
C: 空间性能是指存储空间的利用效率
D: 其他说法都不对
答案: 【 空间性能是指存储空间的利用效率

72、单选题:
‌下列算法中语句"x=x*2;"的执行次数是(     )。‌‌void suanfa(int n)
{ int i,j,x=1;
  for(i=1;i<=n;i++)
  for(j=i;j<=n;j++)
     x=x*2;
  printf("%d",x);
 }‌
选项:
A: n(n-1)/2
B: n(n+1)/2
C:
D:
答案: 【 n(n+1)/2

73、单选题:
‍下列算法的时间复杂度是(   )。‎‍void  combi(int n)
{    int i,j,k;
     for(i=1;i<=n;i++) 
        for(j=i+1;j<=n;j++)
           for(k=j+1;k<=n;k++)
              printf("%d %d %d",i,j,k);
}‎
选项:
A:
B:
C:
D:
答案: 【 

74、单选题:
‍下列算法的时间复杂度是(   )。‎‍void binary(int n){ 
 while(n)
  { printf("%d",n);
    n=n/2;
  }
}‎
选项:
A:
B:
C:
D:
答案: 【 

75、单选题:
‏下列叙述中错误的是(   )。‎
选项:
A: 数据结构中的数据元素可以是另一数据结构
B: 数据结构中的数据元素不能是另一数据结构
C: 空数据结构可以是线性结构也可以是非线性结构
D: 非空数据结构可以没有根结点
答案: 【 数据结构中的数据元素不能是另一数据结构

76、单选题:
‎下列叙述中错误的是(   )。‌
选项:
A: 算法的时间复杂度与算法所处理数据的存<br/>储结构有直接关系
B: 算法的空间复杂度与算法所处理数据的存储结构有直接关系
C: 算法的时间复杂度与空间复杂度有直接关系
D: 算法的时间复杂度与空间复杂度没有关系
答案: 【 算法的时间复杂度与空间复杂度有直接关系

77、单选题:
‍下列叙述中正确的是(   )‎
选项:
A: 算法复杂度是指算法控制结构的复杂程度
B: 算法复杂度是指设计算法的难度
C: 算法的时间复杂度是指设计算法的工作量
D: 算法的复杂度包括时间复杂度与空间复杂度
答案: 【 算法的复杂度包括时间复杂度与空间复杂度

78、单选题:
​下列叙述中正确的是(   )。‎
选项:
A: 程序执行的效率与数据的存储结构密切相关
B: 程序执行的效率只取决于程序的控制结构
C: 程序执行的效率只取决于所处理的数据量
D: 其他三种说法都不对
答案: 【 程序执行的效率与数据的存储结构密切相关

79、单选题:
‎下列叙述中正确的是(   )。‏
选项:
A: 数据结构中的数据元素可以是另一种数据结构
B: 数据结构中的数据元素只能是另一种线性结构
C: 数据结构中的数据元素只能是另一种非线性结构
D: 其他都不正确
答案: 【 数据结构中的数据元素可以是另一种数据结构

80、单选题:
​下列叙述中正确的是(   )。‌
选项:
A: 算法的效率只与问题的规模有关,而与数据的存储结构无关
B: 算法的时间复杂度是指执行算法所需要的计算工作量
C: 数据的逻辑结构与存储结构是一一对应的
D: 算法的时间复杂度与空间复杂度一定相关
答案: 【 算法的时间复杂度是指执行算法所需要的计算工作量

81、单选题:
‍下列叙述中正确的是(   )。‏
选项:
A: 所谓算法就是计算方法
B: 程序可以作为算法的一种描述方法
C: 算法设计只需考虑得到计算结果
D: 算法设计可以忽略算法的运算时间
答案: 【 程序可以作为算法的一种描述方法

82、单选题:
‎下列叙述中正确的是(   )​
选项:
A: 算法的复杂度用于衡量算法的控制结构
B: 算法的有穷性是指算法的规模不能太大
C: 程序可以作为算法的一种表达方式
D: 算法的效率与数据的存储结构无关
答案: 【 程序可以作为算法的一种表达方式

83、单选题:
‎下列叙述中正确的是(   )。‍
选项:
A: 算法的执行效率与数据的存储结构无关。
B: 算法的空间复杂度是算法程序中指令(或语句)的条数。
C: 算法的有穷性是指算法必定在执行有限个步骤之后完成。
D: 算法的可行性是指算法能得到结果。
答案: 【 算法的有穷性是指算法必定在执行有限个步骤之后完成。

84、单选题:
​下列叙述中正确的是(   )。‌
选项:
A: 对同一批数据作不同的处理,如果数据存储结构相同,不同算法的时间复杂度肯定相同
B: 解决同一个问题的不同算法的时间复杂度必定是相同的
C: 对同一批数据作同一种处理,如果数据存储结构不同,不同算法的时间复杂度肯定相同
D: 解决同一个问题的不同算法的时间复杂度一般是不同的
答案: 【 解决同一个问题的不同算法的时间复杂度一般是不同的

85、单选题:
‍下列叙述中正确的是(   )。‌
选项:
A: 数据的逻辑结构与存储结构必定是一一对应的
B: 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C: 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
D: 其他三种说法都不对
答案: 【 其他三种说法都不对

86、单选题:
‌下列叙述中正确的是(   )。​
选项:
A: 数据的逻辑结构与存储结构是一一对应的。
B: 算法的空间复杂度是指算法程序的长度。
C: 算法的效率只与所处理数据的规模有关,与数据的存储结构无关。
D: 数据的逻辑结构反映数据之间的逻辑关系。
答案: 【 数据的逻辑结构反映数据之间的逻辑关系。

87、单选题:
‍下列叙述中正确的是(   )。‏
选项:
A: 算法的空间复杂度大,其时间复杂度就小。
B: 算法的空间复杂度大,其时间复杂度也大。
C: 算法的时间复杂度小,其空间复杂度必定小。
D: 其他三种说法都不对。
答案: 【 其他三种说法都不对。

88、单选题:
‎下列叙述中正确的是(   )。‏
选项:
A: 算法就是程序
B: 设计算法时只需要考虑数据结构的设计
C: 设计算法只需要考虑结果的可靠性
D: 其他三种说法都不对
答案: 【 其他三种说法都不对

89、单选题:
‌下列叙述中正确的是(   )。​
选项:
A: 算法就是程序
B: 算法强调的是利用技巧提高程序执行的效率
C: 设计算法时只需考虑结果的可靠性
D: 其他三种说法都不对
答案: 【 其他三种说法都不对

90、单选题:
‍下列叙述中正确的是(   )。‌
选项:
A: 一个算法的空间复杂度大,则其时间复杂度也必定大
B: 一个算法的空间复杂度大,则其时间复杂度必定小
C: 一个算法的时间复杂度大,则其空间复杂度必定小
D: 其他三种说法都不对
答案: 【 其他三种说法都不对

91、单选题:
‍下列叙述中正确的是(   )。​
选项:
A: 由于计算机存储系统是线性的,所以数据的存储结构也一定是线性的
B: 程序设计语言中的数组是顺序存储结构的,所以利用数组只能处理线性结构数据
C: 数据的逻辑结构与存储结构必定是一一对应的
D: 其他三种说法都不对
答案: 【 其他三种说法都不对

92、单选题:
‌下列叙述中正确的是(   )。​
选项:
A: 一个逻辑数据结构只能有一种存储结构
B: 数据的逻辑结构属于线性结构,存储结构属于非线性结构
C: 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D: 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
答案: 【 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

93、单选题:
‎下面(   )不是算法所必须具备的特性。‎
选项:
A: 有穷性
B: 确切性
C: 高效性
D: 可行性
答案: 【 高效性

94、单选题:
‏下面程序的时间复杂为(     )。‎‏for(i=1,s=0;i<=n;i++) 
{ t=1;
  for(j=1;j<=i;j++) 
     t=t*j;
  s=s+t;
}‎
选项:
A:
B:
C:
D:
答案: 【 

95、单选题:
​下面程序段的时间复杂度是(   )。‍​i=s=0;
while(s<n){
  i++;s+=i;
}‍​‍
选项:
A:
B:
C:
D:
答案: 【 

96、单选题:
‌下面程序段的时间复杂度为(   )‎‌   for (int i=0;i<m;i++)
       for (int j=0;j<n;j++)
         a[i][j]=i*j;‎
选项:
A:
B:
C:
D:
答案: 【 

97、单选题:
‍下面程序段的时间复杂度为(   )‏‍int  f(int  n) 
{
    if(n==0 || n==1)  
        return 1;
    else  
        return  n*f(n-1);
}‏
选项:
A:
B:
C:
D:
答案: 【 

98、单选题:
‍下面程序段的时间复杂度为(   )。‌‍i=1;
while(i<=n)
i=i*3;‌
选项:
A:
B:
C:
D:
答案: 【 

99、单选题:
‌下面程序段的时间复杂度为(  )。‍‌int i=n,s1=0,s2=0;
while(i!=0)
{  
    if(i%2)
        s1+=i;
    else 
        s2+=i;  
    i=i/2; 
}‍
选项:
A:
B:
C:
D:
答案: 【 

100、单选题:
‌下面的程序段违反了算法的(    )原则。‍‌void sam()
{  int n=1;
   while(n%2==1)   
     n+=2;
}‍
选项:
A: 有穷性
B: 确定性
C: 可行性
D: 健壮性
答案: 【 有穷性

101、单选题:
‌下面的程序段中, n为正整数,则最后一行的语句频度在最坏情况下是(  )。‌‌for(i=n-1;i>=1;i--)
 for(j=1;j<=i;j++)
  if (A[j]>A[j+1])
   A[j]与A[j+1]对换;‌
选项:
A:
B:
C:
D:
答案: 【 

102、单选题:
​下面关于算法的说法,正确的是(     )。‌
选项:
A: 算法的时间复杂度一般与算法的空间复杂度成正比
B: 解决某问题的算法可能有多种,但肯定采用相同的数据结构
C: 算法的可行性是指算法的指令不能有二义性
D: 同一个算法,实现语言的级别越高,执行效率就越低
答案: 【 同一个算法,实现语言的级别越高,执行效率就越低

103、单选题:
​下面叙述正确的是(     )。‎
选项:
A: 算法的执行效率与数据的存储结构无关
B: 算法的空间复杂度是指算法程序中指令(或语句)的条数
C: 算法的有穷性是指算法必须能在执行有限个步骤之后终止
D: 其他三种描述都不对
答案: 【 算法的有穷性是指算法必须能在执行有限个步骤之后终止

104、单选题:
‍下面叙述正确的是(     )。‎
选项:
A: 算法的执行效率与数据的存储结构无关
B: 算法的空间复杂度是指算法程序中指令(或语句)的条数
C: 其他三种描述都不对
D: 算法的执行效率只与数据的存储结构有关
答案: 【 其他三种描述都不对

105、单选题:
‏下面叙述正确的是(   )‍
选项:
A: 算法的有穷性是指算法必须能在执行有限个步骤之后终止
B: 算法的空间复杂度是指算法程序中指令(或语句)的条数
C: 算法的执行效率与数据的存储结构无关
D: 其他三种描述都不对
答案: 【 算法的有穷性是指算法必须能在执行有限个步骤之后终止

106、单选题:
‍下面有关算法说法错误的是(     )。‏
选项:
A: 算法最终必须由计算机程序实现
B: 为解决某问题的算法同为该问题编写的程序含义是相同的
C: 算法的可行性是指指令不能有二义性
D: 其他几个都是错误的
答案: 【 其他几个都是错误的

107、单选题:
‏研究数据结构就是研究(    )。‏
选项:
A: 数据的逻辑结构
B: 数据的存储结构
C: 数据的逻辑结构和存储结构
D: 数据的逻辑结构、存储结构及其数据在运算上的实现
答案: 【 数据的逻辑结构、存储结构及其数据在运算上的实现

108、单选题:
​要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为(     )。‌
选项:
A: 逻辑结构、存储结构、原始数据
B: 存储结构、逻辑结构、原始数据
C: 原始数据、逻辑结构、存储结构
D: 原始数据、存储结构、逻辑结构
答案: 【 原始数据、逻辑结构、存储结构

109、单选题:

‎一个算法的时间复杂度为,其数量级表示为(        )。

‍选项:
A:
B:
C:
D:
答案: 【 

110、单选题:
​以下关于数据的存储结构的叙述中哪一条是正确的(   )。‍
选项:
A: 数据的存储结构是数据间关系的抽象描述
B: 数据的存储结构是逻辑结构在计算机存储器中的实现
C: 数据的存储结构分为线性结构和非线性结构
D: 数据的存储结构对数据运算的具体实现没有影响
答案: 【 数据的存储结构是逻辑结构在计算机存储器中的实现

111、单选题:
‏以下数据结构中,(   )是非线性数据结构。‎
选项:
A: 树
B: 字符串
C: 队列
D: 栈
答案: 【 树

112、单选题:
‏以下说法错误的是(      )。‌
选项:
A: 用数字式计算机解决问题的实质是对数据的加工处理
B: 程序设计的实质是数据处理
C: 数据的逻辑结构是数据的组织形式,基本运算规定了数据的基本操作方式
D: 运算实现是完成运算功能的算法,或这些算法的设计
答案: 【 程序设计的实质是数据处理

113、单选题:
‍以下说法错误的是(   )。‎
选项:
A: 所谓数据的逻辑结构指的是数据元素之间的逻辑关系的整体
B: 数据的逻辑结构是指各数据元素之间的逻辑关系,是用户按使用需要而建立的
C: 数据项是数据的基本单位
D: 数据结构、数据元素、数据项在计算机中的映象分别称为存储结构、结点、数据域
答案: 【 数据项是数据的基本单位

114、单选题:
‍以下说法正确的是(   )。‌
选项:
A: 数据元素是数据的最小单位
B: 数据项是数据的基本单位
C: 数据结构是带有结构的各数据项的集合
D: 数据结构是带有结构的数据元素的集合
答案: 【 数据结构是带有结构的数据元素的集合

115、单选题:
‌与数据元素本身的形式、内容、相对位置、个数无关的是数据的 (   )。​
选项:
A: 存储结构
B: 存储实现
C: 逻辑结构
D: 运算实现
答案: 【 逻辑结构

116、单选题:
‌在存储数据时,通常不仅要存储各数据元素的值,而且还要存储(    )。‎
选项:
A: 数据的处理方法
B: 数据元素的类型
C: 数据元素之间的关系
D: 数据的存储方法
答案: 【 数据元素之间的关系

117、单选题:
‎在发生非法操作时,算法能够作出适当处理的特性称为(    )。‏
选项:
A: 正确性
B: 健壮性
C: 可读性
D: 可移植性
答案: 【 健壮性

118、单选题:
‍在计算机中,算法是(   )‏
选项:
A: 加工方法
B: 解题方案的准确而完整的描述
C: 排序方法
D: 查询方法
答案: 【 解题方案的准确而完整的描述

119、单选题:
‌在树形结构中,数据元素之间存在(   )的关系。‍
选项:
A: 多对多
B: 一对一
C: 一对多
D: 多对一
答案: 【 一对多

120、单选题:
‌在数据结构中,从逻辑上可以把数据结构分成(   )。‍
选项:
A: 动态结构和静态结构
B: 紧凑结构和非紧凑结构
C: 线性结构和非线性结构
D: 内部结构和外部结构
答案: 【 线性结构和非线性结构

121、单选题:
‎在算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的(   )‍
选项:
A: 正当性
B: 可行性
C: 确定性
D: 有穷性
答案: 【 确定性

122、单选题:
‏在图状(网状)结构中,数据元素之间存在(   )的关系。‍
选项:
A: 多对多
B: 一对一
C: 一对多
D: 多对一
答案: 【 多对多

123、单选题:
‏在下列数据基本逻辑结构中,数据元素之间关系最弱的是(     )。‍
选项:
A: 线性结构
B: 树形结构
C: 图状结构
D: 集合
答案: 【 集合

124、单选题:
‍在下面的程序段中,对x的赋值语句的频度为(    )。‌‍for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)   
    x=x+1;‌
选项:
A:
B:
C:
D:
答案: 【 

125、单选题:
‌在下面的程序段中,对x的赋值语句的频度为(    )。‏‌for(k=1;k<=n;k++)
   for(j=1;j<=n;j++)
       x=x+1;‏
选项:
A:
B:
C:
D:
答案: 【 

126、单选题:
‎在下面的程序段中,对x的赋值语句的频度为(   )。‍‎ for(i=0;i<n;i++)
  for(j=0;j<i;j++)
    for(k=0;k<j;k++)
      x=x+delta;‍
选项:
A:
B:
C:
D:
答案: 【 

127、单选题:
‎以下说法正确的是(   )。‍
选项:
A: 数据元素是数据的最小单位
B: 数据项是数据的基本单位
C: 一些表面上很不相同的数据可以有相同的逻辑结构
D: 数据结构是带有结构的各数据项的集合
答案: 【 一些表面上很不相同的数据可以有相同的逻辑结构

128、判断题:
‎程序一定是算法。‎
选项:
A: 正确
B: 错误
答案: 【 错误

129、判断题:
‎抽象数据类型(ADT)包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。‍
选项:
A: 正确
B: 错误
答案: 【 正确

130、判断题:
‌抽象数据类型的定义仅取决于它的一组逻辑操作,而与其在计算机内部如何表示和实现无关。‎
选项:
A: 正确
B: 错误
答案: 【 正确

131、判断题:
‏抽象数据类型与计算机内部表示和实现无关。​
选项:
A: 正确
B: 错误
答案: 【 正确

132、判断题:
‌从逻辑关系上讲,数据结构主要分为线性结构和非线性结构。‌
选项:
A: 正确
B: 错误
答案: 【 正确

133、判断题:
​对数据的任何运算都不能改变数据原有的结构特性。‎
选项:
A: 正确
B: 错误
答案: 【 正确

134、判断题:
‍对于给定的n个元素,可以构造出的逻辑结构有集合、线性结构、图状结构和网状结构四种。‏
选项:
A: 正确
B: 错误
答案: 【 错误

135、判断题:
‏记录是数据处理的最小单位。‏
选项:
A: 正确
B: 错误
答案: 【 错误

136、判断题:
​健壮的算法不会因非法的输入数据而出现莫名其妙的状态。‏
选项:
A: 正确
B: 错误
答案: 【 正确

137、判断题:
‍逻辑结构不相同的数据,必须采用不同的存储方法来存储。​
选项:
A: 正确
B: 错误
答案: 【 错误

138、判断题:
‎树型结构和图形结构都是非线性结构。‌
选项:
A: 正确
B: 错误
答案: 【 正确

139、判断题:
‌数据的存储结构独立于计算机。​
选项:
A: 正确
B: 错误
答案: 【 错误

140、判断题:
​数据的存储结构是数据的逻辑结构的存储映象。‍
选项:
A: 正确
B: 错误
答案: 【 正确

141、判断题:
​数据的逻辑结构分为线性结构和非线性结构。‌
选项:
A: 正确
B: 错误
答案: 【 正确

142、判断题:
‍数据的逻辑结构和数据的存储结构是相同的。​
选项:
A: 正确
B: 错误
答案: 【 错误

143、判断题:
‌数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。‎
选项:
A: 正确
B: 错误
答案: 【 正确

144、判断题:
‌数据的逻辑结构是依赖于计算机的。‏
选项:
A: 正确
B: 错误
答案: 【 错误

145、判断题:
‌数据的逻辑结构是指各数据元素之间的逻辑关系,是用户根据需要而建立的。‏
选项:
A: 正确
B: 错误
答案: 【 正确

146、判断题:
‎数据的逻辑结构是指数据的各数据项之间的逻辑关系。‎
选项:
A: 正确
B: 错误
答案: 【 错误

147、判断题:
‌数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构。‎
选项:
A: 正确
B: 错误
答案: 【 错误

148、判断题:
‎数据的逻辑结构与数据元素本身的内容和形式无关。‎
选项:
A: 正确
B: 错误
答案: 【 正确

149、判断题:
‌数据的物理结构包括数据元素的表示和数据元素间关系的表示。​
选项:
A: 正确
B: 错误
答案: 【 正确

150、判断题:
‏数据的物理结构是指数据在计算机内的实际存储形式。‎
选项:
A: 正确
B: 错误
答案: 【 正确

151、判断题:
​数据结构的抽象操作的定义与具体实现有关。‌
选项:
A: 正确
B: 错误
答案: 【 错误

152、判断题:
‍数据结构的概念包括数据的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。‏
选项:
A: 正确
B: 错误
答案: 【 正确

153、判断题:
‏数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。‌
选项:
A: 正确
B: 错误
答案: 【 正确

154、判断题:
‏数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。‍
选项:
A: 正确
B: 错误
答案: 【 正确

155、判断题:
‌数据结构是带有结构和关系的数据元素的集合。‍
选项:
A: 正确
B: 错误
答案: 【 正确

156、判断题:
​数据结构是指相互之间存在一种或多种关系的数据元素的全体。‌
选项:
A: 正确
B: 错误
答案: 【 错误

157、判断题:
​数据结构中评价算法的两个重要指标是时间复杂度和运行效率。​
选项:
A: 正确
B: 错误
答案: 【 错误

158、判断题:
‏数据元素是数据的最小单位。‎
选项:
A: 正确
B: 错误
答案: 【 错误

159、判断题:
‌算法的描述方法只有语言方式。‌
选项:
A: 正确
B: 错误
答案: 【 错误

160、判断题:
‏算法的时间复杂度都是以算法中执行频度最高的语句的执行次数来确定。‏
选项:
A: 正确
B: 错误
答案: 【 错误

161、判断题:
‍算法的时间复杂度是算法执行时间的绝对度量。‎
选项:
A: 正确
B: 错误
答案: 【 错误

162、判断题:
​算法的时间复杂度是问题规模的函数。‎
选项:
A: 正确
B: 错误
答案: 【 正确

163、判断题:
‍算法的效率与存储空间需求均与问题的规模有关。‍
选项:
A: 正确
B: 错误
答案: 【 正确

164、判断题:
‏算法的优劣与算法描述语言无关,但与所用计算机有关。‏
选项:
A: 正确
B: 错误
答案: 【 错误

165、判断题:
‍算法的正确性是指算法不存在错误。‏
选项:
A: 正确
B: 错误
答案: 【 错误

166、判断题:
‌算法分析的目的是分析算法的效率以求改进。​
选项:
A: 正确
B: 错误
答案: 【 正确

167、判断题:
‎算法可以用任意的符号来描述(       )。‍
选项:
A: 正确
B: 错误
答案: 【 正确

168、判断题:
​算法是对解题方法和步骤的描述(       )。‌
选项:
A: 正确
B: 错误
答案: 【 正确

169、判断题:
‎算法只能用语言描述,如用C语言或PASCAL语言等高级语言描述。‏
选项:
A: 正确
B: 错误
答案: 【 错误

170、判断题:
​一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。‌
选项:
A: 正确
B: 错误
答案: 【 正确

171、判断题:
‏在决定选取何种存储结构时,一般不考虑各结点的值如何。‍
选项:
A: 正确
B: 错误
答案: 【 正确

172、判断题:
‏组成数据的基本单位称为数据元素。‌
选项:
A: 正确
B: 错误
答案: 【 正确

第二篇线性表

链表测验

1、单选题:
​(1) 静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第i个元素的时间与i无关。‌​(2) 静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。‌​(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。‌​以上错误的是(    )‌
选项:
A: (1)、(2)
B: (1)
C: (1)、(2)、(3)
D: (2)
答案: 【 (1)

2、单选题:
‏不带头结点的单链表head为空的判断条件是(   )。‌
选项:
A: head=NULL
B: head->next=NULL
C: head->next=head
D: head!=NULL
答案: 【 head=NULL

3、单选题:
‎除了(    ) ,其它任何指针都不能在算法中作为常量出现,也无法显示。‍
选项:
A: 头指针
B: 尾指针
C: 指针型变量
D: 空指针
答案: 【 空指针

4、单选题:
‌从表中任一结点出发,都能扫描整个表的是 (   )。​
选项:
A: 单链表
B: 顺序表
C: 循环链表
D: 静态链表
答案: 【 循环链表

5、单选题:
‎存储密度,在计算机中是指结点数据本身所占的存储量和整个结点结构所占的存储量之比,计算公式:存储密度=(结点数据本身所占的存储量)/(结点结构所占的存储总量)。单链表的存储密度(   )。‎
选项:
A: 大于1
B: 小于1
C: 等于1
D: 不能确定
答案: 【 小于1

6、单选题:
‌带头结点的双循环链表L为空表的条件是(    )。‏
选项:
A: L->next==NULL && L->prior==L
B: L->next==L && L->prior==NULL
C: L->next==L && L->prior==L
D: L->next==NULL && L->prior==NULL
答案: 【 L->next==L && L->prior==L

7、单选题:
‌单链表中,增加头结点的目的是为了(      )。‌
选项:
A: 使单链表至少有一个结点
B: 标示表结点中首结点的位置
C: 方便运算的实现
D: 说明单链表是线性表的链式存储实现
答案: 【 方便运算的实现

8、单选题:
‏对于双向链表,在两个结点之间插入一个新结点需修改的指针共(   )个,单链表为(   )个。‏
选项:
A: 4,1
B: 4,2
C: 1,4
D: 2,4
答案: 【 4,2

9、单选题:
‏对于一个具有n个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为(   )。‏
选项:
A: O(n)
B: O(n-1)
C:
D: O(1)
答案: 【 O(n)

10、单选题:
‏非空的循环单链表head的尾结点p满足(    )。‎
选项:
A: p->next=head
B: p->next=NIL
C: p=NULL
D: p= head
答案: 【 p->next=head

11、单选题:
​根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成(    );而又根据指针的连接方式,链表又可分成(   )。‌
选项:
A: 单链表和多重链表,动态链表和静态链表
B: 动态链表和静态链表,单链表和多重链表
C: 单链表和静态链表,多重链表和动态链表
D: 多重链表和动态链表,单链表和静态链表
答案: 【 单链表和多重链表,动态链表和静态链表

12、单选题:
‏将长度为n的单链表连接在长度为m的单链表之后的算法的时间复杂度为(   )。​
选项:
A: O(1)
B: O(n)
C: O(m)
D: O(m+n)
答案: 【 O(m)

13、单选题:
‎静态链表中指针表示的是(    )。‍
选项:
A: 内存地址
B: 数组下标
C: 下一元素位置
D: 左、右孩子地址
答案: 【 下一元素位置

14、单选题:
‎链表不具有的特点是(   )。‏
选项:
A: 可随机访问任一元素
B: 插入、删除不需要移动元素
C: 不必事先估计存储空间
D: 所需空间与线性表长度成正比
答案: 【 可随机访问任一元素

15、单选题:
‎链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用(   )存储方式最节省运算时间。‎
选项:
A: 单链表
B: 双链表
C: 单循环链表
D: 带头结点的双向循环链表
答案: 【 带头结点的双向循环链表

16、单选题:
‎链接存储的特点是利用(   )来表示数据元素之间的逻辑关系。‌
选项:
A: 地址
B: 大小
C: 指针
D: 结点
答案: 【 指针

17、单选题:
‍链式存储比顺序存储的效率(    )。‌
选项:
A: 高
B: 低
C: 相同
D: 有些操作高,有些操作低
答案: 【 有些操作高,有些操作低

18、单选题:
‎某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用(    )存储方式最节省运算时间。‎
选项:
A: 单链表
B: 仅有头指针的单循环链表
C: 双链表
D: 仅有尾指针的单循环链表
答案: 【 仅有尾指针的单循环链表

19、单选题:
‎若表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用(    )存储方式最节省运算时间。‎
选项:
A: 单链表
B: 带头结点的双循环链表
C: 双链表
D: 单循环链表
答案: 【 带头结点的双循环链表

20、单选题:
‍若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋,则采用(   )存储方法最节省时间。‌
选项:
A: 顺序表
B: 单链表
C: 双链表
D: 单循环链表
答案: 【 顺序表

21、单选题:
‏若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(    )存储方式最节省时间。‍
选项:
A: 顺序表
B: 双链表
C: 带头结点的双循环链表
D: 单循环链表
答案: 【 顺序表

22、单选题:
‎设rear是指向非空带头结点的循环单链表的尾指针,则删除表首结点的操作可表示为(    )。‎
选项:
A: p=rear; rear=rear->next;  free(p);
B: rear=rear->next;  free(rear);
C: rear=rear->next->next;  free(rear);
D: p=rear->next->next; rear->next->next=p->next;  free(p);    
答案: 【 p=rear->next->next; rear->next->next=p->next;  free(p);    

23、单选题:
‌设线性表有n个元素,以下算法中,(   )在顺序表上实现比在链表上实现效率更高。‏
选项:
A: 输出第i(0≤i≤n—1)个元素值
B: 交换第0个元素与第1个元素的值
C: 顺序输出这n个元素的值
D: 输出与给定值x相等的元素在线性表中的序号
答案: 【 输出第i(0≤i≤n—1)个元素值

24、单选题:
‌设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用(    )最节省时间。‍
选项:
A: 单链表
B: 单循环链表
C: 带尾指针的单循环链表
D: 带头结点的双循环链表
答案: 【 带头结点的双循环链表

25、单选题:
‎设一个有序的单链表中有n个结点,要求插入一个新结点后仍保持有序,则该操作的时间复杂度为(  )。‌
选项:
A:
B: O(1)
C:
D: O(n)
答案: 【 O(n)

26、单选题:
‌设指针p指向双链表的某一结点,则双链表结构的对称性可用(  )式来刻画。​
选项:
A: p->prior->next->==p->next->next
B: p->prior->prior->==p->next->prior
C: p->prior->next->==p->next->prior
D: p->next->next==p->prior->prior
答案: 【 p->prior->next->==p->next->prior

27、单选题:
‏使用双向链表存储数据,其优点是可以(      )。‏
选项:
A: 提高检索速度
B: 很方便地插入和删除数据
C: 节约存储空间
D: 很快回收存储空间
答案: 【 提高检索速度

28、单选题:
‍完成在双向循环链表结点p之后插入结点s的操作是(   )。‍
选项:
A: p->next =s; s-> prior =p; p-> next-> prior =s; s-> next =p-> next;
B: p->next-> prior =s; p-> next =s; s-> prior =p; s-> next =p-> next;
C: s-> prior =p; s-> next = p->next; p-> next =s; p-> next-> prior =s;
D: s-> prior =p; s-> next = p->next; p-> next-> prior =s;p-> next =s;
答案: 【 s-> prior =p; s-> next = p->next; p-> next-> prior =s;p-> next =s;

29、单选题:
‌下列叙述中正确的是(   )。‏
选项:
A: 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的
B: 线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构
C: 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构
D: 上述三种说法都不对
答案: 【 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构

30、单选题:
‏下面的叙述不正确的是(    )。‎
选项:
A: 线性表在链式存储时,查找第i个元素的时间同i的值成正比
B: 线性表在链式存储时,查找第i个元素的时间同i的值无关
C: 线性表在顺序存储时,在第i个元素之后插入新元素的时间同i的值有关
D: 线性表在顺序存储时,查找第i个元素的时间同i的值无关
答案: 【 线性表在链式存储时,查找第i个元素的时间同i的值无关

31、单选题:
‏下面关于线性表的叙述错误的是(   )。‌
选项:
A: 线性表采用顺序存储必须占用一片连续的存储空间
B: 线性表采用链式存储不必占用一片连续的存储空间
C: 线性表采用链式存储便于插入和删除操作的实现
D: 线性表采用顺序存储便于插入和删除操作的实现
答案: 【 线性表采用顺序存储便于插入和删除操作的实现

32、单选题:
‎下面关于线性表的叙述中,错误的是(   )。‏
选项:
A: 顺序表使用一维数组实现的线性表
B: 顺序表必须占用一片连续的存储单元
C: 顺序表的空间利用率高于链表
D: 在链表中,每个结点只有一个链域
答案: 【 在链表中,每个结点只有一个链域

33、单选题:
‌下面关于线性表的叙述中不正确的是(   )。​
选项:
A: 线性表采用顺序存储,必须占用一片连续的存储单元
B: 线性表采用顺序存储,便于进行插入和删除操作
C: 线性表采用链接存储,不必占用一片连续的存储单元
D: 线性表采用链接存储,便于插入和删除操作
答案: 【 线性表采用顺序存储,便于进行插入和删除操作

34、单选题:
‏线性表( a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为(     )。‌
选项:
A: O(i)
B: O(1)
C: O(n)
D: O(i-1)
答案: 【 O(n)

35、单选题:
‍线性表采用链式存储结构时,其地址(   )。‎
选项:
A: 必须是连续的
B: 部分地址必须是连续的
C: 一定是不连续的
D: 连续与否均可以
答案: 【 连续与否均可以

36、单选题:
‌线性表的链式存储结构的特点是用一组(   )存储单元存储线性表的数据元素。‍
选项:
A: 连续的
B: 不连续的
C: 任意的
D: 非常大的
答案: 【 任意的

37、单选题:
‍线性表若采用链式存储结构时,要求内存中可用存储单元的地址(     )。‍
选项:
A: 必须是连续的
B: 部分地址必须是连续的
C: 一定是不连续的
D: 连续或不连续都可以
答案: 【 连续或不连续都可以

38、单选题:
‏循环单链表的最大优点是(   )。‍
选项:
A: 访问速度快
B: 体积小
C: 从任一结点出发都可访问到链表中每一个元素
D: 以上都对
答案: 【 从任一结点出发都可访问到链表中每一个元素

39、单选题:
‏已知指针p和q分别指向某单链表中第一个结点和最后一个结点。假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为(   )。‏
选项:
A: q->next=s->next;s->next=p;
B: s->next=p;q->next=s->next;
C: p->next=s->next;s->next=q;
D: s->next=q;p->next=s->next;
答案: 【 q->next=s->next;s->next=p;

40、单选题:
​以下说法错误的是 (     )。‍
选项:
A: 线性表的元素可以是各种各样的,逻辑上相邻的元素在物理位置上不一定相邻
B: 在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻
C: 在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻
D: 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素
答案: 【 在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻

41、单选题:
‎以下说法错误的是(    )。‌
选项:
A: 求表长、定位这二种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低
B: 顺序存储的线性表可以随机存取
C: 由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活
D: 线性表的链式存储结构优于顺序存储结构
答案: 【 线性表的链式存储结构优于顺序存储结构

42、单选题:
‏以下说法错误的是(  )。‏
选项:
A: 对循环链表来说,从表中任一结点出发都能通过前后操作而扫描整个循环链表
B: 对有头结点的单链表来说,只有从头结点开始才能扫描表中全部结点
C: 双链表的特点是找结点的前趋和后继都很容易
D: 对双链表来说,结点*P的存储位置既存放在其前趋结点的后继指针域中,也存放在它的后继结点的前趋指针域中
答案: 【 对循环链表来说,从表中任一结点出发都能通过前后操作而扫描整个循环链表

43、单选题:
‍以下说法正确的是( )。​
选项:
A: 在单链表中,任何两个元素的存储位置之间都有固定的联系,因为可以从头结点进行查找任何一个元素
B: 在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构
C: 顺序存储结构属于动态结构,链式结构属于静态结构
D: 顺序存储方式只能用于存储线性结构
答案: 【 在单链表中,任何两个元素的存储位置之间都有固定的联系,因为可以从头结点进行查找任何一个元素

44、单选题:
‌以下说法正确的是( )。‍
选项:
A: 顺序存储方式的优点是存储密度大、且插入、删除运算效率高
B: 链表的每个结点都包含一个指针
C: 线性表的顺序存储结构优于链式存储结构
D: 顺序存储结构属于静态结构,链式结构属于动态结构
答案: 【 顺序存储结构属于静态结构,链式结构属于动态结构

45、单选题:
‏用单链表方式存储的线性表,存储每个结点需要两个域,一个是数据域,另一个是(   )。‍
选项:
A: 当前结点的所在地址
B: 后继结点的所在地址
C: 空指针域
D: 空闲域
答案: 【 后继结点的所在地址

46、单选题:
​在单链表的一个结点中有(     )。‎
选项:
A: 1个指针
B: 2个指针
C: 0个指针
D: 3个指针
答案: 【 1个指针

47、单选题:
‌在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(    )。‍
选项:
A: p->next=s;s->next=p->next;
B: s->next=p->next;p->next=s;
C: p->next=s;p->next=s->next;
D: p->next=s->next;p->next=s;
答案: 【 s->next=p->next;p->next=s;

48、单选题:
‎在单链表中,指针p指向元素为x的结点,实现删除x的后继的语句是(    )。​
选项:
A: p=p->next;
B: p->next=p->next->next;
C: p->next=p;
D: p=p->next->next;
答案: 【 p->next=p->next->next;

49、单选题:
‌在单循环链表中设置尾指针比设置头指针(   )。‌
选项:
A: 效率低
B: 更好
C: 差
D: 没有区别
答案: 【 更好

50、单选题:
‏在具有n个结点的单链表上查找值为x的元素时,其时间复杂度为(  )。‌
选项:
A: O(n)
B: O(1)
C:
D: O(n-1)
答案: 【 O(n)

51、单选题:
‎在双向链表存储结构中,删除p所指的结点时须修改指针(   )。‍
选项:
A: (p-> prior)-> next = p->next ; (p->next)->prior =p-> prior ;
B: p-> prior=(p-> prior)-> prior ; (p-> prior)-> next =p ;
C: (p->next)->prior =p ; p->rlink=(p-> next)-> next ;
D: p->next =(p-> prior)-> prior ; p-> prior =(p-> next)-> next
答案: 【 (p-> prior)-> next = p->next ; (p->next)->prior =p-> prior ;

52、单选题:
‎在双向循环链表中,在p指针所指的结点插入q所指向的新结点,其修改指针的操作是(    )。‍
选项:
A: p->next=q; q->prior=p; p->next->piror=q; q->next=q;
B: p->next=q; p->next->prior=q; q->prior=p; q->next=p->next;
C: q->prior=p; q->next=p->next; p->next->prior=q; p->next=q;
D: q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;
答案: 【 q->prior=p; q->next=p->next; p->next->prior=q; p->next=q;

53、单选题:
‏在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next==head,则(   )。‎
选项:
A: p指向头结点
B: p指向尾结点
C: p的直接后继是头结点
D: p的直接后继是尾结点
答案: 【 p的直接后继是尾结点

54、单选题:
​在线性表的下列存储结构中,读取元素花费的时间最少的是(  )。‌
选项:
A: 单链表
B: 双链表
C: 循环链表
D: 顺序表
答案: 【 顺序表

55、单选题:
‏在循环链表中,将头指针改设为尾指针(rear)后,其头结点和尾结点的存储位置分别是(   )。‍
选项:
A: real和rear->next->next
B: rear->next 和real
C: rear->next->next和rear
D: rear和rear->next
答案: 【 rear->next 和real

56、单选题:
‏在一个带头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行(     )。‎
选项:
A: HL=p;p->next=HL;
B: p->next=HL;HL=p;
C: p->next=HL;p=HL;
D: p->next=HL->next;HL->next=p;
答案: 【 p->next=HL->next;HL->next=p;

57、单选题:
‏在一个单链表中,已知q是p的前趋结点,若在q和p之间插入结点s,则执行(    )。‎
选项:
A: s->next=p->next;p->next=s;
B: p->next=s->next;s->next=p;
C: q->next=s;s->next=p;
D: p->next=s;s->next=q;
答案: 【 q->next=s;s->next=p;

58、单选题:
‏在一个以 h 为头的单循环链表中,p 指针指向链尾的条件是(   )。‏
选项:
A: p->next=h
B: p->next=NIL
C: p->next.next=h
D: p->data=-1
答案: 【 p->next=h

59、单选题:
​在以下的叙述中,正确的是(   )。‏
选项:
A: 线性表的顺序存储结构优于链表存储结构
B: 线性表的顺序存储结构适用于频繁插入/删除数据元素的情况
C: 线性表的链表存储结构适用于频繁插入/删除数据元素的情况
D: 线性表的链表存储结构优于顺序存储结构
答案: 【 线性表的链表存储结构适用于频繁插入/删除数据元素的情况

60、单选题:
‎指针的全部作用就是(    )。​
选项:
A: 指向某常量
B: 指向某变量
C: 指向某结点
D: 存储某数据
答案: 【 指向某结点

61、单选题:
​get(head,i)在单链表中的作用是(        )。‌
选项:
A: 读取表结点
B: 求表长
C: 按值查找
D: 插入结点
答案: 【 读取表结点

62、单选题:
‌insert(head,ElemType x,int i)在单链表中的作用是(   )。‌
选项:
A: 读取表结点
B: 求表长
C: 按值查找
D: 插入结点
答案: 【 插入结点

63、单选题:
‍length(head)在单链表中的作用是(   )。‏
选项:
A: 读取表结点
B: 求表长
C: 按值查找
D: 插入结点
答案: 【 求表长

64、单选题:
‎locate(head,x)在单链表中的作用是(   )。‍
选项:
A: 读取表结点
B: 求表长
C: 按值查找
D: 插入结点
答案: 【 按值查找

65、单选题:
‍采用线性链表表示一个向量时,要求占用的存储空间地址(   )。‍
选项:
A: 必须是连续的
B: 可连续可不连续
C: 部分地址必须是连续的
D: 一定是不连续的
答案: 【

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注