单项选择(2017年春程序员软考)

在C程序中有一个二维数组 A[7][8],每个数组元素用相邻的 8 个字节存储,那么存储该数组需要的字节数为【 】。

A、56

B、120

C、448

D、512

答案解析

C

【解析】

数组 A 中的元素在逻辑上是分 7 行、每行 8 列来构成的,因此共有 56 个元素,每个元素占8 个字节的存储空间,则 56 个元素共需 448 个字节的存储空间。

讨论

为支持函数调用及返回,常采用称为“【 】”的数据结构。

对于一个初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),若出栈序列的第一个元素是1则出栈序列的第n个元素【 】

某二叉树的先序遍历(根、左、右)序列为 EFHIGJK、中序遍历(左、根、右)序列为HFIEJKG,则该二叉树根结点的左孩子结点和右孩子结点分别是【 】

采用【 】算法对序列{18,12,10,11,23,2,7}进行一趟递增排序后,其元素的排列变为{12,10,11,18,2,7,23}。

表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】

设某无向图的顶点个数为n,则该图最多有______条边;若将该图用邻接矩阵存储,则矩阵的行数和列数分别为______。

搜索引擎会通过日志文件把用户每次检索使用的所有查询串都记录下来,每个查询串的长度不超过255 字节。假设目前有一千万个查询记录(重复度比较高,其实互异的查询串不超过三百万个;显然,一个查询串的重复度越高,说明查询它的用户越多,也就是越热门)。现要统计最热门的 10 个查询串,且要求使用的内存不能超过 1GB。以下各方法中,可行且效率最高的方法是【 】。

对于一般的树结构,可以采用孩子-兄弟表示法,即每个结点设置两个指针域,一个指针(左指针)指示当前结点的第一个孩子结点,另一个指针(右指针)指示当前结点的下一个兄弟结点。某树的孩子-兄弟表示如下图所示。以下关于结点 D 与 E 的关系的叙述中,正确的是【 】。

若要求对大小为n的数组进行排序的时间复杂度为 O(nlog2n),且是稳定的(即如果待排序的序列中两个数据元素具有相同的值,在排序前后它们的相对位置不变),则可选择的排序方法是【 】

设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到【 】。

设数组A[1..m,1..n]的每个元素占用1个存储单元,对于数组元素A[i,j](1≤证≤m,1≤j≤n),在按行存储方式下,其相对于数组空间首地址的偏移量为【】

设数组A[1..m,1..n]的每个元素占用1个存储单元,对于数组元素A[i,j](1≤证≤m,1≤j≤n),在按列存储方式下,其相对于数组空间首地址的偏移量为【 】。

特殊矩阵是非零元素有规律分布的矩阵,以下关于特殊矩阵的叙述中,正确的是【 】。

数组是程序语言提供的基本数据结构,对数组通常进行的两种基本操作是数组元素的【 】。

若采用三元组表存储结构存储系数矩阵 M.则除三元组外,下列数据中还需要保存的是【 】Ⅰ. M 的行数;Ⅱ. M 中包含非零元素的行数;Ⅲ. M 的列数;Ⅳ. M 中包含非零元素的列数.

在解决计算机与打印机之间速度不匹配的问题时,通常设置一个打印数据缓冲区,计算机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区取出数据。因此,该缓冲区的数据结构应该是【 】。

含有n个元素的线性表采用顺序存储,等概率删除其中任一个元素,平均需要移动【 】个元素。

对于顺序栈和链栈,【 】不是两者共有的运算特征。

若元素a、b、c、d、e、f依次进栈,允许进栈、出栈操作交替进行。但不允许连续三次进行出栈工作,则不可能得到的出栈序列是【 】。

根据枢轴元素(或基准元素)划分序列而进行排序的是【 】。