题库 高中信息

题干

我国居民身份证号是由 18 位字符组成,其中前 17 位是数字,第 18 位是校验位(校验
位字符在“0”~“9”或“X”中选取)。由前 17 位数字经过一定的规则计算得到校验值, 在查验居民身份证号有效性时,如果校验位中的字符与计算所得校验值相等则身份证号有效, 否则无效。
校验值计算规则如下:
第一步:将身份证号前 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 所示。
(1)设计程序界面时,应使用图 2 中的____(填写相应编号)添加列表框对象 List1。

(2)实现上述功能的 VB 程序如下,请在划线处填入合适代码。
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
(3)程序中加框处代码有误,应修改为________。
上一题 下一题 0.99难度 填空题 更新时间:2019-03-18 04:19:08

答案(点此获取答案解析)

同类题4

数学帝忘记了自己的E-Mail邮箱密码,但她需要接收一封很重要的来信,于是她求助科技达人帮她尽可能找出密码。她零星记得自己密码的相关信息:密码是六位数字,前面两位为31;最后两位数字相同;能被16和46整除。
科技达人轻松地用VB写了个小程序,帮数学帝找到了所有可能的密码。
科技达人的程序运行界面如下图所示。

科技达人的程序段如下:
Private Sub Command1_Click()
Dim a As Integer, s As  long, b As Integer, i As Integer
For i =" 0" To 9999    ④
s =" 310000" + i
If s Mod 46 =" 0" Then
⑤
b =" (s" Mod 100) \ 10
If a =" b" Then
List1.AddItem Str(s)
End If
End If
Next i
End Sub
请分析任务,完成下列题目。
(1)在程序运行界面中出现了三种控件,它们分别属于列表框、命令按钮、标签,请你在序号后写出其对应的控件类型:
① ② ③
(2)在程序运行界面中控件 ①上显示了“帮助找回密码”字样,这是通过改变    属性的值实现的。
(3)解决问题常用的算法有枚举算法、解析算法、排序算法、查找算法等,那么从上述程序段看,解决此问题的算法是  。
(4)程序段中出现了“Command1_Click”字样,表示这是一个面向对象的事件,这里的对象是___________________,事件是_______________。
(5)从程序段看,这段程序结构属于三种基本程序结构中的 。
(6)在程序段的变量定义语句中,先后出现了integer和long两种数据类型,他们分别是 型和     型。
(7)请在程序段中④和⑤处填充合适的内容,使程序完整。
程序中④处应填入______________
程序中⑤处应填入______________
(8)程序段中的语句 b =" (s" Mod 100) \ 10,目的在于计算s的十位数字,这里“\”实现了____________计算。