⑴用户通过输入n,点击按钮Command2生成规模为n×n的数字矩阵;
⑵矩阵元素随机生成,并按数组顺序保存,如规模为3×3的矩阵,元素对应数组的排列方式如图a所示;
⑶点击按钮Command1后输出主对角线上的元素以及其元素之和。
程序界面如图b所示,程序代码如下:
Dim a(100)As Integer,n As Integer
Private Sub Command1_Click() ‘输出主对角线数据及其之和
Dim i As Integer,j As Integer,t As Integer,sum As Integer
t=1:sum=0
For i=1 To n
For i= 1 To n
If ① Then
List2.AddItem Str(a(t))
sum=sum+a(t)
End If
Next i
②
Next i
List2.Addltem“和: ”+Str(sum)
End Sub
Private Sub Command2_Click() ‘生成数组矩阵
Dim i As Integer,s As String
n=Val(Text1.Text) ‘获取矩阵规模
List1.Clear:List2.Clear
Randomize
For i=1 To n2
a(i)=99-Int(Rnd*90)
s=s+Str(a(i))
If ③ Then
List1.AddItem s
s=“”
End If
Next i
End Sub
① ② ③
k = 1
For j = 2 To 100
If a(j) > a(k) Then k = j
Next j
x = a(k)
该程序段执行后,变量x中存储的是( )
i=1:n=5
Do while i<=n
x=Int(Rnd*9)+1
If x Mod 2=1 Then
a(i)=x
Else
a(n)=x:n=n+1
End If
i=i+1 Loop
数组元素的初值均为0,执行该程序段后,a(1)至a(5)的值可能是( )
寻求路径最大值的算法设计如下:
按三角形的行划分,若有n行,则有n-1个步骤
①从底层开始,本身数即为最大值
②倒数第二层的计算取决于底层的数据:
12+6=18,13+14=27,24+15=39,24+8=32;
③倒数第三层的计算取决于底二层的数据:
27+12=39,39+7=46,39+26=65;
④倒数第四层的计算取决于底三层的数据:
46+11=57,65+8=73;
④最后的路径:13—8—26—15—24其和为86。
根据上述算法描述,设计程序界面如下图所示,点击“生成金字塔”按钮,在列表框中生成数字金字塔,点击“寻求路径最大值”按钮,在文本框text1中输出最大值。
依据上述描述设计如下VB程序:
Const n = 5
Dim sx As String
Dim i, j, k, a(1 To 100) As Integer Private Sub Command1_Click() List1.Clear
For i = 1 To n For j = 1 To i
①
sx = sx + Str(a((i - 1) * n + j)) Next j
For k = n To i Step -1 sx = " " + sx
Next k List1.AddItem sx sx = ""
Next i End Sub
Private Sub Command2_Click() For i = n To 1 Step -1
For j = 2 To i
If ② Then
a((i - 2) * n + j - 1) = a((i - 1) * n + j - 1) + a((i - 2) * n + j - 1)
Else
a((i - 2) * n + j - 1) = a((i - 1) * n + j) + a((i - 2) * n + j - 1)
End If Next j
Next i
③
End Sub
请回答下列问题:
① ② ③
For i= 1 To 49
j=1:a(j)=a(j)+1
Do While a(j)=5
a(j)=0
j = j + 1
a(j) = a(j) + 1
Loop
Next i
数组a中各元素初始值均为0,该程序执行后,数组a中各元素之和为( )
⑴Abs(x) ⑵Text1.Text ⑶”123+45”⑷Sqr(x) ⑸Labell.Caption
1a=3
b=input()
c=a+b
print("c")
Dim a(1 To 9)As Integer
Text 1.Text=""
For i=1 To 9
a(x(i))=a(x(i))+1
Next i
For i=1 To 9
For j=1 To a(i)
Text1.Text=Str(i)+Text1.Text
Next j
Next i
若数组x(1)到x(9)的值依次为“8,9,7,3,2,7,1,4,2”,则执行该程序段后,在文本框Text1中显示的是( )
数组元素 | 数组元素的含义 |
tj(1) | 存储查找到第1个大于da的零件数 |
tj(2) | 存储生产了tj(1)个零件的工人数量 |
… | |
tj(2*i-1) | 存储查找到第i个大于da的零件数 |
tj(2*i) | 存储生产了tj(i)个零件的工人数量 |
… |
例如:tj(1)=1948,tj(2)=12。这对数据的含义为:共有12个工人生产了1948个零件。
实现以上功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click( )
Dim bf(1 To 1000)As Integer
Dim maxn, d, k, sa As Integer
Dim I, j, flag As Integer
da=Val(Text1.Text):maxn=0:k=1
For j=1 To n
If xs(j)>=da Then maxn=maxn+1
bf(maxn)=xs(j)
Next j
For i=1 To maxn
flag=0
For j=1 To i-1
If bf(i)=bf(j) Then flag=1
Next j
If flag=0 Then
①
d=1
For j=i+1 To maxn
If bf(i)=bf(j) Then ②
Next j
tj(2*k)=d
k=k+1
End If
Next i
k=k-1
For j=1 To ③
List1. Addltem Str(tj(j))+" "+Str(tj(j+1))
Next j
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
For i = 1 To 3
For j = 1 to 10
If j Mod i = 0 Then
a(j) = 1 – a(j)
Next j
Next i
sum = 0
For i = 1 To 10
sum = sum + a(i)
Next i
已知数组a的所有元素初值均为0,运行上述程序段后,变量sum的值是( )
Const n=10
Dim a(1 To 10) As Integer
m = Int(Rnd( ) *n+ 1)
For i=1 To n
a(i)= 0
Next i
i=0:j=0:c=1:ans=""
Do While c<=3
i=i Mod n+1
If a(i)=0 Then j=j+1
If j=m Then
a(i)=1:c=c+1
j=0: ans = ans+ str(i)
End If
Loop
Text1.Text = ans
执行上述程序段后,文本框Text1中不可能显示的内容是( )
请在划线处填入合适的代码。
s=input("请输入波群(m)")
a=[]
s=s+","
for j in range(len(s)):
if s[j] == ",":
t = float(s[i:j])
a.append(t) #append方法用于在列表末尾添加新元素
a.sort(reverse = True) #将a列表中的元素从大到小排列
sumbg=0
for k in range(len(a)//3):
sumbg = sumbg + a[k]
print("有效波高(m):",aver)