1、二级 VISUAL+BASIC 笔试 303 及答案解析(总分:87.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:75.00)1.在对象的 MouseDown 和 MouseUp 事件过程中,当 Button 参数的值为 1、2、4 时,分别代表按下鼠标 _。(分数:3.00)A.左键、中间键和右键B.左键、右键和中间键C.中间键、左键和右键D.左键、右键和同时按下左右键2.下列程序段的执行结果为 _。 n=16 For k=n To 1 Step-1 x=Sqr(k) x=x-2 Next k Print x-2(分数:3.00)A.-3B.-1C.1D.23.在窗体上
2、画一个文本框,然后编写如下事件过程。当该程序运行后,如果在键盘上输入字母“a”,则文本框中显示的内容为 _。 Private Sub Text1_KeyPressKeyAscii As Integer) Dim char as String char=Chr(KeyAscii) Text1.Text=String(5,KeyAscii) End Sub(分数:3.00)A.aaaaaB.AAAAAC.aaaaaaD.AAAAAA4.假定有如下的 Sub 过程: Sub Func(x As Single, y As Single) t=x x=t/y y=t Mod y End Sub 在窗体上
3、画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a As Single Dim b As Single a=6 b=5 Func(a, b) Print a, b End Sub 程序运行后,单击命令按钮,输出结果为 _。(分数:3.00)A.6 5B.1 1C.1.2 5D.1.2 15.编写如下事件过程: Private Sub Form KeyDown(KeyCode As Integer,Shift As Integer) If(Button And 3)=3 Then Print “AAAA“ End If End Sub 程
4、序运行后,为了在窗体上输出“AAAA“,应按下的鼠标键为 _。(分数:3.00)A.左B.右C.同时按下左、右D.按什么键都不显示6.下列 Visual Basic 语句中,正确的语句是 _。(分数:3.00)A.A=1.75E2.7B.AS=BASICC.A$=“X+Y+Z“D.A$=B$+127.在窗体上画一个名称为 command1 的命令按钮,然后编写如下程序; Option Base 1 Private Sub Command1_Click() Dim arr(4)As String For i=1 To 4 arr(i) = Chr(Asc(“A“)+(i-1) Next i Fo
5、r Each b1 In arr Print b1; Next End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 _。(分数:3.00)A.ABCDB.abcdC.出错信息D.1 2 3 48.以下程序的输出结果是 _。 x=2-2 Print x End(分数:3.00)A.4B.0.25C.4D.程序错误9.当我们输入代码时,Visual Basic 可以自动检测 _ 错误。(分数:3.00)A.语法错误B.逻辑错误C.编译错误D.运行错误10.在 Visual Basic 中,所有的窗体和控件都必定具有的一个属性是 _。(分数:3.00)A.FontB.NameC.C
6、aptionD.FillColor11.Visual Basic 根据计算机访问文件的方式将文件分成三类,其中不包括(分数:3.00)A.顺序文件B.二进制文件C.随机文件D.Unix 文件12.表达式 Asc(“E“)的类型是 _。(分数:3.00)A.字符表达式B.关系表达式C.算术表达式D.逻辑表达式13.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() x=0 Do Until x=-1 a=InputBox(“请输入 a 的值“) a=Val(a) b=InputBox(“请输入 b 的值“) b=Val(b) x=InputB
7、ox(“请输入 x 的值“) x=Val(x) a=a+b+x Loop Print a End Sub 程序运行后,单击命令按钮,依次在输入对话框中输入 10、8、9、2、11、-1,则输出结果为 _。(分数:3.00)A.15B.14C.13D.1214.大部分控件都没有的属性是 _。(分数:3.00)A.TopB.NameC.IntervalD.Visible15.以下能够触发文本框 Change 事件的操作是 _。(分数:3.00)A.改变文本框的内容B.文本框失去焦点C.文本框获得焦点D.设置文本框的焦点16.用 Close 语句可以关闭一个已经用完不再使用的文件,当该语句不带任何参
8、数时,它的功能是(分数:3.00)A.可以关闭所有已打开的文件B.只能关闭最近打开的那个文件C.可以关闭最近打开的那个文件D.语法错误17.假定在窗体上建立一个通用对话框,其名称为 CommonDialogl,用下面的语句可以建立一个对话框: CommonDialogl.Action=1 与该语句等价的语句是 _。(分数:3.00)A.CommonDialogShowOpenB.CommonDialogShowSaveC.CommonDialogShowFontD.CommonDialogShowColor18.文本框控件最多能处理 _ 个字节。(分数:3.00)A.16KB.32KC.64K
9、D.128K19.通过改变单选按钮(OptionButton)控件的 _ 属性值,可以改变单选按钮的选取状态。(分数:3.00)A.StyleB.ValueC.AppearanceD.Caption20.读数据文件的操作可以通过下列 _ 语句来实现。(分数:3.00)A.Input#和 Get#B.Read 和 Line Input#C.Get#和 Line Input#D.Line Input# 和 Input#21.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程: Private Sub Command1_Click() x=-3 If Sgn(x)Then y=
10、Sgn(x2) Else y=Sgn(x) End If Print y End Sub 程序运行后,单击命令按钮,其输出结果为 _。(分数:3.00)A.-3B.9C.-1D.122.Visual Basic 没有提供下列 _ 事件。(分数:3.00)A.MouseDownB.MouseUpC.MouseExitD.MouseMove23.以下程序运行后输出的结果是 _。 a = 12.3 b=-123 m=Len(Str$(A)+Str$(B) Print m End(分数:3.00)A.9B.5C.7D.824.Visual Basic 逻辑运算符 Xor、Or、Eqv、And 中,级别
11、最高的运算符是 _。(分数:3.00)A.AndB.OrC.EqvD.Xor25.在窗体上画一个通用对话框,其名称为 CommonDialogl,然后画一个命令按钮,并编写如下事件过程:Private Sub Command1_Click() CommonDialogl.Flags=cdlOFNHideReadOnly commonDialogl.Filter=“All Files(*.*)|*.*| Text Files“ Next i Print End Sub(分数:2.00)填空项 1:_30.在窗体上建立名称为 Text1、Text2 和删的三个文本框,其中 Text1 和 Text
12、2 文本框用来接受两个整数(假设为 M 和 N),建立一个名称为 command1 的命令按钮,单击它将得到数 M 从右边起的 N 位数字,并把该数字显示在 Text3 文本框中,如下图所示。请填空。 (分数:2.00)填空项 1:_31.下列程序实现的功能是:在窗体上单击时,将在窗体上输出 c:=a1.txt 文件中的所有小写字母。 Private Sub Form Click() Dim Ch As String * 1 Open “c:/a1.txt“ For Input As #10 Do WhileU 【8】 /U Ch= Input(1, #10) IfU 【9】 /UThen P
13、rint Ch; End If Loop U 【10】 /U End Sub(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试 303 答案解析(总分:87.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:75.00)1.在对象的 MouseDown 和 MouseUp 事件过程中,当 Button 参数的值为 1、2、4 时,分别代表按下鼠标 _。(分数:3.00)A.左键、中间键和右键B.左键、右键和中间键 C.中间键、左键和右键D.左键、右键和同时按下左右键解析:解析 Button 参数指示用户按下或释放了哪个鼠标键。当 Button 参数的值为 1
14、时,表示用户按下或释放了鼠标的左键;当 Button 参数的值为 2 时,表示用户按卞或释放了鼠标的右键;当 Button 参数的值为 4 时,表示用户按下或释放了鼠标的中间键。2.下列程序段的执行结果为 _。 n=16 For k=n To 1 Step-1 x=Sqr(k) x=x-2 Next k Print x-2(分数:3.00)A.-3 B.-1C.1D.2解析:解析 因为在 For 循环每次执行时,都会根据循环控制变量 k 给 x 重新赋值,所以只需根据最后一次循环的值计算 x 的值即可。最后一次循环,k=1,所以 x=Sqr(1)=1,x=x-2=-1。打印 x-2 的值,即为
15、-1-2=-3。3.在窗体上画一个文本框,然后编写如下事件过程。当该程序运行后,如果在键盘上输入字母“a”,则文本框中显示的内容为 _。 Private Sub Text1_KeyPressKeyAscii As Integer) Dim char as String char=Chr(KeyAscii) Text1.Text=String(5,KeyAscii) End Sub(分数:3.00)A.aaaaaB.AAAAAC.aaaaaaD.AAAAAA 解析:解析 在程序段用到了 4 个函数,在按了键盘上的某个键(在这里是字母键 a)后,Chr 函数将得到的键的 ASCII 码值(101)
16、转换成该 ASCII 码值对应的字符(a),然后利用 Ucase 函数将该字符转换成大写字母(A),将该大写字母的 ASCII 码值(利用函数 Asc()赋给 KeyAscii,最后利用 String 函数的 5 个 ASCII码值等于 KeyAscii 的字符(即 5 个 A)赋给文本框 Text1,此时文本框中将显示 5 个 A,又因为 KeyPress事件本身会在文本框中显示/输入一个 ASCII 码值为 KeyAscii 的字符(A),因此最后在文本框中将显示 6个大写字母 A。4.假定有如下的 Sub 过程: Sub Func(x As Single, y As Single) t=
17、x x=t/y y=t Mod y End Sub 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a As Single Dim b As Single a=6 b=5 Func(a, b) Print a, b End Sub 程序运行后,单击命令按钮,输出结果为 _。(分数:3.00)A.6 5B.1 1C.1.2 5D.1.2 1 解析:解析 Visual Basic 的函数参数默认的方式是传地址的,所以函数 s 对参数做的改变会反映到原来的变量里。5.编写如下事件过程: Private Sub Form KeyDown
18、(KeyCode As Integer,Shift As Integer) If(Button And 3)=3 Then Print “AAAA“ End If End Sub 程序运行后,为了在窗体上输出“AAAA“,应按下的鼠标键为 _。(分数:3.00)A.左B.右C.同时按下左、右D.按什么键都不显示 解析:解析 从题目中的程序可以看出,(BuRon And 3)=3 这个条件永远是假的,所以输出语句也永远不会被执行。6.下列 Visual Basic 语句中,正确的语句是 _。(分数:3.00)A.A=1.75E2.7B.AS=BASICC.A$=“X+Y+Z“ D.A$=B$+1
19、2解析:解析 选项 A 中,常量的表示方法错误;选项 B 中,赋值号两边的数据类型不匹配, A$为字符型变量,BASIC 作为变量是数值型变量,作为字符串常量缺双引号;选项 D 中,赋值号右边数据类型不匹配,B$为字符型变量,12 为数值常量。选项 C 中,把一个字符串常量“X+Y/2“赋给字符串变量 A$,表达正确。7.在窗体上画一个名称为 command1 的命令按钮,然后编写如下程序; Option Base 1 Private Sub Command1_Click() Dim arr(4)As String For i=1 To 4 arr(i) = Chr(Asc(“A“)+(i-1
20、) Next i For Each b1 In arr Print b1; Next End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 _。(分数:3.00)A.ABCD B.abcdC.出错信息D.1 2 3 4解析:解析 语句 Chr(Asc(“A“)+(i-1)的作用是将字符 A 的 ASCII 码值加上循环变量的值减 1,求出此ASCII 码对应的字符。将计算出的字符赋值给数组 arr 的第 i 个元素。循环结束后,arr 的 4 个元素分别为字符 A、B、C、D。Print 方法输出项的最后用分号结束,使得输出不换行。8.以下程序的输出结果是 _。 x=2-2 P
21、rint x End(分数:3.00)A.4B.0.25 C.4D.程序错误解析:解析 在一般情况下,不允许两个运算符相连,应当用括号隔开,以免出错。乘幂号与符号相邻时为例外。9.当我们输入代码时,Visual Basic 可以自动检测 _ 错误。(分数:3.00)A.语法错误 B.逻辑错误C.编译错误D.运行错误解析:解析 Visual Basic 编辑环境可以自动识别用户的输入是否符合语法规则。10.在 Visual Basic 中,所有的窗体和控件都必定具有的一个属性是 _。(分数:3.00)A.FontB.Name C.CaptionD.FillColor解析:解析 在 Visual
22、Basic 中,所有的窗体和控件都是对象,它们在工程中都必定有一个名称。它们的名称都是由 Name 属性决定的。11.Visual Basic 根据计算机访问文件的方式将文件分成三类,其中不包括(分数:3.00)A.顺序文件B.二进制文件C.随机文件D.Unix 文件 解析:解析 Visual Basic 访问文件的方式分为三类有 Input/Output/Append(访问顺序文件)、 Binary(访问二进制文件)、Random(访问随机文件)。如果未指定方式,则以 Random 访问方式打开文件。12.表达式 Asc(“E“)的类型是 _。(分数:3.00)A.字符表达式B.关系表达式C
23、.算术表达式 D.逻辑表达式解析:解析 函数 Asc 的功能是返回其中字符串参数中的第一个字符的 ASCII 码,因此返回的是整数,属于算术表达式的范围。13.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() x=0 Do Until x=-1 a=InputBox(“请输入 a 的值“) a=Val(a) b=InputBox(“请输入 b 的值“) b=Val(b) x=InputBox(“请输入 x 的值“) x=Val(x) a=a+b+x Loop Print a End Sub 程序运行后,单击命令按钮,依次在输入对话框中输入
24、 10、8、9、2、11、-1,则输出结果为 _。(分数:3.00)A.15B.14C.13D.12 解析:解析 本题中,每次循环开始的时候,变量 a 都被重新赋了一次值,所以最后的结果仅仅是2+11+(-1),因此最终输出的值是 12。14.大部分控件都没有的属性是 _。(分数:3.00)A.TopB.NameC.Interval D.Visible解析:解析 Interval 属性仅应用于 Timer 控件。返回或设置对 Timer 控件的计时事件各调用间的毫秒数。15.以下能够触发文本框 Change 事件的操作是 _。(分数:3.00)A.改变文本框的内容 B.文本框失去焦点C.文本框
25、获得焦点D.设置文本框的焦点解析:解析 当用户向文本框中输入新信息,或当程序把 Text 属性设置为新值从而改变文本框的 Text属性时,将触发 Change 事件。程序运行后,在文本框中每键入一个字符,就会引发一次 Change 事件。16.用 Close 语句可以关闭一个已经用完不再使用的文件,当该语句不带任何参数时,它的功能是(分数:3.00)A.可以关闭所有已打开的文件 B.只能关闭最近打开的那个文件C.可以关闭最近打开的那个文件D.语法错误解析:解析 Close 语句的格式如下: Close#文件号,#文件号 参数“#文件号”可省略,当省略时表示关闭所有文件。17.假定在窗体上建立一
26、个通用对话框,其名称为 CommonDialogl,用下面的语句可以建立一个对话框: CommonDialogl.Action=1 与该语句等价的语句是 _。(分数:3.00)A.CommonDialogShowOpen B.CommonDialogShowSaveC.CommonDialogShowFontD.CommonDialogShowColor解析:解析 通用对话框的 Action 属性为 1 表示显示的是“打开”对话框,所以相当于 Common Dialogl.ShowOpen。18.文本框控件最多能处理 _ 个字节。(分数:3.00)A.16KB.32K C.64KD.128K解
27、析:解析 对于用户系统上单行 TextBox 控件来说,最大值不能超过被内存强制建立的值,并且对于多行 TextBox 控件而言,最大值大约为 32K。19.通过改变单选按钮(OptionButton)控件的 _ 属性值,可以改变单选按钮的选取状态。(分数:3.00)A.StyleB.Value C.AppearanceD.Caption解析:解析 Option Button 控件的 Value 属性用来返回或设置控件状态的属性。20.读数据文件的操作可以通过下列 _ 语句来实现。(分数:3.00)A.Input#和 Get#B.Read 和 Line Input#C.Get#和 Line I
28、nput#D.Line Input# 和 Input# 解析:解析 Get#语句把由“文件号”所指定的磁盘文件中的数据读到“变量”中。Visual Basic 中没有 Read 语句。读数据文件的操作由 Input#语句、Line Input#语句和 Input()函数来实现。21.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程: Private Sub Command1_Click() x=-3 If Sgn(x)Then y=Sgn(x2) Else y=Sgn(x) End If Print y End Sub 程序运行后,单击命令按钮,其输出结果为 _。(分数
29、:3.00)A.-3B.9C.-1D.1 解析:解析 Sgn(number)函数的功能是返回 number 的正负号。如果 number0,Sgn 返回 1; number=0,Sgn 返回 0;number0,Sgn 返回-1。在本题中 Sgn(-3)的返回值为-1,执行 y=Sgn(x 2),结果 y 的值为 1022.Visual Basic 没有提供下列 _ 事件。(分数:3.00)A.MouseDownB.MouseUpC.MouseExit D.MouseMove解析:解析 MouseDown 代表鼠标键在对象上按下,MouseUp 代表鼠标键在对象上弹起, MouseMove 代
30、表鼠标键在屏幕上移动,而 MouseExit 不是 Visual Basic 中的事件。23.以下程序运行后输出的结果是 _。 a = 12.3 b=-123 m=Len(Str$(A)+Str$(B) Print m End(分数:3.00)A.9 B.5C.7D.8解析:解析 str$(数值表达式)函数的功能是将数值表达式的值转换成字符串表达式。如果数值表达式的值为正数,则在字符串前有一空格符号位。因此,函数 Str$(12.3)返回的结果为“12.3”,其长度为 5(标志共有 5 个字符);Str$(-123)返回的结果为“-123”,其长度为 4。长度函数 Len 计算的结果是:m=5
31、+4=9024.Visual Basic 逻辑运算符 Xor、Or、Eqv、And 中,级别最高的运算符是 _。(分数:3.00)A.And B.OrC.EqvD.Xor解析:解析 在 Visual Basic 中逻辑运算符的优先级为:NotAndOrXorEqvImp。25.在窗体上画一个通用对话框,其名称为 CommonDialogl,然后画一个命令按钮,并编写如下事件过程:Private Sub Command1_Click() CommonDialogl.Flags=cdlOFNHideReadOnly commonDialogl.Filter=“All Files(*.*)|*.*|
32、 Text Files“ Next i Print End Sub(分数:2.00)填空项 1:_ (正确答案:j=20 a(i)=a(j))解析:解析 数组逆序存放其实就是把数组的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,直到所有的元素都交换完毕。算法可描述如下:用变量 i 记下第一个元素的下标 1,用变量j 记下最后一个元素的下标 20:交换 a(i)和 a(j);i 加 1 指向后一个元素, j 减 1 指向前一个元素:重复上述步骤,直到 ij 为止。【4】处应该填写 j 赋最后一个元素的下标,为“j=20“。【5】处是 a(i)和a(j)交换的一条语句,应填“a(i
33、)=a(j)”。30.在窗体上建立名称为 Text1、Text2 和删的三个文本框,其中 Text1 和 Text2 文本框用来接受两个整数(假设为 M 和 N),建立一个名称为 command1 的命令按钮,单击它将得到数 M 从右边起的 N 位数字,并把该数字显示在 Text3 文本框中,如下图所示。请填空。 (分数:2.00)填空项 1:_ (正确答案:m Mod 10 digit(m, n))解析:解析 本题 digit 函数的作用是求第一个形参 m 从右数的第 n(第二个形参)位数字。为求 m 的第n 位数字,可先让 m 除以 10n-1(上标),再求商除以 10 的余数,该余数就是
34、所需要的数字。因此【6】处应填“m Mod 10”。当发生 Command1_Click 事件时,将调用该函数求得 m 和右数第 n 位数字,因此在【7】处应填函数调用“digit(m, n)”。31.下列程序实现的功能是:在窗体上单击时,将在窗体上输出 c:=a1.txt 文件中的所有小写字母。 Private Sub Form Click() Dim Ch As String * 1 Open “c:/a1.txt“ For Input As #10 Do WhileU 【8】 /U Ch= Input(1, #10) IfU 【9】 /UThen Print Ch; End If Loo
35、p U 【10】 /U End Sub(分数:2.00)填空项 1:_ (正确答案:Not EOF(10) Ch“a“And Ch=“z“ Close #10)解析:解析 要将 a1.txt 中的所有小写字母输出,可采用下述方法:首先读打开该文件,然后从文件中读取一个字符,判断该字符是否为小写字母,若是则输出该字母,重复上述过程直到文件结尾。在读字符前应要测试文件内部读写指针是否位于文件尾,只有不是在文件结尾时才能读取字符,故【8】处应填“Not EOF(10)”,读取一个字符后,应判断该字符是否尾小写字母,故【9】处应填“Ch“a“ And Ch=“z“”,文件读写过后,应关闭文件,故【10】处应填“Close #10”。