2020-2021学年浙江省名校协作体高三(下)月考信息技术试卷
发布:2024/4/20 14:35:0
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
-
1.下列关于信息的说法正确的是( )
组卷:14引用:2难度:0.6 -
2.下列关于信息的表达与交流,说法正确的是( )
组卷:7引用:2难度:0.6 -
3.使用Access软件设计的博物馆文物信息数据表,需存储如图所示的数据。
序号 文物名称 文物编号 距今时间 收藏日期 来源 1 晚清七色釉盘 Q4877111854510 208年 2001-3-1 捐赠 2 明官窑矮罐 M6877111665125 531年 1998-6-8 馆有 3 汉青铜短剑 H7877111783721 2000年 1978-9-16 租借 … … … … … … 组卷:7引用:2难度:0.5 -
4.下列有关进制与编码的说法,正确的是( )
组卷:7引用:1难度:0.6 -
5.用Photoshop制作“重阳蹬高”作品,其中“重”字的轮廓被选区选中,部分界面如图所示。
下列说法正确的是( )组卷:8引用:1难度:0.7
二、非选择题(本大题共4小题,其中第13小题4分,第14小题8分,第15小题7分,第16小题7分,共26分)
-
15.某分段排序算法描述如下:
(1)将原始数据按升序分成若干有序段。
(2)将第1段和第2段进行合并,使得合并后的数据依旧有序,得到新的有序段。
(3)将新的有序段再次和下一个有序段进行合并。
(4)重复上述操作,直到全部数据变成一个有序段为止,排序结束。
如数据:1、3、9、4、5、7、2、6,第1段为1、3、9,第2段为4、5、7,将第1段和第2段合并,得到新的第1段为1、3、4、5、7、9。继续和下一段2、6进行合并,合并后段数变为1段,则排序结束。
编写VB程序,实现分段排序功能:在文本框Text1中输入数据总量,单击“数据生成”按钮Commandl后,在列表框List1中显示原始数据,然后单击“分段排序”按钮Command2,在列表框List2中显示排序后的结果。程序运行界面如图所示。
请回答下列问题:
(1)若要清空列表框List1,下列代码正确的是
A.List1.Clear/B.List1.List=““/C.List1.Text=““/D.List1.Caption=“空白“)。
(2)实现分段排序功能的VB程序如下,请在横线处填入合适的代码。
(3)程序中代码有错,请改正。
Dim a(1 To 1000)As Integer
Dim n As Integer
Private Sub Command1_Click ( )
'输入数据总量n,随机生成n个数据保存在数组
'a(1)~a(n)中,并在List1中显示数据,代码略
End Sub
Private Sub Command2_Click ( )
Dim b(1 To 10000)As Integer
Dim p1 As Integer,p2 As Integer,t1 As Integer,t2 As Integer
Dim t As Integer,k As Integer,i As Integer,j As Integer
p1=1
t1=leng(p1)
p2=p1+t1
Do While p2<=n
①
i=p1:j=p2:t=1
Do While i<p2 Or j<p2+t2
If j>=p2+t2 Or i<p2 And a(i)<a(j) Then
b(t)=a(i):i=i+1
Else
b(t)=a(j):j=j+1
End If
t=t+1
Loop
For k=1 To ②
a(k)=b(k)
Next k
t1=t1+t2
p2=p1+p2
Loop
'在List2中输出数组a(i)的值,代码略
End Sub
Function Leng(ByVal p As Integer) As Integer
'该函数返回数组a中数组下标p开始的升序有序段的长度,代码略
End Function组卷:2引用:1难度:0.3 -
16.亲戚寻找。小李总是因为认不清亲戚而苦恼,于是他设计了如下程序来模拟亲戚寻找的过程。已知:如果1和2是亲戚,1和3是亲戚,则2和3也是亲戚。代码思维如下:
(1)将每个人看成是一个钩码,能挂在另一个挂钩底下,自己底下也能挂其他挂钩。
(2)如果两个钩码在同一条钩码串上,则为亲戚(如2、3都能找到1)。
(3)如果两个是亲戚但不在一串钩码上,则可将其中一串的最上面的钩码挂在另一串的下方。
例如从图a加框处的前三行数据可得到图b所示的钩码串1和钩码串2,从第四行数据可知9、5也为亲戚,则可将两串钩码合并,合并后3为2的顶端,5为3的顶端,其余数据以此类推。
根据算法思想,编写VB程序功能如下:程序初始化时给出6条亲戚关系显示在List1中,单击“理关系”按钮,在List2中显示每个人所在钩码的顶端编号。在Text1和Text2中分别输入两人的编号,单击“询问”按钮,输出两个人是否为亲戚关系。程序运行界面如图a所示。
(1)根据图a数据,若输入两人的编号为4和5,则两人的关系是否为亲戚
(2)实现上述功能的VB程序如下,请在横线处填入合适的代码。
Const n=9'总人数
Const m=6'已知的亲戚关系数
Dim a(1 To n) As String,b(1 To n) As String
Dim f(1 To n) As String'记录不同的亲戚钩码串成员,每条亲戚钩码串内互为亲戚
Dim k As Integer'亲戚钩码串的数目
Private Sub Form_Load ( )
'初始化List1和List2,生成m条亲戚关系,每条亲戚关系的编号对应存储在数组a(i)和b(i)'中,在List1中输出a(i)和b(i),代码略
End Sub
Private Sub Command1_Click ( )
Dim i As Integer,x As Integer,y As Integer
f(1)=a(1)+b(1)'利用a(1)、b(1)生成第一条钩码串存储在f(1)中
k=1'k为钩码串编号
For i=2 To m
x=root(a(i),0):y=root(b(i),0)'x为调用函数获取a(i)所在的钩码串编号
If x=0 And y=0 Then k=k+1:①
If x<>0 And y=0 Then f(x)=f(x)+b(i)
If x=0 And y<>0 Then f(y)=f(y)+a(i)
If x<>y And x<>0 And y<>0 Then'x、y在不同钩码串则将两条钩码串合并
f(x)=f(x)+f(y):f(y)=f(k):k=k-1
End If
Next i
For i=1 To n'输出每个人所在钩码的顶端编号
x=root(CStr(i),0):y=root(CStr(i),1)'Cstr
If x<>0 Then
If y=Len(f(x)) ThenList2.AddItem Str(i)+““+CStr(i)
If y<>Len(f(x)) Then List2.AddItem Str(i)+““+②
End If
Next i
End Sub
'按钮Command2的功能为判断输入的两个人是否为亲戚关系,代码略
Function root(a As String,b As Integer) As Integer'参数a表示待查找目标,参数b
'表示返回值类型,0表示返回目标所在钩码串编号,1表示返回目标在该钩码串中的位置
Dim m As Integer,n As Integer,i As Integer,j As Integer
m=0:n=0:i=k:j=0
Do While i>0
If a=Mid(f(i),Len(f(i))-j,1)Thenm=i:n=Len(f(i))-j:Exit Do
j=j+1
If j=Len(f(i)) Then i=i-1:j=0
Loop
If ③
End Function组卷:4引用:1难度:0.3