实现上述功能的VB代码如下, 但划线处代码有错,请改正。
Dim a(1 To 50) As Integer
Private Sub Command1_Click()
Dim i As Integer
k = 0: i = 3
Do While i <= 100
If ① prime(i) Then ‘⑴
k = k + 1
a(k) = i
End If
i = i + 2
Loop
For i = 2 To k
If ②a(i) = a(i +1)+2 Then ‘⑵
List1.AddItem Str(a(i - 1)) + "和" + Str(a(i))
End If
Next i
End Sub
Function prime(x As Integer) As Boolean
prime = False
For i = 2 To Int(Sqr(x))
If x Mod i = 0 Then
prime = True
Exit For
End If
Next i
End Function
① ②
图1
徐明设计了一个VB程序用于寻找这个以211开头、可被2012整除的6位数。其算法流程图如图2所示,程序界面如图3所示,程序的代码编辑窗口如图4所示。
图2
图5
图6
A.Dim k As Integer
B.For k = 211000 To 211999
C.Label2.Caption = Str(k)
图1
输入火柴棍的数量n(n≤24),计算可以拼出多少个“A+B=C”的等式?要求:
① 加号与等号各自需要两根火柴棍。
② A、B、C为非负的整数,且该数非零时,最高位不能是0。
③ 如果A≠B,则A+B=C 与B+A=C 视为不同的等式。
④ n 根火柴棍必须全部用上。
小明发现,数字1用的火柴棍最少,24根火柴棍全部用上的话,能拼出最大的整数A或B不超过1111,C不超过2222。他编写了一个VB 程序,在文本框Text1中输入火柴棍的数量,单击“统计”按钮Command1,在文本框Text2中输出“A+B=C”的方案数,程序界面如图2所示。
图2
实现上述功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click()
Dim a(0 To 2222) As Integer '存储每个整数需用的火柴棍数
Dim n As Integer, ans As Integer
Dim i As Integer, j As Integer
n = Val(Text1.Text)
For i = 0 To 2222
a(i) = 0
Next i
'得到0~9 中每个数字需用的火柴棍数
a(0) = 6: a(1) = 2: a(2) = 5: a(3) = 5: a(4) = 4
a(5) = 5: a(6) = 6: a(7) = 3: a(8) = 7: a(9) = 6
n = '去掉等号与加号后,剩余的火柴棍数量
For i = 10 To 2222 '计算出10~n 中每个数字需用的火柴棍数
a(i) = a() + a(i Mod 10)
Next i
ans = 0
'枚举0~n 中任意两个数,判断~否符合A+B=C 的火柴棍数量
For i = 0 To 1111
For j = 0 To 1111
If a(i) + a(j) + a() = n Then
ans = ans + 1
End If
Next j
Next i
Text2.Text = Str(ans)
End Sub
寻求路径最大值的算法设计如下:
按三角形的行划分,若有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
请回答下列问题:
① ② ③
Private Sub Command1_Click()
Dim sum As Integer, a As Integer, b As Integer
Dim i As Integer, c As Integer, d As Integer
List1.Clear
sum = 0 '玫瑰花个数
For i = 1000 To 9999
a = i Mod 10 '求个位上的数字
b =① '求十位上的数字
c = i \ 100 Mod 10 '求百位上的数字
d = i \ 1000 '求千位上的数字
If a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 = i Then
List1.AddItem Str(i)
②
End If
Next i
Label1.Caption = "玫瑰花个数为:" + Str(sum)
End Sub
一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少?设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,这里x,y,z为正整数 , 设计算法并编写程序输出所有的买鸡方案。
Dim x As Integer, y As Integer, z As Integer
For x = 1 To 20
For y = 1 To 33
For z = 3 To 99 Step 3
If Then
Print "公鸡:" & x, "母鸡:" & y, "小鸡:" & z
Next z
Next y
Next x
End Sub 代码可以简化,思路大致是这样的。
结果是: 公鸡:4 母鸡:18 小鸡:78
公鸡:8 母鸡:11 小鸡:81
公鸡:12 母鸡:4 小鸡:84
根据上述回答如下问题
a=[23,15,51,36,78,47,39,9,88,96]
n=0
m=70
for i in range(0,10):
if :
n+=1
print("个数:",n)
程序中划线处的代码应为( )
为了实现这一目标,完善下列程序,使之能完成该功能。
Private Sub Command1_Click()
Const n=20
Dim i As Integer, j As Integer
Dim a(1 To n) As integer
For j=1 To n
a(j)=0
Next j
For i=1 To n
For j=1 To n
If j Mod i=0 Then
End If
Next j
Next i
For j=1 To n
If Then List1.AddItem Str(j)
Next j
End Sub
程序如下:
Private Sub Form_Click()
Dim i As Integer
Dim t As Integer
For i = 100 To 200
If Then '不能够被3整除的条件
Print i
t=t+1
End If
Next i
End Sub
程序运行结束后t的值为
①密码是六位数字,前面两位为59;②最后两位数字相同;③能被12和38整除。
程序界面如图1所示,单击 “帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
Private Sub Command1_click( )
Dim x As Integer, s As Long
Dim y As Integer, i As Integer
For i = 0 To 9999
s = 590000 + i
If Then
x= s mod 10
y =
If x = y Then
List1.AddItem Str(s)
End If
End If
Next i
End Sub
实现上述功能的VB代码如下,请完善代码:
Private Sub Command1_Click()
Dim n As Integer, i As Integer, t As Integer, sum As Long, s As String
n=Val(Text1.Text)
For i=1 To n^3 step 2 '变量i表示连续奇数的首个整数
sum=0:t=i:flag=False
Do While sum<n^3 And flag= False
sum=
t=t+2
If Then flag=True
Loop
If flag=True Then Exit For
Next i
s=Str(n)+ "^"+Str(3)+ "="
Do While sum>0
If sum= 0 Then
s=s+Str(i)
Else
s=s+Srt(i)+ "+"
End If
i=i+2
Loop
Text2.Text=s
End Sub
Private Sub Command1_ Click()
Dim flag As Boolean,i As Integer,d As Integer
Dim t3 As Integer,t4 As Integer,t5 As Integer
i=5:flag= True
Do While i<= 50 And flag
t3=i Mod 3
t5=i Mod 5
If (t3=1) And (t4=1) And (t5=4) Then
flag= Flase
End If
i=i+1
Loop
Text1. Text = Str(d)
End Sub1
题号 |
1-12 |
13-25 |
26-29 |
30- 33 |
科目题型 |
信息客观题 |
通用客观题 |
信息主观题 |
通用主观题 |
满分分值 |
每题2分 |
每题2分 |
4/8/7/7 |
6/9/3/6 |
小李根据上述描述,设计了一个统计所有同学信息各题得分率的算法。程序运行后首先在列表框List1显示信息技术各小题得分,单击“计算”按钮“Command1",在列表框List2显示信息各题的题号和得分率,在文本框Text1输出所有同学的信息平均分(平均分=各题得分率*分值之和)。算法的VB程序如下,回答下列问题。
Dim a(1 To 1000) As Integer, n As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim fz(1 To 16) As Integer 'fz数组存储信息各题满分值
Dim b(1 To 33) As Double '数组b存储全卷各题的平均得分
For i=1 To 16 '数组fz存储信息16个小题的满分值
If i<= 12 Then fz(i)=2
fz(13)=4 : fz(14)=8 : fz(15)=7 : fz(16)=7
Next i
For i=2 To n '把数组a数据分别统计到各题中
b(j)=a(i)+ b(j)
Next i
For i=1 To 33 '仅处理信息各题的平均分
If i<= 12 Then
b(i)=b(i) / (a(1) * fz(i)) ' 计算信息选择题各题的得分率
ElseIfi>= 26 Andi<= 29 Then
b(i)=
End If
Next i
For i=1 To 16
If i> 12 Then j=i+13 Else j=i
b(j)=Int(b(j) * 1000+0.5) / 10 '对结果四舍五入保留1位小数
List2. AddItem Str(i) 十Str(b(j))+"%"
ave=
Next i
Text1. Text=Str(ave / 100)
End Sub
Private Sub Form_ Load()
'读入数据到数组a,数据个数n,代码略
End Sub