flag = False: n = 0
s = " Good Luck To You!"
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" And flag Then
n = n + 1: flag = False
Else
flag = True
End If
Next i
执行该程序段后,变量 n 的值为( )
按照次序逆序输出并从小到大输出。提示:list.reverse(),list.sort()
s="67.153.47.211"
n = Len(s)
ch=”":cmax= ""
For i= 1 Ton
c=Mid(s,n-i+1,1)
If c>="0" And c<="9" Then
ch=ch+c
Else
If ch> cmax Then cmax = ch
ch=""
End If
Next i
Text1.Text = cmax
执行该程序段后,文本框Text1中显示的内容是( )
①根据考生的考试总分从高到低依次对考生的填报志愿进行投档;
②每位考生可填三个志愿学校,轮到该考生投档时依次对其三个志愿进行投档,若第一志愿学校还有剩余招生名额,就被第一志愿学校录取,结束该考生的投档,否则需对其后续志愿学校进行同样的投档操作,若该考生所填的所有志愿学校都没有剩余招生名额,则该考生无法被任何学校录取,该考生的投档结束。
③当所有学校都已完成计划招生数时,停止投档,录取结束。
编写 VB 程序,实现上述“平行志愿”投档录取的功能,单击“读取考生数据”按钮 Command1, 则从数据库中获取所有考生的成绩、志愿信息以及每个学校的计划招生数,单击“投档录取”按钮 Command2,开始进行投档录取, 并在列表框 List1 中输出每个学校的计划招生数、实际招生数、录取分数线和最低录取名次信息,程序运行界面如图所示。请回答下列问题:
Const schCnt = 5 '学校数量
Const stuMaxCnt = 10000 '最多考生人数
Dim zsCnt(1 To schCnt) As Integer '存储每个学校的计划招生人数
Dim zsCnt2(1 To schCnt) As Integer '存储每个学校的实际招生人数
Dim a(1 To stuMaxCnt) As Single '存储考生总分成绩
Dim b(1 To stuMaxCnt * 3) As Integer '存储考试志愿,每个考生有3个志愿,每个志愿为学校编号
Dim stuCnt As Integer '实际考生总人数
Private Sub Command1_Click()
'从数据库中读取所有考生的总分和志愿信息存储到数组a和数组b中(第1个考生总分存储到a(1),第1个考生的3个志愿分别存储到b(1)、b(2)、b(3)中, …),然后按总分对数组a和数组b进行降序排序,总分相同时,需根据各科成绩决定排序先后,但名次相同,考生总人数存储到stuCnt变量中;
'读取每个学校的计划招生数,存储到数组zsCnt中;
'以上功能代码略
End Sub
Private Sub Command2_Click()
Dim sch As Integer '学校代码,用1~5中的一个数字表示某学校代码
Dim i As Integer, j As Integer, finished As Integer, prevScore As Single
Dim stuMc(1 To stuMaxCnt) As Integer
Dim MinScore(1 To schCnt) As Single
Dim MinMc(1 To schCnt) As Integer
finished = 0: i = 1
prevScore = -1
Do While
If a(i) = prevScore Then
stuMc(i) = stuMc(i - 1)
Else
End If
prevScore = a(i)
For j = 1 To 3
If zsCnt2(sch) < zsCnt(sch) Then
zsCnt2(sch) = zsCnt2(sch) + 1
MinScore(sch) = a(i)
MinMc(sch) = stuMc(i)
Exit For
End If
Next j
finished = 0
For j = 1 To schCnt
If zsCnt2(j) = zsCnt(j) Then
finished = finished + 1
End If
Next j
i = i + 1
Loop
'在List1中输出每所学校的代码、计划招生数、实际招生数、录取分数线、最低录取名次,代码略
End Sub

PrivateSubCommand1_Click()
Dim x AsInteger,y As Integer,t AsInteger
Dim I AsInteger,n As Integer,count AsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
![]()
count=0
For i=x To y
List1.AddItem Str(i)
n=i
Do While n>0
If n Mod 10=1 Then
count=count+1
End If
Loop
Next i
Label3.Caption="X到Y之间1的个数有"++"个"
End Sub
s="浙A665F5"
n=0:c=0:k=0
Do While n<=Len(s)
n=n+1
ch=Mid(s, n, 1)
If ch>="A" And ch<="Z" Then c=c+1
If ch >="0" And ch<="9" Then k=k+1
Loop
Label1.Caption=Str(k-c)
该程序段运行后,标签Label1上显示的内容是( )
①原始数据中,某数据不为0且相邻无重复,压缩数据用该数据表示;
②原始数据中,某数据为0且相邻无重复,压缩数据用两个数表示,第1个为0,第2个为0;
③原始数据中,某数据相邻且有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个为该数本身。
小明编写了一个压缩的VB程序,功能如下:窗体加载时,自动读取原始数据,依次存储在数组元素a(1),a(2),a(3)….中,原始数据的个数存储在变量n中,原始数据显示在文本框Text1中。单击“压缩”按钮Command1,程序对原始数据依次进行压缩处理,压缩数据显示在文本框Text2中。程序运行界面如图所示。
Private Sub Command1_Click( )
Dim s,result As String
Dim i,num As Integer
i= 1:result=""
Do While i<=n
s=a(i)
num=1
Do While s=a(i+1)
i=i+1
①
Loop
If num >1 Then
result= ②
i=i+1
End If
s= a(i)
num=1
Do While s <> a(i+1)
If s ="0"Then s ="00"
result=result +s
i=i+1
③
Loop
Loop
Text2.Text=result
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
Private Sub Comand1_Click( )
Dim s As String, c As String
Dim t As Integer, I As Integer
Dim a(1 To 26)As Integer
s=Text1.Text
For i=1 to 26
a(i)=0
Next i
i=1
Do While i<=Len(s)
c=Mid(s, i, 1)
If ① Then
t=Asc(c)-96
Else
t=Asc(c)-64
End If
If a(t)=0 Then
a(t)=1
Else
②
End If
i=i+1
Loop
Label1.Caption=s
End Sub
① ②
为实现上述功能的程序如下,请在程序划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As String
Dim n As Integer
a = Text1.Text
n = Len(a)
Do While ① and Mid(a, n, 1)="0"
n = n - 1
Loop
For i = n To 1 Step -1
Text2.Text = Text2.text + ②
Next i
End Sub
Dim s1 As String, s2 As String, a As Integer, i As Integer, b(1 To 26) As Integer 'b数组初值均为0
s1 = Text1.Text: s2 = Text2.Text
For i= 1 To Len(s1)
a= Asc(Mid(s1, i, 1))-65+ 1
⑴
Next i
For i= 1 To Len(s2)
a= Asc(Mid(s2, i, 1))-65+ 1
⑵
Next i
For i= 1 To 26
If ⑶ Then Exit For
Next i
If ⑷ Then Label1.Caption = "能归为一类" Else Labl1.Caption= "不能归为一类"
填空处的代码可以由以下部分组成:
①b(a)=b(a)+1 ②b(a)=b(a)-1 ③b(i)<>0 ④b(i)=0 ⑤i<=26 ⑥i>26
代码顺序正确的是( )
t ="”
For i=1 To 10
b(a(i) Mod 10) = b(a(i) Mod 10) + 1
b(a(i)\10) = b(a(i)\10) + 1
Next i
c =2
For i = 0 To 9
If b(i)>c Then t=t+ Str(i)
Next i
Label1.Caption= t
数组b各元素初始值为0,数组元素a(1)到a(10)的值依次是65,99,12,34,40,74, 56,88,30,45,执行程序段,标签Label1上显示的内容是( )
第一步:将身份证号码的第1位数字与7相乘;将身份证号码的第2位数字与9相乘;将身份证号码的第3位数字与10相乘;将身份证号码的第4位数字与5相乘;将身份证号码的第5位数字与8相乘;将身份证号码的第6位数字与4相乘;将身份证号码的第7位数字与2相乘;将身份证号码的第8位数字与1相乘;将身份证号码的第9位数字与6相乘;将身份证号码的第10位数字与3相乘;将身份证号码的第11位数字与7相乘;将身份证号码的第12位数字与9相乘;将身份证号码的第13位数字与10相乘;将身份证号码的第14位数字与5相乘;将身份证号码的第15位数字与8相乘;将身份证号码的第16位数字与4相乘;将身份证号码的第17位数字与2相乘。
第二步:将第一步身份证号码1~17位相乘的结果求和,全部加起来。
第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。
第四步:如果余数为0,那对应的最后一位身份证的号码为1;如果余数为1,那对应的最后一位身份证的号码为0;如果余数为2,那对应的最后一位身份证的号码为X;如果余数为3,那对应的最后一位身份证的号码为9;如果余数为4,那对应的最后一位身份证的号码为8;如果余数为5,那对应的最后一位身份证的号码为7;如果余数为6,那对应的最后一位身份证的号码为6;如果余数为7,那对应的最后一位身份证的号码为5;如果余数为8,那对应的最后一位身份证的号码为4;如果余数为9,那对应的最后一位身份证的号码为3;如果余数为10,那对应的最后一位身份证的号码为2。
|
余数列表 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
校验码对照表 |
1 |
0 |
X |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
B2 某男性公民公民身份号码本体码为44052418800101001,其校验码字符值仍可按B1各步骤与方法计算如下:

=28+36+0+ 25+16+16+2+8+48+0+0+9+0+5+0+0+2=195
195÷11=17
, 即
(ai×Wi)(mod 11)为8。
查表2得出校验码字符值ai为4。
该男性公民的公民身份号码为440524188001010014。
def check(s):
s1=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
s2='10X98765432'
k=0
for i in :
k=k+int(s[i])*s1[i]
return 
sfz=input('请输入身份证号:') 
if t !=18:
print('位数有误,请重新输入!')
else:
if sfz[-1]=='x':
sfz=sfz[:-1]+"X"
if :
print('合法身份证号')
else:
print('非法身份证号')
Dim a(1 To 6) As Integer
For i=1 To 6
a(i)= Int(Rnd * 4)+1
If a(i) Mod 2=0 And i Mod 2=0 Then
a(i)=2 * a(i) - a(i - 1)
End If
s=s+Str(a(i))
Next i
执行该程序段后,变量s的值可能是( )
a, b=2,1
while a>=b:
b=a*b
a=2*a
print(a, b)
步骤1:初始化最长无重复字符子串的长度 maxn=0。
步骤2:初始化字符串长度n,字符串索引left=0,right=0。
步骤3:判断right是否超过字符串长度,若超过则执行步骤4,否则判断字符串从位置left到位置right是否有重复字符:若存在重复,则将索引left的值修改为存在重复字符索引值+1;若不存在重复,则判断该子串长度是否比maxn大,若比maxn大,则更新maxn的值。修改right的值。重复步骤3。
步骤4:输出maxn的值。
实现上述功能的程序如下,请在划线处填入合适的代码。
#在字符串s中查找第一次出现字符c的位置
def search(s,c):
for i in range(len(s)):
if :
return i
s=input("请输入字符串:")
maxn=0
left=0
right=0
while right<n:
if s[right] in s[left:right]:
k=search(s[left:right],s[right])
else:
if right-left+1>maxn:
maxn=right-left+1
right+=1
print(maxn)
|
a,b = 1,1 n = int(input("请输入一个大于等于3的正整数n:")) for i in range(n-2):c = a + b a = b b = c print(c) 程序运行后,输入:6 |
运行输出结果是:
Dim i As Integer, s As String
Dim a(1 To 10) As Integer
a(1)=1 : a(2)=2
For i=3 To 10
a(i)=a(i-1) *a(i-2)
s=s+a(i)
Next i
Text1. Text=s+Str(a(i))
运行该段程序后,出现的错误提示为( )
i =1
Do While i<=5
a(i)= Int(Rnd*10)*2 + 1
If Not flag(a(i)) Then flag(a(i))=True
i= i + 1
Loop
已知数组flag各元素的初值为False,运行以上程序段程序,数组元素a(1)到a(5)的值可能为( )