相关试卷
-
1、小张编写程序,实现把数据temp插入到升序序列中,得到一个新的升序序列,原升序序列各元素已依次存放在数组元素a(1),a(2),a(3),……,a(n)中。他编写的VB程序段如下:
If temp>=a(n) Then
a(n+1)=temp
Else
j=n
Do While j>=1 And temp<a(j)
j=j-1
Loop
End If
要使程序实现上述功能,则方框①②中的语句分别是( )
A、a(j+1)=a(j) a(j+1)=temp B、a(j)=a(j-1) a(j+1)=temp C、a(j+1)=a(j) a(j)=temp D、a(j)=a(j-1) a(j)=temp -
2、数组a中存储n个2位正整数,从倒数第2个数开始,利用对分查找的思想,找到它的所在位置,并插入正确位置中,实现整个数组有序。实现该功能的VB程序如下:
Const n = 100
Dim a(n) As Integer
Private Sub Form_Load()
′产生n个2位正整数,并显示在文本框Text1中,代码略
End Sub
Private Sub Command1_Click( )
Dim i As Integer, j As Integer, left As Integer
Dim right As Integer, m As Integer, t As Integer
i = n-1
Do While i > = 1
________
right = n
t = a(i)
Do While left < = right
m = Int((left + right)/2)
If a(m) = t Then right = m: Exit Do
If a(m) < t Then
left = m + 1
Else
right = m-1
End If
Loop
For j = i To right-1
a(j) = a(j + 1)
Next j
________________
i = i-1
s = “”
For j = 1 To n
s = s + Str(a(j))
Next j
List1.AddItem s
Loop
End Sub
(1)、语句“Listl.AddItem s”中的AddItem是(单选,填字母:A .对象名/B .属性名/C .事件名/D .方法名)。(2)、程序代码中,加框处有错,请改正。(3)、程序代码中,将横线处语句补充完整。(4)、若删除语句“If a(m) = t Then right = m: ExitDo”,则下列说法正确的是(单选,选填字母:A .程序进入死循环,无法正常运行/B .输出排序的结果不变/C .输出排序的结果将改变)。 -
3、有如下VB程序段:
For i=4 To 3 Step-1
If a(i)>a(i-1) Then
tmp=a(i)
For j=i-1 To 1 Step-1
If tmp>a(j) Then Exit For
a(j+1)=a(i)
Next j
a(j+1)=tmp
End If
Next i
数组元素a(1)到(6)的值依次为“19,8,96,92,85,88”,经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为( )
A、8,19,92,96,85,88 B、8,19,85,88,92,96 C、19,8,92,96,85,88 D、19,8,85,92,96,88 -
4、编写一个查找最接近的数的VB程序:程序运行时,在文本框Text1中输人产生随机数的个数(1到100之间),单击命令按钮“产生随机数并升序排列”后,在列表框List1中显示已经按升序排列后的随机整数,然后在文本框Text2中输入要查找的整数,单击命令按钮"查找"后,在标签Label3中显示随机整数序列中与待查找数最接近的整数(当最接近的数有2个时,输出较大的一个)。程序运行效果如图所示:
实现上述功能的VB代码如下,请在横线处填入合适代码。
Dim n As Integer '存储随机数的个数
Dim f(1To100)As Boolean
'f(i)为True时表示随机整数i已经产生过
Dim a(1 To 100)As Integer
'依次存放升序排序后的n个随机数
Private Sub Command1_Click()
'命令按钮“产生随机数并升序排列”的单击事件
Dim i As Integer
Randomize
For i=1 To 100
f(i)=False
Next i
n=Val(Text1. Text)
For i=1 To n
t=Int(Rnd * 100+1)
Do While f(t)=True
t=Int(Rnd * 100+1)
Loop
Next i
j=0
For i=1 To 100 '实现排序并输出
If f(i)=True Then
a(j)=i
List1.AddItem Str(i)
End If
Next i
End Sub
Private Sub Command2_Click()
'命令按钮“查找”的单击事件
Dim key As Integer
key=Val(Text2. Text)
If key <=a(1) Then Label3. Caption=Str(a(1)): Exit Sub
If key >=a(n) Then Label3. Caption=Str(a( n)): Exit Sub
L=1: R=n
Do While L<=R '找到与 key 较为接近的两个数a(R)和a(L)
m=(L+R)\2
If key<=a(m)Then
R=m-1
Else
L=m+1
End If
Loop
If Then
'在a(R)和 a(L)中选出更接近key的数
Label3. Caption=Str(a(R))
Else
Label3. Caption=Str(a L))
End If
End Sub
-
5、下列VB程序段的功能为:生成n个不重复的随机整数,保存在数组a中,并升序排序。
Const n = 6
Dim a(1 To n) As Integer, f(1 To 10) As Boolean
Dim tmp As Integer, i As Integer, j As Integer, t As Integer
‘f数组各元素的初值置为False,代码略
For i = 1 To ⑴
t = Int(1 + Rnd * 10)
If Not f(t) Then
a(i) = t : f(t) = True
For j = ⑵
If a(j) < a(j - 1) Then
tmp = a(j): a(j) = a(j - 1): a(j - 1) = tmp
End If
Next j
Else
⑶
End If
Next i
上述程序段3个方框处的表达式分别为( )
A、(1)n - 1 (2)2 to i(3)i = i - 1 B、(1)n(2)i to 2 Step -1(3)i = i - 1 C、(1)n - 1(2)2 to i(3)t = Int(1 + Rnd * 10) D、(1)n(2)i to 2 Step -1(3)t = Int(1 + Rnd * 10) -
6、某VB程序部分程序段如下:
For i=1 To n-1
For j=________
If a(j)<a(j -1) Then
t=a(j): a(j)=a(j-1): a(j-1)=t
End If
Next j
Next i
为了使此程序段能实现数组a中的数据升序排列,则划线处应填入的代码是( )。
A、1 to n-I B、2 to n-i+1 C、n to i+1 D、i+1 to n -
7、有如下程序段:
s="ABCDEFGH"
i=1
Do While i<=Len(s)
If i mod 2=0 then
s=mid(s, i+1, len(s)-i) & mid(s, 1, i-1)
End If
i=i+1
Loop
Text1.text=s
A、ACEG B、CDEFG C、CDEGH D、GHACD -
8、下列选项中,将数学公式 改写成VB表达式,正确的是( )A、 B、sqr(a+b)/2a* abs(a-b) C、sqr(a+b)/(2*a* abs(a-b)) D、sqr(a+b)/(2a* abs(a-b))
-
9、字符串变量a、b的值分别为98、34,则表达式a+b的值是( )A、98+34 B、9834 C、132 D、"132"
-
10、在VB中,判断一个数c是完全平方数(如4=2^2,4就是完全平方数)的VB表达式是( )A、sqr(c)=int(sqr(c)) B、c/2=int(c/2) C、c mod 2=0 D、c\2=0
-
11、设a=10,b=20,则能在标签label1上显示“c=30”的语句是( )A、label1.caption="c=a+b" B、label1.caption="c"+str(a+b) C、label1.caption="c="+str(a+b) D、label1.caption="c="+val(a+b)
-
12、在VB中,表达式Mid("里约奥运", 2, 2)的结果是( )A、里约 B、奥运 C、约奥 D、约
-
13、在VB中,下列函数的值属于字符串常量的是( )A、Val("10") B、Len("10") C、Str(10) D、Sqr(10)
-
14、某密码强度判断程序功能如下:在文本框Text1中输入由大写字母、小写字母、数字和其他字符4种不同类型字符组成的密码字符串,单击“判断”按钮Cmd1,在标签框Label3中显示判断结果。程序运行界面如图所示。
密码强度判断条件如下:密码长度小于6,则强度为“弱”。在密码长度大于等于6的情况下,若只出现一种字符,则密码强度为“弱”;若出现两种不同字符,则密码强度为“中”,出现三种以上不同字符,则密码强度为“强”。
(1)、Cmd1对象属于类。(单选,填字母:A .Label/B .TextBox/C .CommandButton)(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。Private Sub Cmd1_Click()
Dim n As Integer, i As Integer, m As Integer, s As String, c As String
If n<6 Then
Label3.Caption="弱"
Else
s="0000"
For i=1 To n
c=Mid(Text1.Text, i, 1)
If c>="0" And c<="9" Then
Mid(s, 4, 1)="1" '将字符串s第4位上的字符替换为"1"
ElseIf c>="A" And c<="Z" Then
Mid(s, 3, 1)="1"
ElseIf c>="a" And c<="z" Then
Else
Mid(s, 1, 1)="1"
End If
Next i
m=0
For i=1 To 4
If Mid(s, i, 1)="1" Then
Next i
If m<2 Then
Label 3.Caption="弱"
ElseIf m=2 Then
Label 3.Caption="中"
Else
Label3.Caption="强"
End If
End If
End Sub
(3)、若文本框 Text1中输入的内容为“a26$gh2!”,则单击“判断”按钮Cmd1,事件过程运行结束时,变量s的值为。 -
15、一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26就是一个A类数。以下VB程序的功能:寻找前1000个自然数中所有A类数在List1中输出,并将统计个数在Text1中输出。请回答以下问题:(1)、十进制数37(选填:是/不是)A类数。(2)、请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Integer, n As Integer
Dim s As Integer 's为A类数的个数
Dim t As Integer 't为二进制数中“1”的个数
Dim k As Integer 'k为二进制数中“0”的个数
s=0
For i=1 To 1000
n=i: t=0: k=0
Do While n>0
If Then t=t+1 Else k=k+1
Loop
If t>k Then
List1.Additem Str(i)
s=s+1
End If
Next i
Text1.Text=Str(s)
End Sub
-
16、现有n根棍子,第i根棍子的长度为a<sub>1</sub>,现设计了以下VB程序段,想要从中选出三根棍子组成周长尽可能长的三角形,输出最大的周长;若无法组成三角形,则输出0。如当n=5,a={2,3,4,5,10}时,输出12,即选择了3、4、5。当n=4,a={4,5,10,20}时,无法组成三角形,输出0。实现上述功能的VB程序代码如下,但加框处代码有误,请改正。
Dim a(1 To 1000) As Integer
Dim n As Integer
Private Sub Form_Load()
'确定n的值和数组a的各个元素值,即每根棍子的长度值,代码略
End Sub
Function max (x As Integer, y As Integer) As Integer
If x>y Then
max=x
Else
max=y
End If
End Function
Private Sub Command1_Click()
Dim i As Integer, J As Integer, K As Integer
Dim ans As Integer, c As Integer, longest As Integer,
rest As Integer
ans=0
'让i<j<k,保证棍子不会被重复选中
For i=1 To n
For j=i+1 To n
For k=j+1 To n
c=a(i)+a(j)+a(k)
longest=
'①rest=c-longest 'rest 保存最短的两条边的和
If
Then '②ans=max(ans, c)
End If
Next k
Next j
Next i
Print ans
End Sub
(1)、①处应改为。(2)、②处应改为。 -
17、在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 Sub
A、(1)s1 = Mid(s, 1, 1) (2)i + 1 To Len(s)(3)s1 = s B、(1)s1 = Mid(s, 1, 1)(2)i To Len(s)(3)s1 = s C、(1)s1 = Mid(s, 1, i)(2)i To Len(s)(3)s = s1 D、(1)s1 = Mid(s, 1, i)(2)i + 1 To Len(s)(3)s = s1 -
18、下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:
count = 0
For i = 1 To 20
a(i) = Int(Rnd ∗ 100) + 1
Next i
For i = 1 To 20
Next i
For i = 1 To 100
If b(i) <> 0 Then count = count + 1
Next i
Label1.Caption= "不重复数字个数" + Str(count)
为实现上述功能,则程序①处应填入的语句为( )
A、b(i)=1 B、b(a(i))=a(b(i))+1 C、b(i)=b(i)+1 D、b(a(i))=b(a(i))+1 -
19、向文本框Text1中输入一串包含大小写的字母,统计出现次数最多的字母(不区分大小写)并将该字母以大写方式输出到文本框Text2,如有多个字母次数相同的,则只记录最后出现的字母,部分程序如下:
Dim c(1 To 26)As Integer
s=Text1.Text
For i=1 To Len(s)
x=Mid(s, i, 1)
If x>="a" Then
t=Asc(x)-Asc("a")+1
Else
t=Asc(x)-Asc("A")+1
End If
①
If c(t)>=Max Then Max=c(t): ②
Next i
Text 2.Text=Chr(f+Asc("A"))
划线处应该填入的正确语句是( )
A、①c(t-1)=c(t-1)+1②f=t B、①c(t)=c(t)+1②f=t C、①c(t-1)=c(t-1)+1②f=t-1 D、①c(t)=c(t)+1②f=t-1 -
20、有如下所示VB程序段:
str1 = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
s = “”
For i = 1 To 4
t = Int(Rnd*10) + 1
If t Mod 2 = i Mod 2 Then
t = t + 1
Else
t = t + 2
End If
s = s + Mid(str1,t,1)
Next i
List1.AddItem s
执行该程序段后,列表框List1中可能显示的内容是( )
A、BADC B、BCDY C、DEFG D、CDEF