我國居民身份證號是由 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