1. 任何一个无向连通图的最小生成树( )。

  2. 答案:一棵或多棵
  3. 以下给字符数组str定义和赋值正确的是( )。

  4. 答案:char str[] = "China";
  5. 下面关于线性表的叙述中,错误的是哪一个?( )

  6. 答案:线性表采用顺序存储,便于进行插入和删除操作。
  7. 线性表中的插入、删除操作,在顺序存储方式下平均移动近一半的元素,时间复杂度为O(n) ( )

  8. 答案:对
  9. 有向图G用邻接矩阵存储,其第i行的所有非无穷大元素个数等于顶点i的 出度( )。

  10. 答案:对
  11. 在有序表(k1,k2,...,k99)中采用折半查找方法查找99次,其中至少有一个元素被比较了99次,该元素是( )。

  12. 答案:k50
  13. 有下面的程序段:char a[3], b[] = "China";a = b;printf("%s", a);则( )。

  14. 答案:编译出错
  15. 5个字符有如下4种编码方案。其中,不是前缀编码的是( ):

  16. 答案:11,10,001,101,0001
  17. 允许对队列进行的操作有( )。

  18. 答案:删除队头元素

  19. 答案:-10

  20. 答案:O(m*n)
  21. 若栈和队都采用顺序存储结构,则下述说法正确的是( )。
  22. 若已知一个栈的入栈序列是1,2,3…,30,其输出序列是p1,p2,p3,…pn, 若p1=30, 则p10为( )。
  23. 有11个叶结点的哈夫曼树共有( )个结点。
  24. 若具有n个结点的二叉树采用二叉链表存储结构,则该链表中有( )个指针域。
  25. 若有说明: char *language[] = {"FORTRAN", "BASIC", "PASCAL", "JAVA", "C"};则以下不正确的叙述是( )。
  26. 为实现快速排序算法,待排序序列宜采用的存储方式是( )。
  27. 下面有关本节图的遍历算法的描述中,正确的是( )。
  28. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为( )(1<=i<=n+1)。
  29. 函数index(char s[],char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。补全下面程序请选择( )。int index(char s[],char t[]){int i,j,k;for(i=0;s[i]!=‘\0’;i++){for(j=i,k=0; t[k]!=‘\0’&&s[j]==t[k];j++,k++);if(_______)return i;}return -1;}
  30. 快速排序在平均情况下的时间复杂度为( )。
  31. 对具有n个结点的完全二叉树按照层次从上到下,每一层从左到右的次序对所有结点进行编号,编号为i的结点的双亲结点的编号为( )。(从1开始编号,用[x]表示对x向下取整)
  32. 已知二叉树的前序遍历序列为ABDCEFG,中序遍历序列是DBCAFEG,则其后序遍历序列为( )。
  33. 对于含有n个顶点e条边的无向连通图,利用Kruskal算法生成最小生成树,其时间复杂度为( )。
  34. 在一个图中,所有顶点的度数之和等于图的边数的( )倍。
  35. 选择:对有8个元素的序列(49,38,65,97,76,13,27,50)按从小到大顺序进行排序,( )是选择排序法的第一趟的结果。
  36. 对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21(2) 15 47 25 84 21(3) 15 21 25 84 47(4) 15 21 25 47 84则采用的排序是( )。
  37. 下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
  38. 若要进行从小到大排序,数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是( )。
  39. 已知序列25,13,10,12,9是大顶堆,在序列尾部插入新元素18,将其再调整为大顶堆。调整过程中元素之间进行的比较次数是( )。
  40. 对N 个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( )。
  41. 将数据元素2,4,6,8,10,12,14,16,18,20依次存放于一个一维数组中,然后采用折半查找方法查找元素12,被比较过的数组元素的下标依次为( )。
  42. 已知一个长度为16的顺序表L,其元素按关键字有序排列。若采用折半查找法查找一个L中不存在的元素,则关键字比较次数最多为( )。
  43. 对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为( )的值除以9。
  44. 设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有( )个记录。
  45. 若具有n个顶点的无向图采用邻接矩阵存储方法,该邻接矩阵一定为一个( )。
  46. 对含有n条边的无向图而言,其邻接表中边数为( )。
  47. 图的深度优先遍历类似于二叉树的( )。
  48. 有8个顶点的无向图最多有( )条边。
  49. 一个满二叉树有m个树枝,n个结点,其深度为h,则有( )。
  50. 将森林F转换为对应的二叉树T,F中叶结点的个数等于( )。
  51. 在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点个数是( )。
  52. 若二叉树的前序序列与后序序列的次序正好相反,则该二叉树一定是( )的二叉树。
  53. 在二叉查找树中进行查找的效率与( )有关。
  54. 一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )。
  55. 栈和队都是 ( )
  56. 中缀表达式A-(B+C/D)×E的后缀形式是( )。
  57. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是 ( )
  58. 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是 ( )。
  59. 在一个单向循环链表中,若要在p所指向的结点之后插入一个新结点,则需要相继修改 ( )个指针域的值。
  60. 在一个具有n个链结点的线性链表中查找某一个链结点,若查找成功,需要平均比较 ( )个链结点。
  61. 在一个以 h 为头节点的单循环链表中,p 指针指向链尾节点的条件是 ( )。
  62. 设n是描述问题规模的非负整数,下列程序片段的时间复杂度是( )x=2;while(x
  63. 图中顶点的度是指依附于该顶点的边的数目,有向图中的顶点还有出度和入度之分。在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的度 ( )。
  64. 线性表中的插入、删除操作,在链式存储方式下,若要在某个结点后插入和删除一个结点,其时间复杂度都是 O(1)。( )
  65. 假设图G可选择的存储方案有邻接矩阵和邻接表两种,若图G为稀疏图,则G采用邻接矩阵存储较省空间。( )
  66. 阅读程序,程序的运行结果为( )。#include int try(int );int main(){int x;x = try(5);printf("%d\n",x);return 0;}int try(int n){if(n>0)return ( n*try(n-2));elsereturn (1);}
  67. 若利用快速排序算法进行从小到大排序,下列选项中,不可能是经过两次选择分界元素并确定其最终位置后的排序结果的是( )。
  68. 若有以下程序段struct dent{int n;int *m;};int a=1, b=2, c=3;struct dent s[3]={{101,&a},{102,&b},{103,&c}};struct dent *p =s;则以下表达式值为2的是( )。
  69. 己知循环队列存储在一维数组A[0-n-1]中,且队列非空时front和rear分别指向队头元素和队尾元索。若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front和rear的值分别是( )。
  70. 若某栈初始为空,PUSH与POP分别表示对栈进行一次进栈与出栈操作,那么对于进栈序列a,b,c,d,e,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH以后,得到的出栈序列是 ( )。
  71. 折半查找过程可以利用一棵称之为“判定树”的二叉树来描述。在长度为12的序列中(假如第一个元素在序列中的位置为0)进行折半查找,对应判定树的根结点右孩子的值(即:某元素在序列中的位置)是( )。
  72. fscanf 函数的正确调用形式是( )。
  73. 在非空双向循环链表中由q所指的那个链结点前面插入一个由p所指的链结点的动作所对应的语句依次为:p->rlink=q;p->llink=q->llink;q->llink=p;( )。(此处为一条赋值语句)
  74. 已知某完全二叉树采用顺序存储结构,结点的存放次序为A,B,C,D,E,F,G,H,I,J,则该二叉树的后序序列为( )。(答案中不要加入空格及其他符号,格式如ABCDE)
  75. 下面能正确进行字符串赋值,并且能确保字符串以’\0’结尾的操作是( )。
  76. 说法正确的是:( )。
  77. 若某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第10个元素的存储地址为( )。
  78. 设有说明 int (* ptr) [M]; 其中ptr是( )。
  79. 下面程序段的运行结果是(B)。char c[]="\t\v\\\0will\n";printf("%d",strlen( ));
  80. 若有以下定义,则数值不为3的表达式是( )。int x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1;
  81. 设有以下说明语句:struct strutype{int a;float b;}var;则下面叙述中错误的是( )。
  82. 已知某有向图G=(V,E),其中V={v1,v2,v3,v4,v5,v6},E={, , , , , , , },G的拓扑序列是( )。
  83. 以下正确的说明语句是( )。
  84. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为( )。
  85. 设有一顺序栈S,元素a,b,c,d,e,f,g,h依次进栈,如果8个元素出栈的顺序是d,f,e,c,h,g,b,a,则栈的容量至少应该是( )。
  86. 当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将数据存放在一维数组 A[l..n]中时,数组中第i 个结点的左孩子为( )。
  87. 若以{4,5,6,7,8}作为叶子结点的权值构造哈夫曼树,则其带权路径长度是 ( )。
  88. 为解决计算机主机与打印机之间速度不匹配问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。
  89. 采用逐点插入法建立序列(54,28,16,34,73,62,95,60,26,43)的二叉查找树后,查找数据元素62共进行( )次元素间的比较。
  90. 对序列(49,38,65,97,76,13,47,50)采用折半插入排序法进行排序,若把第7个元素47插入到已排序序列中,为寻找插入的合适位置需要进行( )次元素间的比较。
  91. 下述对C语言字符数组的描述中错误的是( )。
  92. 20人从1到20编号围成一圈,从1开始,进行1、2报数,报到2的人出列,剩余的人继续从出列人的下一个人报数,则最后剩下的人的编号为( )。
  93. 有以下程序段:struct st{int x;int *y;} *pt;int a[ ]={1,2}, b[ ]={3,4};struct st c[2]={10,a,20,b};pt=c;以下选项中表达式的值为11的是:( )。
  94. 由带权为3,9,6,2,5的五个叶子结点构成一颗哈夫曼树,则带权路径长度为( )。
  95. 以下与 int *q[5]; 等价的定义语句是( )。
  96. 函数squeez(char s[],char c)的功能是删除字符串s中所出现的与变量c相同的字符。补全下面程序,请选择( )。void squeez(char s[],char c){int i,j;for(i=j=0; s[i]!=‘\0’;i++)if(s[i]!=c)______;s[j]=‘\0’;}
  97. 栈R,从顶到底:{2,4,6,8,10},逐个取出放入队列Q中 ,再从Q中逐个取出放入R中,问现在栈R中从顶到底的顺序为( )。
  98. 若一个非连通的无向图最多有28条边,则该无向图至少有( )个顶点。
温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(9) dxwkbang
返回
顶部