数据结构试卷(期中考试)
数据结构期中考试试题及答案

一、单项选择题(本题总分 20分,每题 2分)在每小题列出的四个选项中只有 一个选项是符合题目要求的,请将正确选项前的字母。
1.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( D ) 。
A.顺序表 B.链表 C.索引表 D.散列表采用排除法,顺序表存储位置表示数据元素的顺序关系,跟关键字无法;链表的地址是动态分配的;索引表是 按数据元素的关键字排序所得,它的数据元素是没有规律的2.在长度为 n 的顺序表的第 i(1≤i ≤n+1)个位置上插入一个元素,元素的移动次数为( A ) 。
A.n -i+1B.n -iC.iD.i -1代入计算法,我们知道在 i=n+1 时不需要移动元素3.若一棵二叉树的先序遍历序列为 a,b,c ,则由 abc 三个结点构成的二叉树个数为( B ) 。
A.4B.5C.6D.74.三维数组 A[4][5][6]按行优先存储方法存储在内存中,若每个元素占 2 个存储单元,且数组中第一个元素的存 储地址为 130,则元素 A[3][4][5]的存储地址为(B A.370B .368C .366) 。
D.372Loc(3,4,5)=loc(0,0,0)+(3*5*6+4*6+5)*2=130+119*2=368;5.高度为 h 的二叉树(仅含根结点的二叉树高度为 1)的结点最少是多少( D) 。
A. h+1B. 2hC. 2h -1D. h二叉树性质 26. 将两个各有 n 个元素的有序表归并成一个有序表,其最多的比较次数是( A. nB.n+1 C. 2n-1D. n-17. 已知一算术表达式的中缀形式为 A +B *C -D/E ,后缀形式为 ABC *+DE/-,其前缀形式为( C) 。
A )。
A. -+A*BC/DE C. -+*ABC/DEB. –A+B*CD/E D. –A+B*C/DE根据中缀和后缀表达式可画出表达树如下:- + /A* D EBC故前缀表达式为:-+A*BC/DE数据结构期中考试8.下面图示的顺序存储结构表示的二叉树是( A )。
数据结构试卷(答案)

3. 简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是 一对一的,非线性结构反映结点间的逻辑关系是多对多的。
四、 〖00 年统考题〗阅读下列 C 程序段,写出相应的执行结果(每小题 4 分,共 8 分)
1. printf(“Input x”); 2. long int fact(n) int n; {long f; if(n>1)f=n*fact(n-1); else f=1; return(f); } main() {int n; long y; n=5; y=fact(n); printf(“%d,%ld\n”,n,y); }
(2)
(3)
4
( 机 (
C
C) 不装备任何软件的计算机
D) 只装备操作系统的计算
D
)5. 应用软件是指∶ A)所有能够使用的软件 C)所有微机上都应使用的基本软件
B) 能被各应用单位共同使用的某种软件 D) 专门为某一应用目的而编制的软件
( *A )6. 〖00 年省统考〗C 语言中的常量可分为整型常量、实型常量、字符型常量及 (枚举) 四种。 (A) 符号常量 (B)长整型常量 (C) 逻辑常量 (D)二进制整数 ( *C )7. 编译程序的功能是∶ A)发现源程序中的语法错误 C)将源程序编译成目标程序 A )8. 系统软件中最重要的是∶ A) 操作系统 B) 语言处理系统
1. 【严蔚敏习题集 P7 1.3②】 D={d1,d2,d3,d4} R={(d1,d2),(d2,d3),(d3,d4) } 答: d1→d2→d3→d4 d1—无直接前驱,是首结点
d4—无直接后继是尾结点
2.
D={d1,d2,…,d9} R={(d1,d2),(d1,d3),(d3,d4),(d3,d6),(d6,d8),(d4,d5), (d6,d7),(d8,d9) } 答: 此图为树形结构 d1—无直接前驱,是根结点 d2,d5,d7,d9—无直接后继是叶子结点
《算法与数据结构》-期中试卷

《算法与数据结构》课程期中试卷一、判断题(本大题共10小题。
每小题1分,共10分。
) (注意:将判断结果填入以下表格中。
对的打√,错的打×。
)1. 算法分析的目的是研究算法中输入和输出的关系。
( 错 )2. 可以随机访问任一元素是链表具有的特点。
( 错)3. 用一维数组存储一棵完全二叉树是有效的存储方法。
(对 )4. 在队列第i 个元素之后插入一个元素不是队列的基本运算。
( 错 )5. Tail (Tail (Head (((a,b),(c,d)))))= (b)。
( )6. 如果一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历下的最后一个结点。
( 错)比如只有根节点和左子树的特殊情况。
7. 由权值分别为3, 8, 6, 2的叶子生成一棵哈夫曼树,它的带权路径长度为35。
(对 ) 带权路径长度=1*8+2*6+3*3+3*2=35(书P146)8. Head (Tail (Head (((a,b),(c,d)))))= (b)。
( )9. 数据结构包括数据间的逻辑结构、数据的存储方式和数据的运算三个方面。
(对 )逻辑结构、存储结构和数据的操作(运算)三个方面10. 线性的数据结构可以顺序存储,也可以链接存储;非线性的数据结构只能链接存储。
(错 ) 比如完全二叉树。
二、单项选择题(本大题共15小题。
每小题2分,共30分。
)(注意:以下各题只有一个正确答案,请将选择的结果填入以下表格中。
) 1. 下面程序段的时间复杂度为________。
s=0;for (i=1;i<n ;i++) for (j=1;j<i ;j++) s += i*j ;A. O(1)B. O(logn)C. O(n)D. O(n 2)[D] 就是s= s +i*j ;运算次数 ,T=(1+2+3…………n)=n(n+1)/2,为n^22. 以下数据结构中哪一个是线性结构_ ___。
A. 有向图B. 线索二叉树C. 队列D. 二叉排序树[C]堆栈,线性表(循序表,链表),队列都是线性结构。
数据结构期中试题库及答案

一、判断题:1、线性表的逻辑顺序与物理顺序总是一致的。
()2、线性表的顺序存储表示优于链式存储表示。
()3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
()4、二维数组是其数组元素为线性表的线性表。
()5、每种数据结构都应具备三种基本运算:插入、删除和搜索。
()6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。
()7、线性表中的每个结点最多只有一个前驱和一个后继。
()8、线性的数据结构可以顺序存储,也可以存储。
非线性的数据结构只能存储。
()9、栈和队列逻辑上都是线性表。
()10、单链表从任何一个结点出发,都能访问到所有结点()11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。
()12、快速排序是排序算法中最快的一种。
()13、多维数组是向量的推广。
()14、一般树和二叉树的结点数目都可以为0。
()15、直接选择排序是一种不稳定的排序方法。
()16、98、对一个堆按层次遍历,不一定能得到一个有序序列。
()17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。
()19、堆栈在数据中的存储原则是先进先出。
()20、队列在数据中的存储原则是后进先出。
()21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。
()22、哈夫曼树一定是满二叉树。
()23、程序是用计算机语言表述的算法。
()24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。
()25、用一组地址连续的存储单元存放的元素一定构成线性表。
()26、堆栈、队列和数组的逻辑结构都是线性表结构。
()27、给定一组权值,可以唯一构造出一棵哈夫曼树。
()28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。
()29、希尔排序在较率上较直接接入排序有较大的改进。
数据结构期中考试试题答案c语言版本

R @ - * ( +
S 1 0 3 2 1 +
R@ - *
S 1 0 3 2 1 + * - 3 1
R@ + ( -
S 1 0 3 2 1 + * - 3 1 - 2
R@ + /
S 1 0 3 2 1 + * - 3 1 - 2 / +
R
S 1 0 3 2 1 + * - 3 1 - 2 / + @ \0
3.在带附加表头的循环双向链表中, 表头附加结点 的 左 指针域指向最后一个结点,最后一个结点的 右 指针域指向 表头附加 结点。
4.在以HL为表头指针的带附加结点的单链表和循环单链表中,链表为空的条件分别为
HL->next==NULL 和 HL==HL->next 。
5.在由数组a中元素结点构成的单链表中,删除下标为i的结点后,需要把该结点插入到空闲表的表头,具体操作为 a[i].next=a[1].next 、 a[1].next=i 。
8.一个广义表中的元素分为 单 元素和 表 元素两类。
9.广义表A=((a,(b,(),c),((d),e)))的长度为 1 ,深度为 4 。
10.向一个顺序栈插入一个元素时,首先应 top++ ,然后再将待插入元素 放入栈顶位置 。
11.对于队列,应在 队尾 进行插入,在 队首 进行删除。
12.中缀表达式2+7/(4-1)所对应的后缀表达式为 2 7 4 1 - / + @ 。
数据结构期中考试试题答案
一、 单选题(每小题2分,共8分)
1.在一个长度为n的线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为 C 。
数据结构与算法期中考试卷(含答案)

数据结构与算法期中考试卷(含答案)⽟林师范学院期中课程考试试卷(2010——2011学年度第⼀学期)命题教师:刘恒命题教师所在系:数计系课程名称:数据结构与算法考试专业:信计考试年级:09级⼀、单项选择题(每题2分,共30分,把正确答案填⼊表格中) 1、在数据结构中,从逻辑上可以把数据结构分成( C )。
A 、动态结构和静态结构B 、紧凑结构和⾮紧凑结构C 、线性结构和⾮线性结构D 、逻辑结构和存储结构 2、结构中的数据元素之间存在⼀个对多个的关系,称为(B )结构。
A 、线性 B 、树形 C 、图状 D 、⽹状 3、以下关于线性表的说法不正确的是(C )。
A 、线性表中的数据元素可以是数字、字符、记录等不同类型。
B 、线性表中包含的数据元素个数不是任意的。
C 、线性表中的每个结点都有且只有⼀个直接前驱和直接后继。
D 、存在这样的线性表:表中各结点都没有直接前驱和直接后继。
4、关于单链表的说法,请选出不正确的⼀项( C)。
A 、逻辑相邻、物理不⼀定相邻B 、不能随机存取C 、插⼊与删除需移动⼤量元素D 、表容量易于扩充 5、关于顺序表的说法,请选出不正确的⼀项(D )。
A 、逻辑相邻、物理相邻 B 、可实现随机存取 C 、存储空间使⽤紧凑 D 、表容量易于扩充6、设N 为正整数,试确定下列程序段中前置以记号@语句的频度为(A )。
x=91;y=100;while(y>0){@if(x>100){x-=10;y--;} else x++; } A 、1100 B 、 9100 C 、110 D 、 9107、在顺序表中删除⼀个元素,平均需要移动( C)元素,设表长为n 。
A、n/2-1 B 、n/2+1C 、n/2D 、(n+1)/28、对单链表执⾏下列程序段,请选出正确的⼀项( A)。
T=P;While(T->next!=NULL ){T —>data=T —>data*2;T=T —>next;} A 、R->data=4 B 、R->data=8C 、H->data=4D 、Q->data=79、若⼀个栈的输⼊序列是1,2,3,┅,n ,输出序列的第⼀个元素是n,则第k 个输出元素是( C)。
数据结构期中测试题答案

《数据结构》期中测试班级:姓名:学号:一、填空题:1、在数据结构中,从逻辑上可以把数据结构分为集合、线性结构、树形结构和图状结构,其中树形结构和图状结构合称为非线性结构。
数据结构被形式地定义为二元组(D,S),其中D是数据元素的有限集合,S是D上关系的有限集合。
2、算法的五个重要特性是有穷性、确定性、可行性、输入和输出。
3、一个顺序表第一个元素的存储地址是100,每个元素的长度为3,则第6个元素的地址是115。
在顺序表中插入或删除一个元素,需要平均移动(n+1)/2个元素,具体移动的元素个数与插入或删除元素的位置有关。
顺序表中逻辑上相邻的元素的物理位置相邻。
单链表中逻辑上相邻的元素的物理位置不一定相邻。
单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的指针域指示。
在单链表中设置头结点的作用是使第一个结点与其他结点的操作统一。
4、从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(n+1)/2个结点。
在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是O(n)。
给定有n个元素的线性表,建立一个有序单链表的时间复杂度是O(n2)。
5、已知L是无表头结点的非空单链表,且指针p所指结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。
在p所指结点后插入s所指结点:4、1。
在p所指结点前插入s所指结点:7、11、8、4、1。
在表首插入s所指结点:5、12。
在表尾插入s所指结点:11、9、1、6。
1)p->next=s;2)p->next=p->next->next;3)p->next=s->next;4)s->next=p->next;5)s->next=L;6)s->next=NULL;7)q=p;8)while(p->next!=q) p=p->next;9)while(p->next!=NULL) p=p->next;10)p=q;11)p=L;12)L=s;13)L=p;6、已知指针p所指结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。
C语言与数据结构试卷

grade); break; case 7: printf("%d 的等级是 C\n", grade); break; case 6:
printf("%d 的等级是 D\n", grade); break; default: printf("%d 的等级是 E\n", grade); break; } }
2. C 语言中的标识符只能由字母.数字和下划线三种字符组成,且第一个字符必须为
字母或数字。 ( )
3. 通过 return 语句,函数可以返回一个或一个以上的返回值。 ( )
4. break 语句用在循环体中,可结束本层循环;continue 语句用在循环体中,可结束
本次循环。
()
5. 在 C 语言中,if(a)语句,当(a= -100) 时不执行 if 后面的语句。
int n, i = 1; long int value = 1; printf("Input n="); scanf_s("%d", &n); do { value = value * i; printf("%2d!= %ld\n", i, value); i++; } while (i <= n);
4. 键盘输入边长为整形数据的三角形各边,计算输出三角形的面积,计算公式如下:
(考核知识点:强制类型转换及常用标准数学函数)
#include
<stdio.h> #include<math.h> int main() {
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第页/共 页 《数据结构》期中考试试卷一、选择题(每题2分,共40分)1.组成数据的基本单位是【 】。
A .数据项B .数据类型C .数据元素D .数据变量 2.线性表采用链式存储时,结点的存储地址【 】。
A .必须是不连续的 B .连续与否均可C .必须是连续的D .和头结点的存储地址相连续3. 有一个含头结点的单链表,头指针为head ,判断其是否为空的条件为【 】。
A .head==NULL B . head->next==NULL C .head->next==head D .head!=NULL 4.算法分析的目的是【 】。
A .辨别数据结构的合理性B .评价算法的效率C .研究算法中输入与输出的关系D .鉴别算法的可读性5.已知指针p 所指结点不是尾结点,若在*p 之后插入结点*s ,则应执行下列哪一个操作?【 】。
A. s->next = p ; p-> next = s ;B. s-> next = p-> next ; p-> next = s ;C. s-> next = p-> next ; p = s ;D. p-> next = s ; s-> next = p ; 6.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可 能出现的出栈序列为【 】。
A .3,2,6,1,4,5B .5,6,4,2,3,1C .1,2,5,3,4,6D .3,4,2,1,6,5 7.一个元素进入队列的时间复杂度是【 】。
A O(1)B O(n)C O(n 2)D O(log 2n) 8.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为【 】。
A 1140 B 1145 C 1120 D 1125 9.链表不具有的特点是【 】。
A .可随机访问任一个元素B .插入删除不需要移动元素C .不必事先估计存储空间D .所需空间与线性表的长度成正比 10. 在n 个结点的顺序表中,算法的时间复杂度是O (1)的操作是【 】。
A. 访问第i 个结点(1≤i ≤n )和求第i 个结点的直接前驱(2≤i ≤n ) B. 在第i 个结点后插入一个新结点(1≤i ≤n ) C. 删除第i 个结点(1≤i ≤n ) D. 将n 个结点从小到大排序11.线性表L在【 】情况下适用于使用链式结构实现。
A .需经常修改L中的结点值B .需不断对L进行删除插入C .L中含有大量的结点D .L中结点结构复杂 12.以下说法错误的是【 】A .对循环链表来说,从表中任一结点出发都能通过前后操作扫描整个循环链表B .对单链表来说,只有从头结点开始才能扫描表中全部结点C .双链表的特点是找结点的前驱和后继都很容易D .对双链表中来说,结点*p 的存储位置既存放在其前驱结点的后继指针域中,也存放在它的后继结点的前驱指针中。
13. 一种抽象数据类型包括数据对象、数据关系和【 】三部分。
A. 数据类型 B. 基本操作 C. 数据抽象 D. 类型说明14. 在长度为n 的顺序表中的第i 个位置上插入一个元素(1≤i ≤n+1),元素的移动次数为【 】A .n-i+1B .n-iC .iD .i-1 15. 递归过程或函数调用时,处理参数及返回地址,要用一种称为【 】的数据结构。
A. 队列 B. 多位数组 C. 栈 D. 线性表16.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为【 】 A .顺序表 B .用头指针表示的循环单链表 C .用尾指针表示的循环单链表 D .单链表 17. 以下哪一个不是队列的基本运算【 】A .从队尾插入一个新元素B .从队列中删除第i 个元素C .判断一个队列是否为空D .读取对头元素的值18.设循环队列中数组的下标范围是1~n ,其头尾指针分别为f,r,则队列中元素个数为【 】A .r-fB .r-f+1C .(r-f+1) mod nD .(r-f+n) mod n 19.栈和队列都是【 】A .顺序存储的线性结构B .链式存储的非线性结构C .限制存取点的线性结构D .限制存取点的非线性结构 20.执行下面程序段的时间复杂度为【 】 for(int i=0;i<m;i++)for(int j=0;j<n;j++) a[i][j]=i*j;A .O(m 2)B .O(n 2)C .O(m*n)D .O(m+n)二、判断题(10题,共10分) 1.【 】数组元素的下标越大,存取时间越长 2.【 】线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放 3.【 】在单链表中,头结点是必不可少的线 订 装郑州轻工业学院 / 学年 第 学期 试卷专业年级及班级 姓名 学号4. 【】队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构5.【】链表的每个结点中都恰好包含一个指针6.【】顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取7.【】广义表((a),b,c)的表头是((a),b),表尾是(c)8.【】栈和队列的存储方式既可是顺序方式,也可是链接方式9.【】顺序存储方式的优点是存储密度大,且插入、删除运算效率高10.【】两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端三、程序填空题(每题5题,共20分)1.在不含有头结点的单链表(表头指针为head)的元素中找出最后一个值为e的元素,返回其指针;如果找不到,返回NULL。
完成以下程序。
typedef sturct LinkNode{ int data;Struct LinkNode *next;}Node;Node *search_link(Node *head, int e){ Node *p,*q;q= ;for(p=head; ;p=p->next)if(p->data==e) ;return q;}2.已知单链表(不含头结点)的表头指针为head,下面函数delete是从单链表中删除一个指针为p的结点,返回新的表头指针。
请完成以下程序。
Typedef struct LinkNode{ int data;struct LinkNode *next;}Node;Node *delete(Node *head, Node *p){ Node *pf;if(head==p){head= ;free(p);}else{ for(pf=head; pf->next!=p; pf=pf->next);=p->next;free(p);}return head;}3.以下算法将元素递增排列的顺序存储线性表A和B的元素的交集存入线性表C中。
在空格处填上合适语句或表达式使算法完整。
void SqList_InterseCt(SqList A, SqList B, SqList &C){ int i=0, j=0, k=0;while(i<A.length&&j<B. length){if(A.elem[i]<B.elem[j]);if( ) j++;if(A.elem[i]==B.elem[j]){C.elem[ ]=A.elem[i];i++; j++;}}}4.已知一个单链表(无头结点)的表头指针为h,每个结点含元素data和下一结点的地址next。
链表一共5个结点,其元素值分别为100,200,300,400,500,经过下列语句后,输出什么结果?for(p=h; p->data<300; p=p->next)p->next=p->next->next;printf(“%d”,p->data);第页/共页四.应用题(15分)1.试比较顺序存储结构和链式存储结构的优缺点。
在什么情况下用顺序表比链表好?(5分)2. 说明以下三个概念的关系:头指针,头结点,首元结点;并说明链表中为何要加头结点?(5分) 3.设循环队列的容量为40(序号从0到39),现经过一系列的入队和出队运算后,有① front=11,rear=19; ② front=19,rear=11;问在这两种情况下,循环队列中各有元素多少个?(5分)第页/共页五、编程题(2题,15分)1.已知单链表H,写算法将其倒置。
(7分)2. 设在一个带表头结点的单链表中所有元素结点的数据值按递增顺序排列,试完成下列函数,删除表中所有大于min,小于max的元素(若存在)。
(8分)Typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;void rangeDelete (LinkList L, ElemType min, ElemType max ) {LNode * pr ,*p ;pr = L,p= L->next;......(请完成)}第页/共页。