居民身份證號碼由十七位數(shù)字本體碼和一位數(shù)字校驗碼組成.從左至右依次為:六位地址碼,八位出生日期碼,三位順序碼和一位校驗碼.校驗碼生成步驟如下:
(1)把身份證前17位的每個數(shù)字和加權(quán)因子相乘并累加求和,再與11做取余運算得到序號,即序號≡∑(ai×Wi)Mod11(i≡2~18);i表示號碼字符的位置,身份證號左邊開始第1位的位置為18,最后一位的位置為1,ai表示第i位置上的號碼字符的值;Wi表示第i位置上的加權(quán)因子,通過公式w(i)=2^(i-1)Mod11計算得到.
(2)根據(jù)步驟(1)得到的序號提取校驗碼字符.對應(yīng)關(guān)系如下,如:0對應(yīng)校驗碼“1”.
余數(shù) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校驗碼 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
實現(xiàn)上述功能的VB程序如下,請回答下列問題:
(1)某人身份證號的前17位為“33062119910206004”,根據(jù)步驟(1)中的公式∑(ai×Wi)Mod11計算可得序號為2,則該身份證最后一位字符應(yīng)該是
X
X
.(2)分析程序,可知存放學生身份證信息的數(shù)據(jù)表為
stu-info
stu-info
.(3)請在畫線處填入合適的代碼.
Const max=10 00
Dim n As Integer'存放學生人數(shù)
Dim sfzh(1 To max) As String,
xm(1 To max) As String
'數(shù)組sfzh、xm分別存放學生身份證號、姓名
Dim bj(1 To max) As Integer,flash(1 To max) As Boolean
'數(shù)組bj、flash分別存放學生班級、身份證校驗結(jié)果
Dim cw(1 To 15)As Integer'數(shù)組cw存放各班身份證號出錯人數(shù)
Function check(x As String ) As Boolean'本函數(shù)功能:校驗身份證號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( ?。?br />'本過程從數(shù)據(jù)庫中讀入指定數(shù)據(jù)到數(shù)組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“
'本過程其他語句略,學生人數(shù)存變量n,數(shù)組cw各元素初值置為0
End Sub
Private Sub Command1_Click ( ?。?br /> 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)①處應(yīng)填
Mid(jym,xh+1,1)=Mid(x,18,1)
Mid(jym,xh+1,1)=Mid(x,18,1)
;(2)②處應(yīng)填
check(sfzh(i)=True)
check(sfzh(i)=True)
;(3)③處應(yīng)填
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
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/4/20 14:35:0組卷:1引用:1難度:0.3
相似題
-
1.根據(jù)AQI值判斷城市的空氣質(zhì)量。若城市的AQI值(整數(shù))不超過100則空氣質(zhì)量優(yōu)良,否則空氣質(zhì)量有污染。當輸入的AQI值為-1時則退出程序。不要更改程序結(jié)構(gòu),將題中的①②③④填入正確的語句。
city=input(“請輸入城市名:”)
AQI=int(input(“請輸入空氣質(zhì)量指數(shù)AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空氣質(zhì)量優(yōu)良?!保?br />③______:
print(city,“的空氣質(zhì)量有污染?!保?br />city=input(“請輸入城市名:”)
AQI=④(input(“請輸入空氣質(zhì)量指數(shù)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發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4 -
2.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個C程序,求它在第10次落地時,其經(jīng)過了多少米?第10次反彈多高?
發(fā)布:2025/1/2 11:0:1組卷:0引用:3難度:0.3 -
3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長,p為三角形的半周長,即p=(a+b+c)/2,計算此三角形面積S的海倫公式為:。不要更改程序結(jié)構(gòu),將題中的①②③填入正確的語句。
import math#導(dǎo)入數(shù)學模塊
def hl(a,b,c):#定義求三角形面積的函數(shù)
p=①
s=math.jye.ai(②)#sqrt用于計算算術(shù)平方根
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發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4
把好題分享給你的好友吧~~