试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省台州市书生中学2018-2019学年高二上学期信息技术第一次月考试卷

我国居民身份证号是由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)、程序中加框处代码有误,应修改为
举一反三
返回首页

试题篮