第一章测试
1.在数据结构中,从逻辑上可以把数据结构分成(  )。
A:内部结构和外部结构
B:动态结构和静态结构
C:紧凑结构和非紧凑结构
D:线性结构和非线性结构
答案:D
2.算法分析的两个主要方面是(  )。
A:数据复杂性和程序复杂性
B:正确性和简单性
C:时间复杂度和空间复杂度
D:可读性和文档性
答案:C
3.计算机算法必须具备输入、输出和(  )等5个特性。
A:可行性、确定性和有穷性
B:确定性、有穷性和稳定性
C:可行性、可移植性和可扩充性
D:易读性、稳定性和安全性
答案:A
4.数据结构是研究数据的(  )以及它们之间的相互关系。
A:抽象结构,逻辑结构
B:理想结构,物理结构
C:理想结构,抽象结构
D:物理结构,逻辑结构
答案:D
5.数据结构中,与所使用的计算机无关的是数据的(  )结构。
A:物理
B:存储
C:逻辑
D:物理和存储
答案:C
6.组成数据的基本单位是(  )。 
A:数据类型
B:数据元素
C:数据项
D:数据变量
答案:B
7.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是(   )。
A:线性结构
B:集合
C:树型结构
D:图型结构
答案:D
8.下面程序的时间复杂为(  )for(i=1,s=0; i<=n; i++) {t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;}
A:O(n)
B:O(n4)
C:O(n3)
D:O(n2)
答案:D
9.程序段s=i=0;do {i=i+1; s=s+i;}while(i<=n);的时间复杂度为(  )。
A:O(n)
B:O(nlog2n)
C: O(n2)
D:O(n3/2)
答案:A
10.算法指的是(     )
A:解决问题的计算方法
B:排序算法
C:解决问题的有限运算序列
D:计算机程序
答案:C
11.算法就是程序。
A:对
B:错
答案:B
12.在C语言中,int i,  *p = &i;是不正确的变量声明。
A:错
B:对
答案:A
第二章测试
13.在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行(  )。
A:s->next=p;p->next=s
B:p->next=s;s->next=p
C:s->next=p->next;p->next=s
D:s->next=p->next;p=s
答案:C
14.线性表是具有n个(  )的有限序列(n≠0)。
A:表元素
B:数据元素 
C:字符
D:数据项
答案:B
15.在一个单链表中,若删除p所指结点的后续结点,则执行(  )。
A:p =p->next->next;
B:p=p->next; p->next=p->next->next
C:p->next=p->next->next
D:p->next=p->next
答案:C
16.线性表采用链式存储时,结点的存储地址(  )。
A:必须是连续的 
B:必须是不连续的
C:和头结点的存储地址相连续
D:连续与否均可 
答案:D
17.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q所指结点和p所指结点之间插入s结点,则执行(  )。
A:q->link=s;s->link=p
B:s->link=p->link;p->link=s
C:p->link=s;s->link=q
D:p->link=s->link;s->link=p
答案:A
18.顺序存储的线性表(a0,a1,…,an-1),在任一结点前插入一个新结点时所需移动结点的平均次数为(  )。
A:n/2
B:(n+1)/2
C:n
D:n+1
答案:A
19.若线性表最常用的操作是存取第i个元素及其前趋的值,则采用(  )存储方式节省时间。
A:单循环链表
B:顺序表
C:单链表
D:双链表 
答案:B
20.若某链表最常用的操作是在最后一个结点之后插入一个结点删除最后一个结点,则采用(  )存储方式最节省时间。
A:双链表
B:单链表
C:带头结点的双循环链表
D:单循环链表
答案:D
21.下面关于线性表的叙述错误的是(   )。
A:线性表采用链式存储不必占用一片连续的存储空间
B:线性表采用顺序存储便于插入和删除操作的实现
C:线性表采用顺序存储必须占用一片连续的存储空间
D:线性表采用链式存储便于插入和删除操作的实现
答案:B
22.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(  )。
A:O(n2)
B:O(1)
C:O(n)
D:O(nlog2n)
答案:B
23.顺序查不论在顺序线性表中还是在链式线性表中的时间复杂度为(  )。
A:O(n1/2)
B:O(n2)
C:O(n)
D:O(1og2n)
答案:C
24.设带有头结点的单向循环链表的头指针变量为head,则其判空条件是(  )。
A:head->next==head
B:head==NULL
C:head!= NULL
D:head->next== NULL
答案:A
25.线性表的唯一存储形式是链表。
A:对
B:错
答案:B
26.已知指针P指向键表L中的某结点,执行语句P=P->next不会删除该链表中的结点。
A:对
B:错
答案:A
27.对链表进行插入和删除操作时不必移动链表中结点。
A:错
B:对
答案:B
第三章测试
28.栈结构通常采用的两种存储结构是(  )。
A:链表存储结构和数组
B:散列方式和索引方式
C:线性存储结构和非线性存储结构
D:线性存储结构和链表存储结构
答案:A
29.设循环队列Q[N]的头尾指针为F、R,头指针F总是指在队列中的第一个元素的前一位置,则队列中元素计数为( )。
A:R-F
B:(F-R+N)%N
C:(R-F+N)%N 
D:N-(R-F)
字符串长度0到59答案:C
30.队列操作的原则是(  )。
A:只能进行删除
B:先进先出
C:后进先出
D:只能进行插入
答案:B
31.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是(  )。
A:2 3 1 4 5
B:1 5 4 3 2
C:5 4 1 3 2
D:2 3 4 1 5
答案:C
32.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(  )。
A:6
B:4
C:2
D:3
答案:D
33.设用链表作为栈的存储结构则退栈操作(  )。
A:必须判别栈是否为满
B:判别栈元素的类型
C:必须判别栈是否为空
D:对栈不作任何判别
答案:C

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。