Private Sub Commandl_Click()
Dim i As Integer,j As Integer.s As String
Dim a(1 To 5) As Integer
List1.Clear
Randomize
For i=1 To 10
j=Int(Rnd*6)+1
a(j)=a(j)+1
Next i
For i=1 To 5
s=Str(a(i))
List1.AddItem s
Next i
End Sub
程序运行时,单击按钮Commandl后弹出如图所示的错误提示。出现错误的语句是( )
Private Sub Command1_Click()
Dim a(5) as Integer
Dim n as Integer, i as Integer
n = Val(Text1.Text)
i = 0
a(1) = 1
a(2) = 1
For i = 3 To n
a(i) = a(i-1) + a(i-2)
Next i
Label1.Caption = a(i)
End Sub
若在Text1中输入5,则点击按钮后的运行结果为( )
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”。执行该程序段后,下列说法不正确的是( )
Private Sub Command1_Click()
Dim a(1 To 100)As String, s As String, ch As String, word
As String
Dim i As Integer,j As Integer,k As Integer, numb As Integer
s=Text1.Text:k=0:word=" "
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>="a"And ch<="z"Оr ch>="A"And ch<="Z"Then
If ch>="A" And ch<="Z"Then ①
word=word+ch
Else
flag=False
For j=1 To k
If a(j)=word Then flag=True
Next j
If Not flag And word<> ''Then
②
a(k)=word
numb=numb+1
End If
③
End If
Next i
Text2.Text=Str(numb)
End Sub
①②③
s ="waste" : n = Len(s)
s1 = Text1.Text : flag = False
For i=1Ton
If Mid(s,i,1) = Mid(s1, 1,1) Then
flag = True
For j = 2 To Len(s1)
If Mid(s1, j, 1)<>Mid(s, (j+i-2) Mod n + 1, 1) Then flag = False: Exit For
Next j
If flag Then Exit For
End If
Next i
执行该程序段后,若flag变量值为True,则文本框Text1中输入的内容不可能的是( )
执行这部分流程,s的初值为0,输入n为5,则输出s的值为( )
a=[3,7,2,5,8,9,4,6,1]
m, c=1, 1
for i in range(1,len(a)):
if a[i]>=a[i-1]:
c+=1
m=max(m, c)
else:
c=1
程序执行后,c和m的值分别是( )
import numpy as np #加载numpy模块并取名为np
import matplotlib.pyplot as plt
x=np.arange(0,2*np.pi,0.01)
y=np.sin(x)
plt.plot(x,y)
plt.title('sin(x)')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
下列选择错误的是( )
a=int(input(“请输入正整数:”))
b=int(input(“请输入正整数:”))
c=a*b
print()+“*”+ “=” )
请将上述缺失的代码补充完整。
我们可以用两种不同的方法来实现这一目的:
方法一:逐个地将数组a的后n-p个数依次移动到前面去。
数组 a:
1 |
2 |
3 |
4 |
5 |
3 | 1 | 2 | 4 | 5 |
3 | 4 | 1 | 2 | 5 |
3 | 4 | 5 | 1 | 2 |
方法二:将前p个数看作一个区间,后n-p个数看作另一个区间,依次将数交换,同时缩小区间的大小;若某一个区间达到末尾,则调整区间的范围,直到两个区间刚好同时达到末尾,即调整结束。
数组a:
互换并调整区间:第一个区间结束且第二个区间还有元素,调整区间 1 和区间 2 的范围,如图将区间 1 调整为[3,4],区间 2 调整为[5:5]。
互换并调整区间:第二个区间结束且第一个区间还有元素,仅调整第 1 个区间的起始位置。
互换并结束:两个区间同时到达末尾。
3 | 4 | 5 | 1 | 2 |
小明依据上面的方法设计了VB程序如下:
Dim a(1 To 100), i As Integer, j As Integer, tmp As Integer, p As Integer
Dim start1 As Integer, end1 As Integer, start2 As Integer, end2 As Integer '将序列保存到数组a中,序列长度保存到n中,移动数字的个数保存在p中
Private Sub Command2_Click() '用方法一实现
For i = p + 1 To n
tmp = a(i)
For j = i To ① Step -1
a(j) = a(j - 1)
Next j
② = tmp
Next i
End Sub
Private Sub Command3_Click() '用方法二实现
start1 = 1: end1 = p '第1个区间的起始状态
start2 = p + 1: end2 = n '第2个区间的起始状态
i = start1: j = start2
Do While ③
i = start1: j = start2
Do While i <= end1 And j <= end2
tmp = a(i): a(i) = a(j): a(j) = tmp
i = i + 1:j = j + 1
Loop
If i <= end1 Then '第2个区间结束且第1个区间还有元素
start1 = i
ElseIf j <= end2 Then '第1个区间结束且第2个区间还有元素
start1 = i: ④
start2 = j
End If
Loop
End Sub
请回答下列问题:
① ② ③ ④
编写VB程序,实现上述功能。运行程序,在列表框List1中显示全部图书编号。单击“整理”按钮Command1,在标签Label1中显示待调整区间图书的册数,在文本框Text1中显示待调整区间图书的起止编号,并在列表框List2中显示排序后的图书编号。程序运行界面如图所示,其中①和②两处分别指向待调整区间图书的起始和截止编号。
'n是常量,代码略
Dim a(0 To n) As String
Private Sub Form_ Load()
a(0)= "”
'将n册图书的编号存入数组元素a(1)~a(n),在List1中显示,代码略
End Sub
Private Sub Command1_ Click()
Dim i As Integer, k As Integer, left As Integer, right As Integer
Dim min As String, max As String
min= ": max= ": left= 1: right= 0
For i= 1 To n- 1
If a(i)> a(i + 1) Then
max = a(i)
left= i: Exit For
End If
Next i
For i=n To 2 Step-1
If Then
min= a(i)
right= i: Exit For
End If
Next i
i= left
Do While i <= right
If a(i)> max Then
max = a(i)
ElseIf a(i) < min Then
min= a(i)
End If
i=i+ 1
Loop
k=0
If left < right Then
left = getPos(1, left, min)
k= right- left+ 1
Text1.Text= "待调整区间图书起始编号: " + a(left) + "-->截止编号: "+ a(right)
End If
Label1.Caption = "待调整区间图书共有:" + Str(k) + "册"
'对待调整区间的图书编号进行排序,在List2中输出整理结果,代码略
End Sub
Function getPos(head As Integer, tail As Integer, value As String) As Integer
Dim i As Integer
i= tai1
Do While
i=i- 1
Loop
getPos=i+ 1
End Function