:名姓 线 : 号 学 订 : 号 班 学 教 装 :业专级年 西华大学课程考试试题卷 ( B 卷)
试卷编号:
课程名称:高级语言程序设计(VB)(2005级) 考试时间: 120 分钟 课程代码: 试卷总分: 100 分
一、 是非判断题(1分/小题,共5分)
(判断下列各小题的叙述正确与否,如正确则在答题纸对应编号上选A,否则选B) 1. 当运行程序结束时,系统将自动执行窗体的UnLoad事件过程。
(1) 2. 无论何控件,都具有一个共同属性,这个属性是Caption。
(2)
3. VB是面向对象的程序设计语言,构成对象的三要素是窗体、控件和过程。 (3) 4. 如果设置控件的Visible属性为False,则运行时控件会隐藏 。 (4) 5. Sub与Function过程最根本的区别是Function过程可以有形参,Sub过程不可以有形参。 (5) 二、 单项选择题(1分/小题,共20分)
1. 表达式8+2*3^2\\9/8-3 mod 2的结果是( 6 )
(A) 25 (B) 24 (C) 7 (D) 7.25
2. 从键盘上输入两个字符串,分别保存的变量str1、str2中,确定第二个字符串在第一个字符串中其始位置的函数是 ( 7 ) (A) LEFT (B) Mid (C) String (D) Instr
3. 若X是一个正实数,能对X的第3位小数进行四舍五入的表达式是 ( 8 ) (A) 0.01*Int(100*(x +0.05) ) (B) 0.01*Int(100*(x +0.005) )
(C) 0.01*Int (x +0.05) (D) 0.01*Int(x +0.005) 4. 下面四个语句中,能打印显示20*30字样的是( 9 )
(A) Print"20*30" (B) Print 20*30
C) Print Chr(20)+ "*"+Chr(30) (D) Print Val("20") *Val("30") 5. 变量在窗体模块中声明为公共的。下列关于变量的陈述哪条是正确的?( 10 ) (A) 可以从项目的任何模块中存取变量
(B) 可以在窗体的任何地方存取变量,而不是在窗体模块外 (C) 只有在同一个项目的其他窗体模块中存取变量 (D) 变量不能在窗体模块中声明为公共的
6. 对一个窗体对象,其最先发生的事件是( 11 )事件。 (A) Click (B) DblClick (C) Load (D) UnLoad 7. 以下能够触发文本框Change事件的操作是( 12 )。 (A) 文本框失去焦点 (B) 文本框获得焦点
(C) 设置文本框的焦点 (D) 改变文本框的内容
8. 若要使标签控件显示时覆盖其背景内容,要设置其BackStyle属性的值为( 13 ) (A) 0 (B) 1 (C) 2 (D) 3
9. 在窗体上有一个称为cmdCommand1的命令按钮。当点击该按钮时。应该显示窗体frmNext。则在
cmdCOmmand1的点击事件程序中应该写入下列哪条语句:( 14 )
(A)Show(frmNext) (B)frmNeXt.Show。
(C)frmNext.show=true (D)frmNext.show=vbVisible
10. 在VB窗体中,如果要求在窗体中的所有变量必须先声名后使用,则应该( 15 )。
第 1 页 共 6 页
(A)在 gernal中使用语句:Option explicit
(B)在 gernal中使用语句: Option base 1
(C)在 Form_Load()中使用语句: option explicit (D)在 Form_Load()中使用语句: Option base 1
11. 在加载窗体时,下面或件中会被激发的事件为( 16 )。 (A)Click (B)DblClick (C)Load (D)KeyPress
12. 在文本框中,当用户键人一个字符时,能同时引发的事件是( 17 )。 (A)KeyPyes和Click (B)KeyPress和LOStFocus。 (C)KeyPress和Change (D)Change和LOStFocus。 13. 下拉式列表框的Clear方法的作用是( 18 )。 (A)清除当前选定项 (B)清除当前文本 (C)清除一个制定项 (D)清除所有项
14. 在过程定义的以下叙述中,不正确的是( 19 )。 (A)如果不指明参数传递方式,则将按引用方式将实参传给形参 (B)如果不指明参数传递方式,则将按传值方式将使参传给形参
(C)如果指明传值方式,则在调用该过程时,不会引起实参值的改变 (D)如果指明引用方式,则在调用该过程时,可能引起实参值的改变 15. 若要使窗体启动时处于最大化状态,可设置( 20 )属性。
(A)StartUpPosition (B)WindowState (C)Caption (D)AutoRedraw 16. 命令按钮标题热字的下划线,可通过( 21 )符号来设置。 (A)\\< (B)\\> (C)_ (D)&
17. 当鼠标在窗体上移动时,会触发哪种鼠标事件( 22 )。
(A)MouseMove (B)MouseUp (C)MouseDown (D)Click 18. 下面关于窗体事件叙述不正确的是( 23 )。 (A)通过代码调整窗体的大小,会触发一个Resize事件 (B)用鼠标单击窗体时会产生一个Click事件
(C)每当一个窗体变成活动窗体时,就会产生一个Load事件
(D)调用Show方法与设置窗体Visible属性为True具有相同的效果 19. 若想存放如下数据,其中,最为恰当的数组定义方式为:( 24 )。
5 6# 7.2e3
11.9 8.1d-1 10000
(A)Dim ArrB(2,3) As Integer (B)Dim ArrB & (2,3)
(C)Dim ArrB!(-4 to -3,2 to 4) (D)Dim ArrB(-5 to -4,-1 to 1) As Double 20. 在VB中,要将一个窗口从内存中释放,应使用的语句是( 25 )。
(A)Show (B)Hide (C)Load (D)Unload 三、 阅读分析程序(每个选择3分,共45分) 1. 设有如下程序:
Function Fun(S As String) As String Dim s1 As String
For i = 1 To Len(S)
s1 = UCase(Mid(S, i, 1)) + s1 Next i Fun = s1
End Function
在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click()
第 2 页 共 6 页
Dim Str1 As String, Str2 As String
Str1 = InputBox(\请输入一个字符串\Str2 = Fun(Str1) Print Str2
End Sub (1) 程序运行后,单击命令按钮,如果在输入对话框中输入字符串\,则单击\确定\按钮后在窗体上的输出结果为( 26 ) (A)abcdefg (B)ABCDEFG (C)gfedcba
(D)GFEDCBA
(2) 程序运行后,单击命令按钮,如果在输入对话框中输入字符串\,则单击\确定\
按钮后在窗体上的输出结果为( 27 ) (A)123456789 (B)987654321 (C)ABCDEFGJH (D)程序运行出错 (3) 在上面程序中,若修改s1 =UCase(Mid(S, i, 1)) + s1为s1 =s1+UCase(Mid(S, i, 1))程
序运行后,单击命令按钮,如果在输入对话框中输入字符串\,则单击\确定\按钮
后在窗体上的输出结果为( 28 ) (A)abcdefg (B)ABCDEFG
2. 设有如下程序:
Private Sub Form_Click() Dim N, A, B(), i, j Do
N = InputBox(\输入数组下标上界值\Loop While N > 4
ReDim B(N, N)
A = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16) For i = 1 To N
For j = 1 To N
B(i, j) = A(i * j - 1)
If (j >= i) Then Print Tab(j * 3); Format(B(i, j), \ Next j
Next i End Sub (1) 程序运行后,在以下哪种情况下会执行上述程序段( 29 )
(A)程序运行后自动被执行 (B)单击窗体(C)单击命令按钮 (D)以上说法都错 (2) 该程序段被执行时,如果在输入对话框中输入3,则单击\确定\按钮后在窗体上的输出结果
为( 30 )
(A) 1 2 3
475869(C)gfedcba (D)GFEDCBA
(B) (D) 1147123(C)
46927486923469(3) 在上面程序中,若修改If (j >= i) Then Print Tab(j * 3); Format(B(i, j), \为If (j <= i) Then
Print Tab(j * 3); Format(B(i, j), \则该程序段被执行时,如果在输入对话框中输入3,则单击\确定\按钮后在窗体上的输出结果为( 31 )
(A) 1 2 (B) (C) (D) 13147123
475869469274869234693. 设有如下程序:
第 3 页 共 6 页
Public Counter
Private Sub Command1_Click() M = Val(Text1.Text) N = Val(Text2.Text)
MN = M * N If MN = 0 Then
MsgBox \两个数都不能为0\ Exit Sub End If If M < N Then T = M M = N N = T End If
Counter = 0 Do While (N <> 0) R = M Mod N M = N N = R
Counter = Counter + 1 Loop
Print Counter Text3.Text = M
Text4.Text = MN / M
End Sub (1) 程序运行后,假设在Text1中输入12,在Text2中输入15,则单击命令按钮该程序段执行后
Counter中的值是( 32 )
(A)0 (B)1
(C)2
(D)4
(2) 程序运行后,假设在Text1中输入15,在Text2中输入12,则单击命令按钮该程序段执行后
text3和text4中的值分别是( 33 )
(A)12,15
(B)15,12
(C)3, 60
(D)3,180
(3) 程序运行后,假设在Text1中输入32,在Text2中输入30,则单击命令按钮该程序段执行后
text3和text4中的值分别是( 34 ) (A)32,30
4. 设有如下程序:
(B)30,960
(C)2, 480
(D)32,960
Public Counter
Private Sub Form_Click() Dim s As Integer, n As Integer n = 5:Counter = 0 Print fun(n)
Print fun(n + 1); n Print Counter End Sub
Private Function fun(n As Integer) Counter = Counter + 1 If n = 1 Then fun = 1
第 4 页 共 6 页
Else
fun = n * fun(n - 1) End If
End Function (1) 程序运行后,单击窗体则第一个Print语句输出结果是( 35 )
(A)5 (B)25 (C)125 (D)120 (2) 程序运行后,单击窗体则第二个Print语句输出结果是( 36 ) (A)120,5 (B)240,5 (C)720, 6 (D)720,5 (3) 程序运行后,单击窗体则第三个Print语句输出结果是( 37 ) (A)5 (B)6 (C)10 (D)11 5. 设有如下程序:
Private Sub Form_Click() Dim b As String
a = InputBox(\请输入数字\n = Val(a) sign = 1
If n < 0 Then sign = -1 n = Abs(n) End If b = \
Do
b = b + LTrim(Str$(n Mod 2)) n = n \\ 2 Loop Until n = 0 If sign = -1 Then
c = \
For i = 1 To 7 - Len(b) c = c + \ Next i c = c + b b = c End If
Print b, Len(b) End Sub (1) 该程序段被执行时,如果在输入对话框中输入127,则单击\确定\按钮后在窗体上的输出结
果为( 38 ) (A)127 3 (B)1111111 7 (C)11011100 8 (D)01111111 8 (2) 该程序段被执行时,如果在输入对话框中输入-10,则单击\确定\按钮后在窗体上的输出结
果为( 39 ) (A)0101 4
(B)1010 4
(C)10000101 8
(D)10001010 8
(3) 在上面程序中,若修改“b = b + LTrim(Str$(n Mod 2))”为“b = LTrim(Str$(n Mod 2))+b”
则该程序段被执行时,如果在输入对话框中输入13,则单击\确定\按钮后在窗体上的输出结果为( 40 )
(A)1011 4 (B)1101 4
四、 程序填空(每空3分,共30分)
第 5 页 共 6 页
(C)13 2 (D)00001011 8
1. 以下程序的功能是:生成20个200到300之间的随机整数,输出其中能被5整除的数并求出它们
的和。
Private Sub Form_Click() For i = 1 To 20
x = Int(Rnd * 101 (1) ) If x (2) 5 = 0 Then Print x
s = (3) + x End If Next i
Print \=\End Sub
2. 以下程序的功能是打印如右下图所示 的“*”行三角形。
Private Sub Form_Click()
n = InputBox(\请输入行数:\
For i = 1 To n
For j = 1 To (4) Print \ Next j
For j = 1 To (5) Print \ Next j
(6) Next i
*************************End Sub
3. 以下程序的功能是,通过调用过程Swap,调换数组中数值的存放位置,即a(1)与a(10)的值互
换,a(2)与a(9)的值互换,……,a(5)与a(6)的值互换 Private Sub Command6_Click() Dim a(1 to 10) As Integer For i = 1 To 10 a(i) = i
Next i
Call Swap( (7) ,10) For i = 1 To 10 Print a(i);
Next i End Sub
Sub Swap(ByRef b() As Integer, n As Integer) For i = 1 To (8) T = b(i)
b(i) = b( (9) ) b( (10) ) = T Next i End Sub
第 6 页 共 6 页