
编写VB程序,功能如下:在文本框Text1中输入n的值,单击“生成”按钮Command1,
生成网格和随机的挡板,并输出。然后单击“开始”按钮Command2,在文本框Text2中显示小球进入网格后的运动路径。程序中利用数组a存储网格的状态,其中“/”与“\”两种字符表示两种朝向的挡板。程序运行界面如图c所示。

图 c
请回答下列问题:
Dim n As Integer
Dim a(0 To 100) As String
Private Sub Command1_Click() '生成网格和挡板
n = Val(Text1.Text)
'生成 n*n 的网格和随机的挡板,并通过图形控件输出,代码略
End Sub
Private Sub Command2_Click()
Dim ans As String, pre As String
Dim cur As Integer
cur = 1: : ans = ""
Do While cur >= 1 And cur <= n * n
ans = ans + Str(cur) + "→"
If pre = "左" And a(cur) = "\" Or pre = "右" And a(cur) = "/" Then
cur = cur + n: pre = "上"
ElseIf Then
cur = cur - n: pre = "下"
ElseIf pre = "上" And a(cur) = "\" Or pre = "下" And a(cur) = "/" Then
If cur Mod n = 0 Then
Exit Do
Else
cur = cur + 1: pre = "左"
End If
ElseIf pre = "上" And a(cur) = "/" Or pre = "下" And a(cur) = "\" Then
If
Then
Exit Do
Else
cur = cur - 1: pre = "右"
End If
End If
Loop
Text2.Text = ans + "离开"
End Sub
For i=3 To 10
f=1:k=2
Do While k<i And f=1
If i Mod k=0 Then f=0
k=k+1
Loop
s=s+f
Next i
Dim a(1 To 10)As Integer
Dim i As Integer, j As Integer
a(1)=1:a(2)=1
For i=3 To 5
a(i)=1
For j=i-1 To 2 Step-1
a(j)=a(j)+a(j-1)
Next j
Next i
Text1.Text=Str(a(3))
for i in range(1,5):
print(‘#’*i)
C . 例如:
输入的t1="2,8,15,"
字典内容(t2)从文件“dictionary.txt”中读取的内容为“python is a programming language.”
程序最终输出的字符串(s)为:yio
实现上述功能的某Python程序如下:
f=open('dictionary.txt', 'r')
t1=input('字符位置:')
t2=f.read( )
s=' '
t=' '
for i in range ① :
c=t1[i]
if c==',':
p=int(t)
s=s+t2[p-1]
t="
else:
②
print(生成内容:',s)
f.close
为了使程序能正确运行,上述程序中划线处的代码分别为:①
②
import math
def func(list):
for x in list:
if
:
print(x)
Dim a(1 To 20)As String, ys As String, xs As String
Dim k As Integer, h As Integer, n As Integer, i As Integer, j As Integer
ys=Text1.Text: k=Val(Text2.Text)
n=Len(ys):h=1
For i=1 To n
a(i)=mid(ys,i,1)
Next i
For i=1 To k
For j = h To
If a(j) > a(h) Then
Next j
xs=xs + a(h)
h=h + 1
Next i
Text3.Text=xs
上述程序中方框处可选语句为
①n-k+i ②i+k ③n-k+1 ④j=h ⑤h=j
则方框处语句依次是( )
编写程序,实现上述功能:在文本框Text1中输入偶数n,单击“生成”按钮Command1,在列表框List1中显示初始矩阵,在文本框Text2中输入偶数m(2≤m≤ n),单击“处理”按钮Command2,在列表框List2显示处理结果。程序运行界面如图c所示。
请回答下列问题:
Dim n As Integer
Dim a(1 To 100 * 100) As String
Private Sub Command1_Click()
Dim i As Integer
n = Val(Text1.Text)
If n <= 100 And n >= 2 And n Mod 2 = 0 Then
For i = 1 To n * n
a(i) = Chr() ‘字符"0"的ASCII码值为48
'将初始矩阵显示列表框List1中,代码略
Next i
Else
List1.AddItem "输入有误"
End If
End Sub
Private Sub Command2_Click()
Dim b(1 To 100 * 100) As String, s As String
Dim m As Integer, y As Integer, i As Integer, R As Integer, C As Integer
m = Val(Text2.Text)
If m >= 2 And m <= n And m Mod 2 = 0 Then
y =
s = ""
For i = 1 To n * n
R = (i - 1) \ n + 1: C = (i - 1) Mod n + 1
If R <= y Or R > n - y Or C <= y Or C > n - y Then
b(i) = a(i)
Else
b(i) =
‘⑶
End If
s = s + b(i)
If i Mod n = 0 Then
List2.AddItem s
s = ""
End If
Next i
Else
List2.AddItem "输入有误"
End If
End Sub
下载并运行该代码,下列关于代码执行效果描述正确的是( )
Dim k As Integer, num As Integer, m As Integer
Dim s As String, ans As String
s =" abcdefghi jk lmnopqrs tuvwxyz "
k=26:ans=””
m = Val(Text1.Text)
Do While m> 0
x=Int(Rnd()*k)+1
ans=ans+Mid(s, x,1)
s =Mid(s,1,x-1)+Mid(s,k,1)+Mid(s,x+1,26-x)
k=k-1:m=m-1
Loop
Text2.Text = ans
文本框Text1中输入4,执行上述程序后,文本框Tex2中有显示的内容不可能为( )
某同学编写程序实现如下功能:程序运行时,在文本框Text1中输人车牌号,单击“判断”按钮 Command1,在文本框Text2中显示限行的工作日。如下图所示,尾号为5,则显示星期二限行。
Private Sub Command1_Click()
Dim s As String, n As Integer, x As String, y As string
s=Text1. Text
n=
y=" "
For i=n To l Step -1
x=Mid(s, i,1)
If Then
If Val(x) Mod 5=4 Then
y="星期一"
Else If Val(x) Mod 5=0 Then
y="星期二"
Else If Val(x) Mod 5=1 Then
y="星期三"
Else If Val(x) Mod 5=2 Then
y="星期四"
Else
y="星期五"
End If
Exit For '退出循环
End If
Next i
Text2. Text=
End sub
If I Mod 2= 0 Then
a(i) = Mid(s, i, 1)
Else
a(Len(s) - i + 1) = Mid(s, i, 1)
End If
Next i
B . For i = 1 To Len(s)If i Mod 2= 0 Then
a(Len(s) - i+1) = Mid(s, i, 1)
Else
a(i) = Mid(s, Len(s) - i+1, 1)
End If
Next i
C . For i = 1 To Len(s)If i Mod 2 = 1 Then
a(i) = Mid(s, i, 1)
Else
a(Len(s) - i+1) = Mid(s, i, 1)
End If
Next i
D . For i= 1 To Len(s)If i Mod 2 = 1 Then
a(i) = Mid(s, i, 1)
Else
a(Len(s) - i+1) =Mid(s, Len(s) - i+1, 1)
End If
Next i
n=int(input("请输入n的值:"))
s=
for i in range
s+=i
print(s)
|
数组元素 |
数组元素的含义 |
|
a(i) |
a(1)到a(10)依次存储1号顾客购买商品1~商品10的记录; a(11)至a(20)依次存储号2顾客购买商品1~商品10的记录;依次类推。 数组a的某个元素的值为1,则表示某位顾客购买了某种商品,若为0则表示没有购买该种商品。如a(6)=1表示1号顾客购买了商品6,a(6)=0表示未购买。 |
|
b(i) |
dsj(1)~dsj(9)依次存储商品1与商品2~商品10的关联次数; dsj(10)~dsj(17)依次存储商品2与商品3~商品10的关联次数:依次类推。 如dsj(5)=2表示商品1与商品6被同时购买过2次; 如dsj(45)=4表示商品9与商品10被同时购买过4次。 数组dsj中,若dsj(45)的值最大,则表示商品9和商品10的关联次数最多。 |
小王按照上述算法设计了VB程序,统计了20个用户购买10种商品之间的关联性,VB程序如下,部分界面如图所示。
Private Sub Cmd1_Click( )
Dim a(1To200) As Integer '各个用户原始的购买记录
Dim dsj (1To45) As Integer '统计商品之间的关联次数
Dim i As Integer, t As Integer, nc As Integer, j As Integer, max As Integer
'数组a读入数据并在列表框分行输出,代码略
For i=1 To 20'20个用户
t=1
For j=1 To 9'10个商品,共45种组合
For k=j+1 To 10
m=(i-1)*10
If Then dsj(t)=dsj(t)+1
Next k
Next j
Next i
max=0
For i=1 To 45
If Then
max=dsj(i)
maxi=i
End If
Next i
t=9:nc=1
Do While maxi>t
t=t-1
nc=nc+1
Loop
Text1.Text="关联最多的是商品"+Str(nc)+Str(maxi+nc)+":"+Str(max)+"次"
End Sub
list_num=[1,3,5]
list_str=[str(i) for i in list_num]
print(list_str)
s = 0: i = 1
Do While i <= 10
If i Mod 3 = 0 Then a(i) = a(i) + 1 Else a(i) = i
List1.AddItem Str(a(i))
i = i + 1
Loop
i = 10
Do While i >= 1
If a(i) = 1 Then s = s + 1
i = i - 1
Loop
该程序段运行后,变量s值是( )
,其中n为正整数,计算s的VB程序段如下:
s=0:x=2:y=1
For i=1 To n
![]()
Next i
上述程序中方框处可选语句为:
①x=x+y
②y=x
③s=s+x/y
④y=x-y
下列选项中,代码顺序正确的是( )