C语言版习题案例库.docx

上传人:b****5 文档编号:6479538 上传时间:2023-01-06 格式:DOCX 页数:37 大小:98.22KB
下载 相关 举报
C语言版习题案例库.docx_第1页
第1页 / 共37页
C语言版习题案例库.docx_第2页
第2页 / 共37页
C语言版习题案例库.docx_第3页
第3页 / 共37页
C语言版习题案例库.docx_第4页
第4页 / 共37页
C语言版习题案例库.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

C语言版习题案例库.docx

《C语言版习题案例库.docx》由会员分享,可在线阅读,更多相关《C语言版习题案例库.docx(37页珍藏版)》请在冰豆网上搜索。

C语言版习题案例库.docx

C语言版习题案例库

数据结构(含实训)——C语言版

一、填空题

1.在双链表中要删除已知结点*s,其时间复杂度为O

(1)  。

2.循环队列用数组data[max]存放其元素值,已知其头、尾指针分别是front和rear,则当前队列中元素的个数是  (m+rear-front)%m    。

3.具有12个结点的完全二叉树的叶结点有6个。

4.在任何一棵二叉树中,度为0的结点n0和度为2的结点n2之间的关系是n0=n2+1。

5.已知完全二叉树的第4层有4个结点,则其叶子结点数是6。

6.在仅有尾指针rear指示的单循环链表rear中,在表尾插入一个结点s的语句序列是s->next=rear->next;rear->next=s。

7.栈顶的位置是随着入栈出栈操作而变化的。

8.数据结构一般包括三个方面的内容:

数据的逻辑结构、数据的存储结构及对数据的运算。

9.假设以S和X分别表示进栈和出栈操作,则对输入序列1,2,3,4,5进行一系列栈操作SSXSXSSXXX之后,得到的输出序列为bceda。

10.数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。

11.在带头结点的双链表head中,指针p所指结点是开始结点的条件是p->prior==head。

12.在选择排序、堆排序、快速排序、直接插入排序中,稳定的排序方法是直接插入排序。

13.在具有n个结点的双链表中做插入、删除运算,平均时间复杂度为O(n)。

14.队列的队尾位置随着入队而变化。

15.快速排序在最坏情况下的时间复杂度是O(n2)。

16.n(n>0)个顶点连通无向图的生成树恰有n-1条边。

17.在一个长度为n的顺序表中第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1个元素。

18.在只有一个数据元素的情况下,链队列的出队操作需要修改尾指针。

19.数据结构是相互之间存在一种或多种特定关系的数据元素的集合,它包括三方面的内容,分别是数据的逻辑结构、数据的物理结构和数据的运算。

20.在双循环链表中,若要在指针p所指结点之前插入指针s所指的结点,则需执行下列语句:

s->prior=p->prior;p->prior->next=s;s->next=p;和p->prior=s;。

21.从栈顶指针为top的链栈中删除一个结点,并将被删除的结点的值保存在x中,其操作步骤为x=top->data;top=top->next;。

22.用数组A[m]来存放循环队列q的元素,且它的头、尾指针分别为front和rear,队列满足条件(q->rear+1)%m==q->front,则队列中当前的元素个数为m-1。

0

A

-1

1

B

0

2

C

0

3

D

1

4

E

2

23.深度为6的二叉树最多有63个结点。

24.右图为某树的静态双亲表示,则结点D、E的双亲结点分别为B和C。

25.已知指针p指向双向链表中的一个结点(非首结点、非尾结点),则将结点s插入在p结点的直接后继位置的语句是s->next=p->next;s->prior=p;s->next->prior=s;p->next=s;

26.一个二叉树中,度为2的结点有3个,则叶结点有4个。

27.顺序栈s存储在数组s->data[max]中,对s进行出栈操作,执行的语句序列是x=s->data[s->top];s->top--;。

28.以下运算实现在循环队列中的初始化操作

voidinitqueue(seqqueue*q){q->front=0;q->rear=0;}

29.若二叉树的一个叶子是某子树的中序遍历序列中的第一个结点,则它必是该子树的后根遍历序列中的第一个结点。

30.对于二叉排序树的查找,若根结点元素的键值大于被查找元素的键值,则应该在该二叉树的左子树上继续查找。

31.数据的逻辑结构与数据元素本身的内容和形式无关。

32.程序段“for(i=1;i<=n;i++){k++;for(j=1;j<=n;j++)x=x+k;}”的时间复杂度T(n)=O(n2)。

33.已知带表头结点的单链表L,指针p指向L链表中的一个结点(非首结点、非尾结点),则:

删除结点p的直接后继结点的语句是p->next=p->next->next;删除首结点的语句是L=L->next。

34.二叉树通常有顺序存储结构和链式存储结构两种。

35.二叉树在二叉链表表示方式下,p指向二叉树的根结点,经运算s=p;while(s->rchild)s=s->rchild后,s指针指向右子树最右结点。

36.对于n个记录的集合进行冒泡排序,其最坏情况下所需的时间复杂度是O(n2)。

二、选择题

1.下列算法的时间复杂度是(B)。

for(i=1;i<=n;i++)

c[i]=i;

A、O

(1)B、O(n)C、O(log2n)D、O(nlog2n)

2.在表长为n的顺序表上做插入运算,平均要移动的结点数为(B)。

A、nB、n/2C、n/3D、n/4

3.在一个单链表中,若P所指结点不是最后结点,在P之后插入S所指结点,则执行(A)。

A、S->next=P->next;P->next=S;

B、P->next=S->next;S->next=P;

C、P->next=P;P->next=S;

D、P->next=S;S->next=P;

4.在具有m个结点的完全二叉树中,结点i(i>1)的父结点是(D)。

A、2iB、不存在C、2i+1D、⌊i/2⌋

5.在一个具有k个结点的无向图中,要连通全部结点至少需要(C)。

A、k条边B、k+1条边C、k-1条边D、k/2条边

6.最小生成树指的是(C)。

A、由连通图所得到的边数最少的生成树

B、由连通图所得到的顶点相对较少的生成树

C、连通图的所有生成树中权值之和最小的生成树

D、连通图的极小连通子图

7.二叉排序树中,关键字值最大的结点(D)。

A、左指针一定为空  B、右指针一定为空

C、左、右指针均为空D、左、右指针均不为空

8.数据在计算机存储器内表示时,根据结点的关键字直接计算出该结点的存储地址,这种方法称为(D)。

A、索引存储方法B、顺序存储方法

C、链式存储方法D、散列存储方法

9.在已知头指针的单链表中,要在其尾部插入一新结点,其算法的时间复杂度为(C)。

A、O

(1)B、O(log2n)C、O(n)D、O(n2)

10.循环队列是空队列的条件是(A)。

A、Q->rear==Q->frontB、(Q->rear+1)%maxsize==Q->front

C、Q->rear==0D、Q->front==0

11.有n个叶结点的哈夫曼树所具有的结点数为(D)。

A、nB、n+1C、2nD、2n-1

12.图的广度优先搜索遍历类似于树的(D)。

A、先序遍历B、中序遍历C、后序遍历D、层次遍历

13.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(B)。

A、1/2倍B、1倍C、2倍D、4倍

14.对n个不同的排序码进行冒泡排序,在元素无序情况下的比较次数为(D)。

A、n+1B、nC、n-1D、n(n-1)/2

15.顺序查找法适合于存储结构为(B)的线性表。

A、散列存储      B、顺序存储或链接存储

C、压缩存储      D、索引存储

16.链栈与顺序栈相比,比较明显的优点是(D)。

A、插入操作更加方便     B、删除操作更加方便

C、不会出现下溢的情况  D、不会出现上溢的情况

17.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为(C)。

A、顺序表B、用头指针表示的单循环链表

C、用尾指针表示的单循环链表D、单链表

18.下列陈述中正确的是(D)。

A、二叉树是度为2的有序树

B、二叉树中结点只有一个孩子时无左右之分

C、二叉树中必有度为2的结点

D、二叉树中最多只有两棵子树,并且有左右之分

19.在查找过程中,若同时还要做增、删工作,这种查找则称为(B)。

A、静态查找B、动态查找C、内查找D、外查找

20.线性表是(A)。

A、一个有限序列,可以为空B、一个有限序列,不能为空

C、一个无限序列,可以为空D、一个无限序列,不能为空

21.在n个结点的双链表的某个结点前插入一个结点的时间复杂度是(B)。

A、O(n)B、O

(1)C、O(log2n)D、O(n2)

22.若一个栈的输入序列是1,2,3,……,m,输出序列的第一个元素是m,则第i个输出元素是(B)。

A、m-iB、m–i+1C、iD、不确定

23.以二叉链表作为二叉树的存储结构,在具有m个结点的二叉链表中(m>0),空链域的个数为(C)。

A、2m-1B、m-1C、m+1D、2m+1

24.快速排序算法在最坏情况下的时间复杂度为(C)。

A、O(n)B、O(nlog2n)C、O(n2)D、O(log2n)

25.具有m个结点的无向图的边数最多为(B)。

A、m+1B、m(m-1)/2C、m(m+1)D、2m(m+1)

26.线性表采用链式存储时,结点的地址(C)。

A、必须是连续的B、必须是不连续的

C、连续与否均可D、必须有相等的间隔

27.栈与一般线性表的区别主要在(D)。

A、元素个数B、元素类型C、逻辑结构D、插入、删除元素的位置

28.从未排序序列中挑选元素,将其放在已排序序列的一端,这种排序方法称为(A)。

A、选择排序B、插入排序C、快速排序D、冒泡排序

29.若m个顶点的无向图采用邻接矩阵存储方法,该邻接矩阵是一个(B)。

A、一般矩阵B、对称矩阵C、对角矩阵D、稀疏矩阵

30.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为(B)。

A、99B、98C、48D、50

31.堆排序是一种( B )排序。

A、插入B、选择C、交换D、归并

32.在单链表中,增加头结点的目的是(C)。

A、使单链表至少有一结点B、标志表中首结点位置

C、方便运算的实现D、说明单链表是线性表的链式存储实现

33.下列排序方法中,排序趟数与序列的原始状态有关的方法是(D)。

A、选择排序B、希尔排序C、堆排序D、冒泡排序

34.堆的形状是一棵(C)。

A、二叉排序树B、满二叉树C、完全二叉树D、平衡二叉树

35.在一棵具有5层的满二叉树中,结点总数为(A)。

A、31B、32C、33D、16

36.带头结点的单链表head为空的判定条件是(B)。

A、head=NULL;B、head->next=NULL;

C、head->next=head;D、head!

=NULL;

37.一个链栈的栈顶指针是top,则执行出栈操作时(栈非空),用x保存被删除结点的值,则执行(D)。

A、x=top;top=top->next;

B、x=top->data;

C、top=top->next;x=top->data;

D、x=top->data;top=top->next;

38.在一个具有m个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度为(B)。

A、O

(1)B、O(m)C、O(m2)D、O(log2m)

39.对线性表进行二分查找时,要求线性表必须(B)。

A、以顺序方式存储B、以顺序方式存储且元素有序

C、以链接方式存储D、以链接方式存储且元素有序

40.在一棵二叉树中,第5层上的结点数最多为(C)。

A、8B、15C、16D、32

41.在下列排序方法中,不稳定的排序方法是(B)。

A、直接插入排序B、直接选择排序  C、冒泡排序D、归并排序

42.快速排序在(C)情况下最易发挥其长处。

A、被排序的数据中含有多个相同排序码

B、被排序的数据已基本有序

C、被排序的数据完全无序

D、被排序的数据中的最大值和最小值相差悬殊

43.若用冒泡排序对关键字序列{18,16,14,12,10,8}进行从小到大的排序,所需进行的关键字比较总次数是(B)。

A、10B、15C、21D、34

44.下列有关线性表的叙述中,正确的是(A)。

A、线性表中的元素之间是线性关系

B、线性表中至少有一个元素

C、线性表中任何一个元素有且仅有一个直接前趋

D、线性表中任何一个元素有且仅有一个直接后继

45.用冒泡排序的方法对n个数据进行排序,第一趟共比较(C)对元素。

A、1B、2C、n-1D、n

46.由二叉树的(B)遍历,可以惟一确定一棵二叉树。

A、前序和后序B、前序和中序C、后序D、中序

47.用( B )方法遍历一棵二叉排序树,可以得到各结点键值的递增序列。

A、先根遍历B、中根遍历C、层次遍历D、后根遍历

48.对于一个栈,给定输入序列为1,2,3,则下列不可能为输出序列的是(C)。

A、1,2,3B、3,2,1C、3,1,2D、2,1,3

49.在单链表中,存储每个结点需要有两个域,一个是数据域,另一个是指针域,它指向该结点的(B)。

A、直接前趋B、直接后继C、开始结点D、终端结点

50.在链接队列中执行入队操作(D)。

A、需判别队列是否为空B、需判别队列是否为满

C、限制在链表头p进行D、限制在链表尾p进行

51.以下哪一个术语与数据的存储结构无关?

(D)。

A、顺序表B、链表

C、散列表D、队列

52.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是(A)。

A、nB、2n-1C、2nD、n-1

53.链表不具有的特点是(A)。

A、随机访问    B、不必事先估计存储空间

C、插入删除时不需移动元素D、所需的空间与线性表成正比

54.以下不属于栈的基本运算是(B)。

A、删除栈顶元素B、删除栈底元素

C、判断栈是否为空D、将栈置为空栈

55.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是(C)。

A、e,d,c,b,a B、d,e,c,b,a

C、d,c,e,a,b D、a,b,c,d,e

56.设计一个判别表达式中左、右括号是否配对出现的算法,采用(B)数据结构最佳。

A、线性表的顺序存储结构 B、栈

C、队列    D、线性表的链式存储结构

57.循环队列的特点之一是不会产生(D)。

A、上溢出B、下溢出C、队满D、假溢出

58.设数组Data[n]作为循环队列Q的存储空间,front为队头指针,rear为队尾指针,则执行入队操作的语句为(C)。

A、Q->rear=(Q->rear+1)%(n+1)B、Q->front=(Q->front+1)%n

C、Q->rear=(Q->rear+1)%nD、Q->front=(Q->front+1)%(n+1)

59.在一个单链表中,已知q所指结点是p所指结点的直接前趋,若在p,q之间插入s结点,则执行的操作是(B)。

A、s->next=p->next;p->next=s;B、q->next=s;s->next=p;

C、p->next=s->next;s->next=p; D、p->next=s;s->next=q;

60.在具有n个结点的完全二叉树中,结点i(2i

A、2iB、不存在

C、2i+1D、2i-1

61.已知一棵二叉树的先序遍历序列为EFHIGJK,中序遍历序列为HFIEJGK,则该二叉树根的右子树的根是(C)。

A、EB、F C、GD、J

62.由4个结点构造出的不同的二叉树个数共有(D)。

A、8B、10C、12D、14

63.在完全二叉树中,如果一个结点是叶子结点,则它没有(C)。

A、左孩子结点B、右孩子结点

C、左、右孩子结点D、左、右孩子结点和兄弟结点

64.拓扑排序是对(B)进行的。

A、无向图B、有向图

C、任意图D、有向图和无向图

65.记录的关键字序列为(7,6,8,4,3,5),采用快速排序以第一个记录为基准得到的第一次划分结果是(D)。

A、(5,3,6,4,7,8) B、(3,5,6,4,7,8)

C、(6,4,3,5,7,8)D、(5,6,3,4,7,8)

66.稳定的排序方法是(B)。

A、直接插入排序和快速排序 B、直接插入排序和冒泡排序

C、简单选择排序和直接插入排序D、堆排序和归并排序

67.用冒泡排序的方法对n个数据进行排序,第一趟共比较(C)对元素。

A、1B、2

C、n-1D、n

68.下面哪一种图的邻接矩阵肯定是对称矩阵(B)。

A、有向图B、无向图C、AOV网D、AOE网

69.设有向图G有n个顶点,它的邻接矩阵为A,G中第i个顶点Vi的度为(C)。

 

70.使用折半查找,线性表必须(D)。

A、以顺序方式存储 B、以链式方式存储,且元素已按值排好序

C、以链式方式存储D、以顺序方式存储,且元素已按值排好序

71.散列表的地址区间为0~16,散列函数为H1(K)=K%17,采用线性探测法解决冲突,将关键字序列26,25,72,38,1,18,59依次存储到散列表中。

元素59存放在散列表中的地址为(C)。

A、8B、9C、10D、11

72.对以下几个关键字序列进行快速排序,以第一个元素为轴,一次划分效果不好的是(D)。

A、4,1,2,3,6,5,7 B、4,3,1,7,6,5,2

C、4,2,1,3,6,7,5D、1,2,3,4,5,6,7

73.若待排序序列已基本有序,要使它完全有序,从关键字比较次数和移动次数考虑,应当使用的排序方法是(A)。

A、直接插入排序B、快速排序C、直接选择排序D、归并排序

74.以下关于数据的逻辑结构的叙述正确的是(A)。

A、数据的逻辑结构是数据间关系的描述

B、数据的逻辑结构反映了数据在计算机中的存储方式

C、数据的逻辑结构分为顺序结构和链式结构

D、数据的逻辑结构分为静态结构和动态结构

75.算法在发生非法操作时可以做出处理的特性称为(C)。

A、正确性B、易读性C、健壮性D、高效性

76.链表具有的特点是(C)。

A、可随机访问任一元素B、插入、删除需要移动元素

C、不必事先估计存储空间D、存储空间是静态分配的

77.栈是限定在(C)处进行插入或删除操作的线性表。

A、端点B、栈底C、栈顶D、中间

78.容量是10的循环队列的队头位置q->front为2,则队列的第一个数据元素的位置是(B)。

A、2B、3C、1D、0

79.循环队列的出队操作是(A)。

A、q->front=(q->front+1)%maxsize;B、q->front=q->front+1;

C、q->rear=(q->rear+1)%maxsize;D、q->rear=q->rear+1;

80.一个顺序表一旦说明,其中可用空间大小(A)。

A、已固定B、可以改变C、不能固定D、动态变化

81.深度为6的二叉树最多有(B)个结点。

A、64B、63C、32D、31

82.二叉树使用二叉链表存储,若p指针指向二叉树的一个结点,当p->lchild=NULL时,则(A)。

A、p结点左儿子为空B、p结点有右儿子

C、p结点右儿子为空D、p结点有左儿子

83.有n个顶点的无向图的邻接矩阵是用(A)数组存储。

A、n行n列B、一维C、任意行n列D、n行任意列

84.最小生成树的构造可使用(A)。

A、prim算法B、冒泡算法

C、迪杰斯特拉算法D、哈夫曼算法

85.索引顺序表的特点是顺序表中的数据(C)。

A、有序B、无序C、块间有序D、散列

86.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找键值为84的结点时,经(C)次比较后查找成功。

A、2B、3C、4D、12

87.与其他查找方法相比,散列查找法的特点是(C)。

A、通过关键字比较进行查找

B、通过关键字计算记录存储地址,并进行地址的比较。

C、通过关键字计算记录存储地址,并进行一定的比较查找

D、通过关键字比较进行查找,并计算记录存储地址

88.以下稳定的排序方法是(B)。

A、快速排序B、冒泡排序C、直接选择排序D、堆排序

89.当循环队列q是满队列时,存放队列元素的数组data有n个元素,则data中存放(B)个数据元素。

A、nB、n-1C、n-2D、0

90.将含100个结点的完全二叉树从根这一层开始,按从上到下、从左到右依次对结点编号,根结点的编号为1,则编号为50的结点X的双亲的编号为(A)。

A、25B、48C、100D、无法确定

91.逻辑结构是指数据元素的(A)。

A、关联方式B、存储方式C、结构D、数据项

92.研究数据结构就是研究(D)。

A、数据的逻辑结构

B、数据的存储结构

C、数据的逻辑结构和存储结构

D、数据的逻辑结构、存储结构及其数据的运算

93.若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用(A)存储方式最节省时间。

A、顺序表B、单链表C、双向链表D、单循环链表

94.两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素的前驱的条件是(A)。

A、P->next==QB、Q->next==P

C、P==QD、P->next==Q->next

95.在一个链队列中,若f,r分别为队首、队尾指针,则插入s所指结点的操作为(B)。

A、f->next=s;f=sB、r->next=s;r=s;

C、s->next=r;r=s;D、s->next=f;f=s

96.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1