没有合适的资源?快使用搜索试试~ 我知道了~
2016现代科技学院《软件技术基础》练习题+答案.pdf
0 下载量 136 浏览量
2024-05-16
07:09:36
上传
评论
收藏 438KB PDF 举报
温馨提示
试读
21页
2016现代科技学院《软件技术基础》练习题+答案.pdf
资源推荐
资源详情
资源评论
1
《软件技术基础》练习题
太原理工大学现代科技学院 2016
2
第一章 算法
一、选择题
1. 算法的复杂度包括【 】。
A、时间复杂度
B、空间复杂度
C、时间及空间复杂度
D、以上都不对
2. 若 x 在长度为 n 的无序线性顺序表中的概率为 50%,则在该表中查找 x 的平均查找次数(平均
性态分析)为【 】。
A、(n*3+1)/4
B、(n-1)/2
C、(n+1)/2
D、(n+1)*n/2
3. 若 x 在长度为 n 的无序线性顺序表中的概率为 50%,则在该表中查找 x 的最坏情况分析为【
】。
A、n/2
B、(n-1)/2
C、(n+1)/2
D、n
4. 已知基本运算执行次数与 n 的关系,则下列哪个时间复杂度最大:【 】。
A. f(n) = 1
B. f(n) = 2n - 1
C. f(n) = 10000n+10000
D. f(n) = n
2
-10000
5. 算法分析的目的是【 】。
A.找出数据结构的合理性
B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进
D.分析算法的易懂性和文档性
二、填空题
1. 常用算法包括_________、_________、_________、_________、_________和回溯法。
2. 算法的基本特征有_________、_________、有穷性、输入和输出。
3. 下列程序段的时间复杂度是____。
for (i=1;i<=n;i++)
A[i,i]=0;
4. 下列程序段的时间复杂度是____
s=0;
for(i=1;i<=2n;i++)
for(j=1;j<=n;j++)
s=s+B[i][j];
sum=s;
5. 下列程序段的时间复杂度是____
3
i=1;
while (i<=n)
i=i*2;
6. 在下面的程序段中,s= s + p;语句的执行次数为_________,p= p×j 语句的执行次数为
_________ ,该程序段的时间复杂度为________ 。
int i=0, s=0, p=1;
while( ++i<=n )
{
for(j=1; j<=i; j++ )
p = p×j;
s = s + p;
}
7. 常见时间复杂度的量级有:常数阶 O(_________)、对数阶 O(_________)、线性阶 O(_________)、
平方阶 O(_________)和指数阶 O(_________)。
三、判断题
1. 算法和程序没有区别,所以在数据结构中二者是通用的。
4
第二章 基本数据结构及其运算
一、选择题
1. 数据结构的逻辑结构被形式地定义为(D,R),其中 D 是【 (1) 】的有限集合,R 是 D 上【
(2) 】的有限集合。
(1) A.算法 B.数据元素 C.数据操作 D.逻辑结构
(2) A.操作 B.映像 C.存储 D.关系
2. 在数据结构中,从逻辑上可以把数据结构分为【 】。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
3 设进栈的输入序列是 1,2,3,4,则【 】不可能是其出栈序列。
A. 1243 B. 2134
C. 1432 D. 4312
4. 设有一顺序栈 s,元素 s1,s2,s3,s4,s5,s6 依次入栈,如果 6 个元素出栈的顺序是
s2,s3,s4,s6,s5,s1,则栈的容量至少应该是【 】。
A.2 B.3 C.5 D.6
5. 线性表若采用链表存储结构,要求内存中可用存储单元的地址【 】。
A.必须是连续的 B.部分必须是连续的
C.一定是不连续的 D.连续不连续都可以
6. 有如下定义 struct Snode { int data; struct Snode *next; } *p, *q; 则将新结点 q 插入到单链表的 p
结点之后,下面的操作【 】是正确的。
A. q=p-> next; p-> next =q-> next;
B. p-> next =q-> next; q=p-> next;
C. q-> next =p-> next; p-> next =q;
D. p-> next =q; q-> next =p-> next;
7. 一个线性顺序表第一个元素的存储地址是 2000,每个元素长度为 4 个字节,则第 3 个元素的起
始存储地址为【 】。
A. 2008 B. 2000
C. 2004 D. 2012
8. 下列关于二叉树的叙述中,正确的是【 】。
A. 叶子结点总是比度为 2 的结点少一个
B. 叶子结点总是比度为 2 的结点多一个
C. 叶子结点数是度为 2 的结点数的两倍
D. 度为 2 的结点数是度为 1 的结点数的两倍
9. 某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是【 】。
A. 10 B. 8 C. 6 D. 4
10. 一棵二叉树共有 25 个结点,其中 5 个是叶子结点,则度为 1 的结点数为【 】。
A. 16 B. 10 C. 6 D. 4
11. 某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层)
【 】。
A. 3 B. 4 C. 6 D. 7
12. 某二叉树有 7 个度为 2 的结点,则该二叉树中的叶子结点数是【 】
A.10 B.8 C.4 D.6
13. 一棵深度为 k 的满二叉树中结点的个数是【 】
A. 2
k
B. 2
k
-1 C. 2
k-1
D. 2
k-1
-1
5
14. 在以下的叙述中,正确的是【 】。
A.线性表的线性存储结构优于链式存储结构
B.二维数组是它的每个数据元素为一个线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
15. 以下说法正确的是【 】。
A.数据元素是数据的最小单位
B.数据项是数据的基本单位
C.数据结构是带有结构的各数据项的集合
D.数据结构是带有结构的数据元素的集合
16. 线性表 L=(a1,a2,…,ai,…,an),下列说法正确的是【 】。
A.每个元素都有一个直接前驱和直接后继
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小的
D.除第一个元素和最后一个元素外其余每个元素都有一个且仅有一个直接前驱和直接后继
17. 对于顺序线性表的优缺点,以下说法错误的是【 】。
A.无需为表示结点间的逻辑关系而增加额外的存储空间
B.可以方便地随机存取表中的任一结点
C.插入和删除操作较方便
D.由于顺序表要求占用连续的空间,存储分配只能预先进行(静态分配)
18. 在含有 n 个结点的顺序存储的线性表中,在任一结点 i 前插入一个结点所需移动结点的次数为
【 】。
A.n/2 B.i C.n-i D.n-i+1
19. 在含有 n 个结点的顺序存储的线性表中,删除第 i 个结点所需移动结点的次数为【 】。
A.n/2 B.i C.n-i D.n-i+1
20. 在含有 n 个结点的顺序存储的线性表中,在任一结点前插入一个结点所需移动结点的平均次数
为【 】。
A.n B.n/2 C.(n-1)/2 D.(n+1)/2
21. 在含有 n 个结点的顺序存储的线性表中,删除一个结点所需移动结点的平均次数为【 】。
A.n B.n/2 C.(n-1)/2 D.(n+1)/2
22. 带头结点的单链表为空的条件是【 】。
A.head=NULL B.head->next=NULL C.head->next=head D.head!=NULL
23. 在一个单链表中,若删除*p 结点的后继结点,则执行【 】。
A.q=p->next;p->next=q->next;free(q);
B.p=p->next;p->next=p->next->next;free(p);
C.p->next=p->next;free(p->next);
D.p=p->next->next;free(p->next);
24. 循环链表的主要优点是【 】。
A.不再需要头指针了
B.已知某个结点的位置后,容易找到它的直接前驱
C.在进行插入、删除操作时,能更好地保证链表不断开
D.从表中任一结点出发都能扫描到整个链表
25. 在线性表的下列存储结构中,读取元素花费时间最少的是【 】。
A.单链表 B.双链表 C.循环链表 D.顺序表
26. 设栈 S 和队列 Q 的初始状态为空,元素 a1,a2,a3,a4,a5,a6 依次通过栈 S,一个元素出栈后即进
入队列 Q,若出队的顺序为 a2,a4,a3,a6,a5,a1,则栈 S 的容量至少应该为【 】。
A.2 B.3 C.5 D.6
27. 二维数组 A[11,6]采用行序为主序方式存储,每个数据元素占 4 个存储单元,且 A[0,0]的存
储地址是 1000,则 A[8,4]的存储地址是【 】。
剩余20页未读,继续阅读
资源评论
平头哥在等你
- 粉丝: 3
- 资源: 7333
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功