1.3算法的描述和分析1、【单选题】下列算法的时间复杂度是( )。 for(i=1;i<=n;i ) c[i]=i;
a、o(1)
b、o(n)
c、o(n2)
2、【填空题】数据结构研究的主要内容包括( )、( )和( )。
3、【填空题】数据的逻辑结构包括()和()两大类。
4、【判断题】数据是信息的载体,音乐、图像和word文件都属于数据。
5、【判断题】沃思(n.wirth)教授曾提出:程序 数据结构=算法。
1.4c语言相关知识介绍1、【单选题】while语句的执行过程是( )。
a、先判断条件,后执行循环体。
b、先执行循环体,后判断条件。
2、【单选题】下列程序的执行结果是()。 main() { int a[5]={1,2,3,4,5}; int *p; p=a; printf("%d,%d\n",p[2],*(p 2)); }
a、2,2
b、2,3
c、3,3
3、【填空题】结构体类型定义的关键字是( )。
4、【判断题】执行下列语句t=a;b=t;a=b;之后,可以实现a和b两个变量的值交换。( )
5、【判断题】if语句选择结构无论有多少分支,只能执行一个分支控制的语句。( )
2.2.2顺序表基本运算1、【单选题】下列有关线性表的叙述中,正确的是( )。
a、线性表中的元素之间是线性关系
b、线性表中至少有一个元素
c、线性表中任何一个元素有且仅有一个直接前
d、线性表中任何一个元素有且仅有一个直接后继
2、【单选题】已知线性表l=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&l)后的l状态。( ) void f30(seqlist *l) { int i,j; for (i=j=0;i
length; i ) if(l->data[i]>=0) { if(i!=j) l->data[j]=l->data[i]; j ; } l->length=j; }
a、l=(-7,-8,0,-11,-10)
b、l=(21,19,34,30)
c、l=(21,19,0,34,30)
3、【填空题】线性表a的数据元素的长度为2,在顺序存储结构下loc(a0) =100,则loc(a5) =()。
4、【填空题】在一个长度为n的顺序表中第i个元素(1≤i≤n 1)之前插入一个元素时,需向后移动()个元素。
5、【判断题】顺序表是用顺序存储方法存储的线性表。
2.4顺序表和链表的比较
1、【单选题】在单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行( )。
a、s->next=p->next; p->next=s;
b、p->next=s->next; s->next=p;
c、p->next=p; p->next=s;
2、【单选题】删除下图单链表中的q结点,执行的两条语句是什么?
a、p->next=q; free(q);
b、p->next=q->next; free(q);
c、p=q->next; free(q);
3、【判断题】顺序表适合插入和删除运算,单链表适合查找运算。( )
3.1.3链栈及操作实现
1、【单选题】链栈与顺序栈相比,比较明显的优点是()。
a、不会出现下溢的情况
b、不会出现上溢的情况
2、【填空题】假设以s和x分别表示进栈和出栈操作,则对输入序列a,b,c,d,e进行一系列栈操作ssxsxssxxx之后,得到的输出序列为()。
3、【填空题】顺序栈中有3个元素,top当前位置大小为()。
4、【判断题】数据元素1,2,3顺序进栈,允许任意出栈,出栈可以得到6种序列。( )
5、【判断题】栈的操作原则是先进后出或者后进先出。( )
6、【判断题】顺序栈执行出栈操作之前要判断栈空。( )
3.2.3链队列及操作实现
1、【单选题】队列的操作原则是()。
a、先进后出
b、先进先出
2、【单选题】设数组data[n]作为循环队列q的存储空间,front为队头指针,rear为队尾指针,则执行入队操作的语句为( )。
a、q->rear=(q->rear 1)%n
b、q->front=(q->front 1)%n
3、【单选题】已知队列q中存放数据(1,-2,3,-4,5,-6),其中1为队头,执行下面程序段之后,队列q1和q2中结果为()。 void fun(cirqueue*q, cirqueue *q1, cirqueue *q2) { int e; initqueue(q1); initqueue(q2); while (!queueempty(q)) { e=dequeue(q); if(e>=0) enqueue(q1,e); else enqueue(q2,e); } }
a、q1=(1,-2,3); q2=(-4,5,-6);
b、q1=(1,3,5); q2=(-2,-4,-6);
4、【判断题】顺序队列执行进队操作之前不需要判断队满。( )
6.3二叉树的遍历
1、【单选题】下图的树中结点c的度是( )。
a、1
b、2
c、3
2、【单选题】下列哪个图不是完全二叉树( )。
a、
b、
c、
d、
3、【单选题】深度为5的二叉树最多有( )个结点。
a、5
b、16
c、31
4、【填空题】二叉树的第3层上最多有( )个结点。
5、【填空题】写出下图二叉树的中序遍历结果( )。
6、【判断题】叶子结点的度为零,也就是没有双亲的结点。( )
7、【判断题】二叉树中任意结点最多只能有2个孩子。( )
8、【判断题】假设度为0的结点个数为8,那么度为2的结点个数为9。( )
6.6.3哈夫曼树编码
1、【单选题】若由树转化得到的二叉树是非空的二叉树,则二叉树形状是( )。
a、根结点无右子树的二叉树
b、根结点无左子树的二叉树
c、根结点可能有左子树和右子树
2、【单选题】下图的树的带权路径长度(也称wpl值)为( )。
a、117
b、119
c、99
3、【单选题】哈夫曼树是访问叶结点的带权路径长度( )的二叉树。
a、最短
b、最长
c、可变
4、【填空题】下面哈夫曼树中结点c的编码是( )。
5、【判断题】双亲表示法是为树中每个结点附设一个域,来存储其双亲的下标。( )
7.2.2邻接表表示法
1、【单选题】连通分量是无向图中的( )。
a、极大连通子图
b、极小连通子图
c、极大强连通子图
2、【单选题】若m个顶点的无向图采用邻接矩阵存储方法,该邻接矩阵是一个( )。
a、稀疏矩阵
b、对称矩阵
c、对角矩阵
3、【单选题】利用图的邻接矩阵存储法写出下面无向图的邻接矩阵。
a、
b、
c、
4、【填空题】n的顶点的有向完全图含有( )条边。
5、【判断题】连通图的连通分量就是本身。( )
6、【判断题】有向图中顶点v的出度就是以v为终点的边的数目。( )
7、【判断题】无向图的任意一条边都是没有方向的。( )
8.2.3分块查找
1、【单选题】采用二分法查找,要求线性表必须是( )。
a、顺序存储的无序表
b、顺序存储的有序表
c、链式存储的有序表
2、【单选题】分块查找的主表被分成若干块,各块之间( ),块内无序。
a、无序
b、有序
c、任意
3、【单选题】设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找键值为84的结点时,经( )次比较后查找成功。
a、2
b、3
c、4
4、【判断题】若在查找的同时对表进行插入或者删除操作,则称为静态查找。( )
5、【判断题】顺序查找是从表的一端开始,顺序扫描线性表,依次将扫描到结点的关键字和给定值k相比较。( )
9.3.2快速排序
1、【单选题】对序列4,2,5,1,3采用冒泡排序法,第一趟的排序结果为( )。
a、2,5,1,3,4
b、2,4,1,3,5
c、2,4,5,1,3
2、【单选题】对序列4,2,5,1,3采用直接插入排序法,第一趟的排序结果为( )。
a、2,5,1,3,4
b、2,4,1,3,5
c、2,4,5,1,3
3、【单选题】对序列25,36,12,68,45,16,37,22采用希尔排序法,第一趟的排序结果为( )。
a、25,16,12,22,45,36,37,68
b、12,16,22,25,36,37,45,68
c、12,16,25,22,37,36,45,68
4、【填空题】若相同关键字的先后次序在排序过程中没有变化,则称所用的排序方法是( )。
5、【判断题】冒泡排序法是一种不稳定的排序方法。( )
6、【判断题】直接插入排序法是一种稳定的排序方法。( )
猜你喜欢
- 2022-12-05 20:57
- 2022-12-05 20:40
- 2022-12-05 20:33
- 2022-12-05 20:18
- 2022-12-05 20:18
- 2022-12-05 19:56
- 2022-12-05 19:52
- 2022-12-05 19:49
- 2022-12-05 19:49
- 2022-12-05 19:14