大学MOOC 数据结构(四川师范大学)1206843801 最新慕课完整章节测试答案
第1章绪论
第1章测验
1、单选题:
下列关于数据的逻辑结构的叙述中,哪一个是不正确的:
选项:
A: 数据的逻辑结构是数据间关系的描述
B: 数据的逻辑结构抽象反映数据元素间的逻辑关系
C: 数据的逻辑结构具体反映数据在计算机中的存储方式
D: 数据的逻辑结构分为线性结构和非线性结构
答案: 【 数据的逻辑结构具体反映数据在计算机中的存储方式】
2、单选题:
以下关于数据的存储结构的叙述中哪一条是正确的。
选项:
A: 数据的存储结构是数据间关系的抽象描述
B: 数据的存储结构是逻辑结构在计算机存储器中的实现
C: 数据的存储结构分为线性结构和非线性结构
D: 数据的存储结构对数据运算的具体实现没有影响
答案: 【 数据的存储结构是逻辑结构在计算机存储器中的实现】
3、单选题:
按照数据结构中对数据类型的定义,C语言中的复合数据类型指的是:
选项:
A: 整型
B: 结构型
C: 字符型
D: 实型
答案: 【 结构型】
4、单选题:
伪代码是:
选项:
A: 描述算法且容易理解的一种语言
B: 能够方便描述算法中的分支与循环等结构化语句
C: 不能直接编译或解释执行
D: 以上都正确
答案: 【 以上都正确】
5、单选题:
下面说法错误的是:
选项:
A: 算法原地工作的含义是指不需要任何额外的辅助空间
B: 在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(
)的算法
C: 所谓时间复杂度是指最坏情况下估算算法执行时间的一个上界
D: 同一个算法,实现语言的级别越高,执行效率就越低
答案: 【 算法原地工作的含义是指不需要任何额外的辅助空间】
6、单选题:
从逻辑上可以把数据结构分为( )两大类。
选项:
A: 动态结构、静态结构
B: 顺序结构、链式结构
C: 线性结构、非线性结构
D: 初等结构、构造型结构
答案: 【 线性结构、非线性结构】
7、单选题:
在下面的程序段中,语句x=x+1的频度为( )for (i=1;i<= n;i++) for (j=1;j<= n;j++) x=x+1;
选项:
A: 2n
B: n
C: 
D: ![]()
答案: 【
】
8、单选题:
程序段 for (i=n;i>0;i--) for (j=1;j<i;j++) if (a[j]>a[j+1]) Swap(A[j],A[j+1]); //将A[j]与A[j+1]对换其中 n为正整数,则在最坏情况下算法的时间复杂度是:
选项:
A: O(n)
B: O(nlogn)
C: O(
)
D: O(
)
答案: 【 O(
)】
9、单选题:
以下数据结构中,( )是非线性结构。
选项:
A: 树
B: 字符串
C: 栈
D: 队列
答案: 【 树】
10、判断题:
数据元素是数据的最小单位。
选项:
A: 正确
B: 错误
答案: 【 错误】
11、判断题:
数据项是数据不可分割的最小单位。
选项:
A: 正确
B: 错误
答案: 【 正确】
12、判断题:
数据的逻辑结构是指数据的各数据项之间的逻辑关系。
选项:
A: 正确
B: 错误
答案: 【 错误】
13、判断题:
算法的优劣与算法描述语言无关。
选项:
A: 正确
B: 错误
答案: 【 正确】
14、判断题:
健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
选项:
A: 正确
B: 错误
答案: 【 正确】
15、判断题:
算法可以用不同的语言描述,如果用C 语言或C++语言等高级语言来描述,则算法实际上就是程序了。
选项:
A: 正确
B: 错误
答案: 【 正确】
16、判断题:
程序一定是算法。
选项:
A: 正确
B: 错误
答案: 【 错误】
17、判断题:
数据的物理结构是指数据在计算机内的实际存储形式。
选项:
A: 正确
B: 错误
答案: 【 正确】
18、判断题:
数据的逻辑结构说明数据元素之间的逻辑关系,它依赖于计算机的存储结构。
选项:
A: 正确
B: 错误
答案: 【 错误】
19、判断题:
数据结构的操作的定义与具体实现有关。
选项:
A: 正确
B: 错误
答案: 【 错误】
20、判断题:
抽象数据类型的定义仅取决于它的一组逻辑特性,而与在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。
选项:
A: 正确
B: 错误
答案: 【 正确】
21、判断题:
算法的时间复杂度仅与问题的规模相关。
选项:
A: 正确
B: 错误
答案: 【 错误】
第2章线性表
第2章测验
1、单选题:
下面关于线性表的叙述中,错误的是()
选项:
A: 线性表采用顺序存储,必须占用一片连续的存储单元
B: 线性表采用顺序存储,便于进行插入和删除操作
C: 线性表采用链接存储,不必占用一片连续的存储单元
D: 线性表采用链接存储,便于插入和删除操作
答案: 【 线性表采用顺序存储,便于进行插入和删除操作】
2、单选题:
若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( )(1≤i≤n+1)。
选项:
A: O(0)
B: O(1)
C: C. O(n)
D: O(
)
答案: 【 C. O(n) 】
3、单选题:
线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂度为( )。
选项:
A: O(i)
B: O(1)
C: O(n)
D: O(i-1)
答案: 【 O(n)】
4、单选题:
非空的循环单链表head的尾结点p满足( )。
选项:
A: p->next==head
B: p->next==NULL
C: p==NULL
D: p= head
答案: 【 p->next==head】
5、单选题:
在单链表指针为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;】
6、单选题:
对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( )。
选项:
A: head==NULL
B: head->next==NULL
C: head->next==head
D: head!=NULL
答案: 【 head->next==NULL 】
7、单选题:
完成在非空双向循环链表结点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->next=p->next; p->next->prior=s ; s->prior=p; p->next=s;
答案: 【 s->next=p->next; p->next->prior=s ; s->prior=p; p->next=s;】
8、单选题:
在双向循环链表中,删除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->next=p->next->next;
D: p->next=p->prior->prior; p->prior=p->next->next;
答案: 【 p->prior->next=p->next; p->next->prior=p->prior;】
9、单选题:
对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( )。
选项:
A: O(n) O(n)
B: O(n) O(1)
C: O(1) O(n)
D: O(1) O(1)
答案: 【 O(1) O(n)】
10、单选题:
链表不具有的特点是( )。
选项:
A: 插入、删除不需要移动元素
B: 可随机访问任一元素
C: 不必事先估计存储空间
D: 所需空间与线性长度成正比
答案: 【 可随机访问任一元素】
11、单选题:
若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用( )存储方式最节省运算时间。
选项:
A: 单链表
B: 双链表
C: 单循环链表
D: 带头结点的双循环链表
答案: 【 带头结点的双循环链表】
12、单选题:
设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
选项:
A: 单链表
B: 单循环链表
C: 带尾指针的单循环链表
D: 带头结点的双循环链表
答案: 【 带头结点的双循环链表】
13、单选题:
线性表的顺序存储结构的优点是( )。
选项:
A: 存储密度大
B: 插入运算方便
C: 删除运算方便
D: 可方便地用于各种逻辑结构的存储表示
答案: 【 存储密度大】
14、单选题:
线性表是具有n个( )的有限序列(n≥0)。
选项:
A: 数据对象
B: 字符
C: 数据元素
D: 数据项
答案: 【 数据元素】
15、单选题:
若某线性表最常用的操作是存取任意指定序号的元素和在最后进行插入和删除运算,则利用( )存储方式最节省时间。
选项:
A: 顺序表
B: 双向链表
C: 带头结点的双循环链
D: 单循环链表
答案: 【 顺序表】
16、单选题:
某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。
选项:
A: 单链表
B: 仅有头指针的单循环链表
C: 双链表
D: 仅有尾指针的单循环链表
答案: 【 仅有尾指针的单循环链表】
17、判断题:
链表中的头结点仅起到标识的作用。
选项:
A: 正确
B: 错误
答案: 【 错误】
18、判断题:
顺序存储结构的主要缺点是不利于插入或删除操作。
选项:
A: 正确
B: 错误
答案: 【 正确】
19、判断题:
线性表采用链表存储时,结点之间的存储空间可以是不连续的。
选项:
A: 正确
B: 错误
答案: 【 正确】
20、判断题:
顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。
选项:
A: 正确
B: 错误
答案: 【 错误】
21、判断题:
线性表的特点是每个元素都有一个直接前驱和一个直接后继。
选项:
A: 正确
B: 错误
答案: 【 错误】
22、判断题:
取线性表的第i个元素的时间同i的大小有关。
选项:
A: 正确
B: 错误
答案: 【 错误】
23、判断题:
循环链表不是线性表。
选项:
A: 正确
B: 错误
答案: 【 错误】
24、判断题:
线性表就是顺序存储的表。
选项:
A: 正确
B: 错误
答案: 【 错误】
25、判断题:
为了方便地插入和删除数据,可以使用双向链表存放数据。
选项:
A: 正确
B: 错误
答案: 【 正确】
26、判断题:
顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
选项:
A: 正确
B: 错误
答案: 【 错误】
