Private Sub Command1_Click()
Dim a(1 To 10) As Integer
Dim s As Integer
Dim max As Integer
n = Val(Text1.Text)
i = 1
Do While i <= n
a(i) = Int(Rnd * 100)
List1.AddItem Str(a(i))
s = s + a(i)
①
Loop
max = a(1)
For i = 2 To n
If a(i) > max Then ②
Next i
List1.AddItem "和为:" + ③
List1.AddItem "最大值为:" + Str(max)
End Sub
供①②选填:
a.n=n+1 b. i=i+1 c.max=a(i) d. a(i)=max
空格③处应填写的代码为:。
Function f(n As Integer)As Long
Text1.Text=Trim(Str(n))+Text1.Text ‘函数Trim的作用是去掉字串首尾空格
If n=1 Then
f=1
Else
f=3*f(n\2)
End If
End Function
Private Sub Command1_Click()
Text1.Text=“”
Text1.Text=Trim(Str(f(8)))+Text1.Text
End Sub
单击按钮Command1后,文本框Text1中显示的值是( )
Private Sub Command1_Click()
Dim k As Integer,a As Integer,b As Integer
a=Val(Text1.Text)
b=Val(Text2.Text)
Label1.Caption=trans(a,b)
End Sub
Function trans(m As Integer,n As Integer)As String
If m<>0 Then
r=m Mod n
trans=trans(m\n,n)+Str(r)
Else
trans=0
End If
End Function
程序运行时,在文本框Text1和Text2中分别输入11和2,则Label1中的输出结果是( )
实现上述功能的VB代码如下:
Dim a(1 To 100) As Integer Private Sub Command1_Click()
Dim i As Integer, s As Integer, smax As Integer ‘用于随机生成数据,并将阵列按规则在列表框中输出,该部分功能的代码略。
smax = 0
For i = 1 To 100
If a(i) = 0 Then s = search(i) If s > smax Then smax = s
Next i
Label1.Caption = "最大面积的矩形,占" + Str(smax) + "个单位。" End Sub
Function search(i As Integer) As Integer
Dim x As Integer, x1 As Integer, xend As Integer Dim y As Integer, y1 As Integer
Dim s As Integer
x = (i - 1) Mod 10 + 1 '起始列号 y = (i - 1) \ 10 + 1 '起始行号 x1 = x
y1 = y xend = 10
search = 0
Do While y1 <= 10
If a((y1 - 1) * 10 + x) = 1 Then Exit Do '判断 x1 = x
Do While x1 <= xend
If a((y1 - 1) * 10 + x1) = 1 Then
x1 = x1 – 1 '改错
Else
x1 = x1 + 1
End If Loop
y1 = y1 + 1
s = (x1 - x) * ( ) '填空 If s > search Then search = s
Loop
End Function
请回答下列问题:
Const n = 10
Dim a (1 To n) As Integer ‘保存原始数据
Dim b(1 To n ) As Boolean ‘数组b用来标记相应的位置有没有找过
Private Sub Command1 _ Click ()
Dim i As Integer , sum As Integer , total As Integer
sum = 0: total = 1 ‘total 表不第几组
i = 1
List 2.Addltem “第”& Str (total) & “组”
Do While sum < n
Do While Not b (i)
List 2.Addltem a (i)
b(i) = True
sum = sum + 1
Loop
If sum < n Then
total = total + 1
List 2.Addltem “第” & Str ( total ) &■“组”
i = 1
Do While b(i) ‘该循环用来查找下一组的开始位置
Loop
End If
Loop
End Sub
Private Sub Form _ Load ()
Dim i As Integer
Randomize
For i = 1 To n ‘产生 n 个不一样的整数,范围为[ 1, n ]
a(i) = Int(Rnd * n ) + 1
Do While
a (i) = Int(Rnd * n ) + 1
Loop
Next i
For i = 1 To n
List1.Addltem a (i)
b (i) = False
Next i
End Sub
Function f(x As Integer , y As Integer ) As Boolean
‘该函数的功能:判断x和数组a中前y个数有没有重复,有重复返回值True,否则False
End Function
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n = 10 ‘数组元素的总数
Dim a(1 To n) As Integer
Private Sub Form_Load()
‘该过程对数组a进行赋值,并在列表框List1中显示,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer,flag(1 To n) As Boolean
‘flag(i)记录第i个元素是否重复出现
For i = 1 To n ‘flag(i)=true开始假设都只出现1次
flag(i) = True
Next i
For i = 1 To n
If flag(i) Then
For j = i + 1 To n
If Then flag(i) = False: flag(j) = False ‘①
Next j
End If
Next i
For i = 1 To n
If Then List2.AddItem Str(a(i)) ‘②
Next i
End Sub
① ②
key=Val(Text 1.Text)
Text 2.Text=“”
flag=True
i=1:j=8
Do While i<=j And flag=True
m=(i+j)\2
If key=a(m) Then
flag=False
ElseIf key>a(m) Then
i=m+1
Else
j=m-1
End If
Text 2.Text=Text 2.Text+Str(m)
Loop
数组元素a(1)到a(8)的值依次为“1,3,5,8,10,13,16,21”,在文本框Text 1中输入7,执行该程序段,下列说法正确的是( )
i=1: j=12: k=0: S=""
key=Val(Text1.Text) : c= "N" : flag= False
Do While i <= j And flag = False
m=(i+j+1)\2: k=k+1
If key = a(m) Then c= "Y" : flag= True
If key > a(m) Then j=m-1 Else i=m+ 1
s=s & Str(a(m))
Loop
Text2.Text = s : Text3.Text = c
数组a(1)到a(12)的值依次为“99,91,85,76,68,61,53,42,34,27,20,13”,执行该程序段后,下列说法正确的是( )
key = Int (Rnd*5)*2+ 11
i = 1: j = 8: c = 0
Do While i <= j
m = (i+j+1) \ 2
If a(m) >= key Then i = m+1 Else j = m-1
c = c+1
Loop
数组元素a(1)到a(8)的值依次为“23,21,19,18,16,15,14,11”。若该程序段执行后,下列说法错误的是( )
Dim a(1 To 10) As Integer
Randomize
a(1) = Int(100 * Rnd) ‘先生成第1个数
For i = 2 To 10 ‘然后生成2到第10个
temp = Int(100 * Rnd)
Low = 1
high = i - 1
Do While Low <= high
m = (Low + high) \ 2
If temp >a(m) Then
①
Else
high = m - 1
End If
Loop
For j = i - 1 To Low Step -1 ‘从原来有数据的最后位置开始逐个数据后移
a(j + 1) = a(j)
Next j
②
Next i
则空缺处代码为( )
t="": i=0: j=9: key=62: f=False
Do While i <=j And Not f
m=Fix((i+j)/2)
t=t+Str(m)
If a(m)= key Then
f=True
ElseIf a(m)>key Then
i=m+1
t=t+"→"
Else
j=m-1
t=t+"←"
End If
Loop
数组元素a(0)到a(9)的值依次为“99,94,90,87,78,70,63,56,45,36”执行该程序段的值是( )
'数组元素f(1)到f(9)赋初值为0,代码略
Key = Val(Text1.Text)
i = 1: j = 9: flag = False
Do While i <= j And flag = False
m = (i + j) \ 2
f(m) = 1
k = k + 1
If a(m) = Key Then
flag = True
ElseIf a(m) > Key Then
j = m - 1
Else
i = m + 1
End If
Loop
整型数组元素a(1)到a(9)为升序序列,在文本框Text1中输入待查找数,执行该程序段后,f(1)到f(9)各元素值为“0,0,0,0,1,1,1,0,0”,则下列选项中描述正确的是 ( )
①增加了系统开销
②有利于降低使用成本
③可以在同一个平台做批处理计算和流计算
④缩短了批处理计算和流计算之间的切换延时
①定义一个数组a(1 to 961)。产生一个3到6之间的随机整数k,将十进制数960均分成k份,字符在字符串中的位置除以k的余数决定该字符存放在第几份数据中(余数为1保存在第一份数据中,余数为2保存在第二份数据中……,余数为0保存在第k份数据中);
②用十进制数127减去每个字符的ASCII码值,得到的差作为该字符的密文,并保存在数组a中,同一段内的密文依次存放;
③将随机产生的数k加64后保存在数组元素a(961)中,并一起参与加密;
④将数组a中所有有密文值的数组元素从后往前依次存放到数组b中;
⑤将数组b中的每个密文用3位数字保存,不足3位的前面用0补足,然后依次连接保存在变量sc中;
⑥在文本框Text2中输出sc。
例如:
①若现有待加密的字符串为“zp123”,产生的随机数k=3,则960分成3份,每份可存放320个值,分别为a(1)至a(320),a(321)至a(640),a(641)至a(960);
②由于Asc(“z”) =122,则127-122=5。字符“z”在待加密字符串中的位置是1,除以k的余数为1,因此数字“5”放在第一份数据的第一个位置,即a(1)=5;同理可得,第一份数据为a(1)=5,a(2)=77;第二份数据为a(321)=15,a(322)=76;第三份数据为a(641)=78;
③将随机产生的k与十进制数64的和保存到a数组的最后一个值中,即a(961)=64+3=67;
④将数组a中所有有密文值的数组元素从后往前依次存放到数组b中,得到b(1)=67,b(2)=78,b(3)=76,b(4)=15,b(5)=77,b(6)=5;
⑤将数组b中的每个元素用0补足3位后依次连接并保存在sc中,得到sc=“067078076015077005”;
⑥输出sc。
注:(asc(“0”)=48,asc(“A”)=65,asc(“a”)=97)
Private Sub command1_Click()
Dim a(1 To 961) As Integer
Dim sr, sc As String
Dim i, j, k, m, n, t As Integer
Dim b(1 To 961) As Integer
Randomize
k = Int(Rnd * 4 + 3)
sr = text1.Text
For i = 1 To 961
a(i) = -1
Next i
a(961) = k + 64
t = 960 / k
For i = 1 To Len(sr)
m = i Mod k - 1
n = i \ k + 1
If i Mod k = 0 then n = n - 1: m = m + k
① = 127 - Asc(Mid(sr, i, 1)) ‘将密文存储到数组a中
Next i
For i = 1 To Len(sr) + 1
j = j + 1
Do While a(j) = -1
j = j + 1
Loop
b(Len(sr) + 2 - i) = a(j) ‘将有密文值的a数组元素存储到数组b中
Next i
For i = 1 To Len(sr) + 1
sc = ② ‘连接密文并保存到sc中
Next i
text2.Text = sc
End Sub
Function space(x As Integer) As String
For i = 1 To ③
space = space & "0"
Next i
End Function
① ② ③
Key = Val(Text1.Text) \10
Text2.Text = ""
i = 1: j = 9: f = False
Do While i <= j And Not f
m = (i + j)\ 2
If a(m) Mod 10 = Key Then search = m
f = True
ElseIf a(m) Mod 10 > Key Then i = m + 1
Else
j = m - 1
End If
Text2.Text = Text2.Text + Str(m)
Loop
程序运行后,文本框Text2中显示的内容是( )
x=int(input("请输入要查找的1000以内的整数:"))
step=0
flag1=1
flag2=1000
while(flag1<=flag2):
mid=①
step=step+1
if mid>x:
flag2=②
elif mid<x:
flag1=③
else:
break
print("查找次数为:",step)
input("运行完毕,请按回车键退出...")
下列说法正确的是( )
i=1: j=7: n=0
Key=Val (Text1. Text)
Do While i <=j
n=n+1
m=Int ((i+j)/2)
If Key=d(m) Then Exit Do
If Key <d(m) Then j= m-1 Else i =m+1
Loop
数组元素d(1)到d(7)存放的数值依次为6,45,23,36,78,58,12,若该程序段运行结束后,n的值为2,则Key的值是( )
i = 1: j = 10
flag = False
Do While i <= j And Not flag
m = (i + j + 1) \ 2
If a(m) < a(m - 1) And a(m) > a(m + 1) Then
ElseIf a(m) > a(m - 1) And a(m) > a(m + 1) Then
ElseIf a(m) > a(m - 1) And a(m) < a(m + 1) Then
End If
Loop
List1.AddItem Str(a(m)) +Str(m)
上述程序方框处可选句为:
①i=m+1
②j=m-1
③flag = True
则①②③处语句依次是( )
i =1:j= 8:n= 0:key= 83
Do While i<=j
n=n+1
m=(i+j)\2
If key > a(2 * m) Then j=m-1 Else i=m+1
Loop
Text1。Text = Str(a(2 * j - 1))
数组元素a(1)到a(16)的值依次为“6,90,3,85,5,83,2,83,4,83,8,80,7,77,1,70”,奇数位存储序号,偶数位存储成绩。执行该程序段后,下列说法正确的是( )
i=1:j=100:Key=20
Do While i<=j
a = i+(j- i)\4: b= i+(j- i)\ 2:c=j-(j-i)\4
If a=Key Or b=Key Or c=Key Then ExitD o
If i<= Key And Key< a Then j= a- 1: w= w+ 1
If a< Key And Key < b Theni = a+ 1: j= b-1:x=x+1
If b < Key And Key < c Then i= b+1:j=c-l:y=y+1
If c<Key And Key<=j Then i=c+1:z=z+1
Loop
n=w+x+y+z
程序运行结束后,变量n的值是( )