数据结构章节练习题
第一章绪论
一、单选题
1.一个数组元素a[i]与________的表示等价。
A、*(a+i)
B、a+i
C、*a+i
D、&a+i
2.下面程序段的时间复杂度为____________。
for(int i=0; i
for(int j=0; j
a[i][j]=i*j;
A、O(m2)
B、O(n2)
C、O(m*n)
D、O(m+n)
3.执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)
for(int j=1; j<=i; j++)
S;
A、n2
B、n2/2
C、n(n+1)
D、n(n+1)/2
4.下面算法的时间复杂度为____________。
int f( unsigned int n )
{ if ( n==0 || n==1 ) return 1; else return n*f(n-1); }
A、O(1)
B、O(n)
C、O(n2)
D、O(n!)
二、填空题
1.数据的逻辑结构被分为__________、_________、__________和__________四种。
2.数据的存储结构被分为__________、和__________两种。
3.在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、
________和________的联系。
4.一种抽象数据类型包括__________和__________两个部分。
5.当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
6.当需要用一个形参访问对应的实参时,则该形参应说明为__________。
7.在函数中对引用形参的修改就是对相应__________的修改,对__________形参的修改只局限在该函数的内部,不会反映到对应的实参上。
8.当需要进行标准I/O操作时,则应在程序文件中包含________________头文件,当需要进行文件I/O操作时,则应在程序文件中包含________________头文件。
9.在包含有________________头文件的程序文件中,使用________________能够产生出0~20之间的一个随机整数。
10.一个数组a所占有的存储空间的大小即数组长度为____________,下标为i的元素a[i]的存储地址为__________,或者为______________________________。
14.从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为________。
15.在下面程序段中,s=s+p语句的执行次数为________,p*=j语句的执行次数为________,该程序段的时间复杂度为________。
int i=0,s=0;
while(++i<=n) {
int p=1;