数据结构与算法期末考试复习试题
- 格式:doc
- 大小:94.53 KB
- 文档页数:18
《数据结构与算法》一、选择题1. 组成数据的基本单位是( )。
(A) 数据项 (B)数据类型 (C)数据元素 (D)数据变量2. 线性表的链接实现有利于( )运算。
(A) 插入 (B)读表元 (C)查找 (D)定位3. 串的逻辑结构与( )的逻辑结构不同。
(A) 线性表 (B)栈 (C)队列 (D)树4. 二叉树第i(i≥1)层最多有( )个结点。
(A) 2i (B)2i (C) 2i-1 (D) 2i-15. 设单链表中指针p指向结点A,若要删除A后结点(若存在),则需要修改指针的操作为( )(A) p->next = p->next->next (B)p=p->next(C)p=p->next->next (D)p->next=p6、栈和队列的共同特点是( )。
(A)只允许在端点处插入和删除元素 (B)都是先进后出(C)都是先进先出 (D)没有共同点7、二叉树的第k层的结点数最多为( ).(A)2k+1 (B)2K+1 (C)2K-1(D) 2k-18、设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA9、设某完全无向图中有n个顶点,则该完全无向图中有()条边。
(A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-110、下面程序的时间复杂为()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(n2) (C) O(nlog2n) (D) O(n3)11、设某强连通图中有n个顶点,则该强连通图中至少有()条边。
(A) n(n-1) (B) n+1 (C) n (D) n(n+1)12、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。
【期末复习】数据结构期末综合练习及参考答案四(算法分析题)数据结构(本科)期末综合练习四(算法分析题)1. 指出算法的功能并求出其时间复杂度。
int fun(int n){int i =1,s=1;while(s< bdsfid="67" p=""><>return i;}功能为:时间复杂度为:2. 指出算法的功能并求出其时间复杂度。
void matrimult(int a[M][N], int b[N][L], int c[M][L]){ //M、N、L均为全局整型常量int i, j, k;for ( i = 0; i < M; i++ )for ( j = 0; j < L; j++ )c[i][j] = 0;for( i =0; i <m;i++)< bdsfid="79" p=""></m;i++)<>for(j=0;j<l;j++)< bdsfid="81" p=""></l;j++)<>for(k=0;k<n;k++)< bdsfid="83" p=""></n;k++)<>c[i][j]+=a[i][k]*b[k][j];}功能为:时间复杂性为:3. 针对如下算法,回答问题:若数组A[n] = {12, 24, 0, 38, 0, 0, 0, 0, 29, 0, 45, 0}, n = 12,给出算法执行后数组A[n]的状态。
templatevoid unknown ( T A[ ], int n ) {int free = 0;for ( int i = 0; i < n; i++ )if ( A[i] != 0 ) {if ( i != free ) {A[free] = A[i];A[i] = 0;}free++;}}算法执行的结果4. 设顺序表SeqList具有下列操作:int Length( ) const; //计算表长度并返回,若表为空则返回0T Remove( ); //删除当前表项并返回其值,置下一表项为当前表项T First( ); //取表中第一个表项的值并返回,并置为当前表项T Next( ); //取当前表项后继表项的值并返回,//并把此后继表项置为当前表项若顺序表中存放的数据为{29,38,47,16,95,64,73,83,51,10,0,26},表的长度为12,参数值s=10, t=30,说明算法执行后顺序表的状态和长度的变化。
数据结构与算法试题库含答案一、单选题(共100题,每题1分,共100分)1.在 Word 2010 中,关于文档自动保存的正确说法是:A、如果不进行特别设置,Word 2010 不会自动保存文档第 32 组B、默认的自动保存时间间隔为 10 分钟C、自动保存时间间隔越短越好D、自动保存时间间隔越长越好正确答案:B2.设一棵树的度为 3,其中没有度为 2的结点,且叶子结点数为 5。
该树中度为 3 的结点数为A、3B、不可能有这样的树C、2D、1正确答案:C3.下面属于应用软件的是A、人事管理系统B、Oracle 数据库管理系统C、C++编译系统D、ios 操作系统第 24 组正确答案:A4.树的度为 3,且有 9 个度为 3 的结点,5 个度为 1 的结点,但没有度为 2 的结点。
则该树中的叶子结点数为A、19B、32C、33D、18正确答案:A5.下列叙述错误的是:A、Microsoft Windows 7 属于应用软件B、把高级语言源程序转换为机器语言目标程序的过程,称为编译C、计算机内部对数据的传输、存储和处理都使用二进制D、把数据从内存传输到硬盘的操作称为写盘正确答案:A6.在 Word 文档中,学生“张小民”的名字被多次错误地输入为“张晓明”、“张晓敏”、“张晓民”、“张晓名”,纠正该错误的最优操作方法是:A、从前往后逐个查找错误的名字,并更正。
B、利用Word“查找”功能搜索文本“张晓”,并逐一更正。
C、利用Word“查找和替换”功能搜索文本“张晓*”,并将其全部替换为“张小民”。
D、利用Word“查找和替换”功能搜索文本“张晓?”,并将其全部替换为“张小民”。
第 10 组正确答案:D7.对软件系统总体结构图描述正确的是A、深度等于控制的层数B、扇入是一个模块直接调用的其他模块数C、结构图是描述软件系统功能的D、从属模块一定是原子模块正确答案:A8.计算机中组织和存储信息的基本单位是:A、位B、字长C、字节D、编码正确答案:C9.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。
B、创建一个 PowerPoint 演示文稿,然后批量插入图片。
C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。
D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。
正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。
首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。
则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。
则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。
则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。
数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(20分)将两个多项式 P(x) 和 Q(x) 相加,结果存储在另一个多项式 S(x) 中,请写出相应的算法,并给出其时间复杂度分析。
答案:算法如下:1. 初始化一个空多项式 S(x)。
2. 分别取多项式 P(x) 和 Q(x) 的第一项,判断指数的大小关系,并将指数较小的项加入 S(x)。
3. 若指数相同,则将两项系数相加,并将结果加入 S(x)。
4. 重复步骤2和步骤3,直到两个多项式中的所有项都被处理完。
5. 返回结果多项式 S(x)。
时间复杂度分析:- 假设 P(x) 和 Q(x) 的项数分别为 m 和 n。
- 在最坏情况下,需要比较 m+n 次指数大小,并进行 m+n-1 次系数相加。
- 因此,该算法的时间复杂度为 O(m+n)。
第二题:循环队列设计(30分)请设计一个循环队列,实现入队、出队等基本操作,并给出时间复杂度分析。
答案:定义循环队列的结构体如下:```ctypedef struct {int *data; // 存储队列元素的数组int front; // 队首指针,指向队首元素的位置int rear; // 队尾指针,指向队尾的下一个位置int maxSize; // 队列的最大容量} CircularQueue;```基本操作的实现如下:1. 初始化循环队列:```cvoid initQueue(CircularQueue *queue, int maxSize) {queue->data = (int *)malloc(sizeof(int) * maxSize);queue->front = queue->rear = 0;queue->maxSize = maxSize;}```2. 入队操作:```cint enqueue(CircularQueue *queue, int value) {if ((queue->rear + 1) % queue->maxSize == queue->front) { return 0; // 队列已满,插入失败}queue->data[queue->rear] = value;queue->rear = (queue->rear + 1) % queue->maxSize;return 1; // 插入成功}```3. 出队操作:```cint dequeue(CircularQueue *queue, int *value) {if (queue->front == queue->rear) {return 0; // 队列为空,出队失败}*value = queue->data[queue->front];queue->front = (queue->front + 1) % queue->maxSize; return 1; // 出队成功}```时间复杂度分析:- 入队和出队操作的时间复杂度均为 O(1)。
《数据结构与算法》期末练习一选择题1.以下与数据的存储结构无关的术语是( D )。
A.循环队列 B. 链表 C. 哈希表 D. 栈2. 算法的时间复杂度取决于( A )A.问题的规模 B. 待处理数据的初态 C. A和B D. 计算机cpu3. 一个栈的输入序列为 1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B )。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 54 3 24. 有关静态链表的叙述:(1) 静态链表既有顺序存储的优点,又有动态链表的优点。
所以,它存取表中第i个元素的时间与i无关。
(2)静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。
(3) 静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。
以上错误的是( B )A.(1),(2) B.(1) C.(1),(2),(3) D.(2)5.对于有n 个结点的二叉树, 其高度为( D )A.nlog2n B.log2n C.ëlog2nû|+1 D.不确定6.从下列有关树的叙述中,选出正确的叙述( C )A.二叉树中每个结点有两个子结点,而树无此限制,因此二叉树是树的特殊情况。
B.当K≥1时高度为K的二叉树至多有2k-1个结点。
C.哈夫曼树是带权路径最短的树,路径上权值较大的结点离根较近。
D.在二叉树中插入结点,该二叉树便不再是二叉树。
7.设无向图的顶点个数为n,则该图最多有( B )条边。
A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0E.n28.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>, <V1,V3>, <V1,V4>, <V2,V5>, <V3,V5>, <V3,V6>, <V4,V6>, <V5,V7>, <V6,V7>},G的拓扑序列是( A )。
数据结构与算法考试题+答案一、单选题(共100题,每题1分,共100分)1.Excel工作表D列保存了18位身份证号码信息,为了保护个人隐私,需将身份证信息的第9到12位用“*”表示,以D2单元格为例,最优的操作方法是:A、=MID(D2,1,8)+"****"+MID(D2,13,6)B、=CONCATENATE(MID(D2,1,8),"****",MID(D.13,6))C、=REPLACE(D2,9,4,"****")D、=MID(D2,9,4,"****")正确答案:C2.小李正在Word中编辑一篇包含12个章节的书稿,他希望每一章都能自动从新的一页开始,最优的操作方法是:A、在每一章最后连续按回车键Enter,直到下一页面开始处B、将每一章标题指定为标题样式,并将样式的段落格式修改为“段前分页”C、在每一章最后插入分页符D、将每一章标题的段落格式设为“段前分页”正确答案:B3.在Excel2010中,要在某个单元格区域的所有空单元格中填入相同的内容,最佳的操作方法是:A、逐一选中这些空单元格,并输入相同的内容B、按住Ctrl键,同时选中这些空单元格,然后在活动单元格中输入所需内容,并使用Ctrl+Enter组合键在其他空单元格中填入相同内容C、选中包含空单元格的区域,并定位到空值,然后在活动单元格中输入所需内容,并使用正确答案:C4.建立表示学生选修课程活动的实体联系模型,其中的两个实体分别是A、课程和成绩B、学生和学号C、课程和课程号D、学生和课程正确答案:D5.PowerPoint2010演示文稿的首张幻灯片为标题版式幻灯片,要从第二张幻灯片开始插入编号,并使编号值从1开始,正确的方法是:A、直接插入幻灯片编号,并勾选“标题幻灯片中不显示”复选框B、从第二张幻灯片开始,依次插入文本框,并在其中输入正确的幻灯片编号值C、首先在“页面设置”对话框中,将幻灯片编号的起始值设置为0,然后插入幻灯片编号,并勾选“标题幻灯片中不显示”复选框D、首先在“页面设置”对话框中,将幻灯片正确答案:C6.JAVA属于:A、操作系统B、办公软件C、数据库系统D、计算机语言正确答案:D7.某公司需要在Excel中统计各类商品的全年销量冠军,最优的操作方法是:A、在销量表中直接找到每类商品的销量冠军,并用特殊的颜色标记。
《数据结构与算法》复习题 一、选择题。 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构
2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A.逻辑 B.存储 C.逻辑和存储 D.物理
4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。 A.数据的处理方法 B.数据元素的类型 C.数据元素之间的关系 D.数据的存储方法
5.在决定选取何种存储结构时,一般不考虑 A 。 A.各结点的值如何 B.结点个数的多少 C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
6.以下说法正确的是 D 。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
8.下面程序段的时间复杂度是 O(n2) 。 s =0; for( I =0; ifor(j=0;js +=B[i][j]; sum = s ;
9.下面程序段的时间复杂度是 O(n*m) 。 for( i =0; ifor(j=0;j
A[i][j] = 0;
10.下面程序段的时间复杂度是 O(log3n) 。 i = 0; while(i<=n) i = i * 3;
11.在以下的叙述中,正确的是 B 。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出
12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等
13.链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C.不必事先估计存储空间 D.所需空间与其长度成正比 14.不带头结点的单链表head 为空的判定条件是 A 。 A.head == NULL B head->next ==NULL C.head->next ==head D head!=NULL
15.带头结点的单链表head 为空的判定条件是 B 。 A.head == NULL B head->next ==NULL C.head->next ==head D head!=NULL
16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用 D 存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
18.非空的循环单链表head 的尾结点(由p 所指向)满足 C 。 A.p->next == NULL B.p == NULL C.p->next ==head D.p == head
19.在循环双链表的p 所指的结点之前插入s 所指结点的操作是 D 。 A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior C.s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = s D.s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s 20.如果最常用的操作是取第i 个结点及其前驱,则采用 D 存储方式最节省时间。
A.单链表 B.双链表 C.单循环链表 D.顺序表
21.在一个具有n 个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是B 。 A.O(1) B.O(n) C.O(n2) D.O(nlog2n) 22.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。 A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C.在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素
23.与单链表相比,双链表的优点之一是 D 。 A.插入、删除操作更简单 B.可以进行随机访问 C.可以省略表头指针或表尾指针 D.顺序访问相邻结点更灵活
24.如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。 A.只有表头指针没有表尾指针的循环单链表 B.只有表尾指针没有表头指针的循环单链表 C.非循环双链表 D.循环双链表
25.在长度为n 的顺序表的第i 个位置上插入一个元素(1≤ i ≤n+1),元素的移动次数为:A 。 A.n – i + 1 B.n – i C.i D.i – 1
26.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为 C 。 A.顺序表 B.用头指针表示的循环单链表 C.用尾指针表示的循环单链表 D.单链表
27.下述哪一条是顺序存储结构的优点? C 。 A 插入运算方便 B 可方便地用于各种逻辑结构的存储表示 C 存储密度大 D 删除运算方便
28.下面关于线性表的叙述中,错误的是哪一个? B 。 A 线性表采用顺序存储,必须占用一片连续的存储单元 B 线性表采用顺序存储,便于进行插入和删除操作。 C 线性表采用链式存储,不必占用一片连续的存储单元 D 线性表采用链式存储,便于进行插入和删除操作。
29.线性表是具有n 个 B 的有限序列。 A.字符 B.数据元素 C.数据项 D.表元素
30.在n 个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是 A 。 A.访问第i(1<=i<=n)个结点和求第i 个结点的直接前驱(1B.在第i(1<=i<=n)个结点后插入一个新结点 C.删除第i(1<=i<=n)个结点 D.以上都不对
31.若长度为n 的线性表采用顺序存储结构,在其第i 个位置插入一个新元素的算法的时间复杂度为 C 。 A.O(0) B.O(1) C.O(n) D.O(n2)
32.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为 C 。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1)
33.线性表(a1,a2, „ ,an)以链式方式存储,访问第i 位置元素的时间复杂度为 C 。 A.O(0) B.O(1) C.O(n) D.O(n2)
34.单链表中,增加一个头结点的目的是为了 C 。 A.使单链表至少有一个结点 B.标识表结点中首结点的位置 C.方面运算的实现 D.说明单链表是线性表的链式存储
35.在单链表指针为p 的结点之后插入指针为s 的结点,正确的操作是 B 。 A.p->next=s;s->next=p->next B. s->next=p->next ;p->next=s; C.p->next=s;p->next=s->next D.p->next=s->next;p->next=s
36.线性表的顺序存储结构是一种 A 。 A.随机存取的存储结构 B.顺序存取的存储结构 C.索引存取的存储结构 D.Hash 存取的存储结构 37.栈的特点是 B ,队列的特点是 A 。 A.先进先出 B.先进后出
38.栈和队列的共同点是 C 。 A.都是先进后出 B.都是先进先出 C.只允许在端点处插入和删除元素 D.没有共同点
39.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 C 。 A.edcba B.decba C.dceab D.abcde
40.设有一个栈,元素依次进栈的顺序为A、B、C、D、E。下列 C 是不可能的出栈序列。 A.A,B,C,D,E B.B,C,D,E,A C.E,A,B,C,D D.E,D,C,B,A
41.以下 B 不是队列的基本运算? A.从队尾插入一个新元素 B.从队列中删除第i 个元素 C.判断一个队列是否为空 D.读取队头元素的值
42.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,„,pn,若p1=n,则pi 为 C 。 A.i B.n-i C.n-i+1 D.不确定
43.判定一个顺序栈st(最多元素为MaxSize)为空的条件是 B 。 A.st->top != -1 B.st->top == -1 C.st->top != MaxSize D. st->top == MaxSize
44.判定一个顺序栈st(最多元素为MaxSize)为满的条件是 D 。 A.st->top != -1 B.st->top == -1 C.st->top != MaxSize D.st->top == MaxSize
45.一个队列的入队序列是1,2,3,4,则队列的输出序列是 B 。 A.4,3,2,1 B.1,2,3,4