![数据结构(C语言实现)](https://wfqqreader-1252317822.image.myqcloud.com/cover/699/43806699/b_43806699.jpg)
习题
一、选择题
1.研究数据结构就是研究( )。
A.数据的逻辑结构
B.数据的存储结构
C.数据的逻辑结构和存储结构
D.数据的逻辑结构、存储结构及其基本操作
2.计算机中的算法必须具备输入、输出、( )5个特性。
A.可行性、可移植性和可扩充性
B.可行性、有穷性和确定性
C.确定性、有穷性和稳定性
D.易读性、稳定性和确定性
3.算法分析是对一个算法的( )进行评价。
A.空间复杂度和时间复杂度
B.正确性和简单性
C.可读性和文档性
D.数据复杂性和程序复杂性
4.算法是一种( )。
A.计算机程序
B.解决问题的计算方法
C.排序算法
D.解决问题的有限运算序列
5.设n是描述问题规模的非负整数,下面程序段的时间复杂度为( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/24_01.jpg?sign=1739533313-2ZMX6f10wmE5mYuL804VzYTVf6tlvbBM-0-ab3a57cf84e2a09b8670a06a1b910ff5)
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)
6.下面程序段的时间复杂度为( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/24_02.jpg?sign=1739533313-xNwa0cpZWaz3Udroy1tELGLvFXvKAA9I-0-4b35d1d5e991f5db01cfdf89351688ed)
A.O(n)
B.O(3n)
C.O(log3n)
D.O(n3)
7.下面程序段的时间复杂度是( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/24_03.jpg?sign=1739533313-c7H9mwyI0tRU2lWG4ggSLOo8d1mPMWGE-0-12512278360648efd4bc5a6ce4c85a67)
A.O(n)
B.
C.O(log2n)
D.O(n3)
8.求整数n(n≥0)阶乘的算法如下,其时间复杂度为( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/24_05.jpg?sign=1739533313-W8PrFnHTOYg1JdEur4sWz0sngoXct11J-0-716bba7a7fcdb9d4c2f1631f28a0e9b5)
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)
9.下面程序段的时间复杂度为( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/24_06.jpg?sign=1739533313-UIFGw3zbiDAgWp4W1jNXnpz9APW1Ppo8-0-eb6d9288c895e576c5430ea026f6c50b)
A.O(n)
B.
C.O(1)
D.O(n2)
10.下面算法的时间复杂度为( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/24_08.jpg?sign=1739533313-ujYNxf1tgDqqsJlPSzs3T4NIP9H1wUuR-0-fd1801bc9745c2ce492ad5e800a3eacf)
A.O(1)
B.O(n)
C.O(n2)
D.O(n!)
11.下面算法的时间复杂度为( )。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/25_01.jpg?sign=1739533313-Jd2uAEtgb0ZpQr9UqO0hbtP4ZWtnks0o-0-78da151d702ff4ede19bc1f102ddc290)
A.O(n)
B.O(nlog2n)
C.
D.
二、填空题
1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.数据的逻辑结构指数据对象之间的相互关系,有_________、_________、_________和_________四种。
3.数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的_________和运算等的学科。
4.下面程序段中语句s的执行次数为_________。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/25_04.jpg?sign=1739533313-JBTWLiu1ZglDF5b7DzxvWVHLRONjRwSn-0-c47949768a2ad9d421d4244c158c569a)
5.下面程序段的时间复杂度是_________。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/25_05.jpg?sign=1739533313-Jcejavx4N9gFp5XQQg3M5ytT9501X0WR-0-c960fdde5a41014fa1de7653b237a31a)
A.O(m2)
B.O(n2)
C.O(n*m)
D.O(m+n)
三、算法分析题
1.一个算法所需时间由下面的递归方程表示,试求出该算法的时间复杂度(以大O形式表示)。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/25_06.jpg?sign=1739533313-60o85pJlW4Uu0qNf9zCsu1S7ANIMrG26-0-720f02b9b6ab8ea6b1bd91acca9d7490)
其中,n是问题的规模,为简单起见,设n为2的整数幂。
2.调用下面的c函数f(n),回答以下问题:
(1)试指出f(n)值的大小,并写出f(n)值的推导过程。
(2)设n=5,试指出f(5)值的大小和执行f(5)时的输出结果。
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/25_07.jpg?sign=1739533313-JeI1HwuGnNb4oSd1XCOpiNlGJvkbYaqe-0-47f38c2b33c7483a50da58531cbca16a)