Dim i as Integer, max as Integer Dim a(1 to 10) as Integer
‘代码略,随机产生 10 个不重复的数存于数组 a 的 10 个元素 a(1)~a(10)中max=a(1)
For i=2 to 10
If a(i)>a(max) then max=i Next i
变量 max 用于存储( )
Private Sub Command1_Click()
Dim gdp As Single,ddgdp As Single,zc As Single,y As Integer
gdp=Val(Text1.Text)
zc=Val(Text2.Text)
ddgdp=Val(Text3.Text)
y=0
Do While
gdp=gdp*(1+zc)
Loop
Text4.Text=Str(y)
End Sub
i |
1 |
2 |
3 |
4 |
5 |
a(i) |
17 |
19 |
9 |
13 |
6 |
index(i) |
5 |
3 |
4 |
1 |
2 |
a(index(i)) |
6 |
9 |
13 |
17 |
19 |
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Const n = 10
Const maxn = 20
Dim a(1 To n) As Integer, index(1 To n) As Integer, flag(1 To n) As Boolean
Private Sub Form_Load()
Dim i As Integer
Randomize
For i = 1 To n
flag(i) = False
a(i) = Int(Rnd() * maxn) + 1
List1.AddItem Str(a(i))
Next i
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim k As Integer
For i = 1 To n
For j = 1 To n
If flag(j) = False Then k = j: Exit For
Next j
For m = k + 1 To n
If Then k = m ‘⑴
Next m
index(i) = k
flag(k) = True
Next i
For i = 1 To n
List2.AddItem ‘⑵
Next i
End sub
⑴ ⑵
S=0
For i=1 To 10
If i Mod 2=0 Then S=S+i
Next i
Print s
例如,节目人数为 6 时队形变化情况如下:
小嘉为此编写了一个 VB 程序,功能如下:在文本框 Text1 中输入跳舞的同学 n(n 为偶数),单击“队形
变化”按钮 Command1,在列表框 list1 中输出每次变化后的队形。程序代码如下,运行效果如图所示。
Private Sub Command1_Click() Dim a(1 To 20) As String
Dim result As String, t As String
Dim n As Integer, i As Integer, j As Integer n = Val(Text1.Text)
For i = 1 To n
①
Next i
For i = 1 To
result = " "
List1.AddItem "第" & Str(i) & "次:" For j = 1 To n \ 2
result = a(j) + " " + a(n – j + 1 ) List1.AddItem result
Next j
②
For j = n To 3 Step -1 a(j) = a(j - 1)
Next j
a(2) = temp
Next i End Sub
请回答下列问题:
① ②
换钱问题:
要将一张100元的钞票,换成等值的5元、2元、1元一张的钞票共50张。其中一种换法如下:
5元:3张
2元:38张
1元:9张
求出所有的换钱方案。
【算法设计】
x表示5元的张数:1≦x≦20;
y表示2元的张数:1≦y≦50;
z表示1元的张数:1≦z≦100。
【参考程序】
Dim x AsInteger
Dim y AsInteger
Dim z As Integer
For x=1 To20
For y=1To 50
Forz=1 To 100
If Then
Print x;y;z ‘x y z 之间以分号分隔
End If
Nextz
Next y
Next x
根据上述回答下列问题:
实现上述功能的VB代码如下,但加框处代码有误,请改正。
Const n=10
Dim a(1 To n)As Integer
Private Sub Form_Load( )
‘排序前的数据存储在数组a中,并在List1中显示,代码略
End Sub
Private Sub Command1_Click( )
Dim flag As Boolean
Dim x As Integer, y As Integer
x=0:y=0
flag=True:i=1
Do While i<=n-1 And flag
flag=False
For j=n To i+1 Step-1
If Then ‘①
t=a(j)
a(j)=a(j-1)
a(j-1)=t
flag=True
‘②
End If
Next j
y=y+1
‘③
Loop
Label1.Caption="经过"+Str(y)+"遍排序数据有序!"
Label2.Caption="数据总共交换"+Str(x)+"次!"
For i=1 To n
List2.AddItem Str(a(i))
Next i
End Sub
以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②;③。
以下VB程序在a数组中保存了下一个要报数的人的编号,即若。(w)=p,则表示当第w个人报过数2后,下一个要报数的是第p号。程序在列表框Listl中输出了依次出圈的人的编号,在标签Label1中输出了最后剩下的人的编号。请完善程序。
Private Sub Command1_Click( )
Dim i As Integer, n As Integer, w As Integer, num As Integer
Dim a(1 To 100)As Integer, t As Integer
n=Val(Text1.Text)
For i=1 To n-1
a(i)=i+1
Next i
a(n)=1
w=n ‘变量w表示当前检查的是第w号数组元素,即从第n号开始检查
t=0 ‘变量t用以模拟报数
Do While ①
num=a(w) ‘当前报数的人的编号
t=t+1
If t=3 Then
List1.AddItem Str(num)
a(w)= ②
t=0
Else
③
End If
Loop
Label1.Caption=Str(w)
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
str1 = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
s = “”
For i = 1 To 4
t = Int(Rnd*10) + 1
If t Mod 2 = i Mod 2 Then
t = t + 1
Else
t = t + 2
End If
s = s + Mid(str1,t,1)
Next i
List1.AddItem s
执行该程序段后,列表框List1中可能显示的内容是( )
s=input("请输入数字字符串")
i=0;j=0;k=6;sum=0
while j<len(s):
sum=sum+int(ch1)
while sum>k:
ch2=s[i]
i=i+1
if sum==k:
print("子串为:",)
break
j=j+1
else:
print("没有满足要求的子串。")
Const n=5
Dima(1 to n) as integer,c(1 to n) as integer
For i=1 to n
a(i)=int (rnd*10)+1
c(a(i))=c(a(i))+1
Next i
For i=10 to 1 step -1
For j=1 to c(i)
Text1.Text = Text1.Text + Str(i)
Next
Next i
执行以上程序段后,Text1 中显示的值可能是( )