北航考研真题数据结构与C语言程序设计2008

北航考研真题数据结构与C语言程序设计2008
北航考研真题数据结构与C语言程序设计2008

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

数据结构C语言第三版习题5参考答案

习题5参考答案 5.1 选择 (1)C(2)B(3)C(4)B(5)C(6)D(7)C(8)C(9)B(10)C (11)B(12)C(13)C(14)C(15)C(16)B 5.2 填空 (1)1 (2)1036;1040 (3)2i (4) 1 ; n ; n-1 ; 2 (5)2k-1;2k-1 (6)ACDBGJKIHFE (7)p->lchild==NULLL (8)Huffman树 (9)其第一个孩子; 下一个兄弟 (10)先序遍历;中序遍历 5.3 叶子结点:C、F、G、L、I、M、K; 非终端结点:A、B、D、E、J; 各结点的度: 结点: A B C D E F G L I J K M 度: 4 3 0 1 2 0 0 0 0 1 0 0 树深:4 5.4 无序树形态如下: 二叉树形态如下:

5.5 二叉链表如下: 三叉链表如下: 5.6 先序遍历序列:ABDEHICFJG

中序遍历序列:DBHEIAFJCG 后序遍历序列:DHIEBJFGCA 5.7 (1) 先序序列和中序序列相同:空树或缺左子树的单支树; (2) 后序序列和中序序列相同:空树或缺右子树的单支树; (3) 先序序列和后序序列相同:空树或只有根结点的二叉树。 5.8 这棵二叉树为: 5.9 先根遍历序列:ABFGLCDIEJMK 后根遍历序列:FGLBCIDMJKEA 层次遍历序列:ABCDEFGLIJKM 5.10 证明:设树中结点总数为n,叶子结点数为n0,则 n=n0 + n1 + …… + n m (1) 再设树中分支数目为B,则 B=n1 + 2n2 + 3n3+ …… + m n m (2) 因为除根结点外,每个结点均对应一个进入它的分支,所以有 n= B + 1 (3) 将(1)和(2)代入(3),得 n0 + n1 + …… + n m = n1 + 2n2 + 3n3+ …… + m n m + 1 从而可得叶子结点数为: n0 = n2 + 2n3+ …… + (m-1)n m + 1 5.11 由5.10结论得,n0 = (k-1)n k + 1 又由 n=n0 + n k,得n k= n-n0,代入上式,得 n0 = (k-1)(n-n0)+ 1 叶子结点数为:n0 = n (k-1) / k

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

北航数据结构与程序设计真题-2013北航991真题与答案

2013年''数据结构与C程序设计〃(代码991)试题 一、单项选择题(本题共20分,每小题各2分) 1.对于长度为n的线性表.建立其对应的做链表的时间复杂度为()。 A.0(1): B. O(log2n):? O(n): D? O(n2)。 2.一般情况下,在一个双向链表中插入一个新的链结点,()o A.需要修改4个抬针域内的指针: B.需要修改3个指针域内的指针: C.需要修改2个指针域内的抬针:D?只需要修改1个指针域内的指针。 3.假设用单?个字母表示中缀表达式中的一个运算数(或称运算对&)?并利用堆栈产生中缀表达式对应的后缀表达式。对于中缀表达式A+B*(C/D-E),十从左至右扫描到运算数E时,堆栈中的运算符依次是()。(注:不包含表达式的分界符) A.+*/-: B. +*(/-: C? +*-:? +*(-o 4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70.则后序遍历序列为()。 A. 30,40,20,50,70,60,80: B. 30,40,20,70,60,80,50: C. 70,60,80,50,30,40,20: D. 70,60,80,30,40,20,50. 5.分别以6, 3, 8, 12, 5Z 7对应叶结点的权值构造的哈夫曼(Huffman)树的深度为()。 A. 6: B. 5: C? 4: D? 3。 &下列关于图的叙述中,错误的是()0 A.根据图的定义,图中至少有一个顶点: B.根据图的定义.图中至少有一个顶点和一条边(弧): C.具有n个顶点的无向图最女有n(n-l)/2条边; D.具有n个顶点的有向图最多有n(n-l)条边(弧)。 7.若在有向图G的拓扑序列中,顶点vi在顶点vj之前,则下列4种情形中不可能出现的是()》 A.G中有弧 B.G中没有弧vvi,vj>: C.G中有一条从顶点vi到顶点vj的路径: D?G中有一条从顶点vj到顶点vi的路径。 8.下列关于査找操作的叙述中.错误的是()。 A.在顺序表中査找元素可以采用顺序查找法,也可以采用折半査找法: B.在链表中査找结点只能采用顺序査找法,不能采用折半査找法: C.一般情况下,顺序査找法不如折半查找法的时间效率商: D.折半査找的过程可以用一棵称之为''判定树"的二叉树來描述。 9.在一棵m阶B?树中,除根结点之外的任何分支结点包含关键字的个数至少是()。 A. m/2-1: B? m/2: C? m/2-l: D? m/2° 10.若对序列(49, 38, 65, 97, 76, 13, 27f 49J进行快速排序,则第一趙排序结束(即确定了第1个分界元素的最终位宜)时.序列的状态是()。 A. (13, 27, 49; 38, 49, 76, 97, 65): B. (13, 38, 27, 49; 49, 76, 97, 65): C. (13, 38, 49; 27, 49, 97, 76, 65): D. (13, 38, 49;27t 49z 76, 97, 65)。 二、填空题(本题共20分,每小题各2分)

数据结构(C语言版)第三版__清华大学出版社_习题参考答案

附录习题参考答案 习题1参考答案 1.1.选择题 (1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). A. (9). B. (10.) A. 1.2.填空题 (1). 数据关系 (2). 逻辑结构物理结构 (3). 线性数据结构树型结构图结构 (4). 顺序存储链式存储索引存储散列表(Hash)存储 (5). 变量的取值范围操作的类别 (6). 数据元素间的逻辑关系数据元素存储方式或者数据元素的物理关系 (7). 关系网状结构树结构 (8). 空间复杂度和时间复杂度 (9). 空间时间 (10). Ο(n) 1.3 名词解释如下: 数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。 数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。 数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。 数据类型:是指变量的取值范围和所能够进行的操作的总和。 算法:是对特定问题求解步骤的一种描述,是指令的有限序列。 1.4 语句的时间复杂度为: (1) Ο(n2) (2) Ο(n2) (3) Ο(n2) (4) Ο(n-1) (5) Ο(n3) 1.5 参考程序: main() { int X,Y,Z; scanf(“%d, %d, %d”,&X,&Y,Z); if (X>=Y) if(X>=Z) if (Y>=Z) { printf(“%d, %d, %d”,X,Y,Z);} else { printf(“%d, %d, %d”,X,Z,Y);}

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

北航2011年硕士研究生入学考试数据结构与C语言试题与答案

2011 年硕士研究生入学考试 “数据结构与C语言程序设计”(科目代码:991)试题与答案 一、单项选择题(本题共20分,每小题各2分) 1.下列关于线性表的存储结构的叙述中,错误的是。 A.线性表的顺序存储结构中隐式地存储了数据元素之间的逻辑关系 B.线性表的顺序存储结构一定需要占用一片地址连续的存储空间 C.线性表的链式存储结构通过指针来反映数据元素之间的逻辑关系 D.线性表的链式存储结构占用的存储空间一定不连续 2.若front 和rear 分别表示链接队列的队头指针与队尾指针,则向队列中插入一个由p 指的新元素的过程是依次执行。 A.rear=p; front=p; B.front=p; rear=p; C.rear->link=p; rear=p; D.front->link=p; rear=p; 3.下列关于二叉树的叙述中,正确的是。 A.二叉树的度可以小于2 B.二叉树的度等于2 C.二叉树中至少有一个结点的度为2 D.二叉树中每一个结点的度都为2 4.若某二叉树有40个叶结点,则该二叉树的结点总数最少是。 A.78 B.79 C.80 D.81 5.若采用邻接矩阵存储一个有向图,且邻接矩阵主对角线以下元素均为0,则该有向图的拓扑序列。 A.存在且惟一B.存在但可能不惟一 C.不存在D.无法确定 6.下面关于AOE 网的叙述中,正确的是。 A.AOE 网是一个带权的连通图 B.AOE 网是一个带权的强连通图 C.AOE 网是一个带权的无回路的连通图 D.AOE 网是一个带权且无回路的有向图 7.下列关于线性表查找方法的叙述中,错误的是。 A.顺序查找法适合于采用顺序存储结构和链式存储结构的线性表的查找 B.对于相同元素,顺序查找法一定能够查找到表中首次出现的元素 C.对于相同元素,折半查找法一定能够查找到表中首次出现的元素 D.对于相同元素,折半查找法不一定能够查找到表中首次出现的元素 8.在二叉排序树中进行查找的平均时间效率主要与下列因素之一有关,该因素是。A.二叉排序树的深度B.二叉排序树中结点的个数的多少 C.被查找结点的度D.二叉排序树的存储结构 9.下列4 种排序方法中,每一趟排序结束时不一定能够确定一个元素排序最终位置的是。 A.插入排序B.快速排序 C.堆积(Heap)排序D.二路归并排序 2 10.下列4 种排序方法中,当待排序的序列中元素初始时已经按值有序,排序所花费的

15秋北航《算法与数据结构》在线作业二100分答案

北航《算法与数据结构》在线作业二 单选题 一、单选题(共25 道试题,共100 分。) 1. 对顺序表上的插入、删除算法的时间复杂性分析来说,通常以()为标准操作 A. 条件判断 B. 结点移动 C. 算术表达式 D. 赋值语句 -----------------选择:B 2. 在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。 A. HL=p;p->next=HL; B. p->next=HL;HL=p; C. p->next=HL;p=HL; D. p->next=HL->next;HL->next=p; -----------------选择:B 3. 线性表是一个具有n个()的有限序列。 A. 表元素 B. 字符 C. 数据元素 D. 数据项 -----------------选择:C 4. 若给定的关键字集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时,键值的排列为( )。 A. 10,15,14,18,20,36,40,21 B. 10,15,14,18,20,40,36,21 C. 10,15,14,20,18,40,36,21 D. 15,10,14,18,20,36,40,21 -----------------选择:A 5. 按照二叉树的定义,具有3个结点的二叉树有()种。 A. 3 B. 4 C. 5 D. 6 -----------------选择:C 6. 下列有关图遍历的说法中不正确的是()。 A. 连通图的深度优先搜索是个递增过程 B. 图的广度优先搜索中邻接点的寻找具有“先进先出”的特征 C. 非连通图不能用深度优先搜索法 D. 图的遍历要求每个顶点仅被访问一次 -----------------选择:C 7. Substr('DATA STRUCTURE',5,9)=()。 A. STRUCTURE' B. 'ASTUCTUR' C. 'DATA STRUCTRUE'

数据结构C语言版第2版课后习题答案

数据结构(C语言版)(第2版) 课后习题答案 李冬梅

目录 第1章绪论............................................. 错误!未定义书签。第2章线性表........................................... 错误!未定义书签。第3章栈和队列......................................... 错误!未定义书签。第4章串、数组和广义表................................. 错误!未定义书签。第5章树和二叉树....................................... 错误!未定义书签。第6章图................................................ 错误!未定义书签。第7章查找............................................. 错误!未定义书签。第8章排序............................................. 错误!未定义书签。

第1章绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。 数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。 数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生基本信息表中的学号、姓名、性别等都是数据项。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。 逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。 存储结构:数据对象在计算机中的存储表示,也称为物理结构。 抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 答案: 例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继。学生记录之间的这种关系就确定了学生表的逻辑结构,即线性结构。 这些学生记录在计算机中的存储表示就是存储结构。如果用连续的存储单元(如用数组表示)来存放这些记录,则称为顺序存储结构;如果存储单元不连续,而是随机存放各个记录,然后用指针进行链接,则称为链式存储结构。 即相同的逻辑结构,可以对应不同的存储结构。 3.简述逻辑结构的四种基本关系并画出它们的关系图。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

北航 1999-2002 程序设计与数据结构考研试题

北航2002年程序设计与数据结构试题 一、简答题(10’) 1. 数据结构课程是计算机专业的基础课还是专业课,或者专业基础课?(2’) 2. 学习数据结构课程需要哪些课程作为它的基础(举例两门课程)?若没有这些知识,对学习数据 结构课程可能会产生哪些影响?请举例说明(不超过100字)。(4’) 3. 数据结构课程将为那些课程学习奠定必要的基础?请举例说明哪些课程(举例两门课程)用到了 数据结构课程的哪些知识(不超过100字)。(4’) 二、(5’) 请推导出结论:具有0n 个叶结点的哈夫曼树(Huffman )的分支总数为02(1)n -。 三、单项选择题(2’×15) 1. 线性链表中各链接点之间的地址________。 A. 必须连续 B. 部分地址必须连续 C. 不一定连续 D. 连续与否无所谓 2. 在非空线性链表中由p 所指的链接点后面插入一个由q 所致的链接点的过程是依次执行动作 ________。 A. link(q)←p; link(p)←q; B. link(q)←link(p); link(p)←q; C. link(q)←link(p); p ←q; D. link(p)←q; link(q)←p; 3. 在非空双向循环链表中由q 所指的那个链接点前插入一个p 指的链接点的动作对应的语句依次为 rlink(p)←q, llink(p)←llink(q), llink(q)←p, ________。(空白处为一条赋值语句) A. rlink(q)←p B. rlink(llink(q))←p C. rlink(llink(p))←p D. rlink(rlink(p))←p 4. 在初始为空的堆栈中依次插入元素f, e, d, c, b, a 以后,连续进行了三次删除操作,此时栈顶元素是 ________。 A. c B. d C. b D. e 5. 若某堆栈的输入序列为1, 2, 3, …, n ,输出序列的第1个元素为n ,则第i 个输出元素为________。 A. i B. n i - C. 1n i -+ D. 哪个元素无所谓 6. 求字符串T 在字符串S 中首次出现的位置的操作称为________。 A. 求串的长度 B. 求子串 C. 串的模式匹配 D. 串的连接 7. 若一棵度为7的树有8个度为1的结点,有7个度为2的结点,有6个度为3的结点,有5个度为 4的结点,有4个度为5的结点,有3个度为6的结点,有2个度为7的结点,该树一共有________个叶结点。 A. 35 B. 28 C. 77 D. 78 8. 若一棵二叉树有1001个结点,且无度为1的结点,则叶结点的个数为________。 A. 498 B. 499 C. 500 D. 501 9. 已知某完全二叉树采用顺序存储结构,结点数据信息的存放顺序依次为ABCDEFGH ,该完全二叉 树的后序遍历序列为________。

数据结构C语言版第2版课后习题答案

数据结构C语言版第2版课后习题答案 本页仅作为文档封面,使用时可以删除 This document is for reference only-rar21year.March

数据结构(C语言版)(第2版) 课后习题答案 李冬梅

目录 第1章绪论 ............................................................................ 错误!未定义书签。第2章线性表......................................................................... 错误!未定义书签。第3章栈和队列 ..................................................................... 错误!未定义书签。第4章串、数组和广义表 ........................................................ 错误!未定义书签。第5章树和二叉树 .................................................................. 错误!未定义书签。第6章图 ................................................................................ 错误!未定义书签。第7章查找 ............................................................................ 错误!未定义书签。第8章排序 ............................................................................ 错误!未定义书签。 I

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

北航10秋学期《算法与数据结构》模拟题一

北航10秋学期《算法与数据结构》模拟题一 一、单项选择题(本大题共15小题,每小题2分,共30分) 1、顺序表是线性表的() A.链式存储结构 B.顺序存储结构 C.索引存储结构 D.散列存储结构 2、循环链表主要优点是() A.不再需要头指针了 B.已知某个结点的位置后,能够容易找到它的直接前趋 C.在进行插入、删除运算时,能更好地保证链表不断开 D.从表中任一结点出发都能扫描到整个链表 3、根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式。以下解释错误的是() A.集合中任何两个结点之间都有逻辑关系但组织形式松散 B.线性结构中结点按逻辑关系依次排列形成一条"锁链" C.树形结构具有分支、层次特性,其形态有点像自然界中的树 D.图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接 4、以下说法错误的是() A.求表长、定位这二种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低B.顺序存储的线性表可以随机存取 C.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活 D.线性表的链式存储结构优于顺序存储结构 5、以下说法错误的是() A.每个存储结点只能存放一个数据元素 B.数据元素之间的关联方式可由存储结点之间的关联方式直接表达 C.一种存储结构可以在两个级别上讨论。其一是机器级,其二是语言级 D.语言级描述可经编译自动转换成机器级因此也可以看成是一种机内表示 6、对一个由n个整数组成的序列,借助排序过程找出其中的最大值,希望比较次数和移动次数最少,应选用()方法 A.归并排序 B.直接插入排序 C.直接选择排序 D.快速排序。 7、在文件局部有序或文件长度较小的情况下,最佳的排序方法是() A.直接插入排序 B.冒泡排序 C.直接选择排序 D.归并排序 8、对于C语言的二维数组DataType A[m][n],每个数据元素占K个存储单元,二维数组中任意元素a[i,j] 的存储位置可由()式确定. A.Loc[i,j]=A[m,n]+[(n+1)*i+j]*k B.Loc[i,j]=loc[0,0]+[(m+n)*i+j]*k C.Loc[i,j]=loc[0,0]+[(n+1)*i+j]*k D.Loc[i,j]=[(n+1)*i+j]*k

数据结构(c语言版)第三版清华大学出版社习题参考答案

不管怎样,生活还是要继续向前走去。有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此。每件事到最后一定会变成一件好事,只要你能够走到最后。附录习题参考答案 习题1参考答案 1.1.选择题 (1). A. (2). A. (3). A. (4). B. C. (5). A. (6). A. (7). C. (8). A. (9). B. (10.) A. 1.2.填空题 (1). 数据关系 (2). 逻辑结构物理结构 (3). 线性数据结构树型结构图结构 (4). 顺序存储链式存储索引存储散列表(Hash)存储 (5). 变量的取值范围操作的类别 (6). 数据元素间的逻辑关系数据元素存储方式或者数据元素的物理关系 (7). 关系网状结构树结构 (8). 空间复杂度和时间复杂度 (9). 空间时间 (10). Ο(n) 1.3 名词解释如下: 数据:数据是信息的载体 是计算机程序加工和处理的对象 包括数值数据和非数值数据 数据项:数据项指不可分割的、具有独立意义的最小数据单位 数据项有时也称为字段或域 数据元素:数据元素是数据的基本单位 在计算机程序中通常作为一个整体进行考虑和处理 一个数据元素可由若干个数据项组成 数据逻辑结构:数据的逻辑结构就是指数据元素间的关系 数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系 数据类型:是指变量的取值范围和所能够进行的操作的总和 算法:是对特定问题求解步骤的一种描述 是指令的有限序列 1.4 语句的时间复杂度为: (1) Ο(n2) (2) Ο(n2) (3) Ο(n2) (4) Ο(n-1)

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

北航数据结构与程序设计真题 2013年北航991真题及答案

2013年“数据结构与C程序设计”(代码991)试题 一、单项选择题(本题共20分,每小题各2分) 1.对于长度为n的线性表,建立其对应的单链表的时间复杂度为( )。 A.O(1);B.O(log2n);.O(n);D.O(n2)。 2.一般情况下,在一个双向链表中插入一个新的链结点,( )。 A.需要修改4个指针域内的指针;B.需要修改3个指针域内的指针; C.需要修改2个指针域内的指针;D.只需要修改1个指针域内的指针。 3.假设用单个字母表示中缀表达式中的一个运算数(或称运算对象),并利用堆栈产生中缀表达式对应的后缀表达式。对于中缀表达式A+B*(C/D-E),当从左至右扫描到运算数E时,堆栈中的运算符依次是( )。(注:不包含表达式的分界符) A.+*/-;B.+*(/-;C.+*-;.+*(-。 4.若某二叉排序树的前序遍历序列为50,20,40,30,80,60,70,则后序遍历序列为( )。 A.30,40,20,50,70,60,80;B.30,40,20,70,60,80,50; C.70,60,80,50,30,40,20;D.70,60,80,30,40,20,50。 5.分别以6, 3, 8, 12, 5, 7对应叶结点的权值构造的哈夫曼(Huffman) 树的深度为( )。 A.6;B.5;C.4;D.3。 6.下列关于图的叙述中,错误的是( )。 A.根据图的定义,图中至少有一个顶点; B.根据图的定义,图中至少有一个顶点和一条边(弧); C.具有n个顶点的无向图最多有n(n-1)/2条边; D.具有n个顶点的有向图最多有n(n-1)条边(弧)。 7.若在有向图G的拓扑序列中,顶点vi在顶点vj之前,则下列4种情形中不可能出现的是( )。 A.G中有弧; B.G中没有弧; C.G中有一条从顶点vi到顶点vj的路径; D.G中有一条从顶点vj到顶点vi的路径。 8.下列关于查找操作的叙述中,错误的是( )。 A.在顺序表中查找元素可以采用顺序查找法,也可以采用折半查找法; B.在链表中查找结点只能采用顺序查找法,不能采用折半查找法; C.一般情况下,顺序查找法不如折半查找法的时间效率高; D.折半查找的过程可以用一棵称之为“判定树”的二叉树来描述。 9.在一棵m阶B-树中,除根结点之外的任何分支结点包含关键字的个数至少是( )。 A.m/2-1;B.m/2;C.m/2-1;D.m/2。 10.若对序列(49, 38, 65, 97, 76, 13, 27, 49’)进行快速排序,则第一趟排序结束(即确定了第1个分界元素的最终位置)时,序列的状态是( )。 A.(13, 27, 49’, 38, 49, 76, 97, 65);B.(13, 38, 27, 49’, 49, 76, 97, 65); C.(13, 38, 49’, 27, 49, 97, 76, 65);D.(13, 38, 49’, 27, 49, 76, 97, 65)。 二、填空题(本题共20分,每小题各2分) 1.非空线性表在采( )存储结构的情况下,删除表的一个数据元素平均需要移动表中近一半元素的位置。2.将一个长度为n的单链表链接到一个长度为m的单链表后面,该算法的时间复杂度用大O符号表示为( )。 3.若完全二叉树的叶结点的数目为k,且最下面一层的结点数大于1,则该完全二叉树的深度为( )。

相关文档
最新文档