最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数据结构 试题及答案

来源:动视网 责编:小OO 时间:2025-09-29 03:07:19
文档

数据结构 试题及答案

一、选择题(2分×20)1.在下面的程序段中,对x的赋值语句的频度为()CFORi:=1TOnDOFORj:=1TOnDOx:=x+1;A.O(2n)B.O(n)C.O(n2)D.O(log2n)2.静态链表中指针表示的是().CA.内存地址B.数组下标C.下一元素地址D.左、右孩子地址3.线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()CA.O(i)B.O(1)C.O(n)D.O(i-1)4.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继
推荐度:
导读一、选择题(2分×20)1.在下面的程序段中,对x的赋值语句的频度为()CFORi:=1TOnDOFORj:=1TOnDOx:=x+1;A.O(2n)B.O(n)C.O(n2)D.O(log2n)2.静态链表中指针表示的是().CA.内存地址B.数组下标C.下一元素地址D.左、右孩子地址3.线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()CA.O(i)B.O(1)C.O(n)D.O(i-1)4.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继
一、选择题(2分×20)

1.在下面的程序段中,对x 的赋值语句的频度为( )C

FOR i:=1 TO n DO

FOR j:=1 TO n DO

x:=x+1;

A. O(2n) B.O(n) C.O(n2) D.O(log2n)

2. 静态链表中指针表示的是( ).C 

A. 内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址

3.线性表( a1,a2,…,an)以链接方式存储时,访问第i 位置元素的时间复杂性为( )C

A.O(i) B.O(1) C.O(n) D.O(i-1)

4. 双向链表中有两个指针域,llink 和rlink,分别指回前驱及后继,设p 指向链表中的一个结点,q指向一待插入结点,现要求在p 前插入q,则正确的插入为( )D

A. p^.llink:=q; q^.rlink:=p; p^.llink^.rlink:=q; q^.llink:=p^.llink;

B. q^.llink:=p^.llink; p^.llink^.rlink:=q; q^.rlink:=p; p^.llink:=q^.rlink;

C. q^.rlink:=p; p^.rlink:=q; p^.llink^.rlink:=q; q^.rlink:=p;

D. p^.llink^.rlink:=q; q^.rlink:=p; q^.llink:=p^.llink; p^.llink:=q;

5. 双向链表中有两个指针域,llink 和rlink 分别指向前趋及后继,设p 指向链表中的一个结点,现要求删去p 所指结点,则正确的删除是( )(链中结点数大于2,p 不是第一个结点)D

A.p^.llink^.rlink:=p^.llink; p^.llink^.rlink:=p^.rlink; dispose(p);

B.dispose(p); p^.llink^.rlink:=p^.llink; p^.llink^,rlink:=p^.rlink;

C.p^.llink^.rlink:=p^.llink; dispose(p); p^.llink^.rlink:=p^.rlink;

D.以上A,B,C 都不对。 

6. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN 是n,则pi 是( )。C

A. i B. n-i C. n-i+1 D. 不确定

7. 输入序列为ABC,可以变为CBA 时,经过的栈操作为( )B

A. push,pop,push,pop,push,pop B. push,push,push,pop,pop,pop

C. push,push,pop,pop,push,pop D. push,pop,push,push,pop,pop

8. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i 个栈( i =1,2)栈顶,栈1 的底在v[1],栈2 的底在V[m],则栈满的条件是( )。B

A. |top[2]-top[1]|=0 B. top[1]+1=top[2] C. top[1]+top[2]=m D. top[1]=top[2]

9. 执行完下列语句段后,i 值为:( )B

int f(int x)

{ return ((x>0) ? x* f(x-1):2);}

int i ;

i =f(f(1));

A.2 B. 4 C. 8 D. 无限递归

10. 循环队列A[0..m-1]存放其元素值,用front 和rear 分别表示队头和队尾,则当前队列中的元素数是( )。A

A. (rear-front+m)%m B. rear-front+1 C. rear-front-1 D. rear-front

11. 循环队列存储在数组A[0..m]中,则入队时的操作为( )。D

A. rear=rear+1 B. rear=(rear+1) mod (m-1)

C. rear=(rear+1) mod m D. rear=(rear+1)mod(m+1)

12.若串S1=‘ABCDEFG’, S2=‘98’ ,S3=‘###’,S4=‘012345’,执行concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index(S2,‘8’),length(S2)))其结果为( )A

A.ABC###G1234 B.ABCD###2345 C.ABC###G2345 D.ABC###2345

13.若串S=’software’,其子串的数目是( )。B

A.8 B.37 C.36 D.9

14. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6 个字节存储,存储器按字节编址,那么这个数组的体积是(①)个字节。假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A 的最后一个元素的第一个字节的地址是(②)。若按行存储,则A[2,4]的第一个字节的地址是(③)。若按列存储,则A[5,7]的第一个字节的地址是(④)。就一般情况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。供选择的答案: 2.1L 2.2J 2.3C 2.4I 2.5C

①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120G. 156 H. 234 I. 276 J. 282 K. 283 L. 288

⑤: A.行与列的上界相同 B. 行与列的下界相同

C. 行与列的上、下界都相同 D. 行的元素个数与列的元素个数相同

15. 已知广义表LS=((a,b,c),(d,e,f)),运用head 和tail 函数取出LS 中原子e 的运算是( )。C

A. head(tail(LS)) B. tail(head(LS))

C. head(tail(head(tail(LS))) D. head(tail(tail(head(LS))))

16. 下面说法不正确的是( )。A

A. 广义表的表头总是一个广义表 B. 广义表的表尾总是一个广义表

C. 广义表难以用顺序存储结构 D. 广义表可以是一个多层次的结构

二、判断题(1分×10)

1. 数据元素是数据的最小单位。( ) ×

2. 记录是数据处理的最小单位。 ( ) × 

3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;( ) ×

4.算法的优劣与算法描述语言无关,但与所用计算机有关。( ) ×

5. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。( ) ×

6. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( ) ×

7. 取线性表的第i 个元素的时间同i 的大小有关. ( ) ×

8. 栈与队列是一种特殊操作的线性表。( )√

9. 一个稀疏矩阵Am*n 采用三元组形式表示, 若把三元组中有关行下标与列下标的值互换,并把m 和n 的值互换,则就完成了Am*n 的转置运算。( )×

10. 广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。( )×

三、填空题(2分×20)

1.已知如下程序段

FOR i:= n DOWNTO 1 DO {语句1}

BEGIN

x:=x+1; {语句2}

FOR j:=n DOWNTO i DO {语句3}

y:=y+1; {语句4}

END;

语句1 执行的频度为 (1) ;语句2 执行的频度为 (2) ;语句3 执行的频度为 (3) ;语句4 执行的频度为 (4) 。9.(1)n+1 (2)n (3)n(n+3)/2 (4)n(n+1)/2。

2. 在双向循环链表中,向p 所指的结点之后插入指针f 所指的结点,其操作是_______、_______、_______、________。8.f->next=p->next; f->prior=p; p->next->prior=f; p->next=f;

31. 下面是用c 语言编写的对不带头结点的单链表进行就地逆置的算法,该算法用L 返回逆置后的链表的头指针,试在空缺处填入适当的语句。

void reverse(linklist &L){

p=null;q=L;

while(q!=null)

{ (1) ; q->next=p;p=q;(2)___ ; }

(3)_____;

}31. (1)L=L->next; ∥暂存后继(2)q=L; ∥待逆置结点(3)L=p; ∥头指针仍为L

3. 设有一个空栈, 栈顶指针为1000H( 十六进制) , 现有输入序列为1 , 2 , 3 , 4 , 5 , 经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH 之后,输出序列是_______,而栈顶指针值是_______H。设栈为顺序栈,每个元素占4 个字节。    23 100CH

4. 当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与top[2],则当栈1 空时,top[1]为_______,栈2 空时 ,top[2]为_______,栈满时为_______。 0 n+1 top[1]+1=top[2]

13.下列程序判断字符串s 是否对称,对称则返回1,否则返回0;如 f("abba")返回1,f("abab")返回

0;

int f((1)________)

{int i=0,j=0;

while (s[j])(2)________;

for(j--; ireturn((3)_______)

} 13.(1)char s[ ] (2) j++ (3) i >= j

5. 已知广义表LS=(a,(b,c,d),e),运用head 和tail 函数取出LS 中原子b 的运算是_______。28. head(head(tail(LS)))

四、应用题(5分×2)

1. 试述头结点,首元结点,头指针这三个概念的区别.

2. 试证明:若借助栈由输入序列1,2,…,n 得到输出序列为P1,P2,…,Pn(它是输入序列的一个排列),

文档

数据结构 试题及答案

一、选择题(2分×20)1.在下面的程序段中,对x的赋值语句的频度为()CFORi:=1TOnDOFORj:=1TOnDOx:=x+1;A.O(2n)B.O(n)C.O(n2)D.O(log2n)2.静态链表中指针表示的是().CA.内存地址B.数组下标C.下一元素地址D.左、右孩子地址3.线性表(a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为()CA.O(i)B.O(1)C.O(n)D.O(i-1)4.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top