综合练习 - 浙教版(2019)高中信息技术 选修1数据与数据结构(Word版,有答案)

资源下载
  1. 二一教育资源

综合练习 - 浙教版(2019)高中信息技术 选修1数据与数据结构(Word版,有答案)

资源简介

综合练习 - 浙教版(2019)高中信息技术选修1
一、选择题
1.有如下 Python 程序段
def bianli(head):
pt = head
while pt != -1:
print(data[pt][0],data[pt][1],"->",end='')
pt = data[pt][1]
print()
data = [['A',1],['B',2],['C',3],['D',-1]]
head = 0
bianli(head) #遍历链表,显示初始状态为“A 1 ->B 2 ->C 3 ->D -1 ->”
qt = head
pt = data[qt][1]
bianli(head) #遍历链表,显示最终状态为“A 2 ->C 1 ->B 3 ->D -1 ->”
执行该程序段后,链表遍历结果由初始状态变为最终状态,上述程序段中方框处可选代码为:
①data[data[qt][1]][1] = pt
②data[qt][1] = data[pt][1]
③data[pt][1] = data[data[pt][1]][1]
则方框处代码的正确顺序是( )A.①②③ B.①③② C.②①③ D.②③①
2.已知一个有7个节点的单向链表,设有头指针head和尾指针tail,如右图所示,下列操作需要遍历多个节点的是( )
A.删除该链表中的最后一个节点
B.删除该链表中的第一个节点
C.在该链表第一个节点前插入一个新节点
D.在该链表最后一个节点后插入一个新节点
3.用两个列表a、b分别保存单向链表中的数据区域和指针区域。如下图所示,在节点x与节点y之间插入一个新节点,操作步骤正确的是( )
①b[i]= b[y] ②b[i]= b[x] ③b[y]= i
④b[x]=i ⑤b[i]= x ⑥b[i]= y
A.③⑥ B.④② C.①③ D.②④
4.用栈的数据结构编写进制转换中的“除二取余法”的程序段如下:
st=[-1]*100
top=-1
n=int(input("请输入一个十进制数: "))
while n>0:
while top!=-1:
print(st[top],end="")
top-=1
方框处的代码由以下四部分组成:
①n=n//2 ②top+=1 ③x=n%2 ④st[top]=x
下列选项中,代码顺序正确的是( )
A.③④②① B.③①②④ C.①②③④ D.①③④②
5.某二分查找算法的 python 程序段如下, 运行该段代码后, 输出的结果不可能是( )
import random
a = [10,20,30,40,50,60,70,80]
key = random.choice(a); i,j = 0,len(a)-1 ; s = ""
while i<=j:
m = (i+j)//2
if key == a[m]:
s = s+"M"; break
elif key < a[m]:
j = m-1; s = s+"L"
else:
i = m+1; s = s+"R"
print(s)
A.LLM B.LRM C.RRRM D.RRLM
6.某对分查找算法的Python程序段如下:
key=int(input("请输入待查数据值:"))
d=[17,18,20,23,24,25,28,32,34,35]
f=False;s=""
i=0;j=len(d)-1
while i<=j:
m=(i+j)//2
s=s+","+str(d[m])
if d[m]==key:
f=True
break
if key < d[m]:
j=m-1
else:
i=m+1
if f==True:
print("查找成功!遍历的数据"+s)
else:
print("没有找到!")
输入待查数据值为 23,执行该程序段,则输出的结果是( )
A.25,20,24,23 B.24,18,20,23 C.25,20,23 D.24,20,23
7.有如下Python程序代码:
s="ABCDEF";head=0;tail=0
que=[""]*100
for i in range(len(s)):
if i%2==0:
que[tail]=s[i]
else:
que[tail]=s[len(s)-i]
tail=tail+1
for i in range(len(s)):
print(que[head],end="")
head=head+1
以上程序运行后,打印出列表的情况是:( )
A.ABCDEF B.FEDCBA C.ACEFDB D.AFCDEB
8.已知一棵二叉树的前序遍历序列为:A-B-D-C-E,后序遍历序列为:D-B-E-C-A,则该二叉树是否 能唯一确定?中序遍历序列是?( )
A.能唯一确定,中序遍历序列为:B-D-A-E-C
B.不能唯一确定, 中序遍历序列可能为: B-D-A-E-C
C.能唯一确定,中序遍历序列为:D-C-B-A-E
D.不能唯一确定, 中序遍历序列可能为: D-C-B-A-E
二、填空题
9.递增数列用二分法查找时,先以________位置的元素作为比较对象,如果要找的元素值小于该中点元素,则将待查序列________为左半部分,否则为右半部分。每一次比较后都可以将查找区间缩小一半。
10.数组 d 的初始值如表所示,则 d(d(3))+d(4)的值 ( )。
11.小明同学所在城市的地铁线路局部图,如图所示。他计划从A站出发去B站附近的图书馆学习。假设地铁各线路每两站间行车用时相等,记为t1,停靠站时间忽略不计;换乘地铁的用时也都相等,记为t2。
(1)如果t1=t2,小明同学希望尽快到达B站,试为他推荐一条最佳乘车路线。
_________________________________
(2)设t1=2min,t2=lmin,则小明从A站出发到达B站的最短用时为___________min。
12.指出下列数据所属的数据类型
(1)789( )(2)345.890( ) (3)‘N’( )
(4)1.23e2( )(5)“C语言”( )
13.递归的要素:________的递归的重要组成;________,它保证递归能在________的计算后得出结果,而不会产生________的情况。
三、判断题
14.数据处理的一般过程是明确目标、数据采集、数据加工、数据分析及数据可视化。( )
15.迭代算法与递归算法都需要重复执行某些代码,两者基本相同。 ( )
16.递归的边界条件要素,是为了保证递归能在有限次的计算后得出结果,而不会产生无限循环的情况。 ( )
17.图结构中数据元素是多对多的关系。( )
18.数据管理指的就是对数据进行查询和统计。( )
四、操作题
19.打开文件“考生文件夹\670\Fibonacci.py”,完善程序实现如下功能并保存:
斐波那契在《计算之书》中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?
#请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善
def fib(n):
f2=f1= ①
for i in range(3, ② ):
f1,f2=f2,f1+f2
return ③
n=int(input('输入需要计算的月份数:'))
print('兔子总对数为:',fib(n))
input("运行完毕,请按回车键退出...")
①____________________②____________________③__________________
试卷第1页,共3页
试卷第1页,共3页
参考答案:
1.D
2.A
3.D
4.B
5.D
6.B
7.D
8.B
9. 中点 缩小
10.20
11. A-L-K-H-G-B 或 A-L-K-J-I-B 12
12. int float char double char
13. 递推关系 边界条 有限 无限循环
14.错误
15.错
16.对
17.正确
18.错误
19. 1 n+1 f2
答案第1页,共2页
答案第1页,共2页

展开更多......

收起↑

资源预览