1.随机产生集合{T, 1}中任意一个数的VB表达式是()
A.Int(Rnd*2)-1 B. Int (Rnd*3)-1 C. Int(Rnd*3)\\2-l D. Tnt (Rnd*2)*2-1
2.下列VB表达式中,值最大的是( C ) A. Val(Mid(\, 6, 2)) B. Int((Rnd - Rnd + 1) / 2) * 100 C. 6790 Mod 1000 \\ 10 D.Int(Rnd * 80) + 10
3.下列VB表达式的值为False的是(A )
A.50 Mod 100 \\ 50 = 1 B.Int(2 * Rnd - Rnd) \\ 2 = 0 C.Int(Rnd * 10) / 5 < 2 D.\4.下列四个选项中表达式的值与其他不同的是 ( D )
5.下列表达式的运算结果不等于9的是(以下的字符串都不含空格)( B ) A.Len(\选考\)+Sqr(9) C.Val(Mid(\
B.Asc(\
D.Abs(Int(-8.4))
6.下列VB 表达式中,可取到最小值中,最小的为( ) A.Rnd-99
B.Fix((-Rnd*45))*2-10 C.(Rnd-Rnd)*100 D.Int(-Rnd*45)*2-10
7.下列 VB 表达式中,只随机产生 10 至 100 之间的奇数的是(D ) A. Int(Rnd * 90 ) + 10 B. Int(Rnd * 90 ) + 11 C. Int(Rnd * 45 ) * 2 + 10 D.Int(Rnd * 45 ) * 2 + 11 8.有如下VB程序段:
c = 0: p = 0: q = 0
For i = 1 To 5
b(i) = a(6 - i) Next i
For i = 1 To 3
If (b(i) + b(i + 1) * 2 + b(i + 2) * 3) Mod 5 = 0
Then p = p + 1 Else
q = q + 1 End If
If p <= q Then c = c + 1 Next i
数组元素a(1)到a(5)的值依次为“2,1,2,3,4”,执行该程序段后,c的值为( C )
A.0 B.1 C.2 D.3 9.有如下VB程序段: s =
Text1.Text ans = \: k =4
i = k - 1: j = k + 1: n = Len(s) Do While k > 0
If Mid(s, i, 1) = Mid(s, j, 1) Then ans = ans + Mid(s, i, 1): k = k - 1 End If
i = (n + i - 2) Mod n + 1 j = j Mod n + 1 Loop
Label1.Caption = ans
在文本框Text1中输入“banana”,执行程序后,标签Label1中显示的内容是( B )
A. nana B.naba C.naan D.naaa 10.有如下VB程序段:
s = Text1.Text: Sum = 0: t = 0: cnt = 1 For i = 1 To Len(s) c = Mid(s, i, 1)
If c >= \ j = j + 1 Else
If cnt Mod 2 = 1 Then Sum = Sum + Val(Mid(s, i - j, j)) j = 0: cnt = cnt + 1 End If Next i
在文本框text1输入“12d6a3c4f20”,程序运行后Sum的值是( A )
A.15 B.21 C.25 D.45
11.有如下VB程序段:
Dim a(1 To 5) As Integer a(1) = 1
For i = 2 To 5
a(i) = Int(Rnd() * 3) + 3 Next i
For i = 2 To 5
If a(i) Mod 2 = 1 Then a(i) = a(i) + a(i - 1) Else
a(i) = a(i) / 2 End If Next i
执行程序后,a数组各元素可能是(B )
A. 1,2,6,10,13 B. 1,4,9,2,7 C. 1,5,8,15,22 D. 1,2,5,11,1
C
13.有如下VB 程序段: b = 0
For a = 1 To 10 b = a + b a = a + 3 Next a c = a + b
执行该程序段后,变量 c 的值为(c) A.15 B.22 C.28 D.32
14.有如下 VB 程序段 s = Text1.Text
t = Mid(s, Len(s), 1) Max = 0
For i = Len(s) - 1 To 1 Step -1
If Mid(s, i, 1) < Mid(s, i + 1, 1) Then t = t + Mid(s, i, 1) If Len(t) > Max Then
Max = Len(t): ans = t Else
t = Mid(s, i, 1) End If Next i
Text2.Text = ans
在文本框 Text1 中输入“aaabcdebb”,执行该程序段后,文本框 Text2 中显示的是( D ) A. aaabcde B. aaa C. abcde D.edcba
15.有如下 VB 程序段
Private Sub Command1_Click() Dim a(1 To 6) As Integer Dim d(1 To 6) As Integer
a(1) = 28: a(2) = 21: a(3) = 30: a(4) = 11: a(5) = 12: a(6) = 29
Const n = 6 Max = 0
For i = 1 To n d(i) = 0
For j = 1 To i - 1
If a(j) < a(i) Then d(i) = d(i) + 1 Next j
If d(i) > Max Then
Max= d(i)
Next i
End Sub
执行完以上程序后,Max 的值为( )
A 5 B.2 C.3 D.4
16.有如下 VB 程序段:
Dim a(1 To 10) As Integer, i As Integer, j As Integer a(1) = 1 : a(2) = 1 For i = 3 To 5
a(i) = 1
For j = i - 1 To 2 Step -1 a(j) = a(j) + a(j - 1) Next j Next i
Text1.Text = Str(a(3))
该程序段运行后,在文本框 Text1 中显示的内容是( D ) A. 1 B. 3 C. 4 D. 6
17.在一个数组中存储了若干个学生的技术成绩小题分,其中a(1)存储学生个数,从a(2)开始按顺序存储小题分数据。每个学生有33个小题的数据,例:a(2)—a(13)是“学生1”的信息客观题得分,a(27)—a(30)是“学生1”的信息主观题得分;a(14)—a(26)是“学生1”的通用客观题得分,a(31)—a(34)是“学生1”的通用主观题得分。具体如下表:
小李根据上述描述,设计了一个统计所有学生信息各题得分率的算法。程序运行后,首先在列表框List1中显示信息技术各小题得分,单击“计算”按钮“Command1”,在列表框List2中显示信息各题的题号和得分率,并在文本框Text1中输出所有学生的信息平均分(平均分=各题得分率*分值之和)。
算法的VB程序如下,回答下列问题。
(1) 根据题目描述,使用如图所示数据,a(95)的数值是 。 (2) 在程序划线处填上合适代码,使程序完整 Dim a(1 To 1000) As Integer, n As Integer Private Sub Form_Load()
‘读入数据到数组a,数据个数n,代码略 End Sub
Private Sub Command1_Click() Dim i As Integer, j As Integer
Dim fz(1 To 16) As Integer 'fz数组存储信息各题满分值 Dim b(1 To 33) As Single '数组b存储全卷各题的平均得分 For i = 1 To 16 '数组fz存储信息16个小题的满分值
If i <= 12 Then fz(i) = 2
fz(13) = 4: fz(14) = 8: fz(15) = 7: fz(16) = 7 Next i
For i = 2 To n '把数组a数据分别统计到各题中,计算各题总得分
① b(j) = a(i) + b(j) Next i
For i = 1 To 33 If i <= 12 Then
b(i) = b(i) /(a(1) * fz(i)) ’计算信息客观题各题的得分率 ElseIf i >= 26 And i <= 29 Then b(i) = ② End If Next i
For i = 1 To 16
If i > 12 Then j = i + 13 Else j = i
b(j) = Int(b(j) * 1000 + 0.5) / 10 '对结果四舍五入保留1位小数 List2.AddItem Str(i) + Str(b(j)) + \ave= ③ Next i
Text1.Text = Str(ave / 100) End Sub
(1)1 (1分)
(2)①j = (i -2) Mod 33 + 1(2分)
②b(i) / (fz(i -13) * a(1))(2分) ③ave = ave + b(j) * fz(i) (2分)
18.(2024·6月浙江选考)小宇为选定班级参赛作品编写了一个VB程序,设计如下:在文本框Text1内输入5位评委对3个作品的评分数据(评委对作品的评分数据出3位十进制数组成,第1位对应作品编号,第2、3位对应作品得分,分值范围为[60,99]。如“275”表示2号作品得分75)。单击“计分”按钮后,在标签Label1中输出3个作品的平均分,在标签Label2中输出参赛的作品(选择最高平均分作品参赛,若最高平均分存在并列,则从并列作品中随机抽取):程序运行界面如图所示。
(1)“计分”按钮的对象名为________。
(2)程序部分代码如下,请在划线处填入合适代码。 Private Sub jf_Click()
Dim s As String, d As String, i As Integer Dim f As Single, f2 As Single, f3 As Single s = Text1.Text i = 1
Do While____①____ d = Mid(s, i, 3)
If Mid(d, 1, 1) = “1” Then f1 = f1 + Val(Mid(d, 2, 2)) ElseIf Mid(d, 1, 1) =“2” Then f2 = f2 + Val(Mid(d, 2, 2)) Else
f3 = f3 + Val(Mid(d, 2, 2)) End If ②____ Loop
Label1.Caption -“作品1平均分为:” + Str(f1 / 5) +“作品2平均分为!” + Str(f2 / 5) +“作品3平均分为:” + Str(f3 / 5)
′以下省略“处理并列最高平均分,并在Label2中输出选取的参赛作品”的代码 End Sub
(3)运行该程序时,在文本框Text1中以不同的顺序输入原评分数据:
380/295/283/170/180/385/372/285/190/180/390/384/272/170/276,单击“计分”按钮,则Label1中显示的结果____________ (选填:会/不会)发生改变。 答案 (1)jf (2)①i <= Len(s) 或i< Len(s) 或i<= 57及以上 或i<58及以上 或其他可行答案 ②i=i+4 (3)不会
19.(2024·4月浙江选考)小王设计“模拟撤销”程序,需要用一个“历史记录”, “历史记录”是在对字符串s进行插入或删除时,将每步操作信息依次存储得到的,操作信息由操作符(“+”表示插入,“-”表示删除)、操作位置和操作字符串(只包含英文字母)构成,例如,“+23abc”表示在字符串s第23个位插入了“abc”, “模拟撤销”过程按照“历史记录”的逆序进行,将字
符串s的内容恢复到初始状态。对字符串“Book”的操作与撤销过程,如图a所示。
小王编写的“模拟撤销”VB程序如下,文本框 Text1中的内容是撤销前字符串,文本框Text2中的内容是历史记录,单击“撤销”按钮Command1后,在标签Label1中显示撤销过程,程序运行界面如图b所示。
(1)实现上述功能的VB程序如下,在程序中出现的对象没有Caption属性的是________。(选填,填字母:A.Label1 /B.Command1 /C.Text1和Text2) (2)请在划线处填入合适代码。 Private Sub Command1_Click()
Dim s As String, t As String, ch As String Dim c As String, num As String, ss As String Dim n As Integer, i As Integer s = Text1.Text: t = Text2.Text c =“ ”: num =“ ”: ss = s For i = Len(t) To 1 Step -1 ____①______
If ch >=“a” And ch <=“z” Or ch >=“A” And ch =“Z” Then
c = ch + c
ElseIf ch >=“0” And ch <=“9” Then
num = ch + num Else
n = Val(num) If ch =“-” Then
s = Mid(s, 1, n - 1) + ____②____
Else
s = Mid(s, 1, n - 1) + Mid(s, n + Len(c), Len(s) - n - Len(c) + 1)
End If
ss = ss +“→” + s c =“ ”: num =“ ”
End If Next i
Label1.Caption = ss End Sub
(3)运行该程序,若文本框Text1中的内容是“April”,文本框Text2中的内容是“-3p+3ri-6e”,单击撤销按钮,For循环语句执行完成后,字符串s的值是“________”。
答案 (1)C (2)①ch = Mid(t,i,1) ②c + Mid(s, n, Len(s)-n+1) (3)”Apple”
20.(2024·11月浙江选考)在平面坐标系中,给定一组有序的点。从原点出发,依次用线段连接这些点,构成一条折线。要求编写一个“计算折线长度”的程序,功能如下:在文本框Text1中依次输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算这条折线的长度,结果显示在Label1中。例如,三个点的坐标(5,10)、(8,12)、(6,17)输入格式如图所示。
(1)Cmd对象属于________类。(单选,填字母:A.Form/B.Label/ C.TextBox/D.CommandButton)
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Cmd_Click( )
Dim i As Integer,j As Integer,k As Integer
Dim x1 As Single,y1 As Single,x2 As Single,y2 As Single Dim d As Single,Totald As Single,v As Single,s As String s=____①____
x1=0:y1=0 ′出发点为坐标原点 k=1:j=1:Totald=0 For i=1 To Len(s)
If Mid(s,i,1)=“,” Then
v=Val(Mid(s,j,i-j)) ′提取坐标值,保存在变量v中 j=i+1
If ____②____ Then x2=v Else y2=v
d=Sqr((x2-x1)^2+(y2-y1)^2) Totald=Totald+d x1=x2:y1=y2 End If k=k+1
End If Next i
Label1.Caption=Str(Totald) End Sub
(3)运行该程序,输入数据如上图所示,程序执行到循环结束时,变量k的值为________。
答案 (1)D (2)①Text1.Text ②k Mod 2=1 (3)7
21.小王编写了一个实现文字查找替换功能的VB程序,运行界面如图所示。文本框Text1显示原文内容,Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Command1后,Text4显示查找替换的结果,Text5中显示替
换的次数,Text6显示“查找内容”在原文中的起始位置。
实现上述功能的VB程序如下,但加框处代码有错,请改正。 Private Sub Command1_Click()
Dim s As String, resule As String, pos As String Dim count As Integer, i As Integer i = 1: count = 0
resule =“ ”: pos =“ ” Do While i <= Len(Text1.Text)
s = Mid(Text1.Text, i, Len(Text2.Text)) If s = Text2.Text Then result = result + Text3.Text count = count + 1
pos = pos + Str(count) ′(1) i = i + Len(Text2.Text)
Else
result = result + Text2.Text ′(2) i = i + 1
End If Loop
Text4.Text = result Text5.Text = Str(count) Text6.Text = pos End Sub
答案 (1)Str(i) (2)result=result+ Mid(text1.text,i,1)
22.单词倒序加密法。把明文中每个单词首尾颠倒进行加密,空格、标点等其他字符按原来顺序输出。在文本框Text1中输入密文,单击“解密”按钮Command1,按加密的规则,在文本框Text2中输出解密后的字符。程序运行时的界面如图所示。
实现上述功能的VB程序如下,请在划线处填入合适代码。 Private Sub Command1_Click()
Dim i As Integer, s As String, ch As String Dim newch As String, s1 As String ____①____ newch = ” ” s1 = ” ” i = 1
Do While i <= Len(s) ch = Mid(s, i, 1)
If ch >= ”A” And ch <= ”Z” Or ch >= ”a” And ch <= ”z” Then s1 = ch + s1
Else
newch = ____②____ s1 = ” ”
End If ____③____ Loop
If s1 <> ” ” Then newch = newch + s1 Text2.Text = newch End Sub
答案 ①s = Text1.Text ②newch + s1 + ch ③i = i + 1
23.李雷收到了朋友发给他的一封奇怪的邮件,里面有段内容是由一些数字和符号组成,信上面说了,这段内容是加密后的内容,并给出了具体加密方法(假定原文的英文字母都是大写的),具体方法如下:
①“A”变为一个1到100内的随机数*27+1,“B”变为一个1到100内的随机数*27+2,……,
②每个字母变为数字后会加上一个“-”用来分割数字; ③其他空格和标点字符都按原来的表示。
(1)根据描述,若密文为“1905-1442-”,则表示的是:____________。 (2)请在划线处填入合适的代码。 Private Sub Command1_Click()
Dim s As String, yw As String, ch As String
Dim value As Integer ′用于存储某字母在密文中对应数值的临时变量 s = Text1.Text
value = 0: yw = ” ” For i = 1 To Len(s) ch = Mid(s, i, 1)
If ch >= ”0” And ch <= ”9” Then
value = ____①____ ElseIf ch = ”-” Then
yw = yw +____②____ value = 0 Else
yw = yw + ch End If Next i
Text2.Text = yw End Sub
答案 (1)OK (2)①value * 10 + Val(ch) ②Chr(Asc(“A”) + value Mod 27 - 1)
24.某密钥的加密规则是:取字符ASCII码对应二进制的后4位,如果其值为0到7则显示该值,如果其值8到11则对应显示“东南西北”,如果其值为12到15则对应显示“东南东北西南西北”。程序运行的界面如图所示。
为实现上述功能,请在划线处填入合适的代码。 Private Sub Command1_Click()
Dim s As String, n As Integer, m As Integer, result As String dw = ”东南西北东南东北西南西北” result = ” ” s = Text1.Text For i = 1 To Len(s) c = Mid(s, i, 1) ___①___ If m < 8 Then
result = result + Str(m) ElseIf m >= 8 And m <= 11 Then result = result + Mid(dw, m - 7, 1) ElseIf m >= 12 And m <= 15 Then
result = result + ____②____ End If Next i
Label1.Caption = result End Sub
答案 ①m = Asc(c) Mod 16 ②Mid(dw, 2 * (m - 10) + 1, 2)
25.设计一个程序,在文本框Text1中输入任意一个字母,在列表框List1中按三
角形的方式输出。程序运行界面如下图所示。
实现此功能的VB程序如下,但加框处有错,请改正。 Private Sub Command1_Click()
Dim x As Integer, m As String, s As String, n As Integer Dim i As Integer, j As Integer, k As Integer List1.Clear m = Text1.Text
If m >= ”A” And m <= ”Z” Then n = Asc(”A”) If m >= ”a” And m <= ”z” Then n = Asc(”a”) x = Asc(m) - n ′(1) For i = 1 To x s = ” ” For j = 1 To x - i
s = s + ” ” Next j
For k = 1 To 2 * i - 1
If k <= i Then
s = s + Chr(64 + k) Else
s = s + Chr(64 – i+k) ′(2) End If Next k List1.AddItem s Next i
End Sub
答案 (1)Asc(m) - n + 1 (2)Chr(64 + 2 * i - k)