我國居民身份證號是由 18 位字符組成,其中前 17 位是數(shù)字,第 18 位是校驗(yàn)位(校驗(yàn)位字符在“0”~“9”或“X”中選?。?。由前 17 位數(shù)字經(jīng)過一定的規(guī)則計(jì)算得到校驗(yàn)值,在查驗(yàn)居民身份證號有效性時(shí),如果校驗(yàn)位中的字符與計(jì)算所得校驗(yàn)值相等則身份證號有效,否則無效。
校驗(yàn)值計(jì)算規(guī)則如下:
第一步:將身份證號前 17位數(shù)字分別乘以不同的系數(shù)后相加,對應(yīng)系數(shù)如下表所示。
位數(shù) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
系數(shù) | 7 | 9 | 10 | 5 | 8 | 4 | 2 | 1 | 6 | 3 | 7 | 9 | 10 | 5 | 8 | 4 | 2 |
余數(shù) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校驗(yàn)值 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
第二步:189 除以 11 得到余數(shù)為 2
第三步:由余數(shù) 2 獲取校驗(yàn)值 X。
根據(jù)以上規(guī)則小王編寫了一個(gè)驗(yàn)證身份證號是否有效的 VB 程序,功能如下:在文本框 Text1 中輸入身份證號,單擊“驗(yàn)證”按鈕 Command1 后,在列表框 List1 中顯示驗(yàn)證結(jié)果。程序運(yùn)行界面如圖 a 所示。
(1)設(shè)計(jì)程序界面時(shí),應(yīng)使用圖 b 中的
③
③
(填寫相應(yīng)編號)添加列表框?qū)ο?nbsp;List1。(2)實(shí)現(xiàn)上述功能的 VB 程序如下,請?jiān)跈M線處填入合適代碼。
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 位每位系數(shù)
Const checkCodeStr=“10X98765432“'存儲余數(shù)對應(yīng)的檢驗(yàn)值
①
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)程序中加框處代碼有誤,應(yīng)修改為
sum Mod 11+1
sum Mod 11+1
。【考點(diǎn)】編輯事件處理過程的代碼.
【答案】③;idcode=Text1.Text;Val(Mid(xs,i*2-1,2));sum Mod 11+1
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:3引用:1難度:0.4
相似題
-
2.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個(gè)C程序,求它在第10次落地時(shí),其經(jīng)過了多少米?第10次反彈多高?
發(fā)布:2025/1/2 11:0:1組卷:0引用:3難度:0.3 -
3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長,p為三角形的半周長,即p=(a+b+c)/2,計(jì)算此三角形面積S的海倫公式為:。不要更改程序結(jié)構(gòu),將題中的①②③填入正確的語句。
import math#導(dǎo)入數(shù)學(xué)模塊
def hl(a,b,c):#定義求三角形面積的函數(shù)
p=①
s=math.jye.ai(②)#sqrt用于計(jì)算算術(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
把好題分享給你的好友吧~~