内容正文:
综合测试卷-2023—2024学年浙教版高中信息技术(2019)选择性必修1
一、选择题
1. 定义如下函数:
def f(s,r):
if s-r**2<0 or r==0
return r+1
else:
return f(s-r**2,r-1)
执行语句k=f(50,5)后,k的值为( )
A. 4 B. 3 C. 2 D. 1
2. 栈s的最大长度为4,初始已有两个元素在栈内,栈底为a,栈顶为b,经过一系列入栈、出栈操作,若元素入栈的顺序是c,d,e,f,则可能的出栈序列为( )
A. c,a,b,e,f,d B. b,d,f,e,c,a C. a,b,d,c,e,f D. b,e,f,c,d,a
3. 某二叉树的前序遍历结果为ABCEDF,在该二叉树基础上添加一个节点后的中序遍历为BGCADEF,则添加节点后的后序遍历结果为( )
A. CGBDFEA B. GCBADFE C. CGBEFDA D. GCBDFEA
4. 使用数组存储某二叉树的形式如图所示,下列描述正确的是( )
0
1
2
3
4
5
6
A
B
C
D
A. 该二叉树的后序遍历为BDCA B. 该二叉树的深度为2
C. 该二叉树是一棵完全二叉树 D. 该二叉树的叶子节点个数为3
5. 小张准备去多个城市旅游,他设计的行程若采用链表结构表示,如图a所示。
图a
图b
若行程有变,需在“上海”与“成都”之间增加一站“杭州”,链表修改为如图b所示,有以下可选操作:
①“上海”所在节点的next值赋为“杭州”所在节点的next值
②“上海”所在节点的next值赋为5
③“杭州”所在节点的next值赋为“上海”所在节点的next值
④“杭州”所在节点的next值赋为-1
链表更新顺序正确的是( )
A. ③② B. ③① C. ①④ D. ②④
6. 有如下phthon程序,程序运行后,变量c的值为:( )
d=[1,7,5,2,3]
flag=False;last=i=c=0
while i<4 and flag==False:
flag=True
c+=1
for j in range(4,i,-1):
if d[j] < d[j-1]:
d[j],d[j-1]=d[j-1],d[j]
flag=False;last=j
c+=1
i=last
A. 6 B. 7 C. 8 D. 9
7. 有一棵完全二叉树,已知其中序遍历结果是CADGBEIHJ,则其前序遍历结果应该为( )
A. ABCDEFGHI B. EGACDBHIJ C. EACGBDIHJ D. EACDBHIJ
8. 如下Python程序段:
import random
a=[1,3,5,7,9,11,13,15]
key=random.randint(1,8)*2
i,j=0,len(a)-1
s=0
while i<=j:
m=(i+j+1)//2
if a[m]==key:
break
if a[m]>key:
j=m-1;s-=1
else:
i=m+1;s+=1
print(s)
上述程序执行完以后,s的值有几种可能( )
A. 4种 B. 5种 C. 7种 D. 8种
9. 找出序列中的最大数,并将其放到序列的最后面。实现上述功能的代码如下:
#链表a中存储了序列数据,head为其头指针,代码略
pre=p=head
maxpre=maxp=head
while p!=-1:
if a[p][0]>a[maxp][0]:
maxp=p ; maxpre=pre
pre=p
p=a[p][1]
if maxp==head:
head=a[head][1]
elif maxp!=pre:
①
a[pre][1]=maxp
②
#遍历输出链表a
划线处的代码应为( )
A. ①a[maxp][1]=a[maxpre][1] ②a[maxp][1]=a[p][1]
B. ①a[maxp][1]=a[maxpre][1] ②a[maxp][1]=p
C ①a[maxpre][1]=a[maxp][1] ②a[maxp][1]=a[p][1]
D. ①a[maxpre][1]=a[maxp][1] ②a[maxp][1]=p
10. 假设队列的空间足够,队首指针head和队尾指