方格填数。在n个连续的方格内填写字母A或B但相邻两格内不能都填B。求所有可能的填写方案数。例如,n=3,可能的方案有AAA、AAB、ABA、BAA、BAB等5种
以下VB程序用于解决这个问题,在文本框Text1输入n的值,点击“求解”按钮 command1后,在列表框List1中输出所有方案。运行界面如下图所示:
提示:若用0代表A,用1代表B,那么每一种方案都对应一个n位的二进制数。

(1)要使command1按钮上显示的文本改为“求解”,可在其属性窗口中将_____(填属性名)属性的属性值改为“求解”。
实现上述功能的程序如下:
Private Sub Command1_Click ()

Dim n As Integer, m As Integer, k As Integer

Dim flag As **

Dim i As Integer, j As Integer

Dim a(1 To 1000) As Integer

   

List1. Clear  '清空文本框list1

s = ""

For i =0 To

'每一种方案对应一个n位的二进制数,枚举i对应的方案是否符合要求
m =i
For j=1 To n
a(j)= m Mod 2
 
Next j
flag =True
For 
If a(k-1)= a(k) And a(k)= 1 Then
flag = False
End IF
Next k
If flag Then
For k= 1 To n
If a (k) = 1 Then s = "B" + s Else s = "A" + s
Next k
List1. AddItem s
End If
s = ""

Next i

End Sub
(2)阅读代码,变量flag的数据类型应定义为_____
(3)加框处代码有错,请改正:__________
(4)请在划线处填入合适的代码:
①__________
②__________
③__________ 
当前题号:1 | 题型:None | 难度:0.99
分析解决问题。
有一张单据,编号为四位数,号码为:8□□0.中间两位被污浊看不出来。已知该单据能被23和37整除,请用编程求出该单据号码。
(算法设计)
设百位数字为x,十位数字为y;x和y的范围都是0到9。
4位数:8xy0=8*1000+x*100+y*10
列举()()里的两个数字的所有可能情况:
00,01,02,03,04,05,06,07,08,09
10,11,12,13,14,15,16,17,18,19
……
90,91,92,93,94,95,96,97,98,99
逐一判断找出符合条件的数字。
(参考代码)
Dim  x  as long
Dim  y  as long
Dim  n  as long
For x=0  to  9
For y=0  to  9
n=8*1000+x*100+y*10
If   then
Print n
End if
Next y
Next x
根据上述回答下列问题
(1)解决该问题采用的算法是:___________(填:解析法/穷举法/排序法/递归法)
(2)根据题意,程序中空白处应填写:______(填写字母:A/B/C/D)
A.n mod 23 =0 or n mod 37 =0
B.n\23=0 and n\37=0
C.n\23=0 or n\37=0
D.n mod 23 =0 and n mod 37 =0
(3)根据算法设计,参考程序中循环体中的语句“n=s*1000+x*100+y*10”,一共重复执行了_________次。
当前题号:2 | 题型:None | 难度:0.99
某数据加密方法描述如下:先将字符转化为二进制的数据并显示在文本框Text2中,数据位数显示在标签Label1中。以16个数据为一段,将k个待加密数据依次分割成若干个数据段,剩余数据(个数小于16)为独立数据段。数据加密规则:数据个数等于16的数据段,在段内进行位置变换,得到加密数据段。数据个数小于16的数据段,直接得到加密数据段。依次合并加密数据段,即为最后的加密数据。位置变换的规
则如下:

具体界面如图所示:

请回答下列问题:
(1)已知k=34,则数组元素b(26)对应的值是数组a的_______________。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a (1 To 1000) As Integer, b (1 To 1000)
As Integer
Dim n As Integer, m As Integer
Dim s As String, s1 As String, c As Integer,
ch As String
s = Text1.Text: Text2.Text = ""
n = Len(s)
k = 1
For i = 1 To n  '获取字符的二进制数据存放在数组a 中
n = Asc(Mid(s, i, 1))
Do While n <> 0
a(k) = n Mod 2
n = n \2
Text2.Text = Text2.Text + Str(a(k))
k = k + 1
Loop
Next i
__________
List1.Clear
'对字符二进制按规则进行位变换,变换后的数据存放
在数组 b 中并输出
For m = 1 To (k - 1) \16
For i = 1 To 4
b(16 ∗ (m - 1) + 4 ∗ (i - 1) + 1) = a((m- 1) ∗ 16 + i)
___________
Next i
For i = 1 To 3
b(16 ∗ (m - 1) + 4 ∗ (i - 1) + 3) = a((m- 1) ∗ 16 + 10 + i)
b(16 ∗ (m - 1) + 4 ∗ (i - 1) + 2) = a((m- 1) ∗ 16 + 17 - i)
Next i
For i = 1 To 2
b(16 ∗ (m - 1) + 13 + i) = a((m - 1) ∗16 + 4 + i)
Next i
For i = 1 To 4
s1 = ""
For j = 1 To 4
s1 = s1 + Str(b(16 ∗ (m - 1) + (i -1) ∗ 4 + j))
Next j
List1.AddItem s1
Next i
List1.AddItem ""
Next m
s1 = ""
For i = ((k - 1) \16) ∗ 16 + 1 To k - 1
b(i) = a(i)
If _______________ then
s1= s1 + Str(a(i))
List1.AddItem s1
s1 = ""
Else
s1 = s1 + Str(a(i))
End If
Next i
List1.AddItem s1
Text3.Text = ""
For i = 1 To k- 1
Text3.Text = Text3.Text + Str(b(i))
Next i
End Sub
当前题号:3 | 题型:None | 难度:0.99
小王设计制作了一个VB程序用于获取英文单词,然后背诵这些英文单词。为了使背诵英文单词更有效率,小王决定要显示的英文单词要由相同的英文字幕组成。
程序执行过程如下:程序运行后,先从数据库中获取单词,然后单击“分析单词”按钮,查找出由相回字母组成的英多单词保留下来显示,例如:获取的英文单词有:tea,pea,eta,eat,help,three,there。通过分析得知tea,eta和eat是由相同字母组成的英文单词,three和there是由相同字母组成的英文单词,则这五个英文单词保留下来,显示在label1中。如图所示:

VB部分程序如下,请将程序补充完整:
Dim wordcharsort (1 To 3000)As String'存储每个英文单词字母排序后的内容
Dim words (1 To 3000) As string'存储由相同字母组成的英文单词
Dim wordscount As Integer
Dim Getwords (1 To 3000) As String
Private Sub Form_Load()
'从数据库中获取3000个英文单词存储到数组 Getwords中,代码略
End Sub
Private Sub Command1_ Click()

Dim key As Integer

For i=1 To 3000

Wordcharsort(i)=rank(Getwords(i))

Next i

For i=1 To 3000-1

k=i
For j=i+1 To 3000
If wordcharsort(j)<wordcharsort(k) Then k=j
Next j
If i<>k Then
t1= wordcharsort(i):wordcharsort(i)= wordcharsort(k):wordcharsort(k)=tl
___________
End if
Next i
For key=1 To 3000
wordscount= search( wordcharsort(key),key, wordscount)
Next key
For i=1 To wordscount
Label1. Caption= Labell. Caption+" "+words(i)
Next i
End sub
'查找相同字母组成的英文单词,存储在 words数组中
Function search(a As String, b As Integer, c As Integer)As Integer

For i=1 To 3000

flag=False

If a=wordcharsort(i) And______ Then
For j=1 To c
If words(j)=Getwords(b) Then flag=True
Next j
If flag=False Then
Words(c)=Getwords(b)
__________
End if
End If
Next i
search=c
End function
'对英文单词中的字母进行排序
Function rank(s As String)As String

Dim c(l To 45) As String

wordscount=1

For xk=1 To 45

c(xk)=" "

Next xk

For j=1 To Len(s)

c(j)= _______

Next j

For k=1 To Len (s)-1

For kk=Len(s) To k+1 Step-1

If Asc(c(kk))<Asc(c(kk-1))Then
tmp=c(kk):c(kk)=c(kk-1):c(kk-1)=tmp
End if
Next kk
Next k
For j=1 To Len(s)
rank -rank & c(i)
Next j
End function
当前题号:4 | 题型:None | 难度:0.99
数组a和数组b中元素的个数分别为n1和n2,现在从a,b两个数组中选取最小的n1个数据并按升序排列保存到a数组中。示例1:a={1},b={5,3},则a={1};示例2:a={3,1},b={2,4},则a={1,2}。实现上述功能的VB程序段如下:
Private Sub Form _ Load( )
′数组a,b存储整数,代码略
End sub
Private Sub Command1_Click( )
Dim i As Integer,j As Integer, k As Integer, t As Integer, flag As Boolean
flag- True
For i=1To
j=n2
 

  If b(j)< b(j-1) Then t=b(j: b(j)=b(j-1): b(j-1)=t

  j=j-1

  Loop
k=i
For j=n1Toi+1Step-1

If a(j)<a(k) then k-j

Next j
If a(k)<= b(1) And k <> i Then

t=a(k):a(k)=a(i): a(i)=t

flag=False

Elself Then

t=a(i):a(i)=b(1):b(1)=t

flag=True

End If
Next i
For i=1 To nl
Listl AddItem Str(a(i))
Next i
End sub
请回答问题:
(1)要使程序运行时,清空列表框List1的内容,可在 Form Load事件过程中添加语句:_____(单选,填字母:
A.List1.Caption=""/B.List1.Clear/C.List1. Additem"")。
(2)请将程序代码①②处补充完整。
①_______________________
②_______________________
(3)程序代码方框处,flag为_______时,表示b数组该遍加工需要进行_______排序(选填:冒泡/选择)。
当前题号:5 | 题型:None | 难度:0.99
数组a为一组正整数,其奇数下标的数组元素是升序排序的奇数,偶数下标的数组元素是升序排序的偶数依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序段如下:
key=Val(Textl. Text):i=1:j=10
Do While i <=J
m=Int(i+j)/2+0.5)
If key Mod 2+ a(m) Mod 2= 1 Then m=m-1
If a(m)= key Then
List 1. AddIton"找到了!": Exit Do
ElseIf a(m)> key Then
j=m-2
Else
i=m+2
End If
Loop
If i>j Then List1. AddItem "未找到此数"
如果数组元素a(1)到a(10)的数据依次是“1,4,5,6,11,10,23,16,25,20”,key的值为1,则执行上述程序段,变量m依次被赋值为(   )
A.5  3  2  1B.6  3  2  1C.5  2  1D.6  5  2  1
当前题号:6 | 题型:选择题 | 难度:0.99
有如下VB程序段:
a(1)=20: a(2)=3: a(3)=21: a(4)=37
a(5)=62: a(6)=20: a(7)=13: a(8)=33
k=Abs(a(2)-a(1))
For i=3 To 8
If Abs(a(i)- a(i-1))>k Then k= Abs(a(i)-a(i-1))
Next
执行该程序段后,变量k的值为(   )
A.7B.17C.25D.42
当前题号:7 | 题型:选择题 | 难度:0.99
有如下VB程序段:
Dim x As String, y As String
Dim ans As Integer
x = "5": y="20": ans = 0
If x > y Then
ans = val(x)-1
Else
ans= Val(y)+1
ans= ans+ Val(x +y)
Text1. Text = Str(ans)
执行该程序段后,文本框Text1中显示的是(   )
A.46B.29C.524D.541
当前题号:8 | 题型:选择题 | 难度:0.99
某算法流程图如下图所示,该流程图完整执行一次后,下列说法错误的是(   )
A.变量s存储的值为区间内能被3整除的数的和
B.变量i的值为30
C.语句“s←s+i”共执行了10次
D.语句“i<30”共执行了30次
当前题号:9 | 题型:选择题 | 难度:0.99
Visual Basic规定窗体文件的扩展名是( )。
A..forB..frmC..vbpD..bas
当前题号:10 | 题型:选择题 | 难度:0.99