籍顽辑考悉松括授碌姆脯握恕
第一章 单元测试
1、 在数据结构中,与所使用的计算机无关的是数据的( )结构。
A:物理与存储
B:逻辑
C:物理
D:存储
答案: 逻辑
2、 在计算机中存储数据时,通常不仅要存储各数据元素的值,而且还要存储的( )。
A:数据元素的类型
B:数据的处理方法
C:数据元素之间的关系
D:都不对
答案: 数据元素之间的关系
3、 链式存储设计时,结点内的存储单元地址( )。
A:不一定连续
B:一定连续
C:一定不连续
D:部分连续,部分不连续
答案: 一定连续
4、 以下算法复杂度中,最小的是( )。
A:O(n!)
B:O(n^2)
C:O(nlogn)
D:O(2^n)
答案: O(nlogn)
5、 while(i<=n) i=i+2;
代码段的时间复杂度是( )
A:O(n)
B:O(nlogn)
C:O(logn)
D:O(1)
答案: O(n)
6、 某算法的时间复杂度为O(n^2),表明该算法 ( )
A:执行时间等于n^2
B:执行时间与n^2成正比
C:问题规模与n^2成正比
D:问题规模是n^2
答案: 执行时间与n^2成正比
7、 算法必须满足有穷性( )
A:错
B:对
答案: 对
8、 在相同规模n下,复杂度为O(n)的算法在时间上优于复杂度为O(2^n)的算法( )
A:错
B:对
答案: 对
9、 求整数n(n>=0)的阶乘的算法如下,
int fact(int n)
{ if(n<=1 return 1;
Return n*fact(n-1);
}
其时间复杂度为O(nlogn)( )
A:对
B:错
答案: 错
10、
有下列算法片段,请分析算法的时间复杂度是( )
void func(int n)
{ int i=0,s=0;
while (s<=n)
{ i++;
s=s+i;
}
}
A:O(n)
B:O(logn)
C:O(n^2)
D:O(sqrt(n))
答案: O(sqrt(n))
11、
以下代码段的时间复杂度是( )
void fun(int k)
{ for(int i=1;i<=k;i*=2)
printf(“%d ”,k);
}
int main()
{ for(int i=0;i<n;i++)
fun(i);
}
A: O(nlogn)
B:O(logn^2)
C:O(n^2)
D:O(n)
答案: O(nlogn)
第二章 单元测试
1、 线性表的顺序存储结构是一种( )。
A:顺序存取的存储结构
B:索引存取的存储结构
C:散列存取的存储结构
D:随机存取的存储结构
答案: 随机存取的存储结构
2、 一个顺序表所占用的存储空间大小与( )无关。
A:元素的类型
B:元素的存放顺序
C:元素中各字段的类型
D:表的长度
答案: 元素的存放顺序
3、 若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为了提高效率,应采用( )的存储方式。
A:双向链表
B:单链表
C:单循环链表
D:顺序表
答案: 顺序表
4、 对于顺序表,访问第i个位置的元素和在第i个位置插入一个元素的时间复杂度为( )。
A:O(n),O(n)
B:O(1), O(n)
C:O(1), O(1)
D:O(n),O(1)
答案: O(1), O(n)
5、 顺序表的插入算法中,当n个空间已满时,可再申请增加分配m 个空间,若申请失败,则说明系统没有( )可分配的存储空间。
A:n+m个
B:m个
C:n+m个连续
D:m个连续
答案: n+m个连续
6、 设线性表中有2n个元素,( )在单链表上实现要比在顺序表上实现效率更高。
A:顺序输出前k个元素
B:交换第i个元素和第2 n – i -1 个元素的值(i=0,…,n-1)
C:删除所有值为x 的元素
D:在最后一个元素的后面插入一个新元素
答案: 删除所有值为x 的元素
7、 在一个单链表中,已知q 所指结点是p 所指结点的前驱结点,若在q 和p 之间插入结点s, 则执行( )。
A:q->next=s; s->next=p;
B:s->next=p->next;p->next=s;
C:p->next=s->next; s->next=p;
D:p->next=s; s->next=q;
答案: q->next=s; s->next=p;
8、 在双链表中向p 所指的结点之前插入一个结点q 的操作为( )。
A:p->prior->next=q; q->next=p;q->prior=p->prior;p->prior=q;
B:q->prior=p->prior;p->prior->next=q;q->next=p;p->prior=q->next;
C:q->next=p;p->next=q;q->prior->next=q;q->next=p;
D:p->prior=q;q->next=p;p->prior->next=q;q->prior=p->prior;
答案: p->prior->next=q; q->next=p;q->prior=p->prior;p->prior=q;
9、 线性表的顺序存储结构优于其链式存储结构。 ( )
A:对
B:错
答案: 错
10、 取线性表的第i个元素的时间与i 的大小有关( )
A:对
B:错
答案: 错
11、 线性表的逻辑顺序与存储顺序总是一致的。( )
A:错
B:对
答案: 错
12、 顺序存储方式存储密度大,但是插入、删除运算效率低。( )
A:对
B:错
答案: 对
13、 单链表中,增加一个头结点的目的是为了方便链表运算的实现。( )
A:对
B:错
答案: 对
第三章 单元测试
1、 下面关于串的叙述中,正确的是( )。
A:串是一种特殊的线性表
B:串中元素只能是字母
C:空串就是空白串
D:串的长度必须大于零
答案: 串是一种特殊的线性表
2、 两个字符串相等的条件是( )。
A:含有相同的字符集
B:串的长度相等
C:两个串的长度相等且对应位置的字符相同
D:都是非空串
答案: 两个串的长度相等且对应位置的字符相同
3、 若串str=“Software”,其子串的个数是( )。
A:9
B:36
C:18
D:37
答案: 37
4、 设有两个串p 和 q,其中q是p的子串,则求q在p中首次出现位置的算法称为( )。
A:求子串
B:串联接
C:模式匹配
D:求串长
答案: 模式匹配
5、 在KMP模式匹配中,用next 数组存放模式串的部分匹配信息。当模式串位j与目标串位i比较时,两字符不相等,则j的位移方式是( )。
A:j=next[j]
B:i不变
C:j不变
D:i=next[j]
答案: j=next[j]
6、 KMP算法的时间复杂度为O(mn)。( )
A:错
B:对
答案: 错
7、 KMP算法的时间复杂度为O(m+n)。( )
A:对
B:错
答案: 对
8、 KMP算法的特点是在模式匹配时指示主串的指针不会变小。( )
A:错
B:对
答案: 对
9、 已知串S=”AAAB”,其next数组值为0123。( )
A:错
B:对
答案: 对
10、
对于一个链串s,查找第一个字符值为x的算法的时间复杂度为( )
A:O(n)
B:O(1)
C:选项A和B都不对
答案: O(n)
第四章 单元测试
1、 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top 变化为( )。
A:top=0
B:top 不变
C:top++
D:top–
答案: top–
2、 栈的插入和删除操作在( ) 进行。
A:指定位置
B:栈顶
C:栈底
D:任意位置
答案: 栈顶
3、
用单链表表示的链式队列的队头在链表的( ) 位置。
A:链尾
B:链中
C:链头
D:都不是
答案: 链头
4、 输入序列为ABC,可以变为CBA时,经过的栈操作为( )
A:push,push,push,pop,pop.pop
B:push,push,pop.pop,push.pop
C:push,pop.push,push,pop.pop
D:push,pop.push,pop,push,pop
答案: push,push,push,pop,pop.pop
5、 若栈s1中保存整数,栈s2中保存运算符,函數F( ) 依次执行下述各步操作:
1)从s1中依次弹出两个操作数a和b. 2)从s2中弹出一个运算符op.
3)执行相应的运算b op a. 4)将运算结果压入s1中。
假定s1中的操作数依次是5, 8,3,2 (2在栈顶), s2中的运算符依次是*、-. + (+在栈顶)。调用3次F( )后,s1栈顶保存的值是( )。
A:-15
B:20
C:15
D:-20
答案: 15
6、 若一个栈的输入序列是1,2..,n, 输出序列的第一个元素是n,则第i个输出元素是( )。
A:n-i- 1
B:n-i
C:n-i+ 1
D:不确定
答案: n-i+ 1
7、 某栈的输入序列为a,b,c,d, 下面的4个序列中,不可能为其输出序列的是( )。
A:d,c,a,b
B:a,c,b,d
C:a,b,c,d
D:c,b,d,a
答案: d,c,a,b
8、 元素a, b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是( )。
A:4
B:3
C:6
D:5
答案: 4
9、 向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( )。
A:s->next=hs; hs=s;
B:hs->next=s;
C:s- >next=hs; hs=hs- >next;
D:s->next=hs->next ;hs- ->next=s;
答案: s->next=hs; hs=s;
10、 消除递归不一定需要使用栈,此说法( )
A:对
B:错
答案: 对
11、 栈是实现过程和函数等子程序所必需的一种数据结构。( )
A:错
B:对
答案: 对
12、 若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1. ( )
A:对
B:错
答案: 对
13、 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶位置,当做出栈处理时,top 变化为top++。( )
A:对
B:错
答案: 错
14、 链式栈与顺序栈相比,一个明显的优点是通常不会出现栈满的情况。( )
A:错
B:对
答案: 对
上方为免费预览版答案,如需购买完整答案,请点击下方红字
为了方便下次阅读,建议在浏览器添加书签收藏本网页
添加书签方法:
1.电脑按键盘的Ctrl键+D键即可收藏本网页
2.手机浏览器可以添加书签收藏本网页
如需获取更多网课答案,可在浏览器访问我们的网站:http://www.mengmianren.com/
注:请切换至英文输入法输入域名,如果没有成功进入网站,请输入完整域名:http://www.mengmianren.com/
我们的公众号
打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP
本公众号可查看各种网课答案,还可免费查看大学教材答案
点击这里,可查看公众号功能介绍
萌面人优惠券:一键领取淘宝,天猫,京东,拼多多无门槛优惠券,让您购物省省省,点击这里,了解详情
烫奶购桓敢镀段集甘碍继踩抽