编号 | 索引号 | 主题分类 | 发布机构 | 公开时间 | 是否有效 |
1 | 11330800002618015K/2020-117888 | 年底实事项目计划 | 市电子政务中心 | 2020/12/11 | 有效 |
2 | 002482082/2020-07211 | 采购计划 | 市电子政务中心 | 2020/10/12 | 无效 |
3 | 002482082/2020-07356 | .教育 | 省教育厅 | 2020/11/19 | 有效 |
… | … | … | … | … | … |
下列表结构设计合理的是( )
a(1) = 3:a(2) = 1:a(3) = 3
a(4) = 4 :a(5) = 6
pos = 1 : n = 5
For i = 1 To 10000
pos = (pos + a(pos) - 1) Mod n + 1
Next i
执行该程序段后,pos的值是( )
L = 0: R = 7: i = 1
Do While i < R
If a(i) = 0 Then
L = L + 1
t = a(i): a(i) = a(L): a(L) = t i = i + 1
ElseIf a(i) = 2 Then
R = R - 1
t = a(i): a(i) = a(R): a(R) = t
Else
i = i + 1
End If
Loop
数组元素 a(1)到 a(6)的值依次为“2,0,2,1,1,0”。执行该程序段后,下列说法不正确的是( )
a(1) = 11 : a(2) = 14 : a(3) = 23 : a(4) = 23 : a(5) = 30 : a(6) = 42
key = Val(Text1.Text)
L = 1 : R = 6 : x = 0
Randomize
Do while L <= R
mid = Int(Rnd() * (R-L+1))+ L
If a(mid) = key Then
Exit Do
ElseIf a(mid) > key Then
R = mid - 1
x = x - 1
Else
L = mid + 1
x = x + 1
End If
Loop
If L <= R Then
Label1.Caption = "查找成功," + "位置为" + str(mid)
Else
Label1.Caption = "查找失败"
End If
该程序执行后,在文本框Text1中输入23,则x的值不可能是( )
s = "abcababcababcab": L = Len(s)
For t = 1 To L \ 2 '枚举可能的原始长度
If L Mod t = 0 Then
For i = t + 1 To L Step t
If ① <> Mid(s, 1, t) Then Exit For
Next i
If i = L + 1 Then ans = ② : Exit For
End If
Next t
Text1.Text = ans
上述程序段划线处①②语句依次可为( )
图b
图c
首先将5取出,得到序列5;
第二步将2取出,插入序列得到2,5;
第三步将9取出,插入后得到2,5,9;
第四步将5取出,插入后得到2,5,5,9;
第五步将3取出,插入后得到2,3,5,5,9,排序完成。
小吴对这种插入排序进行了一些改进,将无序数列存入a数组中,将排序后的数据存入b数组中,同时保证b数组不存在重复的数字。对于重复出现的数字,用cnt数组记录重复个数。例如无序数列8、6、7、4、4、9、1、9、9、8,a(1)~a(10)存储原数据,b(1)~b(6)存储排序后的不重复数据,cnt(1)~cnt(6)存储每个数字重复的个数,如图a所示。
数组/下标 |
1 |
2 |
3 |
4 |
5 |
6 |
b |
1 |
4 |
6 |
7 |
8 |
9 |
cnt |
1 |
2 |
1 |
1 |
2 |
3 |
图a
程序运行后,自动随机生成原数组并显示在列表框List1中,点击按钮“开始”后,生成升序排序数组并显示在列表框List2中,程序运行界面如图b所示。
图b
请回答下列问题。
Const n = 10
Dim a(0 To 100) As Integer, b(0 To 100) As Integer, cnt(1 To 100) As Integer
Dim Ln As Integer, pos As Integer 'Ln表示b数组的长度
Function search(key As Integer)
Dim i As Integer
For i = 1 To Ln
If b(i) >= key Then Exit For
Next i
search = i
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Ln = 0
For i = 1 To n
pos =
If b(pos) <> a(i) Then
Ln = Ln + 1
j = Ln
Do While j > pos
b(j) = b(j - 1)
j = j - 1
Loop
b(j) = a(i)
cnt(pos) = 1
Else
End If
Next i
For i = 1 To Ln
For j = 1 To cnt(i)
List2.AddItem Str(b(i))
Next j
Next i
End Sub
Private Sub Form_Load()
For i = 1 To n
a(i) = Rnd() * 10 + 1
List1.AddItem Str(a(i))
Next i
End Sub
玩家通过4种指令控制小人运动:
· 左 X:小人向左移动X个格子
· 右 X:小人向右移动X个格子
· 下 X:小人向下移动X个格子
· 挖矿:收集小人所在格子的金矿
小人收集金矿需要遵循一定的规则:
①小人必须将当前行的金矿全部收集,才能去往下一行,即金矿需从上到下收集
②对于同一行的金矿,小人必须按照从左往右的顺序开始收集
现编写程序,以8*8的矩阵为例,在文本框Text1中输入金矿数量,点击按钮“开始”后,随机产生对应数量的金矿并借助图形控件输出(保证不会在同一个格子出现两个金矿),并且在列表框List1中按顺序输出指令,使小人按照规则得到所有金矿。如图a所示。请回答下列问题。
图a
图b
Const n = 8 '程序以8*8的矩阵为例
Dim x(1 To n*n) As Integer, y(1 To n*n) As Integer '存储所有金矿的位置
Dim px As Integer, py As Integer '存储小人所在的位置
Dim i As Integer, j As Integer, m As Integer, tmp As Integer
Private Sub Command1_Click()
m = Val(Text1.Text)
Randomize
'随机产生m个金矿并通过图形控件显示在界面上,代码略
For i = 1 To m - 1
For j = 1 To m - i
'将所有金矿按照从上到下、从左到右的顺序排序,以符合题目描述的规则
If x(j) > x(j + 1) Or Then
tmp = x(j): x(j) = x(j + 1): x(j + 1) = tmp
tmp = y(j): y(j) = y(j + 1): y(j + 1) = tmp
End If
Next j
Next i
px = 1: py = 1
i = 1: j = 1
Do While j <= m
Do While x(j) = x(j + 1) And j <= m
j = j + 1
Loop
If y(i) < py Then
List1.AddItem "左" + Str(py - y(i))
ElseIf y(i) > py Then
List1.AddItem "右" + Str(y(i) - py)
End If
List1.AddItem "下" + Str)
List1.AddItem "挖矿"
For k = i + 1 To j
List1.AddItem "右" + Str(y(k) - y(k - 1))
List1.AddItem "挖矿"
Next k
px = x(j)
j = j + 1
i = j
Loop
End Sub