判断题
1-1 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。T
1-2 N^2logN和N logN^2具有相同的增长速度。 (2分) F
1-3 2^N2和N^N具有相同的增长速度。 (2分) F
1-4 100logN是O(N)的。 (1分) T
1-5 (NlogN)/1000是O(N)的。 (1分) F
1-6 在任何情况下,时间复杂度为O(n^2) 的算法比时间复杂度为O(n*logn)的算法所花费的时间都长。 (1分)F
1-7 对于某些算法,随着问题规模的扩大,所花的时间不一定单调增加。 (1分)T
单选题
2-1
数据的()包括集合、线性结构、树形结构和图形结构四种基本类型。 (2分
- 存储结构
- 逻辑结构
- 基本运算
- 算法描述
2-2
数据在计算机内存中的表示是指() 。 (2分)
- 数据的存储结构
- 数据结构
- 数据的逻辑结构
- 数据元素之间的关系
2-3
下列关于数据的逻辑结构的叙述中,()是正确的。 (2分)
- 数据的逻辑结构是数据元素间关系的描述
- 数据的逻辑结构反映了数据在计算机中的存储方式
- 数据的逻辑结构分为顺序结构和链式结构
- 数据的逻辑结构分为静态结构和动态结构
2-4
数据结构是一门研究非数值计算的程序设计问题中计算机的()以及它们之间的关系和运算等的学科。 (2分)
- 操作对象
- 计算方法
- 逻辑存储
- 数据映象
2-5
在数据结构中,与所使用的计算机无关的数据结构是()。 (2分)
- 逻辑结构
- 存储结构
- 逻辑结构和存储结构
- 物理结构
2-6
在决定选取何种存储结构时,一般不考虑()。 (2分)
- 各结点的值如何
- 结点个数的多少
- 对数据有哪些运算
- 所用编程语言实现这种结构是否方便
2-7
线性结构中元素之间存在()关系。 (2分)
- 一对一
- 一对多
- 多对多
- 多对一
2-8
树形结构中元素之间存在()关系。 (2分)
- 一对一
- 一对多
- 多对多
- 多对一
2-9
图形结构中元素之间存在()关系。 (2分)
- 一对一
- 一对多
- 多对多
- 多对一
2-11
在数据结构中,从逻辑上可以把数据结构分成( )。 (1分)
- 动态结构和静态结构
- 紧凑结构和非紧凑结构
- 线性结构和非线性结构
- 内部结构和外部结构
2-12
与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。 (1分)
- 存储结构
- 存储实现
- 逻辑结构
- 运算实现
2-13
通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着( )。 (1分)
- 数据在同一范围内取值
- 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
- 每个数据元素都一样
- 数据元素所包含的数据项的个数要相等
2-14
算法的时间复杂度取决于( )。 (1分)
- 问题的规模
- 待处理数据的初态
- 计算机的配置
- A和B
2-15
以下数据结构中,( )是非线性数据结构。 (1分)
- 树
- 字符串
- 队列
- 栈
2-16
以下说法正确的是( )。 (1分)
- 数据元素是数据的最小单位
- 数据项是数据的基本单位
- 数据结构是带有结构的各数据项的集合
- 一些表面上很不相同的数据可以有相同的逻辑结构
2-17
数据的基本单位是()。 (1分)
- 数据元素
- 文件
- 数据项
- 数据结构
2-18
计算机算法指的是()。 (1分)
- 计算方法
- 排序方法
- 解决问题的有限运算序列
- 调度方法
2-19
在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。 (1分)
- 数据的处理方法
- 数据元素的类型
- 数据元素之间的关系
- 数据的存储方法
2-20
(neuDS)链式存储设计时,各结点间的存储单元的地址( )。 (1分)
- 一定连续
- 一定不连续
- 不一定连续
- 部分连续,部分不连续
2-21
下面代码段的时间复杂度是()。(2分)
x=n; //n>1
y=0;
while( x≥(y+1)*(y+1) )
y++;
- O(1)
- O(n^1/2)
- O(n)
- O(log2n)
2-22
下列代码
if ( A > B ) {
for ( i=0; i<N*N/100; i++ )
for ( j=N*N; j>i; j-- )
A += B;
}
else {
for ( i=0; i<N*2; i++ )
for ( j=N*3; j>i; j-- )
A += B;
}
的时间复杂度是:(2分)
- O(N^3)
- O(N^4)
- O(N^5)
- O(N^6)
*2-23
下列函数
int func ( int n )
{ int i = 0, sum = 0;
while ( sum < n ) sum += ++i;
return i;
}
的时间复杂度是:(2分)
- O(logn)
- O(n^1/2)
- O(n)
- O(nlogn)
2-24
下列代码
for(i=0; i<n; i++)
for(j=i; j>0; j/=2)
printf(“%d\n”, j);
的时间复杂度是: (3分)
- O(N×i)
- O(N)
- O(N^2)
- O(NlogN)
2-25
下面代码段的时间复杂度是()。 (2分)
x=0;
for( i=1; i<n; i++ )
for ( j=1; j<=n-i; j++ )
x++;
- O(n)
- O(n^2)
- O(n^3)
- O(2^n)
*2-26
要判断一个整数N(>10)是否素数,我们需要检查3到√N之间是否存在奇数可以整除N。则这个算法的时间复杂度是:(2分)
- O(N/2)
- O(√N)
- O(√NlogN)
- O(0.5logN)
2-27
下列函数中,哪个函数具有最慢的增长速度:(2分)
- N^1.5
- NlogN^2
- N^2logN
- N(logN)^2
2-28
给定N×N×N的三维数组A,则在不改变数组的前提下,查找最小元素的时间复杂度是:(2分)
- O(N^2)
- O(NlogN)
- O(N^3logN)
- O(N^3)
2-29
计算机算法必须具备输入、输出和()等五个特性。 (2分)
- 可行性、可移植性和可扩充性
- 可行性、确定性和有穷性
- 确定性、有穷性和稳定性
- 易读性、稳定性和安全性