相关试卷
-
1、有如下VB程序段:
n=Text1.Text:s=" "
For i=1 To Len(n)
c=Mid(n,i,1)
If c>=“a”And c<=“z”Then
p=1
ElseIf c>=“A” And c<=“Z”Then
p=2
Else
p=3
End If
a(p)=a(p)+1
If a(p)=1 Then s=s+c
Next i
数组a中各元素的初始值都为0,文本框Text1的内容为“GoodLuck2018”。执行程序后,变量s的值为( )
A、Go2 B、GL2 C、GoLu D、GoLu2 -
2、下列程序执行后文本框Text 1显示的内容是 ( )
s="ERROR:Divisor must not be zero!"
flag=False:m=0
For i=1 To Len(s)
ch=Mid(s, i, 1)
If ch>="a" And ch <="z" Then
If Not flag Then
m=m+1:flag=True
End If
Else
flag=False
End If
Next i
Text1.Text=Str(m)
A、4 B、5 C、6 D、19 -
3、根据以下程序,在Text1文本框中输入3,最后在List1中输出的是 ( )
Private Sub Command 1_Click()
Dim i As Integer
Dim t As Integer
Dim s As String
i=1:t=1:n=Text1.Text
List1.Clear
Do While t<=n
s=s +"*"
If i=t Then
List1.AddItem s
t=t +1
i=0
End If
i=i+1
Loop
End Sub
A、
B、
C、
D、
-
4、斐波那契数列是指从第3项开始,每一项的值为前两项之和。如:1,1,2,3,5,8,13,…,下面程序用于求斐波那契数列的第n项的值:
Dim f1 As long,f2As long,f As long
n=Val(Text1.Text)
f1=1
f2=1
For k=3 To n
Next k
Labell.Caption=“斐波那契数列第”+Str(n)+“项的值为”+Str(f)
方框中的代码由以下三部分组成:
①f2=f ②f1=f2 ③f=f1+f2
代码顺序正确的选项是( )
A、①②③ B、③②① C、②③① D、②①③ -
5、求1+(1+2)+…+(1+2+…+100)的值的VB程序段如下:
Private Sub Command1_Click()
Dim n As Integer, sum, sum 1 As Long
sum=0:sum 1=0
Next n
Print "1+(1+2)+…+(1+2+…+100)="﹔sum1
End Sub
方框中的代码由以下三行组成:
①For n=1 To 100
②sum1=sum1 + sum
③sum=sum + n
代码顺序正确的选项是( )
A、①③② B、②③① C、③②① D、②①③ -
6、随机产生集合{-1,1}中任意一个数的VB表达式是( )A、Int(Rnd*2)-1 B、Int(Rnd*3)-1 C、Int(Rnd*3)\2-1 D、Int(Rnd*2)*2-1
-
7、变量a中存储了一个字符,能够正确判断该字符为数字字符“0”~“9”的VB表达式是( )A、Asc(a)>=0Or Asc(a)<=9 B、“0”<=a<=“9” C、a<=“0” Or a>=“9” D、a>=“0” And a<=“9”
-
8、Visual Basic表达式3+27\2Mod3*2,正确的值是( )A、0 B、2 C、3 D、4
-
9、已知字符型变量ch存放了一个大写字母,下列表达式能正确求得该字母在26个英文字母中序号的是( )A、Asc(ch)-Asc(“A”)+1 B、Asc(ch)-Asc(“A”)-1 C、Asc(ch-“A”)+1 D、Asc(ch-“A”)-1
-
10、在VB中,若x是能被7整除的正整数,则下列表达式的值一定为真的是( )A、x Mod 7=0 B、X\7=0 C、Int(x/7)= 0 D、7 Mod x=0
-
11、求半径为r的圆的面积,保留两位小数且四舍五入的表达式是( )A、Int(3.14*r*r*10+0.5)/10 B、Int(3.14*r*r*100+0.5)/100 C、Int(3.14*r*r*1000+0.5)/1000 D、Int(3.14*r*2*100+0.5)/100
-
12、下列VB表达式的值等于2018的是( )A、Sqr(2000)+18 B、Mid(“2000”,1,2)+“18” C、Abs(-2014)+Len(“view”) D、Str(2000)+Str(18)
-
13、某Visual Basic 程序的一个事件过程如下:
Private Sub Command 1_Click()
Dim r As Single
Dim pi As Double
r=100
pi=3.14
Label 1.Caption="圆面积为:"+pi * r * r
End Sub
运行程序,单击命令按钮Command 1后弹出如图所示的出错信息提示,引起该错误的语句是( )
A、Dim r As Single B、Dim pi As Double C、pi=3.14 D、Label1.Caption=“圆面积为:”+pi*r*r -
14、数组a中存储的是一组正整数,特征是:以三个数为一组,每组中任意一个数都比前面一组中的任意一个数要大;②每组中三个数依次递减;③数组中数的总个数为3的倍数。依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command 1_Click()
Const n = 15
Dim a(1 To n)As Integer,search As Integer,key As Integer
Dim i As Integer,j As Integer,m As Integer
'读取一组正整数,按上述规则存入数组a中,代码略
key = Val(Text1.Text)
i = 1:j = n:search = 0
Do While i <= j
m =(i+j)\2
If m Mod3<>0 Then m=
‘⑴把m调整到三个数一组的最后一个数的位置If key = a m)Then
search = m:Exit Do
Elself key <a(m)Then
j = m - 3
Elself
Then ‘⑵i= m + 1
ElseIf key = a(m-2)Then
search = m-2 :Exit Do
ElseIf key = a(m- 1)Then
search = m-1:Exit Do
Else
search = 0:Exit Do
End If
Loop
If search <>0 Then
Text2.Text = Str(search)
Else
Text2.Text ="找不到"
End If
End Sub
⑴ ⑵
-
15、对于一组升序不重复的正整数,在任意数字位置分成两段,并交换前后两段的位置,存入数组a。例如6、17、25、36、44、58,在数字6处分成两段,交换位置后为:
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
6
17
25
36
44
58
在数字44处分成两段,交换位置后为:
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
44
58
6
17
25
36
依据对分查找思想,设计一个在数组a中查找最小值,并输出在Text1中的程序,实现该功能的 VB程序如下,但加框处代码有错,请改正。
Private Sub Commandl_Click()
Const n = 6
Dim a(1 To n)As Integer
Dim i As Integer,j As Integer,m As Integer
'读取数据,按上述规则存入数组a中,代码略
i = 1:j = n
If
Then Text1.Text = Str(a(i)) ‘⑴Do While i< = j
m =(i+j)\2
If a(m)<a(j)Then
‘⑵Else
i = m + 1
End If
Loop
Text1.Text = a(j)
End Sub
⑴ ⑵
-
16、某对分查找算法的程序如下:
Dim d(1To63)As Integer
For i=1 To 63
d(i)=i
Next i
s=0:i=1:j=63
Key=Int(Rnd * 63)+1
Do While i<=j
m=(i+j)\2
If Key=d(m)Then Exit Do
If Key<d(m)Then
j=m-1:s=2 * s
Else
i=m+1:s=2 * s+1
End If
Loop
Label1.Caption=Str(s)
若运行该程序段后,标签Label1中显示的结果是28,则查找的Key值是( )
A、28 B、29 C、57 D、58 -
17、某对分查找算法的部分VB程序如下:
i = 1:j = 12:k = 0:s = " "
key = Val(Text1.Text):c = "N":flag = False
Do While i< = j And flag = False
m = (i+j+1)\2:k = k+1
If key = a(m)Then c = "Y":flag = True
If key>a(m)Then j = m-1 Else i = m+1
s = s & Str(a(m))
Loop
Text2.Text = s:Text3.Text = c
数组a(1)到a(12)的值依次为“99,91,85,76,68,61,53,42,34,27,20,13”,执行该程序段后,下列说法正确的是( )
A、该程序段只能进行两位正整数的查找 B、在文本框Text1中输入两位任意正整数,则k的值介于1和3之间 C、在文本框Text1中输入76,程序执行后变量i和j的值分别为1和6 D、若文本框Text2中显示了两个正整数,则文本框Text3中显示的内容一定是Y -
18、有如下程序段:
Dim a(1 To 10)As Integer
Dim i As Integer,j As Integer,m As Integer
Dim key As Integer
i= 1:j = 10:key = Val(Text1.Text)
Do While i <=j
m =(i + j)\2
If key < a(m)Then
j = m - 1
ElseIf key > a(m)Then
i = m + 1
Else
Do While m>1
lf a(m - 1)= key Then
m = m - 1
Else
Exit Do
End If
Loop
Exit Do
End If
Loop
数组中a(1)到a(10)依次为“1,1,2,3,3,3,3,4,4,4”,若在文本框Text1中输人3,经上述程序段执行后,变量m的值为( )
A、7 B、6 C、5 D、4 -
19、有VB程序段如下:
a(1)= 2:a(2)= 2:a(3)= 5:a(4)= 6:a(5)= 7
Key=2
i = 1:j =5:flag = False
Do While i<= j And Not flag
m=(i+j)\2
If Key = a(m)Then
s = "找到第" + Str(m)+"个"
flag = True:Exit Do
Elself Key < a(m)Then
j = m - 1
Else
i = m + 1
End If
s = Str(m)+ s
Loop
Labell.Caption =s
执行该程序段后,在标签Label1中显示的内容是( )
A、1 3 B、3 1 C、找到第1个 D、找到第2个 -
20、有如下VB。程序段:
i=1:j=10:n=0:Key=Val(Text1.Text)
Do While i<= j
m =(i+j)\2
If a(m)<Key Then
i = m+1:n = n+1
Else
j = m-1:n = n-1
End If
Loop
数组元素a(1)到a(10)依次是33,42,48,57,69,71,75,89,91,96,在文本框Textl中输人89,则变量n的最终值为( )
A、2 B、1 C、0 D、-2