序号 | 文物名称 | 文物编号 | 距今时间 | 收藏日期 | 来源 |
1 | 晚清七色釉盘 | Q4877111854510 | 208年 | 2001-3-1 | 捐赠 |
2 | 明官窑矮罐 | M6877111665125 | 531年 | 1998-6-8 | 馆有 |
3 | 汉青铜短剑 | H7877111783721 | 2000年 | 1978-9-16 | 租借 |
… | … | … | … | … | … |
下列表结构设计最合理的是 ( )
n = 3: s = 0
c = Val(Text1.Text)
For i = 1 To c
p = i Mod n + 1
s = s + p
Next i
在文本框Text1中输入9,程序执行后,变量s的值为( )
For i = 1 To 2
For j = 6 To 2 * (i + 1) Step -2
If a(j) < a(j - 2) Then
t = a(j): a(j) = a(j - 2): a(j - 2) = t
End If
Next j
Next i
假定数组元素a(1)~a(6)的值依次为“happy,sky,change,sk,bellow,hello”。执行该程序段后,a(4)~a(6)的值依次是( )
s1 = Text1.Text : s2 = Text2.Text
i = 1 : j = 1
Do While i <= Len(s1) And j <= Len(s2)
If Mid(s1, i, 1) = Mid(s2, j, 1) Then
Loop
If Then Label1.Caption = "是子集" Else Label1.Caption = "不是子集"
上述程序填空处的可选语句为:
①i = i + 1 ②j = j + 1 ③i > Len(s1) ④j > Len(s2)
则(1)(2)(3)处语句依次最合理的搭配为( )
s = ""
i = 1:j = 10:k = 1
Do While i <= j
m = Int((i + j) / 2)
If a(m) > b(k) Then j = m - 1 Else i = m + 1
If a(m) = b(k) Then k = k + 1:s = s + Str(m)
Loop
数组元素a(1)到a(10)依次为“2,3,7,9,10,15,15,15,19,20”,执行该程序段后,变量s的值有3个字符,则b(1)到b(3)的值可能为( )
(单选,填字母:A .=AVERAGEIF($A$4:$A$63,"高一*",C4:C63)/ B .=AVERAGEIF($A4:$A63,"高一*",C4:C63) / C .=AVERAGEIF($A4:$A63,"高一*",B4:B63 )
图b
场景名:load |
类别序号:1 |
进入方式:启动动画自动播放 |
呈现方式: |
呈现顺序: |
|
①“音乐”图层中的声音源于库中的素材 bg.wav,参数如图b所示。 |
①一开始时出现背景画面,音乐随即播放。 |
|
②“文物”从完全透明到完全显示,由左到右由小变大慢慢呈现在舞台上。 |
②1秒后出现“文物”动画,3.5秒后音乐停止播放。 |
|
③“播放”按钮位于舞台右侧位置,单击该按钮跳转到“main”场景第1帧并开始播放。 |
③最后出现“播放”按钮,场景停止播放。 |
|
(其他略) |
(其他略) |
部分界面如图a所示,请回答下列问题:
图a
图b
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中输入数据总量,单击“数据生成”按钮Command1后,在列表框List1中显示原始数据,然后单击“分段排序”按钮Command2,在列表框List2中显示排序后的结果。程序运行界面如图所示。
请回答下列问题:
A .List1.Clear / B .List1.List="" / C .List1.Text="" / D .List1.Caption="空白" )。
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
Loop
'在List2中输出数组a(i)的值,代码略
End Sub
Function Leng(ByVal p As Integer) As Integer
'该函数返回数组a中数组下标p开始的升序有序段的长度,代码略
End Function
1)将每个人看成是一个钩码,能挂在另一个挂钩底下,自己底下也能挂其他挂钩。
2)如果两个钩码在同一条钩码串上,则为亲戚(如2、3都能找到1)。
3)如果两个是亲戚但不在一串钩码上,则可将其中一串的最上面的钩码挂在另一串的下方。
例如从图a加框处的前三行数据可得到图b所示的钩码串1和钩码串2,从第四行数据可知9、5也为亲戚,则可将两串钩码合并,合并后3为2的顶端,5为3的顶端,其余数据以此类推。
根据算法思想,编写VB程序功能如下:程序初始化时给出6条亲戚关系显示在List1中,单击“理关系”按钮,在List2中显示每个人所在钩码的顶端编号。在Text1和Text2中分别输入两人的编号,单击“询问”按钮,输出两个人是否为亲戚关系。程序运行界面如图a所示。
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: ‘根据x与y分类讨论
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)) Then List2.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) Then m = i: n = Len(f(i)) - j: Exit Do
j = j + 1
If j = Len(f(i)) Then i = i - 1: j = 0
Loop
If Then root = m Else root = n
End Function