相关试卷
-
1、设某汉字由7×7的0、1点阵图案组成。依照以下规则生成压缩码:连续-组数值,从汉字点阵图案的第一行第一个符号开始计算,按书写顺序由左到右,从上到下。压缩码第一个数表示起始的数字(例如0),第二个数表示连续有几个0,第三个数表示接下来连续有几个1,第四个数表示接下来连续有几个0,第五个数表示接下来连续有几个1,以此类推……
例如,以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是031616431616137,表示开始数字是0,有3个,接下来1个1,6个0,1个1……
(1)、修改程序中的错误。Private Sub Commandl_Click()
Dim code As String,c As Integer,res As String,k As Integer
code=Text 1.Text
k=0
res=""
c=Val(Mid(code,1,1))
For i=2 To Len(code)
For j=1 To
‘①res=res +Str(c)
k= k+1
If k=7 Then
List1.AddItem res
k=0
res=""
End If
Next j
c=
‘②Next i
End Sub
①②
(2)、现给出如下点阵图:
则压缩码为。
-
2、用户注册某APP时,密码有如下要求:至少为8个字符,并且必须含有数字和字母。小林编写了一个VB程序,对用户设定的密码进行合法性验证,如图所示。在文本框Text1中输入密码字符串s,单击“验证”按钮,在标签Label1中显示验证结果“符合要求”或“不符合要求”。
(1)、实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub CmdJudge_Click()
Dim al As Integer,a2 As Integer,flag As Boolean
Dim s As String,c As String,i As Integer,n As Integer
a1=0:a2=0:flag=False
s=Text1.Text: ①
i=1
Do While i<=n And Not flag
c=Mid(s,i,1)
If c>="A" And c<="Z" Or c>="a" And c<="z" Then
al=1
Elself c>="0"And c<="9" Then
a2=1
End If
If ② Then flag=True
i=i +1
Loop
If flag And n>= 8 Then
Label1.Caption="符合要求"
Else
Label1.Caption="不符合要求"
End Sub
①②
(2)、代码“Private Sub CmdJudge_Click()”中的“CmdJudge”是(单选,填字母:A .过程名/B .属性名/C .事件名D .对象名)。(3)、运行该程序,在文本框Text1中输入“Wd6b$ksss”,单击“统计”按钮后,语句c=Mid(s,i,1)共执行了次。 -
3、统计不同单词个数,在Text1中输入一行单词,点击“统计”按钮后在Text2中输出不同单词的个数。单词字母有大小写,同一单词的大小字母视为相同,句子以符号结尾,程序运行界面如图所示。
(1)、观察以下代码,该代码中 Command1_Click()是。(单选:A .对象名/B .事件名/C .事件处理过程名)(2)、实现上述功能的 VB.程序如下,请在划线处填入合适的代码。Private Sub Command1_Click()
Dim a(1 To 100)As String, s As String, ch As String, word
As String
Dim i As Integer,j As Integer,k As Integer, numb As Integer
s=Text1.Text:k=0:word=" "
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>="a"And ch<="z"Оr ch>="A"And ch<="Z"Then
If ch>="A" And ch<="Z"Then ①
word=word+ch
Else
flag=False
For j=1 To k
If a(j)=word Then flag=True
Next j
If Not flag And word<> ''Then
②
a(k)=word
numb=numb+1
End If
③
End If
Next i
Text2.Text=Str(numb)
End Sub
①②③
-
4、有VB 程序段如下:
Randomize
For i=1 To 6
a(i)= lnt(Rnd * 20)+1
If a(i)Mod 2=i Mod 2 Then
a(i)= a(i)-1
Else
a(i)= a(i)+2
End If
Next i
执行该程序段后,a(1)~a(6)各元素可能的是( )
A、13,2,7,12,5,18 B、22,7,0,15,4,19 C、20,9,18,23,4,7 D、6,0,4,21,18,17 -
5、已知数组元素值:a(1)=2,a(2)=8,a(3)=3,a(4)=4,a(5)=5,a(6)=6,a(7)=1,a(8)=7,a(9)= 9
m=1:k=1
For i=2 To 9
If a(i)>a(i-1)Then
k=k+1
If k>m Then m=k
Else
k=1
End If
Next i
Text1.Text=Str(m)
该程序段运行后,文本框Text1中显示的内容是( )
A、4 B、6 C、8 D、9 -
6、在Text1文本框内输入字符串,单击去重按钮,将字符串后面相同的字符删除,并在Text2中输出经过删除的字符串。程序界面如图所示。请在下面划线处填入合适的代码。

Private Sub Command1_Click()
Dim s As String,s1 As String,c As String
s=Text1.Text
For i=1 To Len(s)
c=Mid(s,i,1)
s1= ⑴
For j= ⑵
If c<>Mid(s,j, 1)Then
s1=s1+Mid(s,j,1)
End If
Next j
⑶
Next i
Text2.Text=s
End SubA、(1)Mid(s,1,1) (2)i+1 To Len(s) (3)s1=s B、(1)Mid(s,1,1) (2)i To Len(s) (3)s1=s C、(1)Mid(s,1,i) (2)i To Len(s) (3)s=s1 D、(1)Mid(s,1,i) (2)i+1 To Len(s) (3)s=s1 -
7、有如下程序段:
Const n=6
Dim a(1 To n)As Integer
Dim i As Integer,j As Integer,t As Integer
Do While True
For i=1 To n-1
If a(i)>a(i+1)Then Exit For
Next i
If i < n Then
For i=1 To n
j=Int(Rnd * 6)+1
t=a(j):a(j)=a(i):a(i)=t
Next i
Else
Exit Do
End If
Loop
数组中a(1)到a(6)的值依次为“56,34,48,87,65,96”,上述程序段执行后a(1)到a(6)的值依次为( )
A、96 87 65 56 48 34 B、344856658796 C、选项A和B都有可能 D、选项A和B都不可能 -
8、有如下VB程序段:
Dim a(1 To 6)As Integer
Sum=0
For i=1 To 6
For j=i+1 To 6
If j Mod i=0 Then a(j)=1-a(j)
Next j
Next i
For i=1 To 6
Sum=Sum+a(i)
Next i
Text1.Text=Str(Sum)
该程序段运行后,文本框Text1中显示的内容是( )
A、3 B、4 C、5 D、6 -
9、有如下VB程序段:
Dim i As Integer,sum As Integer
Dim a(1 To 6)As Integer,b(1 To 6)As Integer
Sum=0
a(6)=18:a(5)=7:b(6)=14:b(5)=16
For i=4 To 1 Step-1
a(i)=a(i+2)-a(i+1)
b(i)= b(i+2)-a(i)
If b(i)Mod 3=0 Then sum=sum+b(i)
Next i
Text1.Text=Sir(sum)
该程序段运行后,文本框Text 1中显示的内容是( )
A、39 B、30 C、-9 D、12 -
10、有如下VB程序段:
Dim i As Integer,j As Integer,t As Integer
Dim p(1 To 20)As Integer
For i=1 To 20
p(i)=0
Next i
p(1)=-1
For i=2 To 20
If p(i)=0 Then
For j=2 To 20\i
p(i* j)=-1
Next j
End If
Next i
t= 20
For i=1 To 20
t=t+ p(i)
Next i
Text1.Text=Str(t)
程序运行后,文本框Text1显示的内容是( )
A、20 B、12 C、10 D、8 -
11、有如下VB程序段:
Dim a(I To 10)As Integer
Dim s(1 To 10)As Integer
Private Sub Form_Load()
a(1)=3:a(2)=6:a(3)=8:a(4)=4:a(5)= 9
a(6)=5:a(7)=3:a(8)=3:a(9)=8:a(10)= 6
End Sub
Private Sub Command1_Click()
Dim max As Integer,i As Integer,j As Integer, k As Integer
max=0
For i=1 To 10
k=0
For j=10 Toi Step -1
If a(j)=a(i)Then k=j:Exit For
Next j
If k > 0 And k- i > max Then max=k-i
Next i
Text1.Text=Str(max)
End Sub
程序运行后,文本框Text1显示的内容是 ( )
A、5 B、6 C、7 D、8 -
12、用VB。模拟设计某软件的登录界面,如图所示,当鼠标单击“<请输入账号>”所在的文本框Textl时,文字内容就消失。则此事件处理的过程名应该是( )
A、登录窗口_Click B、Text1_KeyPress C、Commandl_Click D、Textl_Click -
13、某算法的部分流程图如图所示。输入s值为2018,执行这部分流程图后,s和i的值分别是( )
A、1,3 B、1,4 C、2,3 D、2,4 -
14、罗马数字是阿拉伯数字传人之前使用的一种数码。罗马数字采用七个罗马字母作数字,即I(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记数的方法如下:
①相同的数字连写,所表示的数等于这些数字相加得到的数,如Ⅲ=3;
②小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如Ⅷ=8、XⅡ=12;
③小的数字(限于Ⅰ、X和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如Ⅳ=4、Ⅸ=9;
王老师设计了一个将罗马数字转换成阿拉伯数字的程序,实现该功能的程序代码如下:
Private Sub Command1_Click()
Dim a(1 To 10)As String
Dim b(0 To 10)As Integer
Dim x As String,c As Integer,j As Integer
x=Text 1.Text
j=Len(x)
b(0)= 0
c=0
For i=1 To j
a(i)= Mid(x,j-i+1,1)
b(i)=zh(a(i))
If ① Then
c=c-b(i)
Else
c=c+b(i)
End If
Next i
Label2.Caption="结果:"+Str(c)
End Sub
Function zh(xAs String)As Integer
s="IVXLCDM"
zh=1
For i=1 To 7
If
ThenExit For
Elself ② Then
zh=zh*5
Else
zh=zh*2
End If
Next i
End Function
(1)、程序界面如图所示,程序中共包含个对象。
(2)、加框处代码有错,应改为。(3)、为完善程序,在划线处填入合适的代码。①②
(4)、罗马数字MCMLXXX转换成阿拉伯数字为。 -
15、十进制整数换成二进制整数采用“除2倒取余”法。十进制小数转换成二进制小数采用“乘2顺取整”法,具体做法是:用2乘十进制数的小数部分,得到一个积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。小刘根据以上方法编写了VB程序,运行界面如图所示。程序运行时,在文本框Text1中输入一个带小数的正十进制数(小于32767),点击“转换”按钮Command1,在文本框Text2中输出转化后的带小数的二进制数,精确到3位小数。实现上述功能的VB程序如下,请回答下列问题:
(1)、按照本程序的功能,在Text1中输入数据9.78,点击“转换”按钮Command1,在Text2中输出。(2)、请在划线处填入合适的代码.Private Sub Command1_Click()
Dim i As Integer,pos As Integer
Dim s As String,c As String,result As String
Dim s1 As Single,s2 As Single
result=" ": i=1
s=Text 1.Text
c=Mid(s,i,1)
Do While c<>"."
i=i+1
c=Mid(s,i,1)
Loop
pos=i
①
s2 = Val("0."+Mid(s,pos +1))
result=convert(s1)&"." & convert(s2)
Text2.Text=result
End Sub
Function convert(x As Single)As String
Dim temp As Integer,k As lnteger
If x>=1 Then '整数转化为二进制
temp=x Mod 2
result=temp & result
x=x\2
Do While x <>0
temp=x Mod 2
result=temp & result
x=x\2
Loop
Else '小数转化为二进制,保留3位小数
k=1
Do While ②
temp=Int(x*2)
result=result & temp
③
k=k +1
Loop
End If
convert=result
End Function
①②③
-
16、有如下VB程序段:
Private Sub Command1_Click()
Const s1="efg"
s2="&auif,+eg$Ymfhe":s3=" "
For i=1 To Len(s2)
If being(Mid(s2,i,1),s1)Then
s3=s3+Str(i)+","
End If
Next i
Text 1.Text=s3
End Sub
Function being(x As String,y As String)As Boolean
being=False
For i=1 To Len(y)
If x=Mid(y,i,1)Then
being=True:Exit Function
End If
Next i
End Function
执行后文本Text1中显示的内容是 ( )
A、4,5,6,9,10 B、5,8,9,13,15, C、2,1,3,3,1, D、4,5,6,13,15, -
17、某程序段如下:
Private Sub Command1_Click()
Dim s As Integer,m As Integer,i As Integer
m=5:s=0
For i=1 To m
s=s + add(i)
Next i
Text 1.Text=Str(s)
End Sub
Function add(n As Integer)As Integer
If n=1 Or n=2 Then
add=1
Else
add=2*(add(n-1)+ add(n-2))
End Function
运行该段程序后,标签 Textl 中显示的值是 ( )
A、16 B、44 C、6 D、32 -
18、若在文本框Text1、Text2、Text3中分别输入2,5,6,下列程序段运行后,标签Label2中显示的内容是( )
Private Sub Commandl_Click()
Dim a As Integer, b As Integer,cAs Integer
a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)
Label2.Caption=Str(fx(a,b,c))
End Sub
Function fx(x As Integer,y As Integer,z As Integer)As Integer
If x<y Then fx=z
If x>y Then fx=y Else fx=x
End Function
A、2 B、5 C、6 D、0 -
19、Base64编码是将待转换的字符串以每3个字节分为一组转换为24位二进制数,再以每6位二进制数一组分为4组,转换为4个字节。对照下面的Base64编码表,根据每个字节的十进制值转换为对应的加密字符。
十进制值
0
1
…
24
25
26
27
…
50
51
52
…
61
62
63
加密字符
A
B
…
Y
Z
a
b
…
y
z
0
…
9
+
-
现设计一个程序,在文本框Text1输入字符串(长度为3的倍数),在文本框Text2输出对应的Base64加密字符,运行效果如图所示,实现上述功能的VB代码如下:
Private Sub Commandl_Click()
Dim s As String,txt As String
Dim s1 As String,t As String
Dim tmp As Integer,n As Integer
Dim i As Integer,j As Integer
Dim ans As String
txt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq
rstuvwxyz0123456789+-"
s1 = Text1.Text
For i = 1 To Len(s1)
n=
t = " "
For j = 1 To 8
t = n Mod 2& t
①
Next j
s = s & t
Next i
Fori=1 To Len(s)
'二进制编码转换为加密字符
tmp= ②
If i Mod 6 = 0 Then
ans = ans&Mid(txt,tmp+1,1)
tmp=0
End If
Next i
Text2.Text=ans
End Sub
(1)、代码“Private Sub Command1_Click()”中的Command1Click是(单选,填字母:A .属性名/B .事件名/C .事件过程/D .方法名)。(2)、程序代码加框处有错,请改正。(3)、请将程序代码划线处语句补充完整。① ②
(4)、根据图中数据,结合程序代码,最终i的值是。 -
20、趣味数学题:n的阶乘n!=1×2×3×4×5×…×n,当n≥5时,其结果末尾必然包含1或多个0,求n!(5≤n≤32726)末尾包含0的个数。算法思路:n较大时,n!的值将超出long类型范围,求出n!的结果再数0的个数不现实。那么末尾的0到底是从哪里来的?每一个因子5与任一偶数相乘就会产生一个0。所以末尾有多少0是由因子5的个数决定的,求出因子5的个数即是末尾0的个数。程序运行界面和代码如下所示。
(1)、为使窗体加载时,窗体标题栏自动显示为“第14题程序”,则可以在过程(填写过程名)中添加代码:Form1.Caption=“第14题程序”。(2)、实现上述算法的VB程序如下,请补充程序中划线处的代码。Private Sub Commandl_Click()
Dim n As Integer
n=Val(Text1.Text)
i=1
Do While ①
s=s+n\5^i
i=i+1
Loop
List1.AddItem Str(n)+"!末尾包含0的个数:"+ ②
End Sub
①②
(3)、根据上述算法,2018!末尾包含0的个数是。