- 基础理论
- 数据及数据库技术
- 人工智能
- 算法理论
- 算法实例
- 面向对象程序设计 VB开发工具
- 算法实例的程序实现
- 算法及算法的表示方法
- 多媒体理论
- 基础软件操作
- 算法软件操作
- 多媒体软件操作
- 网络技术应用
a(1) | a(2) | a(3) | …… | a(n-2) | a(n-1) | a(n) |
17 | 39 | 48 | …… | 79 | 46 | 34 |
设计一个VB程序,单击“排序”按钮Command1后,在标签中输出排序后的数据序列,运行结果如图所示。

实现上述功能的VB程序如下,加框处代码有错,请改正。
Const n-9 ‘变量u存储待排序数据个数,以9个数为例
Dim a(1 Ton) As Integer ‘数组a存储待排序数据
Private Sub Command1_Click()
Dim i As Integer,j As Integer,t As Integer,k As Integer
‘读取一组正整数,存入数组a中,
‘在标签Label中依次输出排序前数组a从1到n各个元素的值,代码略;
For i = 1 To n\2
k=1 Label'①________For j=i+1 To n-i+1
If a(k) > a(j) Then k = j
Next j
For j=i+1To n ‘②________
If a(j) <a(j +1) Then t =a(j): a(j) =a(j +1): a(j +1)=
Next j
Next i
‘在标签中依次输出排序后数组a从1到n各个元素的值,代码略;
End Sub例如,根据规则推理图1数独,在第一宫中4个格子已经3个格子分别是数字1到3,缺的数字为4,因此第一行第一格空缺的数字填4,以此类推,直至将所有格子都推理出来。
![]() | ![]() |
图1 | 图2 |
(1)根据上述规则推理,数独(图2)第一行A处应是数字______。

(2)小明编写了四宫数独推算的VB程序,单击“推算”按钮 Command1后,在列表框List1中输出数独推算过程和结果,如第17题-3题图所示。实现推算的VB程序如下,请在划线处填入合适的代码。
Dim d(1 To 16) As Integer '数组d逐行存储四宫数独
Private Sub Command1_Click()
Dim i As Integer,flag As Boolean
For i = 1 To 16
d(i) =0 ‘值0表示该位置还未填数字Next i
‘初始化数独中已知位置的数字
d(2) =4:d(11) =3:d(14) =2:d(16) =4
List1.Clear
'在列表框Li1中输出四宫数独,代码略
flag = False
Do While Not flag
①__________For i = 1 To 16
‘函数check(i)实现对第i位置进行推算
If d(i) = 0 Then
d(i) = check(i)
If d(i) >0 Then
flag = False
'Forniat(i,"00")函数实现将变量i的值按2个字符宽度输出
List1.Addltem"第"& Format(i,”00” & "位置填” & d(i)
End If
End If
Next i
Loop
'在列表框Lil中输出四宫数独,代码略
End Sub
根据每一行、第一列、每一个宫的已有数字进行推算
Function check(x As Integer) As Integer
Dim t(0 To 4) As Integer,m As Integer
Dim row As Integer,col As Integer,n As Integer,k As Integer
For m=0 To 4
t(m) =0Next m
'对当前所在行列进行推算
row = (x-l)\4+l
col = ( x - l) Mod 4 + l
For m= 1 To 4
t(d( row - l) *4+m) = lt(②_______)=1
Next m
'进行宫内推算
If row < =2 And col <= 2 Then t(d(7 -x) ) = lIf row< = 2 And col > 2 Then t(d(ll - x) = l
If row > 2 And col < = 2 Then t(d(23-x) = l
If row > 2 And col > 2 Then t(d(27-x) = l
k =0
For m= l To 4
If t (m) = 0 Then n = m Else k = k + lNext m
If ③_______ Then check = n Else check = 0
End Functiont(1) = 1: t(2) = 1
For i = 3 To 5
t(i) = t(i - 1) + t(i -2)
Next i Key =13i=1:j=8:k=6
Do While i <=j
m = i+t(k-1) ‘①
If Key = d ( m ) Then Exit Do ‘Exit Do表示退出循环
If d(m) > Key Then
j= m - 1k=k-1
Else
i = m + 1k=k-2
End If
Loop运行该程序段后,①处的赋值语句共执行( )
A.1次 | B.2次 | C.3次 | D.4次 |

实现上述功能的VB程序如下,请回答下列问题。
(1)根据代码可知,若要产生20个随机数,只需将____的值修改为20即可。
(2)请在划线处填入合适代码。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Command1_Click() ’素数迁移模块
Dim i As Integer
List1.Clear ’清除列表框
List2.Clear
For i = 1 To n
For j = 2 To a(i) - 1
If ①__________ Then
Exit For ’ Exit For的功能是退出For循环
End If
Next j
If ②________ Then
List2.AddItem Str(a(i))
Else
List1.AddItem Str(a(i))
End If
Next i
End Sub
Private Sub Form_Load() ’随机数初始化模块
Randomize ’随机数种子初始化
For i = 1 To n
a(i) = ③___________
List1.AddItem Str(a(i))
Next i
End Sub

(1)如图所示,该程序共有________个对象。
(2)请根据题意将下列程序补充完整。
Private Sub Command1_Click()
Dim m As String,tmp As String,ch As Strin
Dim s As String,i As Integer
m=Text1.Text
tmp=""
s=""
For i=1 To Len(m)
ch=Mid(m,i,1)
If ch>="0"And ch <="9" Then
______________Else If tmp<>"" Then
s=s+tmp+","______________
End If
Next i
Text2.Text=s
End Sub
(3)输入的文本信息如图a所示,若删除加框处代码,则文本框Text2中显示的内容为________________。
A.未打开属性窗口 | B.未打开代码窗口 |
C.此法不能创建通用过程 | D.系统出错 |
PRIVATE SUB FORM CLICK( )
STATIC B AS INTEGER
DIM A AS INTEGER
A=A+1
B=B+1
PRINT A,B
END SUB
要求运行程序时单击窗体三次,给出第三次单击的结果
A.3 3 | B.1 3 | C.3 1 | D.1 1 |