第1章绪论

小测验算法复杂度

1、单选题:
​下列函数中,哪个函数具有最快的增长速度:​
选项:
A:
B:
C:
D:
答案: 【 

2、单选题:
下面一段代码的时间复杂度是?‌if ( A > B ) {    for ( i=0; i<N; i++ )        for ( j=N*N; j>i; j-- )            A += B;}else {    for ( i=0; i<N*2; i++ )        for ( j=N*2; j>i; j-- )            A += B;}‌
选项:
A:
B:
C:
D:
答案: 【 

绪论测验

1、单选题:
‏计算机算法必须具备(  ) 三个特性。‏
选项:
A: 可执行性、可移植性、可扩充性
B: 可执行性、确定性、有穷性
C: 确定性、有穷性、稳定性
D: 易读性、稳定性、安全性
答案: 【 可执行性、确定性、有穷性

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

3、单选题:

下面说法错误的是(    )

(1)算法原地工作的含义是指不需要任何额外的辅助空间

(2)在相同的规模n下,复杂度的算法在时间上总是优于复杂度的算法

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

(4)同一个算法,实现语言的级别越高,执行效率就越低

‌选项:
A: (1)
B: (1),(2)
C: (1),(4)
D: (3)
答案: 【 (1),(4)

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

5、单选题:
以下与数据的存储结构无关的术语是(    )。‍
选项:
A: 循环队列 
B: 链表
C: 哈希表
D: 栈
答案: 【 栈

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

7、单选题:
以下属于逻辑结构的是(    )。​
选项:
A: 顺序表
B: 哈希表
C: 有序表
D: 单链表
答案: 【 有序表

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

9、单选题:
​排序算法‌​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:
答案: 【 

10、单选题:
下面一段代码的时间复杂度是?‏if(A>B){‏    for(i = 0; i < N; i++)‏        for(j = N*N; j > i; j--)‏               A+=B;‏}‏else{‏    for( i = 0; i < N*2; i++)‏         for(j = N*2; j > i; j--)‏                A+=B;‏}‏
选项:
A:
B:
C:
D:
答案: 【 

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

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

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

14、判断题:
‏算法可以用不同的语言描述,如果用C语言或JAVA语言等高级语言来描述,则算法实际上就是程序了。‍
选项:
A: 正确
B: 错误
答案: 【 错误

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

第2章线性表

小测验链表

1、单选题:
‎对于线性表,在顺序存储结构和链式存储结构中查找第k个元素,其时间复杂性分别是多少?‌
选项:
A: 都是O(1)
B: 都是O(k)
C: O(1)和O(k)
D: O(k)和O(1)
答案: 【 O(1)和O(k)

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

3、判断题:
下列函数试图求链式存储的线性表的表长,是否正确?‍int  Length ( List  *PtrL )‍‍{    List  *p = PtrL;     ‍‍     int  j = 0;‍‍     while ( p ) {‍‍           p++;‍‍           j++;                ‍‍     }  ‍‍     return  j;‍‍}‍‌‍
选项:
A: 正确
B: 错误
答案: 【 错误

小测验顺序表

1、单选题:
在顺序结构表示的线性表中,删除第i个元素(数组下标为i-1),需要把后面的所有元素都往前挪一位,相应的语句是:‎for (___________ )‎            PtrL->Data[j-1]=PtrL->Data[j]; ‎其中空缺部分的内容应该是‎
选项:
A:  j = i; j< = PtrL->Last; j++
B:  j =PtrL->Last; j>= i;  j--
C:  j = i-1; j< = PtrL->Last; j++
D: j =PtrL->Last; j>= i-1;  j--
答案: 【  j = i; j< = PtrL->Last; j++

2、单选题:
‏对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( )‌
选项:
A: O(n)  O(n)
B: O(n)  O(1) 
C: O(1)  O(n)
D: O(1) O(1)
答案: 【 O(1)  O(n)

线性表测验

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

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

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

4、单选题:
​若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(    )(1<=i<=n+1)。‌
选项:
A:  
B:
C:
D:
答案: 【 

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

6、单选题:
‌在一个头指针为H的循环单链表中,p 指针指向表尾结点的条件是(     )​
选项:
A: p->next = H
B: p->next = NULL
C: p->next->next = H
D: p->data = -1
答案: 【 p->next = H

7、单选题:
‌在

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

发表评论

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