专项测试三 字符串处理
1.性别识别。程序运行时,在文本框Text1中输入18位的身份证号,单击Command1按钮,在标签Label1中显示其性别。判断方法为:判断身份证号中第17位上的数字,若是奇数则表示男性,偶数则表示女性。程序运行界面如下图所示。
为实现上述功能,在划线处填入合适的语句。
Private Sub Command1_Click()
Dim x As String, y As String,n As Integer
x = Text1.Text
______①______
If n mod 2 = 1 Then
y = “男”
Else
y = “女”
End If
______②______
End Sub
解析 本题主要考查的是字符串处理。①处代码表示取出身份证号的第17位数字字符,然后将数字字符转换为数值,①处代码为n=Val(Mid(x,17,1));②处代码表示将性别结果显示在标签Label1中,因此,②处代码为Label1.Caption=y。
答案 ①n=Val(Mid(x, 17, 1)) ②Label1.Caption = y
2.下面VB程序的功能是:在左边列表框List1中选择一个车牌,单击“判断”按钮Command1,根据该车牌最后一位数字进行限行判断(若为偶数则奇数日期限行,奇数则偶数日期限行),并将判断结果显示在文本框Text2中。程序运行界面如下图所示。
为了实现上述功能,请在划线处填入合适的代码。
Private Sub______①______′单击List1,将列表框中选中的内容显示在Text1中
Text1.Text = List1.List(List1.ListIndex) ′将当前选中的List1的内容显示在Text1中
Text2.Text = “ ”
End Sub
Private Sub Command1_Click( )
Dim i As Integer,cp As String, c As String
cp = Text1.Text
For i = ______②______ To 4 Step -1
c = Mid(cp, i, 1)
If c >= “0” And c <= “9” Then ′若c是数字字符,则记录该数字
If Val(c) mod 2=1 Then
Text2.Text = “偶数日期限行”
Else
Text2.Text = “奇数日期限行”
______③______
Exit For ′退出循环
End If
Next i
End Sub
解析 本题主要考查的是循环结构及Mid函数。程序①处表示事件处理过程,该事件处理过程的功能是“单击List1,将列表框中选中的内容显示在Text1中”,因此过程名为List1.Click();②处循环表示从车牌号最后一个字符往前开始查找,直到找到第一个数字,然后根据数字的奇偶性来确定限行情况,车牌号长度可以通过len函数计算得到,观察车牌号可知车牌号长度为8位;③处表示块If语句的结束,因此③处语句为End If。
答案 ①List1_Click()或 List1_Click ②Len(cp)或Len(Text1.Text)或 8 ③End If
3.编写VB程序,实现如下功能:在文本框Text1中输入英语短文(短文中只包含大小字母、空格和标点符号),并以“.”表示短文输入结束,单击“查找”按钮Command1,在标签Label3中显示短文中最长的单词,程序运行效果如图所示。
(1)要使窗体标题栏上显示“寻找最长的单词”,应将窗体的________属性的值修改为“寻找最长的单词”。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, k As Integer, max As Integer
Dim s As String, st As String, ch As String, word As String
s = Text1.Text
______①______
k = 0
max = 0
t = “ ”
For i = 1 To n
ch = Mid(s, i, 1)
If (ch>= “a” And ch<= “z”) Or (ch>= “A” And ch<= “Z”) Then
__________②________
k = k + 1
Else
If k > max Then
max = k
________③________
End If
st = “ ”
________④________
End If
Next i
Label3.Caption = word
End Sub
解析 本题主要考查的是关于字符串处理的非选择题。本题的关键之处在于取出每个单词,然后将当前单词长度与之前最长的单词长度比较,记录最长的单词。具体方法为:从字符串s中逐一取出字符,若是字母,则拼接在字符串st中,如果不是字母,则表示一个单词已结束,然后将该单词的长度k与之前最长单词长度max比较,将最长单词记录在变量Word中,并更新最长单词的长度max的值。①处代码表示计算文本框Text1中的字符个数,因此代码为n = Len(s);②处表示把字母拼接在字符串st中,因此代码为st=st+ch;③处代码表示将最长单词保存在变量word中,因此代码为word=st;④处代码表示将单词长度k清零,为计算下一单词的长度作准备,因此代码为k=0。
答案 (1)Caption (2)①n = Len(s) ②st = st + ch ③word = st ④k = 0
4.编“字符串生成”程序,实现如下功能:在文本框Text1中(字符位置)输入多个正整数 (以“,”为分割符和结束符),单击“生成”按钮Command1,程序以这些整数为位置信息,依次从文本框Text2中(字典内容)提取字符并连接成字符串,最后将字符串显示在标签Label1中(生成内容)。程序运行界面如下图所示。
(1)要使程序运行时,窗体Form1标题显示“字符串生成”,可在Form_Load事件过程屮添加语句________(单选,填字母:A.Form1 = “字符串生成” / B.Form1.Text=“字符串生成” / C. Form1.Caption=“字符串生成”)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, t As String ,st1 As String, st2 As String, c As String
Dim i As Integer, p As Integer, n As Integer
s = “ ”: t = “ ”
st1 = Text1.Text
st2 = Text2.Text
n = Len(st1)
For i = 1 To n
________①________
If c = “,” Then
p = Val(t)
________②________
t = “ ”
Else
________③________
End If
Next i
Label1.Caption = s
End Sub
(3)若文本框Text1中输入内容的结束符缺失(即输入内容为1,18,9,9),单击“生成”按钮后,标签Label1中显示的内容是________。
解析 (1)本小题主要考查的是窗体的Caption属性。(2)①处代码表示从字符串st1中取出第i个字符,因此,代码为c=Mid(st1,i,1),也可以写为c=Mid(Text1.Text,i,1);②处代码表示从字符串st2中取出p位置上字符,因此,代码为s=s+Mid(st2,p,1),也可以写为s=s+Mid(Text2.Text,p,1);③处表示当前正整数还未全部取出,则将当前取前的数字字符拼接在字符串t中,因此代码为t=t+c。(3)若文本框Text1中输入内容的结束符缺失,则无法取到最后一个整数,因此在标签Label1中显示的内容是pas。
答案 (1)C (2)①c = Mid(st1, i, 1)或c = Mid(Text1.Text, i, 1) ②s = s +Mid(st2,p, 1)或s=s+Mid(Text2.Text,p, 1) ③t=t+c
(3)pas
5.编写VB程序,实现如下功能:在文本框Text1中输入某一年份,单击“天干地支与生肖”按钮Command1,在列表框List1中输出该年份开始的12个年份及对应的“天干地支”与“生肖”,运行界面如图所示,程序代码如下。
(1)代码“Private Sub Command1_Click()”中的Click是________, List1.AddItem中的List1是________,AddItem是________(单选,填字母:A.对象名称 / B.属性名 / C.事件名 / D.方法名)。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As Integer,b As Integer
Dim i As Integer,n As Integer
Dim c1 As String,s1 As String
Dim c2 As String,s2 As String
Dim c3 As String,s3 As String
List1,Clear
s1=“甲乙丙丁戊己庚辛壬癸”
s2=“子丑寅卯辰巳午未申酉戌亥”
s3=“鼠牛虎兔龙蛇马羊猴鸡狗猪”
n=Val(Text1.Text)
For i=n To____①____
a=(i+6)Mod 10
b=(i+8)Mod 12
c1=Mid(s1,a+1,1)
c2=Mid(s2,b+1,1)
c3=Mid(s3,b+1,1)
List1.AddItem____②____+“年”+c1+c2+
“ ”+c3
Next i
End Sub
(3)由上述算法可知,2024年对应的“天干地支”为______________。
解析 (1)代码“Private Sub Command1__Click()”中的Click是事件,List1是对象AddItem是方法。(2)要求从输入年份开始的12个年份及对应的“天干地支”与“生肖”,起始年份为n,从n开始的12个数表示为For i=n To n+11,因此①处代码为n+11;求出i年份的“天干地支”与“生肖”后,在列表框List1中输出,因此②处代码为Str(i)。(3)当n=2024时,a=(2024+6) Mod 10=0,b=(2024+8) Mod 12=4,因此c1=Mid(s1,a+1,1)=“甲”,c2=Mid(s2,b+1,1)=“辰”,故2024年对应的“天干地支”为甲辰。
答案 (1)C A D (2)①n+11 ②Str(i)
(3)甲辰
6.编写VB程序,实现如下功能:在文本框Text1中输入一些以空格隔开的单词,最后一个单词以“.”结尾,表示输入完毕,单击“单词统计”按钮Command1,在列表框List1中显示输入的各个单词,在文本框Text2中显示单词个数,程序运行效果如下图所示。
(1)要使按钮上显示“单词统计”,可将其__________属性的属性值修改为“统计单词个数”。
(2)为实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integerr, k As Integer
Dim word(1 To 100) As String, s As String, st As String, ch As String
s = Text1.Text
n = Len(s)
k = 0
For i = 1 To n
________①________
If ch = “ ” Or ch = “.” Then
k = k + 1
__________②________
st = “ ”
Else
________③________
End If
Next i
For i = 1 To k
List1.AddItem word(i)
Next i
Text2.Text = Str(k)
End Sub
解析 (1)本小题主要考查的是按钮的Caption属性。(2)①处代码表示从字符串s中取出一个字符,因此代码为ch = Mid(s, i, 1);②处代码表示当前单词结束,将其存储在数组word中,当前单词是第k个,单词存储在字符串变量st中,因此②处代码为word(k)=st;③处代码表示当前单词还未完成,则将当前字符拼接在字符串st中,因此③处代码为st=st+ch。
答案 (1)Caption (2)①ch = Mid(s, i, 1)
②word(k)=st ③st=st+ch
7.编写一个批改输入字母的程序,实现如下功能:随机生成20个大小写字母,并显示在标签Label2中,在文本框Text1中输入字母,输入完毕,单击“确定并批改”按钮Command1,在标签Label4中显示正确字符数、错误字符数及正确率。
已知大写字母“A”的ASCII码为65,小写字母“a”的ASCII值为97。程序运行界面如下图所示。
(1)要使窗体的标题显示为“批改程序”,则应在窗体Form的____属性中输入“字母批改程序”。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim s As String
Const n=20
Private Sub Command1_Click()
Dim i As Integer, right As Integer, rate As Single, wrong As Integer
Dim s1 As String
s1 = Text1.Text
right = 0
For i = 1 To n
If ________①________ Then right = right + 1
Next i
________②________
rate =________③________
Label4.Caption = “正确字符”+Str(right) + “个,错误字符” + Str(wrong) + “ 个,正确率:” + Str(rate) + “%”
End Sub
Private Sub Form_Load()
Dim i As Integer, code As Integer
Randomize
For i = 1 To n
code = Int(Rnd() * 2 + 1)
If code = 1 Then
s = s + Chr(Int(Rnd * 26) + 65)
Else
s = s + Chr(Int(Rnd * 26) + 97)
End If
Next i
Label4.Caption = s
End Sub
解析 本题主要考查的是字符串比较。①处代码的功能为将输入的字符与原文对应位置上的字符逐一进行比较,因此,①处代码为Mid(s1, i, 1) = Mid(s, i, 1);输入的正确字符为right,总字符数为n(20),则错误字符数wrong=20-right,因此②处代码为wrong=n-right或wrong=20-right;③处代码是计算正确率rate,由于正确率采用百分比,因此将结果乘以100,即③处代码为(right/n)*100或(right/20)*100。
答案 (1)Caption
(2)①Mid(s1,i,1)=Mid(s,i,1) ②wrong=n-right或wrong=20-right ③(right/n)*100或(right/20)*100
8.编写一个VB程序,实现如下功能,在文本框Text1中输入一串小写的英文字母,单击“统计”按钮Command1,在文本框Text2中输出字母升序段个数,要求每个升序段中字母数量必须超过三个(如输入abctefefghk,则满足条件的升序段序列为abct,efghk,个数为:2),程序运行界面如下图所示。
(1)该程序窗体上共有________个类(填数字)。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String
Dim m As Integer, n As Integer, k As Integer, t As Integer, i As Integer
s = Text1.Text
n = Len(s)
k = 1: m = 0: t = 0
For i = 2 To n
If________①________ Then
k = k + 1
t = 0
Else
t = 1
End If
If k > 3 And ________②__________ Then
m = m + 1
k = 1
End If
Next i
Text2.Text = Str(m)
End Sub
(3)若文本框Text1看输入内容abgcdefkuvgh1,单击“统计”按钮后,文本框Text2中显示的内容是____________。
解析 (1)本小题主要考查的是VB的类。程序界面上共有三个类,分别是文本框、标签和按钮。
(2)从For循环中i的初值为2可知,当前第i个字符与前面的字符(i-1)进行比较,求升序段个数,因此①处代码为Mid(s, i, 1)>Mid(s, i-1, 1);t=0时,表示当前字符仍与前面字符构成一个升序段,当t=1时,表示当前字符与前面字符不构成升序段,即当前升序段结束,因此②处代码为t=1。
(3)本小题主要考查的是算法的实际应用。观察字符串可知,满足条件的升序段为1个。
答案 (1)3 (2)①Mid(s, i, 1)>Mid(s, i-1, 1)
②t=1 (3)1
9.以下程序的功能是从原字符串中删除指定的字符串。 文本框Text1为原字符串,文本框Text2为待删除字符,单击“删除”按钮后,在文本框Text3中输出处理结果,在文本框Text4中输出删除字符串次数。程序界面和代码如下:
Private Sub Command1_Click()
Dim t1 As String, t2 As String, s As String
Dim n1 As Integer, n2 As Integer, i As Integer
t1 = Text1.Text
t2 = Text2.Text
n1 = Len(t1): n2 = Len(t2)
i = 1 :m=0
Do While i <= n1
If Mid(t1, i, n2) = t2 Then
________①________
m = m + 1
Else
s = s +________②________
i = i + 1
End If
Loop
Text3.Text = s
Text4.Text = Str(m)
End Sub
(1)在VB程序代码中的“Command1_Click”指的是________。
A.对象名 B.属性名
C.事件名 D.事件处理过程名
(2)在程序划线处应填入的合适代码。
(3)如图,将待删字符改为“t”,执行程序后,Text4中输出值为 ________。
解析 (1)本小题主要考查的是事件处理过程。(2)①处代码表示在原字符串中找到待删除字符,因此将光标跳至i+n2的位置,然后重新比较,因此①处代码为i = i + n2;②处表示当前原字符串取出的子串不是待删子串,则将原字符串中当前位置的字符拼接在字符串s中,因此②中代码为Mid(t1, i, 1)。
答案 (1)D (2)①i = i + n2 ②Mid(t1, i, 1)
(3)3
10.一般使用“点分十进制”的方式来表示IP地址,这种表示方法可描述为:
①将IP地址划分为四组十进制数;②每组数的表示范围是0~255;③组与组之间用点号“.”隔开。例如 62.163.1.122就是一个合法的IP地址,小明同学据此编写了IP地址判断程序,其运行界面如下:
实现上述功能的VB程序如下,请回答以下问题:
(1)根据程序可知,“IP判断”按钮的名称是________________________。
(2)请将程序中的划线处代码补充完整。
Private Sub butt1_Click()
Dim ip As String,s As String, flag As Boolean
Dim n As Integer, t As Integer, i As Integer
ip = Text1.Text
n = 0
flag = True
For i = 1 To Len(ip)
s = Mid(ip, i, 1)
If s < > “.” Then
t =________①________
Else
t = 0
n = n + 1
End If
If ________②________ Then
flag = False
Exit For
End If
Next i
If flag Then
List1.AddItem ip + “是合法IP。”
Else
List1.AddItem ip + “是非法IP。”
End If
End Sub
解析 本题考查的是字符串处理。(1)从程序的事件处理过程名butt1_Click()可知按钮的名称为butt1;(2)①根据上下文可知,这里求t的表达式,变量t用于存储IP中的一组整数,方法为从高位逐个取出数字字符,然后将t扩大10倍后加上当前数字,因此①处代码为t*10+val(s)。②处判断IP地址是否合法的条件表达式,根据题意,某组十进制数t>255或者组数超过4组时(3个“.”),为非法IP,这里的n表示“.”的个数,因此②处代码t>255 Or n>3,也可写为t>255 Or n>=4。
答案 (1)butt1 (2)①t*10+Val(s)
②t>255 Or n>3或t>255 Or n>=4
11.打印图形。下列VB程序的功能是:根据文本框中输入的值输出数字三角形图形,数字三角形形状如图1所示。
图1
程序运行时,在文本框Text1中输入一个整数,单击“print”按钮Command1,在列表框List1中显示数字三角形。程序运行效果如图2所示。
图2
实现上述功能的VB代码如下,请在程序划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, j As Integer
Dim s As String
n = Val(Text1.Text)
For i = 1 To 2 * n - 1
If ________①________ Then
s = “ ”
For j = 1 To i
________②________
Next j
List1.AddItem s
Else
s = “ ”
For j = 1 To ________③________
s = s + Str(j)
Next j
List1.AddItem s
End If
Next i
End Sub
解析 外循环控制图形的行数,内循环控制每行的字符情况,图形共有2*n-1行组成。图形分为上三角形和下三角形两部分进行,第1行至第n行,第i行输出i个字符(1~i),第n+1行至第2*n-1行,第i行输出2*n-i个字符。
答案 ①i <= n ②s=s+Str(j) ③2 * n - i
12.简化的VB词频统计程序。程序功能为:在文本框Text1中输入一篇英文文章,在文本框Text2中输入一个英文单词,单击“查找”按钮Command1后,在文本框Text3中显示这个英文单词出现的次数。程序运行界面如图所示。
查找的英文单词由连续的ASCII英文字符(a~z或A~Z)组成。组合词程序会进行分解,如river-small可拆分为2个单词river和small。查找的英文单词不区分大小写。
实现上述功能的VB程序如下,但程序加框处语句有错,请改正。
Private Sub Command1_Click()
Dim article As String, f As String, count As Integer
Dim i As Integer, begin As Integer, s As String
article = Text1.Text
f = Text2.Text
count = 0
begin = 1
For i = 1 To Len(article)
t = Mid(article, i, 1)
If Not (t >= “A” And t <= “Z” Or t >= “a” And t <= “z”) Then
If i> begin Then
s = ′(1)
If LowerCase(f) = LowerCase(s)
Then count = count + 1
End If
begin = i + 1
End If
Next i
Text3.Text = “出现次数为:” + Str(count) + “次”
End Sub
Function LowerCase(word As String) As String
Dim i As Integer, c As String
For i = 1 To Len(word)
c = Mid(word, i, 1)
′小写英文字母的ASCII码值比大写字母的值大32
If c >= “A” And c <= “Z” Then c =
′(2)
LowerCase = LowerCase + c
Next i
End Function
程序中加框(1)处应改正为_____________________________________________;
加框(2)处应改正为_________________________________________________。
解析 (1)处代码表示从文章中取出一个单词,并将单词字母全部转换为小写字母与查找单词比较,如果相等,则进行计数,因此(1)处代码应改为Mid(article, begin, i - begin);(2)自定义函数LowerCase的功能是将单词中的字母全部转化为小写字母,大写字母C转为小写字母c的方法为:首先将求出大写字母C的Ascii码值(ASC(c)),然后加上32后转换为字符(Chr(Asc(c)+32)),即为对应的小写字母,因此(2)处代码应改为Chr(Asc(c) + 32)。
答案 (1)Mid(article, begin, i - begin)
(2)Chr(Asc(c) + 32)
专项测试三 字符串处理
1.性别识别。程序运行时,在文本框Text1中输入18位的身份证号,单击Command1按钮,在标签Label1中显示其性别。判断方法为:判断身份证号中第17位上的数字,若是奇数则表示男性,偶数则表示女性。程序运行界面如下图所示。
为实现上述功能,在划线处填入合适的语句。
Private Sub Command1_Click()
Dim x As String, y As String,n As Integer
x = Text1.Text
______①______
If n mod 2 = 1 Then
y = “男”
Else
y = “女”
End If
______②______
End Sub
2.下面VB程序的功能是:在左边列表框List1中选择一个车牌,单击“判断”按钮Command1,根据该车牌最后一位数字进行限行判断(若为偶数则奇数日期限行,奇数则偶数日期限行),并将判断结果显示在文本框Text2中。程序运行界面如下图所示。
为了实现上述功能,请在划线处填入合适的代码。
Private Sub______①______′单击List1,将列表框中选中的内容显示在Text1中
Text1.Text = List1.List(List1.ListIndex) ′将当前选中的List1的内容显示在Text1中
Text2.Text = “ ”
End Sub
Private Sub Command1_Click( )
Dim i As Integer,cp As String, c As String
cp = Text1.Text
For i = ______②______ To 4 Step -1
c = Mid(cp, i, 1)
If c >= “0” And c <= “9” Then ′若c是数字字符,则记录该数字
If Val(c) mod 2=1 Then
Text2.Text = “偶数日期限行”
Else
Text2.Text = “奇数日期限行”
______③______
Exit For ′退出循环
End If
Next i
End Sub
3.编写VB程序,实现如下功能:在文本框Text1中输入英语短文(短文中只包含大小字母、空格和标点符号),并以“.”表示短文输入结束,单击“查找”按钮Command1,在标签Label3中显示短文中最长的单词,程序运行效果如图所示。
(1)要使窗体标题栏上显示“寻找最长的单词”,应将窗体的________属性的值修改为“寻找最长的单词”。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, k As Integer, max As Integer
Dim s As String, st As String, ch As String, word As String
s = Text1.Text
______①______
k = 0
max = 0
t = “ ”
For i = 1 To n
ch = Mid(s, i, 1)
If (ch>= “a” And ch<= “z”) Or (ch>= “A” And ch<= “Z”) Then
__________②________
k = k + 1
Else
If k > max Then
max = k
________③________
End If
st = “ ”
________④________
End If
Next i
Label3.Caption = word
End Sub
4.编“字符串生成”程序,实现如下功能:在文本框Text1中(字符位置)输入多个正整数 (以“,”为分割符和结束符),单击“生成”按钮Command1,程序以这些整数为位置信息,依次从文本框Text2中(字典内容)提取字符并连接成字符串,最后将字符串显示在标签Label1中(生成内容)。程序运行界面如下图所示。
(1)要使程序运行时,窗体Form1标题显示“字符串生成”,可在Form_Load事件过程屮添加语句________(单选,填字母:A.Form1 = “字符串生成” / B.Form1.Text=“字符串生成” / C. Form1.Caption=“字符串生成”)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String, t As String ,st1 As String, st2 As String, c As String
Dim i As Integer, p As Integer, n As Integer
s = “ ”: t = “ ”
st1 = Text1.Text
st2 = Text2.Text
n = Len(st1)
For i = 1 To n
________①________
If c = “,” Then
p = Val(t)
________②________
t = “ ”
Else
________③________
End If
Next i
Label1.Caption = s
End Sub
(3)若文本框Text1中输入内容的结束符缺失(即输入内容为1,18,9,9),单击“生成”按钮后,标签Label1中显示的内容是________。
5.编写VB程序,实现如下功能:在文本框Text1中输入某一年份,单击“天干地支与生肖”按钮Command1,在列表框List1中输出该年份开始的12个年份及对应的“天干地支”与“生肖”,运行界面如图所示,程序代码如下。
(1)代码“Private Sub Command1_Click()”中的Click是________, List1.AddItem中的List1是________,AddItem是________(单选,填字母:A.对象名称 / B.属性名 / C.事件名 / D.方法名)。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As Integer,b As Integer
Dim i As Integer,n As Integer
Dim c1 As String,s1 As String
Dim c2 As String,s2 As String
Dim c3 As String,s3 As String
List1,Clear
s1=“甲乙丙丁戊己庚辛壬癸”
s2=“子丑寅卯辰巳午未申酉戌亥”
s3=“鼠牛虎兔龙蛇马羊猴鸡狗猪”
n=Val(Text1.Text)
For i=n To____①____
a=(i+6)Mod 10
b=(i+8)Mod 12
c1=Mid(s1,a+1,1)
c2=Mid(s2,b+1,1)
c3=Mid(s3,b+1,1)
List1.AddItem____②____+“年”+c1+c2+
“ ”+c3
Next i
End Sub
(3)由上述算法可知,2024年对应的“天干地支”为______________。
6.编写VB程序,实现如下功能:在文本框Text1中输入一些以空格隔开的单词,最后一个单词以“.”结尾,表示输入完毕,单击“单词统计”按钮Command1,在列表框List1中显示输入的各个单词,在文本框Text2中显示单词个数,程序运行效果如下图所示。
(1)要使按钮上显示“单词统计”,可将其__________属性的属性值修改为“统计单词个数”。
(2)为实现上述功能,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integerr, k As Integer
Dim word(1 To 100) As String, s As String, st As String, ch As String
s = Text1.Text
n = Len(s)
k = 0
For i = 1 To n
________①________
If ch = “ ” Or ch = “.” Then
k = k + 1
__________②________
st = “ ”
Else
________③________
End If
Next i
For i = 1 To k
List1.AddItem word(i)
Next i
Text2.Text = Str(k)
End Sub
7.编写一个批改输入字母的程序,实现如下功能:随机生成20个大小写字母,并显示在标签Label2中,在文本框Text1中输入字母,输入完毕,单击“确定并批改”按钮Command1,在标签Label4中显示正确字符数、错误字符数及正确率。
已知大写字母“A”的ASCII码为65,小写字母“a”的ASCII值为97。程序运行界面如下图所示。
(1)要使窗体的标题显示为“批改程序”,则应在窗体Form的____属性中输入“字母批改程序”。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim s As String
Const n=20
Private Sub Command1_Click()
Dim i As Integer, right As Integer, rate As Single, wrong As Integer
Dim s1 As String
s1 = Text1.Text
right = 0
For i = 1 To n
If ________①________ Then right = right + 1
Next i
________②________
rate =________③________
Label4.Caption = “正确字符”+Str(right) + “个,错误字符” + Str(wrong) + “ 个,正确率:” + Str(rate) + “%”
End Sub
Private Sub Form_Load()
Dim i As Integer, code As Integer
Randomize
For i = 1 To n
code = Int(Rnd() * 2 + 1)
If code = 1 Then
s = s + Chr(Int(Rnd * 26) + 65)
Else
s = s + Chr(Int(Rnd * 26) + 97)
End If
Next i
Label4.Caption = s
End Sub
8.编写一个VB程序,实现如下功能,在文本框Text1中输入一串小写的英文字母,单击“统计”按钮Command1,在文本框Text2中输出字母升序段个数,要求每个升序段中字母数量必须超过三个(如输入abctefefghk,则满足条件的升序段序列为abct,efghk,个数为:2),程序运行界面如下图所示。
(1)该程序窗体上共有________个类(填数字)。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim s As String
Dim m As Integer, n As Integer, k As Integer, t As Integer, i As Integer
s = Text1.Text
n = Len(s)
k = 1: m = 0: t = 0
For i = 2 To n
If________①________ Then
k = k + 1
t = 0
Else
t = 1
End If
If k > 3 And ________②__________ Then
m = m + 1
k = 1
End If
Next i
Text2.Text = Str(m)
End Sub
(3)若文本框Text1看输入内容abgcdefkuvgh1,单击“统计”按钮后,文本框Text2中显示的内容是____________。
9.以下程序的功能是从原字符串中删除指定的字符串。 文本框Text1为原字符串,文本框Text2为待删除字符,单击“删除”按钮后,在文本框Text3中输出处理结果,在文本框Text4中输出删除字符串次数。程序界面和代码如下:
Private Sub Command1_Click()
Dim t1 As String, t2 As String, s As String
Dim n1 As Integer, n2 As Integer, i As Integer
t1 = Text1.Text
t2 = Text2.Text
n1 = Len(t1): n2 = Len(t2)
i = 1 :m=0
Do While i <= n1
If Mid(t1, i, n2) = t2 Then
________①________
m = m + 1
Else
s = s +________②________
i = i + 1
End If
Loop
Text3.Text = s
Text4.Text = Str(m)
End Sub
(1)在VB程序代码中的“Command1_Click”指的是________。
A.对象名 B.属性名
C.事件名 D.事件处理过程名
(2)在程序划线处应填入的合适代码。
(3)如图,将待删字符改为“t”,执行程序后,Text4中输出值为 ________。
10.一般使用“点分十进制”的方式来表示IP地址,这种表示方法可描述为:
①将IP地址划分为四组十进制数;②每组数的表示范围是0~255;③组与组之间用点号“.”隔开。例如 62.163.1.122就是一个合法的IP地址,小明同学据此编写了IP地址判断程序,其运行界面如下:
实现上述功能的VB程序如下,请回答以下问题:
(1)根据程序可知,“IP判断”按钮的名称是________________________。
(2)请将程序中的划线处代码补充完整。
Private Sub butt1_Click()
Dim ip As String,s As String, flag As Boolean
Dim n As Integer, t As Integer, i As Integer
ip = Text1.Text
n = 0
flag = True
For i = 1 To Len(ip)
s = Mid(ip, i, 1)
If s < > “.” Then
t =________①________
Else
t = 0
n = n + 1
End If
If ________②________ Then
flag = False
Exit For
End If
Next i
If flag Then
List1.AddItem ip + “是合法IP。”
Else
List1.AddItem ip + “是非法IP。”
End If
End Sub
11.打印图形。下列VB程序的功能是:根据文本框中输入的值输出数字三角形图形,数字三角形形状如图1所示。
图1
程序运行时,在文本框Text1中输入一个整数,单击“print”按钮Command1,在列表框List1中显示数字三角形。程序运行效果如图2所示。
图2
实现上述功能的VB代码如下,请在程序划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, j As Integer
Dim s As String
n = Val(Text1.Text)
For i = 1 To 2 * n - 1
If ________①________ Then
s = “ ”
For j = 1 To i
________②________
Next j
List1.AddItem s
Else
s = “ ”
For j = 1 To ________③________
s = s + Str(j)
Next j
List1.AddItem s
End If
Next i
End Sub
12.简化的VB词频统计程序。程序功能为:在文本框Text1中输入一篇英文文章,在文本框Text2中输入一个英文单词,单击“查找”按钮Command1后,在文本框Text3中显示这个英文单词出现的次数。程序运行界面如图所示。
查找的英文单词由连续的ASCII英文字符(a~z或A~Z)组成。组合词程序会进行分解,如river-small可拆分为2个单词river和small。查找的英文单词不区分大小写。
实现上述功能的VB程序如下,但程序加框处语句有错,请改正。
Private Sub Command1_Click()
Dim article As String, f As String, count As Integer
Dim i As Integer, begin As Integer, s As String
article = Text1.Text
f = Text2.Text
count = 0
begin = 1
For i = 1 To Len(article)
t = Mid(article, i, 1)
If Not (t >= “A” And t <= “Z” Or t >= “a” And t <= “z”) Then
If i> begin Then
s = ′(1)
If LowerCase(f) = LowerCase(s)
Then count = count + 1
End If
begin = i + 1
End If
Next i
Text3.Text = “出现次数为:” + Str(count) + “次”
End Sub
Function LowerCase(word As String) As String
Dim i As Integer, c As String
For i = 1 To Len(word)
c = Mid(word, i, 1)
′小写英文字母的ASCII码值比大写字母的值大32
If c >= “A” And c <= “Z” Then c =
′(2)
LowerCase = LowerCase + c
Next i
End Function
程序中加框(1)处应改正为_____________________________________________;
加框(2)处应改正为_________________________________________________。