大学MOOC 数据结构与算法(河南农业大学)1001973014 最新慕课完整章节测试答案
第一章 绪论
第1章单元测试
1、单选题:
设n是描述问题规模的非负整数,下面程序段的时间复杂度是( )。x=2;while (x<n/2) x=x*2;
选项:
A: O(log2n)
B: O(n)
C: O(nlog2n)
D: 
答案: 【 O(log2n)】
2、单选题:
下面程序段的时间复杂度是( )。count=0;for(k=1; k<=n; k*=2) for(j=1; j<n; j++) count++;
选项:
A: O(log2n)
B: O(n)
C: O(nlog2n)
D: 
答案: 【 O(nlog2n)】
3、单选题:
算法分析的两个主要方面是( )。
选项:
A: 空间复杂度和时间复杂度
B: 正确性和简单性
C: 可读性和文档性
D: 数据复杂性和程序复杂性
答案: 【 空间复杂度和时间复杂度】
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、单选题:
在数据结构中,从逻辑上可以把数据结构分成( )。
选项:
A: 动态结构和静态结构
B: 紧凑结构和非紧凑结构
C: 内部结构和外部结构
D: 线性结构和非线性结构
答案: 【 线性结构和非线性结构】
10、单选题:
通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。
选项:
A: 数据具有同一特点
B: 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
C: 每个数据元素都一样
D: 数据元素所包含的数据项的个数要相等
答案: 【 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致】
11、判断题:
数据元素是数据处理的最小单位。
选项:
A: 正确
B: 错误
答案: 【 错误】
12、判断题:
数据的逻辑结构是指数据的各数据项之间的逻辑关系。
选项:
A: 正确
B: 错误
答案: 【 错误】
13、判断题:
算法的优劣与算法描述语言无关,与所用计算机有关。
选项:
A: 正确
B: 错误
答案: 【 错误】
14、判断题:
数据的物理结构是指数据在计算机内的实际存储形式。
选项:
A: 正确
B: 错误
答案: 【 正确】
15、判断题:
健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
选项:
A: 正确
B: 错误
答案: 【 正确】
第二章 线性表
第2章单元测验
1、单选题:
线性表L=(a1,a2,…an ),下列说法正确的是( )。
选项:
A: 每个元素都有一个直接前驱和一个直接后继
B: 线性表中至少有一个元素
C: 除第一个和最后一个元素外,其它每个元素都有一个且仅有一个直接前驱和直接后继
D: 表中诸元素的排列必须是由大到小或由小到大
答案: 【 除第一个和最后一个元素外,其它每个元素都有一个且仅有一个直接前驱和直接后继】
2、单选题:
顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( ) 。
选项:
A: 110
B: 108
C: 100
D: 120
答案: 【 108】
3、单选题:
向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为( ) 。
选项:
A: 8
B: 63.5
C: 63
D: 7
答案: 【 63.5】
4、单选题:
在线性表的下列运算中,不改变数据元素之间结构关系的运算是( ) 。
选项:
A: 插入
B: 删除
C: 排序
D: 定位
答案: 【 定位】
5、单选题:
线性表若采用链式存储结构时,要求内存中可用存储单元的地址( ) 。
选项:
A: 必须是连续的
B: 部分地址必须是连续的
C: 一定是不连续的
D: 连续或不连续都可以
答案: 【 连续或不连续都可以】
6、单选题:
在单链表中,要将s所指结点插入到p所指结点之后,其语句应为( ) 。
选项:
A: s->next=p+1;p->next=s;
B: (*p).next=s;(*s).next=(*p).next;
C: s->next=p->next;p->next=s->next;
D: s->next=p->next;p->next=s;
答案: 【 s->next=p->next;p->next=s;】
7、单选题:
对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是( ) 。
选项:
A: head=NULL
B: head->next=NULL
C: head->next==head
D: head!=NULL
答案: 【 head->next=NULL】
8、单选题:
已知两个长度分别为m和n的升序链表,若将它们合并成为一个长度为m+n的降序链表,则最坏情况下的时间复杂度是( ) 。
选项:
A: O(n)
B: O(m*n)
C: O(min(m,n))
D: O(max(m,n))
答案: 【 O(max(m,n))】
9、单选题:
在循环链表中,将头指针改为尾指针(rear)后,其首元结点和尾结点的存储位置分别是( ) 。
选项:
A: rear 和 rear->next->next
B: rear->next 和 rear
C: rear->next->next 和 rear
D: rear 和 rear->next
答案: 【 rear->next->next 和 rear】
10、单选题:
已知一个带有表头结点的双向循环链表L,结点结构为prev,data,next。其中,prev和next分别指向其直接前驱和直接后继结点的指针。现要删除指针p所指的结点,正确的语句序列是( ) 。
选项:
A: p->next->prev=p->prev;p->prev->next=p->next;free(p);
B: p->next->prev=p->next;p->prev->next=p->next;free(p);
C: p->next->prev=p->next;p->prev->next=p->prev;free(p);
D: p->next->prev=p->prev;p->prev->next=p->prev;free(p);
答案: 【 p->next->prev=p->prev;p->prev->next=p->next;free(p); 】
11、判断题:
用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。
选项:
A: 正确
B: 错误
答案: 【 正确】
12、判断题:
从循环链表的某一结点出发,只能找到它的后继结点,不能找到它的前驱结点。
选项:
A: 正确
B: 错误
答案: 【 错误】
13、判断题:
单链表结点的指针域是用来存放其直接后继结点的首地址的。
选项:
A: 正确
B: 错误
答案: 【 正确】
14、判断题:
线性表的链式存储结构优于顺序存储结构。
选项:
A: 正确
B: 错误
答案: 【 错误】
15、判断题:
对数据的任何运算都不能改变数据原有的结构特性。
选项:
A: 正确
B: 错误
答案: 【 正确】
第三章 栈和队列
第3章单元测试
1、单选题:
若元素a,b,c,d,e,f依次进栈,允许进栈、出栈操作交替进行,但不允许连续三次进行出栈操作,则不可能得到的出栈序列是( )。
选项:
A: d,c,e,b,f,a
B: c,b,d,a,e,f
C: b,c,a,e,f,d
D: a,f,e,d,c,b
答案: 【 a,f,e,d,c,b】
2、单选题:
元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是( ) 。
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 4】
3、单选题:
假设栈初始为空将中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次( ) 。
选项:
A: +(*-
B: +(-*
C: /+(*-*
D: /+-*
答案: 【 +(-*】
4、单选题:
为解决计算机主机与打印机速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑
