
图1
Private Sub ①
② a, b, s As Integer
For a = 2 To 1000
S = 0
For b = 1 To a - 1
If a Mod b = 0 Then s = s + b
Next
If a = s Then List1.Additem str(a) '输出满足条件的完全数a
Next
End Sub

图2
Private Sub Command1 Click()
Dim a As Integer, b As Integer
a = 5: b = 8
b = a + b
label1.Caption = Str(b)
End Sub
引发此错误的语句可能为( )

Private Sub Command1_Click( )
Dim s As Integer
Dim I As Integer
S=0
For i=1 To 10
s=s+i\7
Next i
Text1.text=str(s)
End sub
该程序段运行后,文本框Text1中显示
实现该功能的程序代码如下:
Private Sub Command1_Click()
Dim i As Integer,ch As String,s As String
Dim my(0 To 127)As Boolean ‘0~127表示128个ASCII字符的ASCII值
s=Text1.Text
For i=0 To 127
my(i)=False
Next i
If ① then
Text2.Text=”密钥长度不足26个字符!”
Else
For i=1 To 26
ch=Mid(s,i,1)
t= ②
If my(t)=False Then
my(t)=True
Else
Text2.Text=“密钥中有重复字符!”
Exit Sub
EndIf
Next i
Text2.Text=“密钥正确!”
EndIf
End Sub
① ②
Private Sub Command1_Click()
Dim x As String,xq As String,num As Integer
Dim i As Integer,h As Integer,f As Boolean
x=”一二三四五六日”
xq=Text1.Text
num= ①
f=False:i=1
Do While i<=7 And f=False
If xq=Mid(x,i,1)Then
h=i:f=True
End If
i=i+1
Loop
r=(h+num) Mod 7
If r=0 Then
Label1.Caption=“星期日”
Else
Label1.Caption=“星期”+ ②
End If
End Sub
① ②
小敏编写了一个VB程序,用来求一个偶数(6到100之间)可能存在多少这样是素数岁(注:A+B与B+A认为是相同素数对,不重复统计),并把这些结果输出到一个列表框中,通过逻辑推理,小敏发现这些素数对都是奇数,所以她只需要验证奇数的素数对即可,运行界面如图所示,程序代码如下。但加框处代码有错误,请改正。
Dim IsPrime(100)As B00lean ‘用来存储是否素数,True为素数,False为非素数
privatw Suh Command1_Click()
Dim x As Integer,y As Integer,i As Integer,num As Integer
Call Init ‘调用Init函数
x=Val(Text1.Text)
y=x\2
num==0
For i==3 To y Step 2
If
Then ‘①
num=num+1
List1.AddItem Str(x)+“=”+Str(i)+“+”+Str(x-i)
End If
Next i
Label2.Caption=“偶数”+Str(x)+“共有”+Str(num)+“个素数对。”
End Sub
Sub Init() ‘初始化IsPrime数组的值
Dim i As Integer.j As Integer,X As Integer
For i=3 To 100 Step 2
X=Int(Sqr(i))
For
Step 2 ‘②
If i Mod j=0 Then Exit For
Next j
If i>x Then IsPrime(i)-True Else IsPrime(i)=False
Next i
End Sub
①处加框代码应该为。
②处加框代码应该为。
Private Sub Command1_Click()
Dim a As Integer
Dim b As Boolean
a = (a + 1) * 2
b = a - 1
print a:print b
End Sub
程序运行时,单击命令按钮Command1后,变量a和b的值分别是( )
校验值计算规则如下:
第一步:将身份证号前17位数字分别乘以不同的系数后相加,对应系数如下表所示。
|
位数 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
系数 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
第二步:将第一步的计算结果除以 11,得到余数。 第三步:根据第二步的计算结果从下表获取对应的校验值。
|
余数 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
校验值 |
1 |
0 |
X |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
例如:某身份证号为 34052419800101001X。要计算此身份证的校验值步骤如下:第一步:计算 3*7+4*9+0*10+5*5+……+1*2=189
第二步:189除以11得到余数为2
第三步:由余数2获取校验值X。
根据以上规则小王编写了一个验证身份证号是否有效的VB程序,功能如下:在文本框Text1中输入身份证号,单击“验证”按钮Command1后,在列表框List1中显示验证结果。程序运行界面如图1所示。
Private Sub Command1_Click()
Dim i As Integer, a As Integer, b As Integer, sum As Integer, pos As Integer
Dim idCode As String, result As String
Const xs = "0709100508040201060307091005080402" '存储前17位每位系数
Const checkCodeStr = "10X98765432" '存储余数对应的检验值
sum = 0
For i = 1 To 17 Step 1
a = Val(Mid(idCode, i, 1))
b =
sum = sum + a * b
Next i
pos =
checkCode = Mid(checkCodeStr, pos, 1)
If checkCode = Mid(idCode, 18, 1) Then
result = "有效"
Else
result = "无效"
End if
List1.AddItem (idCode & " " & result)
End Sub
Private Sub Command1_Click()
Dim result As String, s As String, c As String, cmax as string
Dim i As Integer, j As Integer
s = Text1.Text
Text2.Text = ""
For i = 1 To Len(s)
If c >= "A" And c <= "Z" Or c >= "a" And c <= "z" Then
result =
End If
Next i
Text2.Text = result
j = 2
cmax = Mid(result, 1, 1)
Do While j <= Len(result)
If Mid(result, j, 1) > cmax Then cmax = Mid(result, j, 1)
Loop
Text3.Text = cmax
End Sub
Randomize
For i = 1 To 6
a(i) = Int(Rnd * 20) + 1
If a(i) Mod 2 = i Mod 2 Then a(i) = a(i) - 1
Else
a(i) = a(i) + 2 End If
Next i
执行该程序段后,a(1)~ a(6)各元素可能的是( )
Dim i As Integer
Dim a(1 To 9) As Integer
a(1) = 1: a(2) = 2
For i = 3 To 10
a(i) = a(i - 1) * i
Next i
Text1.Text = Str(a(i))
运行程序,单击命令按钮Command1后,出现的错误提示为( )

Private SubCommand1_Click()
Dim a( 1 To 100) As Integer, b( 1 To 100) As Integer, c( 1 To 1000) As Integer
Dim t As Integer, k As Integer, i As Integer, jAs Integer
Dims1As String, s2As String, output As String
s 1=Text 1.Text:s2=Text2.Text:Text3.Text=“”
For i=1 To Len(s1)
a(i)= ① ‘将文本框Text 1中的自然数按从低位到高位的顺序依次存放在数组a(1),a(2) ……a(len(s1))中
Next i
‘将文本框Text2中的自然数按从低位到高位的顺序依次存放在数组b(1),b(2) …… b(len(s2))中,代码略
len c=Len(s1) +Len(s2) -1
For i=1 To Len(s1)
For j=1 To Len(s2)
c(i+j-1)=c(i+j-1)+a(i)*b(j)
c(i+j)= ②
c(i+j-1) =c(i+j-1) Mod 10
Next j
Next i
If c(len c+1) > 0 Then ③
Do While c(len c) =0Andlenc> 1 (2)
len c=len c-1
Loop
output=“”
For i=len c To 1 Step-1
output=output+Mid(Str(c(i)),2,1)
Next i
Text 3.Text=output
End Sub
①②③
Dim a(1 To 10) As Integer,b(1 To 10) As Integer
k = 0
For i = 10 To 1 Step -1
Do While b(i) <> 0 k = k + 1
a(k) = i: b(i) = b(i) - 1
Loop
Next i
若 a(1)~a(10)的值分别为 7,9,8,1,9,4,4,2,1,1,则运行以上程序后,下列说法正确的是( )
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
t = 0
s = ""
Do While n > 0
a = n Mod 2
n = n \ 2
t =
s = Str(a) + s
Loop
v = t Mod 2
Text2.Text = s
Label3.Caption = "校验位值:" +
End Sub

s=s%6
print(s)
程序运行后,键盘输入33,其输出结果为 ( )
玩家通过4种指令控制小人运动:
· 左 X:小人向左移动X个格子
· 右 X:小人向右移动X个格子
· 下 X:小人向下移动X个格子
· 挖矿:收集小人所在格子的金矿
小人收集金矿需要遵循一定的规则:
①小人必须将当前行的金矿全部收集,才能去往下一行,即金矿需从上到下收集
②对于同一行的金矿,小人必须按照从左往右的顺序开始收集
现编写程序,以8*8的矩阵为例,在文本框Text1中输入金矿数量,点击按钮“开始”后,随机产生对应数量的金矿并借助图形控件输出(保证不会在同一个格子出现两个金矿),并且在列表框List1中按顺序输出指令,使小人按照规则得到所有金矿。如图a所示。请回答下列问题。

图a
图b
Const n = 8 '程序以8*8的矩阵为例
Dim x(1 To n*n) As Integer, y(1 To n*n) As Integer '存储所有金矿的位置
Dim px As Integer, py As Integer '存储小人所在的位置
Dim i As Integer, j As Integer, m As Integer, tmp As Integer
Private Sub Command1_Click()
m = Val(Text1.Text)
Randomize
'随机产生m个金矿并通过图形控件显示在界面上,代码略
For i = 1 To m - 1
For j = 1 To m - i
'将所有金矿按照从上到下、从左到右的顺序排序,以符合题目描述的规则
If x(j) > x(j + 1) Or Then
tmp = x(j): x(j) = x(j + 1): x(j + 1) = tmp
tmp = y(j): y(j) = y(j + 1): y(j + 1) = tmp
End If
Next j
Next i
px = 1: py = 1
i = 1: j = 1
Do While j <= m
Do While x(j) = x(j + 1) And j <= m
j = j + 1
Loop
If y(i) < py Then
List1.AddItem "左" + Str(py - y(i))
ElseIf y(i) > py Then
List1.AddItem "右" + Str(y(i) - py)
End If
List1.AddItem "下" + Str)
List1.AddItem "挖矿"
For k = i + 1 To j
List1.AddItem "右" + Str(y(k) - y(k - 1))
List1.AddItem "挖矿"
Next k
px = x(j)
j = j + 1
i = j
Loop
End Sub
Private Sub Command1_Click()
Dim i AS Integer
Dim As Long
For i = 1 To 100
s = s + i *(i+1)
Nest i
Text1. Caption = s
End Sub
Function gcd(a As Integer, b As Integer) As Integer
Do While b>0
c=a Mod b
a=b
b=c
Loop
End Function
调试中发现计算结果一直是0。经过仔细观察与分析,发现错误的原因是( )