题型:综合题 题类:模拟题 难易度:困难
浙江省杭州市2016年信息技术高考模拟卷十二
程序运行时,在Text1中输入字符串,单击“开始统计”按钮,在List1中显示统计结果。函数IsLetter(x)功能,若x是字母,则返回值为字母x在字母序列“A”~“Z”中的序号,如字母“A”的序号为0,字母“D”的序号为3。若x不是字母,则返回值为-1。
Function IsLetter(x As String) As Integer
If "A" <= x And x <= "Z" Then
IsLetter = Asc(x) - Asc("A")
ElseIf "a" <= x And x <= "z" Then
IsLetter = Asc(x) - Asc("a")
Else
①
End If
End Function
Private Sub Command1_Click()
Dim d(25) As Integer, m As Integer, n As Integer
Dim s As String, c As String
List1.Clear
For m = 0 To 25 '初始化数组d
d(m) = 0
Next m
s = Text1.Text
For m = 1 To Len(s) '读取字符串中的字符进行判断
c = Mid(s, m, 1)
n = IsLetter(c)
If n <> -1 Then ②
Next m
For m = 0 To 25 '输出结果
If ③ Then
List1.AddItem (Chr(m + Asc("a")) & ":" & d(m))
End If
Next m
End Sub
回答下列问题:
校验值计算规则如下:
第一步:将身份证号前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所示。
试题篮