居民身份证号码由十七位数字本体码和一位数字校验码组成.从左至右依次为:六位地址码,八位出生日期码,三位顺序码和一位校验码.校验码生成步骤如下:
(1)把身份证前17位的每个数字和加权因子相乘并累加求和,再与11做取余运算得到序号,即序号≡∑(ai×Wi)Mod11(i≡2~18);i表示号码字符的位置,身份证号左边开始第1位的位置为18,最后一位的位置为1,ai表示第i位置上的号码字符的值;Wi表示第i位置上的加权因子,通过公式w(i)=2^(i-1)Mod11计算得到.
(2)根据步骤(1)得到的序号提取校验码字符.对应关系如下,如:0对应校验码“1”.
余数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |

实现上述功能的VB程序如下,请回答下列问题:
(1)某人身份证号的前17位为“33062119910206004”,根据步骤(1)中的公式∑(ai×Wi)Mod11计算可得序号为2,则该身份证最后一位字符应该是
X
X
.(2)分析程序,可知存放学生身份证信息的数据表为
stu-info
stu-info
.(3)请在画线处填入合适的代码.
Const max=10 00
Dim n As Integer'存放学生人数
Dim sfzh(1 To max) As String,
xm(1 To max) As String
'数组sfzh、xm分别存放学生身份证号、姓名
Dim bj(1 To max) As Integer,flash(1 To max) As Boolean
'数组bj、flash分别存放学生班级、身份证校验结果
Dim cw(1 To 15)As Integer'数组cw存放各班身份证号出错人数
Function check(x As String ) As Boolean'本函数功能:校验身份证号x,若
'校验通过返回True;否则返回False
Dim i As Integer,sum As Integer,xh As Integer,jym As String
Dim a(1 To 18)As Integer,w(1 To 18)As Integer
jym=“10X98765432“:sum=0
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)Mod11
Next i
For i=2 To 18
sum=sum+a(i)*w(i)
Next i
xh=sum Mod 11
If
①
①
Then check=True Else check=FalseEnd Function
Private Sub From-Load( )
'本过程从数据库中读入指定数据到数组sfzh、xm、bj,并在List1中显示
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString=“provide=microsoft.ace.jye.ai.12.0;data
source=“+App.Path+“\student.jye.ai“
conn.Open
Set rs.ActiveConnection=conn
rs.Open“select*from stu-info“
'本过程其他语句略,学生人数存变量n,数组cw各元素初值置为0
End Sub
Private Sub Command1_Click ( )
Dim i As Integer,j As Integer
For i=1 To n
If
②
②
Then flag(i)=True Else flag(i)=FalseNext i
For i=1 To 15
For j=1 To n
If bj(j)=i And flash(j)=Flash Then
③
③
Lise2.AddItem sfzh(j)+““+xm(j)
EndIf
Next j
If cw(i)>0 Then
Lise2.AddItem Str(i)+“班共有以上“+Str(cw(i))+“个身份证号错误“
Lise2.AddItem““
EndIf
Next i
End Sub
(1)①处应填
Mid(jym,xh+1,1)=Mid(x,18,1)
Mid(jym,xh+1,1)=Mid(x,18,1)
;(2)②处应填
check(sfzh(i)=True)
check(sfzh(i)=True)
;(3)③处应填
cw(i)=cw(i)+1
cw(i)=cw(i)+1
.【考点】编辑事件处理过程的代码.
【答案】X;stu-info;①;②;③;Mid(jym,xh+1,1)=Mid(x,18,1);check(sfzh(i)=True);cw(i)=cw(i)+1
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/4/20 14:35:0组卷:1引用:1难度:0.3
相似题
-
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