浙教版(2019)选择性必修1《第五章 数据结构与算法》2022年单元测试卷(6)
发布:2024/12/14 8:0:22
一.选择题(共30小题)
-
1.8位同学的语文数学成绩总分从高到低为“178,176,173,172,170,168,163,160”。用二分查找法178的过程中,依次被访问到的成绩数据是( )
组卷:1引用:2难度:0.6 -
2.有如图 python 程序段,该程序段运行后,变量 k1,k2 的值分别为( )
组卷:2引用:3难度:0.5 -
3.有Python程序段,功能如下:运行程序后输入要查找的key值,要求在一个由n个数组成的降序排序队列的数组中,查找第一个小于等于key的元素下标并输出。
key=int(input( ))
L,R=0,n
while L<R:
m=
if :
L=m
else:
R=m-1
if L=n:
print(“数据不存在“)
else:
print(str(L+1))
要使程序实现上述功能,画线处填入的代码是( )组卷:1引用:2难度:0.5 -
4.有如下Python程序段:
s=input(“请输入一串字符串:”)
m=cnt=1
for i in range(1,len(s)):
if s[i]>s[i-1]:
cnt+=1
if cnt>m:
m=cnt
else:
cnt=1
print(m)
该程序段的功能是( )组卷:14引用:5难度:0.5 -
5.峰值元素指数组中其值大于左右相邻值的元素,如序列3,8,4,1中8为峰值元素。一个数组中可能包含多个峰值元素,现需要找出其中一个峰值元素所在的位置(默认第一个数的左侧和最后一个数的右侧值为0,即序列1、2、3中3也为峰值元素)。现有实现该功能的Python程序如下:
数组a=[10,2,25,17,20,21,9],执行该程序后,输出的值为( )组卷:5引用:3难度:0.4 -
6.某程序段如下:
执行该程序后,当输入的key值为15时,输出的结果是( )组卷:5引用:3难度:0.4 -
7.某Python程序如下:
数组a中的元素为“58,69,78,80,83,84,90,90,95“,则执行该程序段后,数组 s中的元素不可能为( )组卷:3引用:3难度:0.4 -
8.某二分查找算法的Python程序段如下:
执行该程序段后,ans 的值不可能是( )组卷:4引用:3难度:0.4 -
9.有如下Python程序段:
a=[99,85,74,68,53,42,34,27,20,13]
key=int(input(“请输入一个整数:”))
i,j,k,c,flag=0,9,0,“N”,False
while i<=j and flag==False:
m=(i+j+1)//2
k=k+1
if key==a[m]:
c=“Y“
flag=True
if key>a[m]:
j=m-1
else:
i=m+1
print(c,k)
执行该程序段后,下列说法正确的是( )组卷:9引用:4难度:0.4 -
10.有如下Python程序段:
执行该程序段后,输出的结果不可能出现的是( )组卷:4引用:4难度:0.4 -
11.部分算法流程图,如图所示,当12+22+……+i2>=1500时,求i的最小值,以下选项中,图中①、②和③处填入不正确的是( )
组卷:8引用:5难度:0.4
二.操作题(共4小题)
-
33.(一)顺序查找数据:我们假定被查找的数据存储在有n个元素的数组变量d中,要寻找的一个特定的数据(这个数据称为查找键)已经存储在变量key中.
下面是顺序查找算法的输入输出说明.
输入:查找键(设在变量key中). 被查找的数据(设在数组变量d中).
输出:若找到,输出值为key的数据所在的数组元素的下标,记为i;
若未找到,输出结果为提示字符串:“找不到“.
当在n=8个元素的数组里顺序查找数据的示意图如下:
总结顺序查找数据结果判断条件:
(1)当找到时,肯定i<=8,n个数据时,肯定i<=n,i即为找到的数组元素下标,d(i)=key;
(2)当“找不到“时,i=9>8了;n个数据时,当i=n+1时,表示“找不到“.
顺序查找的主程序段如下:
Private Sub 顺序查找_Click( )
n个数据放入d(1)到d(n)中
Key=Val(Text1.Text):i=1‘变量Key从文本框Text1取的数要查找的数;
Do While ①
i=i+1
Loop
If i<=n Then
Text2.Text=“在d(“+Str(i)+“)中“‘例如在文本框Text2显示:“在d(6)中”
Else
Text2.Text=“找不到“
End If
End Sub
以上程序Do While的条件 ①是
(A)Key<>d(i) (B)i<=n
(C))Key<>d(i) And i<=n (D)Key<>d(i) or i<=n.组卷:19引用:3难度:0.5 -
34.某校成绩查询系统界面如图所示,学生输入自己的身份证号码,可以查询自己的总分及排名。以下为此软件的VB程序,请在横线处填上正确的代码使程序完整。
(1)
(2)
(3)command1_click过程用于查询学生的总分成绩及排名,这一查找方法为:
Dim a(1to 500)as string‘用于存放参加考试学生的身份证号码
Dim s(1to 500)as single‘用于存入参加考试学生的总分成绩
‘form_load 过程用于进行一些初如化准备工作
Private Sub form_load ( )
‘将参加此次考试学生的身份证号码存放在数组a中
‘将参加此次考试学生的总分成绩存放在数组s中
For i=1to 499‘利用排序法将学生成绩进行降序排序
For j=500to i+1step-1
If ① then
t=s(j):s(j)=s(j-1):s(j-1)=t
t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
②
End sub
‘command1_click过程用于查询学生的总分成绩及排名
Private sub command_click ( )
Dim,bank as integer‘bank为排名
Dim index as Boolean‘index为查询凭证
Dim hm as string’hm为身份证号码
hm=text1.text
index=false
For i=1to 500
If hm=a(i) then index=true:bank=i:exit for‘代码exit for的作用为退出for循环
Next i
If index=true then
Text2.text=str(s(bank))
Text3.text=str(bank)
Else
Msgbox (“无此身份号码”)
End if。组卷:12引用:2难度:0.5