Form2.Show End Sub
程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。下面修改方案中正确的是( )。 A) 把Form1中Text1文本框及相关程序放到Form2窗体中 B) 把Form1.Hide、Form2.Show两行移到2个End If之间
C) 把If KeyAscii=13 Then 改为 If KeyAscii=\D) 把2个Form2.input.Visible 中的\删去 参考答案:B
【解析】原程序的执行流程为,当按下一个键后,激活KeyPress事件,事件中隐藏Form1和显示From2的语句与判断是否按了回车键的语句是顺序的,即不论按了什么键,都会执行隐藏Form1和显示From2的语句。这两句应该上移到第二个EndIf前面,也就是放在判断是否按了回车键的If语句块中。因此B选项正确。 2. 在窗体上画一个名称为Command1的命令按钮,并编写如下程序:
Function Fun(x) y=0
If x<10 Then y=x Else
y=y+10 End If Fun=y End Function
Private Sub Command1_Click() n=InputBox(\请输入一个数\ n=Val(n) P=Fun(n) Print P End Sub
运行程序,单击命令按钮,将显示输入对话框,如果在对话框中输入100,并单击\确定\按钮,则输出结果为( )。 A) 10 B) 100 C) 110
D) 出错信息 参考答案:A 【解析】程序中输入100,则调用过程为Fun(100),过程Fun中判断参数是否小于10,小于10则将此值赋给y,如果不小于10,则变量y值加10,由于100不小于10,所以y值加10,等于10,并将此值做为函数值返回。因此输出结果为10。
3. 设有以下程序:
Private Sub Form_Click() x=50
For i=1 To 4
y=InputBox(\请输入一个整数\ y=Val(y)
If y Mod 5=0 Then a=a+y x=y
第 41 页 共 96 页
Else
a=a+x End If Next i Print a End Sub
程序运行后,单击窗体,在输入对话框中依次输入15、24、35、46,输出结果为( )。 A) 100 B) 50 C) 120 D) 70
参考答案:A
【解析】程序的作用是输入的数如果是5的倍数就累加,如果不是就每次加50或与上次是5的倍数的那个数相累加。因此最终a的值是15+15+35+35=100。 4. 窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shape1的圆靠在左边的Line1直线上(见图);另有1个名称为Timer1的计时器控件,其Enabled属性值是True。要求程序运行后,圆每秒向右移动100,当圆遇
到Line2时则停止移动。
为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下程序:
Private Sub Timer1_Timer()
For k=Line1.X1 To Line2.X1 Step 100
If Shape1.Left+Shape1.Width 运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。为得到与题目要求相符的结果,下面修改方案中正确的是( )。 A) 把计时器的Interval属性设置为1 B) 把For k=Line1.X1 To Line2.X1 Step 100 和 Next k两行删除 C) 把For k=Line1.X1 To Line2.X1 Step 100 改为 For k=Line2.X1 To Line1.X1 Step 100 D) 把If Shape1.Left+Shape1.Width 【解析】在计时器事件中不应再设置步长为100的For循环,应该把For循环去掉,只留下循环体的语句,计时器每秒激发一次,每次判断小球是否移到Line2处,不到就改变自己的Left值即继续移动。因此B正确。 5. 窗体上有1个名称为Command1的命令按钮,事件过程如下: Private Sub Command1_Click() Dim x%, y%, z% x=InputBox(\请输入第1个整数\ y=InputBox(\请输入第2个整数\ 第 42 页 共 96 页 Do Until x=y If x>y Then x=x-y Else y=y-x Loop Print x End Sub 运行程序,单击命令按钮,并输入2个整数169和39,则在窗体上显示的内容为( )。 A) 11 B) 13 C) 23 D) 39 参考答案:B 【解析】程序中Do循环比较输入的两个数的大小,把较大的数值减去较小的数值后再与较小的值比较,直到两个数值相等。程序中输入169和39,则x=169-39=130,130>y即130>39,因此x=130-39=91,如此循环x=91-39=52-39=13,此时13>39为假,执行y=y-x=39-13=26,循环y=26-13=13,此时x、y都为13,循环结束,因此窗体上显示为13。 6. 命令按钮Command1的单击事件过程如下: Private Sub Command1_Click() Dim a(10, 10)As Integer x=0 For i=1 To 3 For j=1 To 3 a(i, j)=i * 2 Mod j