s1 = "algorithm"
If Len(s1) Mod 2 = 1 Then
i = Len(s1) \ 2: j = Len(s1) \ 2 + 2
s2 = Mid(s1, i + 1, 1)
Else
i = Len(s1) \ 2: j = Len(s1) \ 2 + 1
End If
Do While i >= 1
If Mid(s1, i, 1) > Mid(s1, j, 1) Then
s2 = Mid(s1, i, 1) + s2
Else
s2 = s2 + Mid(s1, j, 1)
End If
i = i - 1: j = j + 1
Loop
Label1.Caption = s2
执行该程序段后,标签Label1上显示的内容是( )
s1 = Text1.Text: s2 = Text2.Text
For i = 1 To Len(s1)
ch1 = Mid(s1, i, 1): ch2 = Mid(s2, i, 1)
f(Asc(ch1) - Asc("a") + 1) = f(Asc(ch1) - Asc("a") + 1) + 1
⑴
Next i
flag = True
For i = 1 To 26
If f(i) <> 0 Then ⑵ : Exit For
Next i
If ⑴ Then Label1.Caption = "Yes" Else Label1.Caption = "No"
上述程序段中方框处被选语句为:
①f(Asc(ch1) - Asc("a") + 1) = f(Asc(ch1) - Asc("a") + 1) + 1
②f(Asc(ch2) - Asc("a") + 1) = f(Asc(ch2) - Asc("a") + 1) – 1
③flag = True
④flag = False
则(1)(2)(3)处语句依次为( )
For i = 1 To 7
a(i) = Int(Rnd * 9) + 1
Next i
s = 0
For i = 1 To 6
If a(i) < a(i + 1) Then
f(i) = 1
ElseIf a(i) > a(i + 1) Then
f(i) = -1
Else
f(i) = 0
End If
s = s + f(i)
Next i
执行该程序段后,变量s的值为0,则数组a各元素的值可能是( )
key = Int(Rnd * 10) * 2
s = "": i = 1: j = 10
Do While i <= j
m = (i + j) \ 2
If a(m) = key Then
Exit Do
ElseIf a(m) > key Then
j = m - 1: s = s + "0"
Else
i = m + 1: s = s + "1"
End If
Loop
Text1.Text = s
数组a的值依次为1,3,4,7,9,10,14,17,18,19,执行该程序段后,文本框Text2中显示的内容为“1010”,则key的值可能是( )
图a |
请回答下列问题:
图b |
图c |
场景名:main |
类别序号:2 |
进入方式:来自“片头”场景,通过“白露”按钮进入 |
|
呈现方式: ①小船从左往右缓慢移动。时长5秒。 ②白鹤挥动着翅膀从舞台外向舞台右下方飞入,时长3秒,再往右上方飞行,时长3秒。 ③文字从舞台上方移动到舞台中,时长4秒。 ④“简介”和“退出”按钮位于舞台右下角,单击“简介”按钮打开同目录下的“简介.txt”文件,单击“退出”按钮,停止当前声音的播放,并跳转到“片尾”场景第1帧继续播放。(其它略) |
呈现顺序: ①开始时出现背景图片、白鹤动画和背景音乐。 ②1秒时开始出现小船动画。 ③最后出现“简介”和“退出”按钮,并自动停止动画播放,背景音乐不停止。 |
||
如上图所示,“白鹤”图层的第30帧到第60帧实现白鹤从左下往右上移动的动画效果,则该动画类型是(单选,填字母:A .动画补间 / B .形状补间 / C .逐帧动画)。若要使“白鹤”图层第1帧到第60帧动画中白鹤的飞行路径变为直线,则可选中该图层第30帧执行(填字母:A .清除帧 / B .清除关键帧 / C .删除帧)。
Const n = 10
Dim num(1 To n) As Integer, w(1 To n) As Integer
Private Sub Form_Load()
'本过程从数据库中读入n件物品的编号和重量分别存数组num,w中,并在List1中显示,代码略。
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim t As Integer, f As Boolean
Dim p As Integer, q As Integer
Dim k As Integer, flag As Boolean
f = False
i = 1
Do While
f = True
For j = n To i + 1 Step -1
If Then
t = num(j): num(j) = num(j - 1): num(j - 1) = t
t = w(j): w(j) = w(j - 1): w(j - 1) = t
f = False
End If
Next j
Loop
For i = 1 To n
List2.AddItem Str(num(i)) + " " + Str(w(i))
Next i
k = Val(Text1.Text)
flag = False
p = 1: q = n
Do While
If w(p) + w(q) < k Then
p = p + 1
ElseIf w(p) + w(q) > k Then
q = q - 1
Else
List3.AddItem Str(num(p)) + "和" + Str(num(q))
flag = True
p = p + 1: q = q - 1
End If
Loop
If Not flag Then
List3.AddItem "未找到这样的组合"
End If
End Sub
⑴计算校验码序号:根据公式∑(ai×Wi) Mod 11 (i=2~18)计算得到校验码的序号;
其中:i:表示号码字符的位置序号,身份证号左边开始第1位的位置序号为18,第2位为17,依次类推,……最后一位的序号为1;
ai:表示第i位置上的号码字符的值;
Wi:示第i位置上的加权因子,通过公式w(i) = 2 ^ (i - 1) Mod 11计算得到。
⑵提取校验码字符:根据步骤(1)得到的序号提取对应的校验码字符。对应关系如下表所示,如:序号0对应校验码“1”,序号1对应校验码“0”。
序号 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
校验码 |
1 |
0 |
X |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
若步骤(2)中提取到的校验码值和身份证号最后一位相同,则校验通过,否则校验失败(即身份证号有误)。
根据上述原理设计了一个身份证校验VB程序,功能如下:程序启动时从数据库student.accdb中读入学生身份证数据(共15个班级),并在列表框List1中显示,单击“校验”按钮Command1,在列表框List2中输出身份证号有误的班级、出错人数以及出错的学生信息。
实现上述功能的VB程序如下,请回答下列问题:
Const max = 1000
Dim n As Integer '存放学生人数
Dim sfzh(1 To max) As String, xm(1 To max) As String
Dim bj(1 To max) As Integer, flag(1 To max) As Boolean, cw(1 To 15) As Integer
Function check(x As String) As Boolean
Dim jym As String
Dim i As Integer, sum As Integer, xh As Integer
Dim a(1 To 18) As Integer, w(1 To 18) As Integer
jym = "10X98765432"
For i = 18 To 2 Step -1
a(i) = Val(Mid(x, 19 - i, 1))
Next i
For i = 18 To 1 Step -1
w(i) = 2 ^ (i - 1) Mod 11
Next i
sum = 0
For i = 2 To 18
Next i
xh = sum Mod 11
If Mid(jym, xh + 1, 1) = Mid(x, 18, 1) Then
check = True
Else
check = False
End If
End Function
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Conn.ConnectionString = "provider=Microsoft.ace.oledb.12.0;data source=" + App.Path + "\student.accdb"
Conn.Open
Set rs.ActiveConnection = conn
rs.Open "select * from stu_info"
'本过程其余代码实现读取学生的身份证号、姓名和班级分别存数组sfzh、xm和bj中,并在列表框List1中显示,学生人数存变量n中。代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
List2.Clear
For i = 1 To n
If Then
flag(i) = True
Else
flag(i) = False
End If
Next i
For i = 1 To 15
cw(i) = 0
Next i
For i = 1 To 15
For j = 1 To n
If Then
cw(i) = cw(i) + 1
List2.AddItem sfzh(j) + " " + adj(xm(j), 3)
End If
Next j
If cw(i) > 0 Then
List2.AddItem Str(i) + "班共有以上" + Str(cw(i)) + "个身份证号错误"
End If
Next i
End Sub