我国居民身份证号是由 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 |
余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校验值 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
第二步:189 除以 11 得到余数为 2
第三步:由余数 2 获取校验值 X。
根据以上规则小王编写了一个验证身份证号是否有效的 VB 程序,功能如下:在文本框 Text1 中输入身份证号,单击“验证”按钮 Command1 后,在列表框 List1 中显示验证结果。程序运行界面如图 a 所示。
(1)设计程序界面时,应使用图 b 中的
③
③
(填写相应编号)添加列表框对象 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“'存储余数对应的检验值
①
idcode=Text1.Text
idcode=Text1.Text
sum=0
For i=1To 17Step 1
a=Val(Mid(idCode,i,1))
b=②
Val(Mid(xs,i*2-1,2))
Val(Mid(xs,i*2-1,2))
sum=sum+a*b
Next i
sum Mod 11
pos=

checkCode=Mid(checkCodeStr,pos,1)
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
sum Mod 11
If checkCode=Mid(idCode,18,1)Then result=“有效“
Else
result=“无效“
End if
List1.AddItem (idCode &““& result)
End Sub
(3)程序中加框处代码有误,应修改为
sum Mod 11+1
sum Mod 11+1
。【考点】编辑事件处理过程的代码.
【答案】③;idcode=Text1.Text;Val(Mid(xs,i*2-1,2));sum Mod 11+1
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/6/27 10:35:59组卷:3引用:1难度:0.4
相似题
-
1.根据AQI值判断城市的空气质量。若城市的AQI值(整数)不超过100则空气质量优良,否则空气质量有污染。当输入的AQI值为-1时则退出程序。不要更改程序结构,将题中的①②③④填入正确的语句。
city=input(“请输入城市名:”)
AQI=int(input(“请输入空气质量指数AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空气质量优良。”)
③______:
print(city,“的空气质量有污染。”)
city=input(“请输入城市名:”)
AQI=④(input(“请输入空气质量指数AQI的值:”))
(1)序号①答案为
A.if
B.while
C.for
D.def
(2)序号②答案为
A.AQI>=100
B.AQI<=100
C.AQI>100
D.AQI<100
(3)序号③答案为
A.elif
B.break
C.if
D.else
(4)序号④答案为
A.int
B.float
C.str
D.else发布:2025/1/2 11:0:1组卷:0引用:0难度:0.4 -
2.一球从100米高度自由落下,每次落地后反跳回原高度的一半,再下落。编写一个C程序,求它在第10次落地时,其经过了多少米?第10次反弹多高?
发布:2025/1/2 11:0:1组卷:1引用:3难度:0.3 -
3.利用海伦公式求解三角形面积。已知a,b,c为三角形的三条边长,p为三角形的半周长,即p=(a+b+c)/2,计算此三角形面积S的海伦公式为:
。不要更改程序结构,将题中的①②③填入正确的语句。
import math#导入数学模块
def hl(a,b,c):#定义求三角形面积的函数
p=①
s=math.jye.ai(②)#sqrt用于计算算术平方根
return ③#返回面积的值
a,b,c=3,4,5#边长依次赋值
print(“此三角形的面积S为:“,hl(a,b,c))
A. (a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C. (a+b+c)*2 D.s
(2)序号②答案为
A.(a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C.(a+b+c)*2 D.(3+4+5)/2
(3)序号③答案为
A.p B.s
C.p*(p-a)*(p-b)*(p-c) D.0发布:2025/1/2 11:0:1组卷:0引用:0难度:0.4