16、【
单选题
】 若看到程序中有以下事件过程,则可以肯定的是,当程序运行时
Private Sub Click_MouseDown(Button As Integer,_Shift As Integer,X As Single,Y As Single)
Print “VB Program”
End Sub
[2分]
、
用鼠标左键单击名称为“Command1”的命令按钮时,执行此过程
、
用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程
、
用鼠标左键单击名称为“MouseDown”的控件时,执行此过程
、
用鼠标左键或右键单击名称为“Click”的控件时,执行此过程
答案:
17、【
单选题
】 可以产生30-50(含30和50)之间的随机整数的表达式是
[2分]
、
Int(Rnd*21+30)
、
Int(Rnd*20+30)
、
Int(Rnd*50-Rnd*30)
、
Int(Rnd*30+50)
答案:
18、【
单选题
】 在程序运行时,下面的叙述中正确的是
[2分]
、
用鼠标右键单击窗体中无控件的部分,会执行窗体的Form_Load事件过程
、
用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程
、
只装入而不显示窗体,也会执行窗体的Form_Load事件过程
、
装入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程
答案:
19、【
单选题
】 窗体上有名称为Command1的命令按钮和名称为Text1的文本框
Private Sub Command1_Click()
Text1.Text=”程序设计”
Text1.SetFocus
End Sub
Private Sub Text1_GotFocus()
Text1.Text=”等级考试”
End Sub
运行以上程序,单击命令按钮后
[2分]
、
文本框中显示的是“程序设计”,且焦点在文本框中
、
文本框中显示的是“等级考试”,且焦点在文本框中
、
文本框中显示的是“程序设计”,且焦点在命令按钮上
、
文本框中显示的是“等级考试”,且焦点在命令按钮上
答案:
20、【
单选题
】 设窗体上有名称为Option1的单选按钮,且程序中有语句:
If Options.Value=True Then
下面语句中与该语句不等价的是
[2分]
22、【
单选题
】 有如下过程代码:
Sub var_dim()
Static numa As Integer
Dim numb As Integer
numa=numa+2
numb=numb+1
print numa;numb
End Sub
连续3次调用var_dim过程,第3次调用时的输出是
[2分]
、
2 1
、
2 3
、
6 1
、
6 3
答案:
23、【
单选题
】 在窗体上画1个命令按钮,并编写如下事件过程:
Private Sub Command1_Click()
For i=5 to 1 step -0.8
Print Int(i);
Next i
End Sub
运行程序,单击命令按钮,窗体上显示的内容为
[2分]
、
5 4 3 2 1 1
、
5 4 3 2 1
、
4 3 2 1 1
、
4 4 3 2 1 1
答案:
24、【
单选题
】 在窗体上画1个命令按钮,并编写如下事件过程:
Private Sub Command1_Click()
Dim a(3,3)
For m=1 To 3
For n=1 To 3
If n=m Or n=4-m Then
a(m,n)=0
End If
Print a(m,n);
Next n
Print
Next m
End Sub
运行程序,单击命令按钮,窗体上显示的内容为
[2分]
、
2 0 0
0 4 0
0 0 6
、
2 0 4
0 4 0
4 0 6
、
2 3 0
3 4 0
0 0 6
、
2 0 0
0 4 5
0 5 6
答案:
25、【
单选题
】 设有以下函数过程
Function fun(a As Integer,b As Integer)
Dim c As Integer
If a<b Then
c=a:a=b:b=c
End If
c=0
Do
c=c+a
Loop Until c Mod b=0
fun=c
End function
若调用函数fun时的实际参数都是自然数,则函数返回的是
[2分]
、
a、b的最大公约数
、
a、b的最小公倍数
、
a除以b的余数
、
a除以b的商的整数部分
答案:
26、【
单选题
】 窗体上有1个名称为Text1的文本框;1个名为Timer1的计时器控件,其Interval属性值为5000,Enable属性值是True。Timer1的事件过程如下:
Private Sub Timer1_Timer()
Static flag As Integer
If flag=0 Then flag=1
flag=-flag
If flag=1 Then
Text1.ForeColor=&HFF& ‘&HFF&为红色
Else
Text1.ForeColor=&HC000& ‘&HC000&为绿色
End If
End Sub
以下叙述正确的是
[2分]
、
每次执行些事件过程时,flag的初始值为0
、
flag的值只可能取0或1
、
程序执行后,文本框的文字每5秒改变一次颜色
、
程序有逻辑错误,Else分支总也不能被执行
答案:
27、【
单选题
】 为计算1+2+22+23+24+…+210的值,并把结果显示在文本框Text1中,若编写如下事件过程:
Private Sub Command1_Click()
Dim a%,s%,k%
s=1
a=2
For k=2 To 10
a=a*2
s=s+a
Next k
Text1.Text=s
End Sub
执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是
[2分]
、
把s=1改为s=0
、
把For k=2 To 10改为For k=1 To 10
、
交换语句s=s+a和a=a*2的顺序
、
同时进行B)、C)两种修改
答案:
28、【
单选题
】 标准模块中有如下程序代码:
Public x As Integer,y As Integer
Sub var_pub()
x=10:y=20
End Sub
在窗体上有1个命令按钮,并有如下事件过程:
Private Sub Command1_Click()
Dim x As Integer
Call var_pub
x=x+100
y=y+100
Print x;y
End Sub
运行程序后单击命令按钮,窗体上显示的是
[2分]
、
100 100
、
100 120
、
110 100
、
110 120
答案:
29、【
单选题
】 设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:
Function fun(a As Integer,b As Integer)
While a>b
a=a-b
Wend
fun=a
End Function
在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是
[2分]
32、【
单选题
】 在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序:
Dim ss As String
Private Sub Text1_KeyPress(KeyAscii As integer)
If chr(KeyAscii)<>””Then ss=ss+chr(KeyAscii)
End Sub
Private Sub Command1_Click()
Dim m As String,i As Integer
For i=Len(ss) To 1 step -1
m=m+Mid(ss,i,1)
Next
Text1.Text=Ucase(m)
End Sub
程序运行后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是
[2分]
为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:
Private Sub Timer1_Timer()
For k=Line1.X1 To Line2.X1 Step 100
If Shape1.Left+Shape1.Width<Line2.X1 Then
Shape1.Left=Shape1.Left+100
End If
Next k
End Sub
运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。为得到与题目要求相符的结果,下面修改方案中正确的是
[2分]
、
把设计器的Interval属性设置为1
、
把For k=Line1.X1 To Line2.X1 Step 100和Next k两行删除
、
把For k=Line1.X1 To Line2.X1 Step 100改为For k=Line2.X1 To Line1.X1 Step 100
、
把If Shape1.Left+Shape1.Width<Line2.X1 Then改为If Shape1.Left <Line2.X1 Then
Private Sub Command1_Click()
Dim n%,k%
n=Len(Text1.Text)
For k=0 To List1.ListCount-1
If Left(List1.List(k),n)=Text1.Text Then
List1.RemoveItem k
End If
Next k
End Sub
在调试时发现,如输入“陈”,可以正确删除所有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”2项,结果如图2所示。这说明程序不能适应所有情况,需要修改。正确的修改方案是把For k=0 To List1.ListCount-1改为
[2分]