一、对线性表进行折半查找时,要求线性表必须()
A、以顺序方式存储
B、以顺序方式存储,且数据元素有序
C、以链接方式存储
D、以链接方式存储,且数据元素有序
答案:B
解析:折半查找又称二分法查找,要求必须有序,一般是对顺序存储进行操作
二、最坏情况下,合并两个大小为n的已排序数组所需要的比较次数_____。
A、2n
B、2n-1
C、2n+1
D、2n-2
答案:B
解析:挖2n个坑,对每一个坑进行循环,比较两排带头的人,谁大谁先跳,总共比较2n-1次,最后一个不用比了,因为就剩你了。
或者采用特殊例子法:假设n=1,带入选项即可求解
三、线性表是具有n个()的有限序列(n>0)
A、表元素
B、字符
C、数据元素
D、数据项
E、信息项
答案:C
解析:
数据:信息的载体,能够被计算机识别、存储、加工,包括整数、实数、字符串、图像、声音等
数据元素:数据的基本单位,也称结点、元素、顶点、记录。一个数据元素可由若干个数据项组成
数据项:是具有独立寒意的最小标识单元,也称字段、域、属性等
数据结构:指数据之间的相互关系,即组织形式,有逻辑结构(一般程序中出现的形式)和物理结构之分(内存中的连续存储形式);
逻辑结构又有线性(非空,仅由一个开始结点和一个终端结点,除首尾结点之外,所有节点均只有一个直接前区和一个直接后继,
如一维数组、栈、队列、链表、串等)和非线性之分(一个结点可以有多个直接前区和多个直接后继,如多维数组、广义表、树、图等)
四、对两个数组 a 和 b 进行如下初始化
char a[] = "ABCDEF";
char b[] = {'A','B','C','D','E','F'};
以下叙述正确的是( )
A、a 与 b 数组完全相同
B、a 与 b 长度相同
C、a 和 b 中都存放了字符串
D、a 数组比 b 数组长
答案:D
解析:你首先要明白的是什么是长度:数组元素的个数称之为数组的长度。
现在再看问题 第一个是 字符串,第二个是字符数组 ,字符串以'\0'为结束符号,字符数组不用。
所以B 对。 要说明的是,虽然他们长度相同,不过占的内存字节数是不一样的,
第一个占7个字节(后面的'\0'占一个。)第二个占6个字节。
五、以下程序段的运行结果是( )。
char str[10] = "output";
printf("\"%s\"\n", str);
A、output
B、"output"
C、\"output\"
D、编译错误
答案:B
解析:\n 换行
\r 回车
\f 换页符
\b 退格
\0 空格
\s 字符串
\t 制表符
\” 双引号
\’ 单引号
\ddd 八进制字符串(ddd)
\uxxxx 16进制unicode字符串(xxxx)
\" 这里的\为转义字符 ,第一个和第二个一样。 第三个就不解释了。
六、一个栈的进栈序列是 a , b , c , d , e ,则栈的不可能的输出序列是 ()
A、edcba
B、decba
C、dceab
D、abcde
答案:C
解析:
A:push push push push push pop pop pop pop pop
B:push push push push pop push pop pop pop pop
C:错
D:push pop push pop push pop push pop push pop
我的理解:
网上查到的资料是
对于出栈序列的每一个元素,该元素后比该元素先入栈的一定按照降序排列。
A.比如说第一个是eÿ