您的当前位置:首页正文

VB试题库(全国)

2023-09-30 来源:步旅网
一、 选择题

1.以下叙述中错误的是____B____。

A..vbp文件是工程文件,一个工程可以包含.bas文件 B..frm文件是窗体文件,一个窗体可以包含.bas文件

C..vbp文件是工程文件,一个工程可以由多个.frm文件组成

D..vbg文件是工程组文件,一个工程组可以由多个工程组成 2.以下合法的VB变量名是____C____。

A.Case B.t-name C.name10 D.x*y 3.以下描述中错误的是____B____。

A.窗体的标题通过其Caption属性设置

B.窗体的名称(Name属性)可以在运行期间修改 C.窗体的背景图形通过其Picture属性设置 D.窗体最小化时的图标通过其Icon属性设置

4.在Visual Basic集成环境中,可以列出工程中所有模块名称的窗口是____A____。

A.工程资源管理器窗口 B.窗体设计窗口 C.属性窗口 D.代码窗口

5.在Visual Basic集成环境中,要添加一个窗体,可以单击工具栏上的一个按钮,这个按钮是_____A___。

A.

B.

C.

D.

6.在Visual Basic集成环境中,要结束一个正在运行的工程,可单击工具栏上的一个按钮,这个按钮是_____D___。

A.

B.

C.

D.

7.以下变量名中合法的是__C______。

A.x2-1 B.print C.str_n D.2x 8.执行语句Dim X,Y As Integer后,___D_____。

A.X和Y均被定义为整型变量 B.X和Y均被定义为变体类型变量

C.X被定义为整型变量,Y被定义为变体类型变量 D.X被定义为变体类型变量,Y被定义为整型变量

9.在设计窗体时双击窗体的任何地方,可以打开的窗口是___A_____。

A.代码窗口 B.属性窗口 C.工程资源管理器窗口 D.工具箱窗口 10.以下叙述中错误的是___D_____。

A.标准模块文件的扩展名是.bas B.标准模块文件是纯代码文件

C.在标准模块中声明的全局变量可以在整个工程中使用

D.在标准模块中不能定义过程 11.以下叙述中错误的是_____C____。

A.在Visual Basic的窗体中,一个命令按钮是一个对象 B.事件是能够被对象识别的状态变化或动作

C.事件都是由用户的键盘操作或鼠标操作触发的 D.不同的对象可以具有相同的方法

..

12.设x是小于10的非负数。对此陈述,以下正确的VB表达式是___C____。 A.0≤x<10 B.0<=x<10 C.x>=0 And x<10 D.x>=0 Or x<=10

13.在设计阶段,当按Ctrl+R键时,所打开的窗口是_B______。 A.代码窗口 B.工程资源管理器窗口 C.工具箱窗口 D.属性窗口

14.在设计阶段,当按下F4键时,所打开的窗口是____D___。 A.代码窗口 B.工具箱窗口 C.工程资源管理器窗口 D.属性窗口

15.在Visual Basic集成环境的设计模式下,用鼠标双击窗体上的某个控件打开的窗口是____D___。 A.工程资源管理器窗口 B.属性窗口 C.工具箱窗口 D.代码窗口

16.设x是整型变量,与函数IIf(x>0,-x,x)有相同结果的代数式是___B____。 A.|x| B.-|x| C.x D.-x 17.把数学表达式

5x32y6表示为正确的VB表达式应该是___D____。

A.(5x+3)/(2y-6) B.x*5+3/2*y-6 C.(5*x+3)(2*y-6) D.(x*5+3)/(y*2-6)

18.以下关系表达式中,其值为True的是_____B__。 Ascii码 A 65 a 97

A.\"XYZ\">\"XYz\" B.\"VisualBasic\"<>\"visualbasic\" C.\"the\"=\"there\" D.\"Integer\"<\"Int\"

19.若变量a未事先定义而直接使用(例如:a=0),则变量a的类型是___D____。

A.Integer B.String C.Boolean D.Variant 20.在Visual Basic中,表达式3*2\\5 Mod 3的值是____A_____。

A.1 B.0 C.3 D.出现错误提示

21.设x=3.3,y=4.5,表达式x-Int(x)+Fix(y)的值是____C____。Int(n):取<=n的最大整数;Fix(n):取n的整数部分

A.3.5 B.4.8 C.4.3 D.4.7 22.以下关于窗体的叙述中,错误的是____D____。

A.窗体的Name属性用于标识一个窗体

B.运行程序时改变窗体大小,能够触发窗体的Resize事件 C.窗体的Enabled属性为False时,不能响应单击窗体的事件 D.程序运行期间,可以改变Name属性值 23.设有如下变量声明语句: Dim a,b As Boolean

则下面叙述中正确的是___B_____。

A.a和b都是布尔型变量

B.a是变体型变量,b是布尔型变量 C.a是整型变量,b是布尔型变量 D.a和b都是变体型变量

24.为了使标签具“透明”的显示效果,需要设置的属性是____C____。

A.Caption B.Alignment C.BackStyle D.AutoSize 25.下列叙述中错误的是_____D___。

..

A.列表框与组合框都有List属性

B.列表框有Selected属性,而组合框没有 C.列表框和组合框都有Style属性 D.组合框有Text属性,而列表框没有 26.设窗体文件中有下面的事件过程:

Private Sub Commandl_Click()

Dim s a%=100 Print a End Sub

其中变量a和s的数据类型分别是_____C___。

A.整型,整型 B.变体型,变体型 C.整型,变体型 D.变体型,整型

27.下面有关标准模块的叙述中,错误的是____A____。

A.标准模块不完全由代码组成,还可以有窗体

B.标准模块中的Private过程不能被工程中的其他模块调用 C.标准模块的文件扩展名为.bas

D.标准模块中的全局变量可以被工程中的任何模块引用 28.执行以下程序段

a$=\"Visual Basic Programming\" b$=\"C++\"

c$=UCase(Left$(a$,7)) & b$ & Right$(a$,12) 后,变量c$的值为_____B___。

A.Visual BASIC Programming B.VISUAL C++Programming C.Visual C++Programming

D.VISUAL BASIC Programming

29.为把圆周率的近似值3.14159存放在变量pi中,应该把变量pi定义为___C_____。

A.Dim pi As Integer B.Dim pi(7)As Integer C.Dim pi As Single D.Dim pi As Long

30.以下选项中,不合法的Visual Basic的变量名是____B____。 A.a5b B._xyz C.a_b D.andif

31.窗体上有一个名称为Command1的命令按钮,其中部分代码如下:

Private Sub Command1_Click() Dim a(10)As Integer Dim n As Integer …… Call calc(a,n) …… End Sub

calc过程的首行应该是____A_____。

A.Sub calc(x() As Integer, n As Integer)

B.Public Sub calc(x() As Integer)

C.Private Sub calc(a(n) As Integer, n As Integer)

..

D.Public Sub calc(a As Integer, n As Integer)

32.下面定义窗体级变量a的语句中错误的是___D_____。

A.Dim a% B.Private a% C.Private a As Integer D.Static a% 33.下列可作为Visual Basic变量名的是____D____。

A.A#A B.4ABC C.?xy D.Print_Text

34.下面可以产生20~30(含20和30)的随机整数的表达式是_____B___。

A.Int(Rnd*10+20) B.Int(Rnd*11+20) C.Int(Rnd*20+30) D.Int(Rnd*30+20)

35.设窗体上有一个命令按钮数组,能够区分数组中各个按钮的属性是____B____。

A.Name B.Index C.Caption D.Left 36.下面哪个属性肯定不是框架控件的属性____A____。

A.Text B.Caption C.Left D.Enabled 37.下面控件中,没有Caption属性的是___C_____。

A.复选框 B.单选按钮 C.组合框 D.框架 38.下列叙述中正确的是______C__。

A.MsgBox语句的返回值是一个整数

B.执行MsgBox语句并出现信息框后,不用关闭信息框即可执行其他操作

C.MsgBox语句的第一个参数不能省略 Msgbox(提示,【,按钮】【,标题】) D.如果省略MsgBox语句的第三个参数(Title),则信息框的标题为空 39.表达式2*3^2 + 4*2/2 + 3^2的值是____B____。

A.30 B.31 C.49 D.48 40.以下数组定义语句中,错误的是____C_____。

A.Static a(10) As Integer B.Dim c(3,1 To 4)

C.Dim d(-10) 若省略下界时,默认为0 D.Dim b(0 To 5,1 To 3) As Integer 41.设有如下程序:

Sub f(x As Integer, ByVal y As Integer) x=2*x y=y+x End Sub

Private Sub Command1_Click() Dim a As Integer, b As Integer a=6:b=35 Call f(a, b) Print a, b End Sub

程序运行后,单击命令按钮Command1,输出结果为____D____。

A.6 47 B.12 47 C.6 35 D.12 35 例:Sub s1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer

..

t = x x = y y = t End Sub

Sub s2(x As Integer, y As Integer) Dim t As Integer t = x x = y y = t End Sub

Private Sub Command1_Click() Dim a As Integer, b As Integer a = 12 b = 13

Call s1(a, b) Print a, b Call s2(a, b) Print a, b End Sub

输出结果为什么是12 13 13 12

s1是值传递,形参的改变不影响实参,s2是地址传递,形参的改变影响实参

42.表达式Int(Rnd(0)*50)所产生的随机数范围是_____C____。

A.(0,50) B.(1,50) C.(0,49) D.(1,49) 43.假定一个滚动条的LargeChange属性值为100,则100表示___A______。

A.单击滚动条箭头和滚动框之间某位置时滚动框位置的变化量 B.滚动框位置的最大值

C.拖动滚动框时滚动框位置的变化量 D.单击滚动条箭头时滚动框位置的变化量

44.设窗体上有一个名称为HS1的水平滚动条,如果执行了语句:

HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min则____C_____。 A.滚动块处于最左端 B.滚动块处于最右端 C.滚动块处于中间位置

D.滚动块可能处于任何位置,具体位置取决于Max、Min属性的值 45.滚动条可以响应的事件是____B_____。

A.Load B.Scroll C.Click D.MouseDown 46.下面不能在信息框中输出\"VB\"的是____D_____。

A.MsgBox\"VB\" B.x=MsgBox(\"VB\") C.MsgBox(\"VB\") D.Call MsgBox\"VB\" 47.用来设置文字字体是否斜体的属性是___D______。

A.FontUnderline B.FontBold C.FontSlope D.FontItalic

48.在窗体上画一个文本框(名称为Textl)和一个标签(名称为Label1),程序运行后,在文本框中每输入一个

..

字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是_____A____。

A.Private Sub Textl_Change()

Label1.Caption=Str(Len(Text1.Text)) End Sub

B.Private Sub Text1_Click()

Label1.Caption=Str(Len(Text1.Text)) End Sub

C.Private Sub Text1_Change() Label1.Caption=Text1.Text End Sub

D.Private Sub Label1_Change()

Label1.Caption=Str(Len(Text1.Text)) End Sub

49.以下不能输出\"Program\"的语句是____D_____。

A.Print Mid(\"VBProgram\",3,7) B.Print Right(\"VBProgram\",7) C.Print Mid(\"VBProgram\",3) D.Print Left(\"VBProgram\",7)

50.现有语句:y=IIf(x>0,x Mod 3,0)设x=10,则y的值是____B____。

A.0 B.1 C.3 D.语句有错 51.以下叙述中正确的是___A______。

A.窗体及窗体上所有控件的事件过程代码都保存在窗体文件中 B.在工程中只有启动窗体可以建立菜单 C.窗体名称必须与窗体文件的名称相同 D.程序一定是从某个窗体开始执行的

52.设x=5,执行语句Print x=x+10,窗体上显示的是___D_____。 A.15 B.5 C.True D.False 53.在窗体上面一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() MsgBox Str(123+321) End Sub

程序运行后,单击命令按钮,则在信息框中显示的提示信息为___B_____。

A.字符串\"123+321\" B.字符串\"444\" C.数值\"444\" D.空白 54.窗体上有一个名称为Cb1的组合框,程序运行后,为了输出选中的列表项,应使用的语句是___B______。

A.Print Cb1.Selected

B.Print Cb1.List(Cb1.ListIndex) C.Print Cb1.Selected.Text D.Print Cb1.List(ListIndex)

55.设a=5,b=6,c=7,d=8,执行语句x=IIf((a>b)And(c>d),10,20)后,x的值是____B_____。

A.10 B.20 C.30 D.200 56.窗体上有一个名称为Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程

Private Sub Optionl_Click(Index As Integer)

..

End Sub

下面关于此过程的参数Index的叙述中正确的是_____C____。

A.Index为1表示单选按钮被选中,为0表示未选中 B.Index的值可正可负

C.Index的值用来区分哪个单选按钮被选中 D.Index表示数组中单选按钮的数量

57.若看到程序中有以下事件过程,则可以肯定的是,当程序运行时______D___。

Private Sub Click_MouseDown(Button As Integer,_

Shift As Integer,X As Single,Y As Single)

Print \"VB Program\" End Sub

A.用鼠标左键单击名称为\"Commandl\"的命令按钮时,执行此过程 B.用鼠标左键单击名称为\"MouseDown\"的命令按钮时,执行此过程 C.用鼠标右键单击名称为\"MouseDown\"的控件时,执行此过程 D.用鼠标左键或右键单击名称为\"Click\"的控件时,执行此过程

58.在窗体上画两个单选按钮(名称分别为Option1、Option2,标题分别为“宋体”和“黑体”)、 1个复选框(名称为Check1,标题为“粗体”)和1个文本框(名称为Textl,Text属性为“改变文字字体”),窗体外观如图所示。程序运行后,要求“宋体”单选按钮和“粗体”复选框被选中,则以下能够实现上述操作的语句序列是___D_____。

A.Option1.Value=False Check1.Value=True B.Option1.Value=True Check1.Value=0 C.Option2.Value=False Check1.Value=2

D.Option1.Value=True Check1.Value=l

59.窗体上有一个名称为Frame1的框架(如下图),若要把框架上显示的“Frame1”修改为汉字“框架”,下面正确的语句是______B__。

A.Frame1.Name=\"框架\" B.Frame1.Caption=\"框架\" C.Frame1.Text=\"框架\" D.Frame1.Value=\"框架\"

60.为了使文本框同时具有垂直和水平滚动条,应先把MultiLine属性设置为True,然后把ScrollBars属性设置为______D___。

A.0 B.1 C.2 D.3

61.窗体上有一个名称为Command1的命令按钮,其单击事件过程代码如下:

Private Sub Command1_Click() Static x As Variant n=0

..

x=Array(1,2,3,4,5,6,7,8,9,10) While n<=4 x(n)=x(n+5) Print x(n); n=n+1 Wend End Sub

运行程序,单击命令按钮Command1,窗体上显示的是____B____。

A.1 2 3 4 5 B.6 7 8 9 10 C.2 3 4 5 6 D.6 2 3 4 5 62.设有如下数组声明语句:

Dim arr(-2 To 2,0 To 3) As Integer

该数组所包含的数组元素个数是____A_____。

A.20 B.16 C.15 D.12 63.假定有以下程序:

Private Sub Form_Click() a=1:b=a

Do Until a>=5 x=a*b Print b;x a=a+b b=b+a Loop End Sub

程序运行后,单击窗体,输出结果是_____D____。

A. 1 1 B.1 1 C.1 1 D.1 1

2 3 2 4 3 8 3 6

64.为了在窗体上建立2组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是____D____。

A.把这2组单选按钮设置为名称不同的2个控件数组 B.使2组单选按钮的Index属性分别相同 C.使2组单选按钮的名称分别相同

D.把2组单选按钮分别画到2个不同的框架中

65.语句Print Sgn(-6^2)+Abs(-6^2)+Int(-6^2)的输出结果是___C_____。

A.-36 B.1 C.-1 D.-72

66.设窗体中有一个文本框Text1,若在程序中执行了Text1.SetFocus,则触发___B_____。

A.Text1的SetFocus事件 B.Text1的GotFocus事件 C.Text1的LostFocus事件 D.窗体的GotFocus事件

67.可以产生30~50(含30和50)之间的随机整数的表达式是___A_____。

A.Int(Rnd*21+30) B.Int(Rnd*20+30) C.Int(Rnd*50-Rnd*30) D.Int(Rnd*30+50)

68.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click() c=1234

c1=Trim(Str(c))

..

For i=1 To 4

Print ______ Next End Sub

程序运行后,单击命令按钮,要求在窗体上显示如下内容:

1

12 123 1234

则在横线处应填入的内容为___B_____。

A.Right(c1,i) B.Left(c1,i) C.Mid(c1,i,1) D.Mid(c1,i,i) 69.以下叙述中错误的是_____D___。

A.在通用过程中,多个形式参数之间可以用逗号作为分隔符 B.在Print方法中,多个输出项之间可以用逗号作为分隔符 C.在Dim语句中,所定义的多个变量可以用逗号作为分隔符

D.当一行中有多个语句时,可以用逗号作为分隔符 用冒号 70.文本框 Text1 的 KeyDown 事件过程如下:

Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)

… End Sub

其中参数KeyCode的值表示的是发生此事件时___C_____。

A.是否按下了Alt键或Ctrl键 B.按下的是哪个数字键 C.所按的键盘键的键码 D.按下的是哪个鼠标键 71.窗体上有一个名称为Label1的标签和一个名称为Command1的命令按钮。命令按钮的单击事件过程如下:

Private Sub Command1_Click() x=InputBox(\"输入x:\ y=InputBox(\"输入y:\ Label1.Caption=x+y End Sub

运行程序,单击命令按钮,在输入对话框中分别输入2、3,运行的结果是____D_____。

A.程序运行有错误,数据类型不匹配

B.程序运行有错误,InputBox函数的格式不对 C.在Label1中显示5 D.在Label1中显示23

72.现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是____B____。 A.Name B.Index C.Caption D.Value

73.在窗体上画一个名称为List1的列表框,列表框中显示若干城市的名称。当单击列表框中的某个城市名时,该城市名消失。下列在List1_Click事件过程中能正确实现上述功能的语句是_____D___。

A.Listl.RemoveItem Listl.Text B.Listl.RemoveItem List1.Clear C.Listl.RemoveItem List1.ListCount D.Listl.RemoveItem List1.ListIndex 74.如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是____B_____。

A.它的Y1、Y2属性的值相等 B.它的X1、X2属性的值相等

..

C.它的X1、Y1属性的值分别与X2、Y2属性的值相等 D.它的X1、X2属性的值分别与Y1、Y2属性的值相等

75.如果一个直线控件在窗体上呈现为一条水平线,则可以确定的是___A______。

A.它的Y1、Y2属性的值相等 B.它的X1、X2属性的值相等

C.它的X1、Y1属性的值分别与X2、Y2属性的值相等 D.它的X1、X2 属性的值分别与Y1、Y2属性的值相等

76.VB中有3个键盘事件:KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,则每输入一个字母_____A____。

A.这3个事件都会触发 B.只触发KeyPress事件 C.只触发KeyDown、KeyUp事件 D.不触发其中任何一个事件 77.在程序运行时,下面的叙述中正确的是____C_____。

A.用鼠标右键单击窗体中无控件的部分,会执行窗体的Form_Load事件过程 B.用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程 C.只装入而不显示窗体,也会执行窗体的Form_Load事件过程

D.装入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程 78.假定有以下程序段:

For i=1 To 3

For j=5 To 1 Step -1 Print i*j Next j Next i

则语句Print i*j的执行次数是_____A____。

A.15 B.16 C.17 D.18

79.设窗体上有一个列表框控件List1,含有若干列表项。以下能表示当前被选中的列表项内容的是____C_____。

A.List1.List B.List1.ListIndex C.List1.Text D.List1.Index

80.窗体上有一个名称为HScroll1的滚动条,程序运行后,当单击滚动条两端的箭头时,立即在窗体上显示滚动框的位置(即刻度值)。下面能够实现上述操作的事件过程是____A_____。

A.Private Sub HScroll1_Change() Print HScroll1.Value End Sub B.Private Sub HScroll1_Change() Print HScroll1.SmallChange End Sub

C.Private Sub HScroll1_Scroll() Print HScroll1.Value End Sub

D.Private Sub HScroll1_Scroll() Print HScroll1.Sma11Change End Sub 81.窗体上有一个名称为Shape1的形状控件和由三个命令按钮组成的名称为cmdDraw的控件数组。窗体外观如图所示(从上到下的3个命令按钮的下标值分别为0、1、2)。有事件过程如下:

..

Private Sub cmdDraw_Click(Index As Integer) Select Case Index Case 0

Shape1.Shape=0 Case 1

Shape1.Shape=1 Case 2

Shape1.Shape=3 End Select End Sub

当单击“画圆”命令按钮时,会执行cmdDraw_Click事件过程。以下叙述中正确的是___D_____。 A.Case 2分支有错,此Case后面表达式的值应该与赋给Shape1.Shape的值一致 B.程序运行有错,控件数组的下标应该从1开始 C.Index是形状控件的参数

D.程序正常运行,形状控件被显示为圆形 82.设有分段函数:

以下表示上述分段函数的语句序列中错误的是___A____。

A.Select Case x Case Is<0 y=5 Case Is<=5,Is>0 y=2*x Case Else y=x*x+1

B.If x<0 Then

y=5

ElseIf x<=5 Then

y=2*x Else

y=x*x+1 End If

C.y=IIf(x<0,5,IIf(x<=5,2*x,x*x+1)) D.If x<0 Then y=5

If x<=5 And x>=0 Then y=2*x If x>5 Then y=x*x+1

83.列表框中的项目保存在一个数组中,这个数组的名字是___C____。

A.Column B.Style C.List D.MultiSeleet 84.设a=2,b=3,c=4,d=5,则下面语句的输出是____A____。

Print 3>2*b Or a=c And b<>c Or c>d A.False B.1 C.True D.-1

85.在窗体上画一个名称为Command1的命令按钮。单击命令按钮时执行如下事件过程:

Private Sub Command1_Click()

..

a$=\"software and hardware\" b$=Right(a$,8) c$=Mid(a$,1,8)

MsgBox a$,,b$,c$,1 End Sub

则在弹出的信息框标题栏中显示的标题是____B____。

A.software and hardware B.hardware C.software D.1

86.下面关于标准模块的叙述中错误的是____B____。

A.标准模块中可以声明全局变量

B.标准模块中可以包含一个Sub Main过程,但此过程不能被设置为启动过程 C.标准模块中可以包含一些Public过程 D.一个工程中可以含有多个标准模块

87.窗体上有名称为Command1的命令按钮和名称为Text1的文本框

Private Sub Command1_Click()

Text1.Text=\"程序设计\" Text1.SetFocus End Sub

Private Sub Text1_GotFocus()

Text1.Text=\"等级考试\" End Sub

运行以上程序,单击命令按钮后____B____。

A.文本框中显示的是\"程序设计\",且焦点在文本框中 B.文本框中显示的是\"等级考试\",且焦点在文本框中 C.文本框中显示的是\"程序设计\",且焦点在命令按钮上 D.文本框中显示的是\"等级考试\",且焦点在命令按钮上

88.在窗体上画两个文本框(名称分别为Textl和Text2)和一个命令按钮(名称为Command1),然后编写如下事件过程:

Private Sub Command1_Click() x=0

Do While x<50 x=(x+2)*(x+3) n=n+1 Loop

Text1.Text=Str(n) Text2.Text=Str(x) End Sub

程序运行后,单击命令按钮,在两个文本框中显示的值分别为____B____。

A.1和0 B.2和72 C.3和50 D.4和168

89.设a=4,b=5,c=26,执行语句Print aA.True B.False C.出错信息 D.0

90.若已把一个命令按钮的 Default 属性设置为 True,则下面可导致按钮的Click事件过程被调用的操作是___C_____。

A.用鼠标右键单击此按钮 B.按键盘上的Esc键

..

C.按键盘上的回车键 D.用鼠标右键双击此按钮

91.如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如:9632是降序数,而8516则不是降序数)。现编写如下程序,判断输入的正整数是否为降序数。

Private Sub Command1_Click() Dim n As Long

Dim flag As Boolean

n=InputBox(\"输入一个正整数\") s=Trim(Str(n)) For i=2 To Len(s)

If Mid(s,i-1,1)If i=Len(s)Then flag=True Else flag=False If flag Then

Print n;\"是降序数\" Else

Print n;\"不是降序数\" End If End Sub

运行以上程序,发现有错误,需要对给flag变量赋值的If语句进行修改。以下正确的修改是_____B____。

A.If i=Len(s) + 1 Then flag=False Else flag=True B.If i=Len(s) + l Then flag=True Else flag=False C.If i=Len(s) -1 Then flag=False Else flag=True D.If i=Len(s) - 1 Then flag=True Else flag=False 92.设程序中有如下语句:

x=InputBox(\"输入\",\"数据\Print x

运行程序,执行上述语句,输入5并单击输入对话框上的“取消”按钮,则窗体上输出______D___。 A.0 B.5 C.100 D.空白 93.有人编写了如下程序:

Private Sub Form_Click()

Dim s As Integer,x As Integer s=0 x=0

Do While s=10000 x=x+1 s=s+x ^ 2 Loop Print s End Sub

222

上述程序的功能是:计算s=1+2+3+…+n+…,直到s>10000为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是_____B____。

A.把x=0改为x=1

B.把Do While s=10000改为Do While s<=10000 C.把Do While s=10000改为Do While s>10000

..

D.交换x=x+1和s=s+x ^ 2的位置

94.窗体Form1上有一个名称为Command1的命令按钮,以下对应窗体单击事件的事件过程是_____B____。

A.Private Sub Form1_Click() ...

End Sub

B.Private Sub Form_Click() ... End Sub

C.Private Sub Command1_Click() ...

End Sub

D.Private Sub Command_Click() ...

End Sub

95.在窗体上画一个文本框(名称为Text1)和一个标签(名称为Label1),程序运行后,如果在文本框中输入文本,则标签中立即显示相同的内容。以下可以实现上述操作的事件过程是______A__。

A.Private Sub Text1_Change() Label1.Caption=Text1.Text End Sub

B.Private Sub Label1_Change()

Label1.Caption=Text1.Text End Sub

C.Private Sub Text1_Click() Label1.Caption=Text1.Text End Sub

D.Private Sub Label1_Click()

Label1.Caption=Text1.Text End Sub

96.设窗体的名称为Form1,标题为Win,则窗体的MouseDown事件过程的过程名是____C____。

A.Forml_MouseDown B.Win_MouseDown C.Form_MouseDown D.MouseDown_Form1 97.设窗体上有名称为Option1的单选按钮,且程序中有语句:

If Option1.Value=True Then

下面语句中与该语句不等价的是____C____。

A.If Option1.Value Then B.If Option1=True Then C.If Value=True Then D.If Option1 Then 98.阅读程序:

Private Sub Form_Click() a=0

For j=1 To 15

a=a+j Mod 3 Next j Print a End Sub

..

程序运行后,单击窗体,输出结果是____D____。

A.105 B.1 C.120 D.15 99.执行下列语句:

strInput=InputBox(\"请输入字符串\字符串对话框\字符串\")

将显示输入对话框。此时如果直接单击“确定”按钮,则变量strInput的内容是_____C___。

A.\"请输入字符串\" B.\"字符串对话框\" C.\"字符串\" D.空字符串

100.能够存放组合框的所有项目内容的属性是__C_______。

A.Caption B.Text C.List D.Selected 101.现有以下程序:

Private Sub Command1_Click() c1=0 c2=0

For i=1 To 100

If i Mod 3=0 Then c1=c1+1

ElseIf i Mod 7=0 Then c2=c2+1 End If Next

Print c1+c2 End Sub

此程序运行后输出的是在1~100范围内___B______。

A.同时能被3和7整除的整数个数

B.能被3或7整除的整数个数(同时被3和7整除的数只记一次) C.能被3整除,而不能被7整除的整数个数 D.能被7整除,而不能被3整除的整数个数 102.现有如下一段程序:

Option Base 1

Private Sub Command1_Click() Dim a

a=Array(3,5,7,9) x=1

For i=4 To 1 Step-1 s=s+a(i)*x x=x*10 Next Print s End Sub

执行程序,单击Command1命令按钮,执行上述事件过程,输出结果是___C_____。 A.9753 B.35 C.3579 D.79 103.设有如下程序:

Private Sub Form_Click()

Dim s As Long,f As Long

..

Dim n As Integer,i As Integer f=1 n=4

For i=1 To n f=f*i s=s+f Next i Print s End Sub

程序运行后,单击窗体,输出结果是_____D___。

A.32 B.35 C.34 D.33

104.默认情况下,下面声明的数组的元素个数是__D______。6*5=30 Dim a(5,-2 To 2)

A.20 B.24 C.25 D.30 105.以下说法中错误的是____C____。 A.如果把一个命令按钮的Default属性设置为True,则按回车键与单击该命令按钮的作用相同

B.可以用多个命令按钮组成命令按钮数组 C.命令按钮只能识别单击(Click)事件

D.通过设置命令按钮的Enabled属性,可以使该命令按钮有效或禁用 106.下面正确使用动态数组的是___A_____。

A.Dim art()As Integer …

ReDim arr(3,5)

B.Dim arr()As Integer …

ReDim arr(50) As String C.Dim arr() …

ReDim arr(50) As Integer D.Dim arr(50) As Integer …

ReDim arr(20)

107.设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。下面叙述中正确的是____A____。

A.程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加 B.程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少 C.由于滚动条的Max属性值小于Min属性值,程序会出错

D.由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动 108.以下说法中正确的是______A__。

A.当焦点在某个控件上时,按下一个字母键,就会执行该控件的KeyPress事件过程 B.因为窗体不接受焦点,所以窗体不存在自己的KeyPress事件过程

C.若按下的键相同,KeyPress事件过程中的KeyAscii参数与KeyDown事件过程中的KeyCode参数的值也相同

D.在KeyPress事件过程中,KeyAscii参数可以省略

..

109.窗体上有Command1、Command2两个命令按钮。现编写以下程序:

Option Base 0

Dim a()As Integer,m As Integer Private Sub Command1_Click()

m=InputBox(\"请输入一个正整数\") ReDim a(m) End Sub

Private Sub Command2_Click()

m=InputBox(\"请输入一个正整数\") ReDim a(m) End Sub

运行程序时,单击Command1后输入整数10,再单击Command2后输入整数5,则数组a中元素的个数是_____B___。 0---5 6个

A.5 B.6 C.10 D.11

110.要使两个单选按钮属于同一个框架,正确的操作是____A_____。

A.先画一个框架,再在框架中画两个单选按钮

B.先画一个框架,再在框架外画两个单选按钮,然后把单选按钮拖到框架中 C.先画两个单选按钮,再画框架将单选按钮框起来 D.以上三种方法都正确

111.窗体上有一个名称为Command1的命令按钮,并有如下程序:

Private Sub Command1_Click() x=15

Do While x>0 x=x-3

x=IIf(Int(x/5)=x/5,x+2,x) Loop Print x End Sub

程序运行后,单击命令按钮Command 1,输出结果为___B_____。X=-15

A.0 B.-1 C.-2 D.-3

112.设有一个命令按钮Command1的事件过程以及一个函数过程。程序如下:

Private Sub Command1_Click() Static x As Integer x=f(x+5) Cls Print x End Sub

Private Function f(x As Integer)As Integer f=x+x End Function

连续单击命令按钮3次,第3次单击命令按钮后,窗体上显示的计算结果是_____D_____。

A.10 B.30 C.60 D.70 113.阅读下面的程序段:

a=0

..

For i=1 To 3 For j=1 To i

For k=j To 3 a=a+1 Next k Next j Next i

执行上面的程序段后,a的值为_____C____。

A.3 B.9 C.14 D.21 114.设有如下程序段:

Dim a(10) ...

For Each x In a

Print x; Next x

在上面的程序段中,变量x必须是____B____。

A.整型变量 B.变体型变量 C.动态数组 D.静态数组 115.以下关于局部变量的叙述中错误的是_____D___。

A.在过程中用Dim语句或Static语句声明的变量是局部变量 B.局部变量的作用域是它所在的过程

C.在过程中用Static语句声明的变量是静态局部变量

D.过程执行完毕,该过程中用Dim或Static语句声明的变量即被释放 116.下面是求最大公约数的函数的首部

Function gcd(ByVal x As Integer,ByVal y As Integer)As Integer

若要输出8、12、16这3个数的最大公约数,下面正确的语句是_____D___。

A.Print gcd(8,12),gcd(12,16),gcd(16,8) B.Print gcd(8,12,16)

C.Print gcd(8),gcd(12),gcd(16) D.Print gcd(8,gcd(12,16)) 117.有如下过程代码:

Sub var_dim()

Static numa As Integer Dim numb As Integer numa=numa+2 numb=numb+1 print numa;mumb End Sub

连续3次调用var_dim过程,第3次调用时的输出是______C__。

A.2 1 B.2 3 C.6 1 D.6 3

118.语句Dim a(-3 To 4,3 To 6)As Integer定义的数组的元素个数是____D____。

A.18 B.28 C.21 D.32

119.在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下事件过程:

Private Sub Command1_Click()

Counter=0

..

For i=1 To 4

For j=6 To 1 Step -2

Counter=Counter+1

Next j Next i

Label1.Caption=Str(Counter) End Sub

程序运行后,单击命令按钮,标签中显示的内容是___B_____。

A.11 B.12 C.16 D.20

120.设窗体上有一个标签Label1和一个计时器Timer1,Timer1的Interval属性被设置为1000,Enabled属性被设置为True。要求程序运行时每秒在标签中显示一次系统当前时间。以下可以实现上述要求的事件过程是______B__。

A.Private Sub Timer1_Timer() Label1.Caption=True End Sub

B.Private Sub Timer1_Timer() Label1.Caption=Time$ End Sub

C.Private Sub Timer1_Timer() Label1.Interval=1 End Sub

D.Private Sub Timer1_Timer() For k=1 To Timer1.Interval Label1.Caption=Timer Next k End Sub

121.设菜单编辑器中各菜单项的属性设置如下表所示: 序号 1 2 3 4 5 标题 File Open Save Exit Help 名称 File OpenFile SaveFile EndOfAll ShowHelp 复选 √ 有效 √ √ √ 可见 √ √ √ √ 内缩符号 无 1 1 1 1 针对上述属性设置,以下叙述中错误的是____A____。

A.属性设置有错,存在“标题”与“名称”重名现象

B.运行程序,序号为“3”的菜单项不显示 C.运行程序,序号为“4”的菜单项不可用

D.运行程序,序号为“5”的菜单项前显示“√” 122.以下关于菜单设计的叙述中错误的是____C___。

A.各菜单项可以构成控件数组 B.每个菜单项可以看成是一个控件 C.设计菜单时,菜单项的“有效”未选,即D.菜单项只响应单击事件 123.设有如下程序:

..

,表示该菜单项不显示

Private Sub Form_Click() Cls

a$=\"123456\" For i=1 To 6

Print Tab(12-i);Left(a$,i) Next i End Sub

程序运行后,单击窗体,要求结果如图所示,则在下划线处应填入的内容为___A____。

A.Left(a$,i) B.Mid(a$,8-i,i) C.Right(a$,i) D.Mid(a$,7,i) 124.设有以下函数过程

Private Function Fun(a()As Integer,b As String)As Integer ...

End Function 若已有变量声明:

Dim x(5) As Integer, n As Integer, ch As String 则下面正确的过程调用语句是____A____。 A.x(0)=Fun(x,\"ch\") B.n=Fun(n,ch)

C.Call Fun x,\"ch\" D.n=Fun(x(5),ch) 125.以下程序段的输出结果是_____B___。

x=1 y=4

Do Until y>4 x=x*y y=y+1 Loop Print x A.1 B.4 C.8 D.20

126.有下面的程序段,其功能是按图1所示的规律输出数据

Dim a(3,5)As Integer For i=1 To 3

For j=1 To 5

a(i,j)=i+j Print a(i,j); Next Print Next

若要按图2所示的规律继续输出数据,则接在上述程序段后面的程序段应该是____A____。

A.For i=1 To 5 B.For i=1 To 3 For j=1 To 3 For j=1 To 5 Print a(j,i); Print a(j,i); Next Next Print Print

..

Next Next C.For j=1 To 5 D.For i=l To 5 For i=1 To 3 For j=1 To 3 Print a(j,i); Print a(i,j); Next Next Print Print Next Next 127.在窗体上画1个命令按钮,并编写如下事件过程:

Private Sub Command1_Click()

For i=5 To 1 Step -0.8

Print Int(i); Next i End Sub

运行程序,单击命令按钮,窗体上显示的内容为___A_____。

A.5 4 3 2 1 1 B.5 4 3 2 1 C.4 3 2 1 1 D.4 4 3 2 1 1

128.在窗体上画一个命令按钮,其名称为Commandl,然后编写如下代码:

Option Base 1

Private Sub Command1_Click() Dim a

a=Array(1,2,3,4) j=1

For i=4 To 1 Step -1 s=s+a(i)*j j=j*10 Next i Print s End Sub

程序运行后,单击命令按钮,其输出结果是___B_____。

A.4321 B.1234 C.34 D.12

129.在窗体上画一个名为Command1的命令按钮,然后编写以下程序:

Private Sub Command1_Click()

Dim m(10)As Integer For k=1 To 10 m(k)=12-k

Next k x=8

Print m(2+m(x)) End Sub

运行程序,单击命令按钮,在窗体上显示的是___A_____。

A.6 B.5 C.7 D.8 130.设有如图所示窗体和以下程序:

..

Private Sub Command1_Click()

Text1.Text=\"Visual Basic\" End Sub

Private Sub Text1_LostFocus()

If Text1.Text<>\"BASIC\" Then

Text1.Text=\"\" Text1.SetFocus End If End Sub

程序运行时,在Text1文本框中输入\"Basic\"(如图所示),然后单击Command1 按钮,则产生的结果是____A____。

A.文本框中无内容,焦点在文本框中

B.文本框中为\"Basic\",焦点在文本框中 C.文本框中为\"Basic\",焦点在按钮上

D.文本框中为\"Visual Basic\",焦点在按钮上

131.以下关于通用对话框的叙述中,错误的是____D____。

A.若没有指定InitDir属性值,则起始目录为当前目录 B.用一个通用对话框控件可以建立几种不同的对话框 C.FileTitle属性指明了文件对话框中所选择的文件名

D.文件对话框用属性FilterIndex指定默认过滤器,它是一个从0开始的整数 132.以下关于多窗体的叙述中,正确的是___A____。

A.任何时刻,只有一个当前窗体

B.向一个工程添加多个窗体,存盘后生成一个窗体文件 C.打开一个窗体时,其他窗体自动关闭 D.只有第一个建立的窗体才是启动窗体 133.设有如下程序:

Private Sub Form_Click()

Dim i As Integer,x As String,y As String x=\"ABCDEFG\" For i=4 To 1 Step-1 y=Mid(x,i,i)+y Next i Print y End Sub

程序运行后,单击窗体,输出结果为____A___。

A.ABCCDEDEFG B.AABBCDEFG C.ABCDEFG D.AABBCCDDEEFFGG 134.假定用下面的语句打开文件:

Open \"File1.txt\" For Input As #1

..

则不能正确读文件的语句是_____D___。

A.Input #1,ch$ B.Line Input #1,ch$ C.ch$=Input$(5,#l) D.Read #1,ch$

135.如果执行一个语句后弹出如图所示的窗口,则这个语句是_____D___。

A.InputBox(\"输入框\请输入VB数据\") B.x=InputBox(\"输入框\请输入VB数据\") C.InputBox(\"请输入VB数据\输入框\")

D.x=InputBox(\"请输入VB数据\输入框\")

136.窗体上有一个Text1文本框,一个Command1命令按钮,并有以下程序

Private Sub Command1_click()

Dim n

If Text1.Text<>\"123456\" Then

n=n+1

print \"口令输入错误\" & n & \"次\" End If End Sub

希望程序运行时得到左图所示的效果,即:输入口令,单击“确认口令”命令按钮,若输入的口令不是“123456”,则在窗体上显示输入错误口令的次数。但上面的程序实际显示的是右图所示的效果,程序需要修改。下面修改方案中正确的是_____D___。

A.在Dim n语句的下面添加一句:n=0

B.把Print\"口令输入错误\" & n &\"次\"改为Print\"口令输入错误\"+n+\"次\"

C.把Print\"口令输入错误\" & n & \"次\"改为Print\"口令输入错误\"& Str(n) & \"次\" D.把Dim n改为Static n

137.在窗体上画一个命令按钮,并编写如下事件过程:

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)=m+n Else

a(m,n)=0 End If

..

Print a(m,n);

Next n Print Next m End Sub

运行程序,单击命令按钮,窗体上显示的内容为__B______。

A.2 0 0 B. 2 0 4 0 4 0 0 4 0 0 0 6 4 0 6 C.2 3 0 D. 2 0 0 3 4 0 0 4 5 0 0 6 0 5 6

138.假定通过复制、粘贴操作建立了一个命令按钮数组Command1,以下说法中错误的是____D____。

A.数组中每个命令按钮的名称(Name属性)均为Command1 B.若未做修改,数组中每个命令按钮的大小都一样 C.数组中各个命令按钮使用同一个Click事件过程 D.数组中每个命令按钮的Index属性值都相同

139.以下关于过程及过程参数的描述中,错误的是___C_____。

A.调用过程时可以用控件名称作为实际参数

B.用数组作为过程的参数时,使用的是“传地址”方式

C.只有函数过程能够将过程中处理的信息传回到调用的程序中 D.窗体(Form)可以作为过程的参数

140.窗体上有一个名称为Command1的命令按钮,其事件过程如下:

Private Sub Command1_Click() x=\"VisualBasicProgramming\"

a=Right(x,11) b=Mid(x,7,5) c=MsgBox(a,,b) End Sub

运行程序后单击命令按钮。以下叙述中错误的是___D_____。

A.信息框的标题是Basic

B.信息框中的提示信息是Programming C.c的值是函数的返回值 D.MsgBox的使用格式有错

141.窗体上有一个名称为Command1的命令按钮,并有如下程序:

Private Sub Command1_Click() Dim m As Integer,n As Integer m=InputBox(\"输入第一个数\") n=InputBox(\"输入第二个数\") Do While m<>n Do While m>n m=m-n Loop

Do While n>m

..

n=n-m Loop Loop Print m End Sub

该程序的功能是____A____。

A.求数值m和n的最大公约数 B.求数值m和n的最小公倍数 C.求数值m和n中的较大数 D.求数值m和n中的较小数

142.窗体上有一个名称为CommonDialog1的通用对话框,一个名称为Command1的命令按钮,并有如下事件过程:

Private Sub Command1_Click()

CommonDialog1.DefaultExt=\"doc\" CommonDialog1.FileName=\"VB.txt\"

CommonDialog1.Filter=\"All(*.*)|*.*|Word|*.Doc|\" CommonDialog1.FilterIndex=1 CommonDialog1.ShowSave End Sub

运行上述程序,如下叙述中正确的是____A______。

A.打开的对话框中文件“保存类型”框中显示“All(*.*)” B.实现保存文件的操作,文件名是VB.txt

C.DefaultExt属性与FileName属性所指明的文件类型不一致,程序出错 D.对话框的Filter属性没有指出txt类型,程序运行出错 143.设有如下程序:

Private Sub Form_Click()

Dim ary(1 To 5)As Integer Dim i As Integer Dim sum As Integer For i=1 To 5 ary(i)=i+1

sum=sum+ary(i) Next i Print sum End Sub

程序运行后,单击窗体,则在窗体上显示的是___C______。

A.15 B.16 C.20 D.25 144.下面程序的执行结果是____D____。

Private Sub Command1_Click()

a=10

For k=1 To 5 Step-1

a=a-k Next k Print a;k

..

End Sub

A.-5 6 B.-5 -5 C.10 0 D.10 1 145.有如下事件过程:

Private Sub Form_Click() Dim n As Integer x=0

n=InputBox(\"请输入一个整数\") For i=1 To n For j=1 To i x=x+1 Next j Next i Print x End Sub

程序运行后,单击窗体,如果在输入对话框中输入5,则在窗体上显示的内容是___C_____。

A.13 B.14 C.15 D.16

146.要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。下面能正确实现上述功能的事件过程是____C____。

A.Private Sub P1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)

Print X,Y End Sub

B.Private Sub P1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)

Picture.Print X,Y End Sub

C.Private Sub P1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)

P1.Print X,Y End Sub

D.Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)

P1.Print X,Y End Sub

147.设有以下函数过程:

Function fun(a As Integer,b As Integer)

Dim c As Integer If ac=a:a=b:b=c End If c=0 Do

c=c+a

Loop Until c Mod b=0 Fun=c End Function

若调用函数fun时的实际参数都是自然数,则函数返回的是___B_____。

A.a、b的最大公约数 B.a、b的最小公倍数

..

C.a除以b的余数 D.a除以b的商的整数部分

148.在窗体上画一个命令按钮,名称为Commandl,然后编写如下代码:

Option Base 0

Private Sub Command1_Click()

Dim A1(4)As Integer,A2(4)As Integer For k=0 To 2

A1(k+1)=InputBox(\"请输入一个整数\") A2(3-k)=A1(k+1) Next k Print A2(k) End Sub

程序运行后,单击命令按钮,在输入对话框中依次输入2、4、6,则输出结果为___C_____。

A.0 B.1 C.2 D.3

149.在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:

Private X As Integer

Private Sub Command1_Click() X=5:Y=3

Call proc(X,Y) Label1.Caption=X Label2.Caption=Y End Sub

Private Sub proc(a As Integer,ByVal b As Integer) X=a*a Y=b+b End Sub

程序运行后,单击命令按钮,则两个标签中显示的内容分别是__A______。

A.25和3 B.5和3 C.25和6 D.5和6

150.设工程文件包含两个窗体文件Form1.frm、Form2.frm及一个标准模块文件Module1.bas,两个窗体上分别只有一个名称为Command1 的命令按钮。

Form1 的代码如下: Public x As Integer

Private Sub Form_Load()

x=1:y=5 End Sub

Private Sub Command1_Click()

Form2.Show End Sub

Form2 的代码如下:

Private Sub Command1_Click()

Print Form1.x,y End Sub

Module1 的代码如下: Public y As Integer

..

运行以上程序,单击Form1 的命令按钮Command1,则显示Form2;再单击Form2上的命令按钮Command1,则窗体上显示的是__A______。

A.1 5 B.0 5 C.0 0 D.程序有错

151.窗体上有一个名称为Command1的命令按钮,其单击事件过程及有关函数过程如下:

Private Sub Command1_Click() Dim n As Integer n=add(5,10) Print n End Sub

Function add(v1 As Integer,v2 As Integer,Optional v3)As Integer If Not IsMissing(v3)Then add=v1+v2+v3 Else

add=v1+v2 End If End Function

运行程序,单击命令按钮,以下叙述中正确的是____C____。

A.程序不能正常运行,因为函数add的参数定义有错

B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配 C.程序能正常运行,结果是在窗体上显示15 D.程序能正常运行,结果是在窗体上显示510v3 152.设程序中有如下数组定义和过程调用语句:

Dim a(10) As Integer ……

Call p(a)

如下过程定义中,正确的是___B______。 A.Private Sub p(a As Integer) B.Private Sub p(a() As Integer) C.Private Sub p(a(10) As Integer) D.Private Sub p(a(n) As Integer)

153.有一个数列,它的前3个数为0,1,1,此后的每个数都是其前面3个数之和,即 0,1,1,2,4,7,13,24, ...

要求编写程序输出该数列中所有不超过1000的数。 某人编写程序如下:

Private Sub Form_Click()

Dim i As Integer, a As Integer, b As Integer Dim c As Integer, d As Integer a=0:b=1:c=1 d=a+b+c i=5

While d<=1000 Print d;

a=b:b=c:c=d d=a+b+c

..

i=i+1 Wend End Sub

运行上面的程序,发现输出的数列不完整,应进行修改。以下正确的修改是__D_______。

A.把While d<=1000改为While d>1000 B.把i=5改为i=4

C.把i=i+1移到While d<=1000的下面

D.在i=5的上面增加一个语句:Print a;b;c;

154.设窗体上有一个名为Text1的文本框和一个名为Command1的命令按钮,并有以下事件过程:

Private Sub Command1_Click()

x!=Val(Text1.Text) Select Case x

Case Is<-10,Is>=20 Print\"输入错误\" Case Is<0

Print 20-X Case Is<10

Print 20 Case Is<=20

Print x+10 End Select End Sub

程序运行时,如果在文本框中输入-5,则单击命令按钮后的输出结果是____C____。

A.5 B.20 C.25 D.输入错误 155.请阅读程序:

Private Sub Form_Click() Dim a(1 To 4) As Integer For i = 1 To 4 a(i) = 2 * i Next subP a()

For i = 1 To 4 Print a(i); Next End Sub

Sub subP(b() As Integer) b(1) = 5 End Sub

运行上面的程序,单击命令按钮,则输出结果是____A____。

A.5 4 6 8 B.2 4 6 8 C.没有输出 D.出错

156.计算π的近似值的一个公式是π/4=1-1/3+1/5-1/7+…+(-1)n-1/2n-1。某人编写下面的程序用此公式计算并输出π的近似值:

Private Sub Command1_Click()

..

PI=1:Sign=1 n=20000 For k=3 To n

sign=-sign PI=PI+sign/k Next k Print PI*4 End sub

运行后发现结果为3.22751,显然,程序需要修改。下面修改方案中正确的是__C______。

A.把For k=3 To n改为For k=1 To n B.把n=20000改为n=20000000

C.把For k=3 To n改为For k=3 To n Step 2 D.把PI=1改为PI=0

157.窗体上有1个名称为Text1的文本框;1个名称为Timer1的计时器控件,其Interval属性值为5000,Enabled属性值是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

以下叙述中正确的是____C____。

A.每次执行此事件过程时,flag的初始值均为0 B.flag的值只可能取0或1

C.程序执行后,文本框中的文字每5秒改变一次颜色 D.程序有逻辑错误,Else分支总也不能被执行

158.以下关于函数过程的叙述中,正确的是___A_____。

A.函数过程形参的类型与函数返回值的类型没有关系 B.在函数过程中,过程的返回值可以有多个

C.当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 D.如果不指明函数过程参数的类型,则该参数没有数据类型

159.在窗体上有两个名称分别为Text1、Text2的文本框,一个名称为Command1的命令按钮。运行后的窗体外观如图所示。设有如下的类型和变量声明:

Private Type Person

name As String*8 major As String*20 End Type

Dim p As Person

设文本框中的数据已正确地赋值给Person类型的变量p,当单击“保存”按钮时,能够正确地把变量中的数据写入随机文件Test2.dat中的程序段是_____C___。

..

A.Open \"c:\\\\Test2.dat\" For Output As #1

Put #1,1,p Close #1

B.Open \"c:\\\\Test2.dat\" For Random As #1

Get #1,1,p Close #1

C.Open \"c:\\\\Test2.dat\" For Random As #1 Len=Len(p)

Put #1,1,p Close #1

D.Open \"c:\\\\Test2.dat\" For Random As #1 Len=Len(p)

Get #1,1,p Close #1

160.窗体上有一个名称为Text1的文本框,一个名称为Command1的命令按钮。窗体文件的程序如下:

Private Type x

a As Integer b As Integer End Type

Private Sub Command1_Click()

Dim y As x

y.a=InputBox(\"\")

If y.a\\2=y.a/2 Then

y.b=y.a*y.a Else

y.b=Fix(y.a/2) End If

Text1.Text=y.b End Sub

对以上程序,下列叙述中错误的是___D_____。

A.x是用户定义的类型

B.InputBox函数弹出的对话框中没有提示信息 C.若输入的是偶数,y.b的值为该偶数的平方

D.Fix(y.a/2)把y.a/2的小数部分四舍五入,转换为整数返回 161.目录列表框Path属性所表示的含义是___A_____。

A.当前驱动器或指定驱动器上的路径

B.当前驱动器或指定驱动器上的某目录下的文件列表 C.根目录下的文件列表 D.指定路径下的文件列表

162.若要获得组合框中输入的数据,可使用的属性是___C_____。

A.ListIndex B.Caption C.Text D.List 163.下面的语句用Array函数为数组变量a的各元素赋整数值:

a=Array(1,2,3,4,5,6,7,8,9)

针对a的声明语句应该是_____A___。

A.Dim a B.Dim a As Integer C.Dim a(9)As Integer D.Dim a() As Integer

..

164.设有如下程序

Private Sub Command1_Click()

x=10:y=0 For i=1 To 5

Do

x=x-2 y=y+2

Loop Until y>5 Or x<-1 Next End sub

运行程序,其中Do循环执行的次数是_____C___。

A.15 B.10 C.7 D.3

165.Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即:1,1,2,3,5,8,13,21,34,55,89,…。某人编写了下面的函数,判断大于1的整数x是否是Fibonacci数列中的某个数,若是,则返回True,否则返回False。

Function Isfab(x As Integer)As Boolean

Dim a As Integer,b As Integer,c As Integer,flag As Boolean flag=False a=1:b=1

Do While xif x=b Then flag=True Loop Isfab=flag End Function

测试时发现对于所有正整数x,函数都返回False,程序需要修改。下面的修改方案中正确的是_____C___。

A.把a=b与b=c的位置互换 B.把c=a+b移到b=c之后

C.把Do While xb

D.把If x=b Then flag=True改为If x=a Then flag=True 166.下面程序计算并输出的是___A_____。

Private Sub Command1_Click()

a=10:s=0 Do

s=s+a*a*a a=a-1

Loop until a <=0 Print s End sub

A.13+23+33+…103的值 B.10!+…+3!+2!+1!的值 C.(1+2+3+…+10)3的值 D.10个103的和

167.为计算10+21+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

执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是____D____。

A.把s=1改为s=0

B.把For k=2 To 10改为For k=l To 10 C.交换语句s=s+a和a=a*2的顺序 D.同时进行B、C两种修改 168.在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Command1,然后编写如下程序:

Private Sub func(L As Label) L.Caption=\"1234\" End Sub

Private Sub Form_Load()

Label1.Caption=\"ABCDE\" Label2.Caption=10 End Sub

Private Sub Command1_Click() a=Val(Label2.Caption) Call func(Label1) Label2.Caption=a End Sub

程序运行后,单击命令按钮,则在两个标签中显示的内容分别为____D____。

A.ABCD和10 B.1234和100 C.ABCD和100 D.1234和10

169.在窗体上画一个名称为Text1的文本框和一个名称为Commandl的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

Dim i As Integer,n As Integer For i=0 To 50

i=i+3 n=n+1

If i>10 Then Exit For Next

Text1.Text=Str(n) End Sub

程序运行后,单击命令按钮,在文本框中显示的值是____B____。

A.2 B.3 C.4 D.5

170.窗体上有一个名称为CD1的通用对话框控件和由四个命令按钮组成的控件数组Command1,其下标从左到右分别为0、1、2、3,窗体外观如下图所示。命令按钮的事件过程如下:

..

Private Sub Command1_Click(Index As Integer)

Select Case Index Case 0

CD1.Action=1

Case 1

CD1.ShowSave

Case 2

CD1.Action=5

Case 3 End

End Select End Sub

对上述程序,下列叙述中错误的是___C_____。

A.单击“打开”按钮,显示打开文件的对话框 B.单击“保存”按钮,显示保存文件的对话框

C.单击“打印”按钮,能够设置打印选项,执行打印操作 D.单击“退出”按钮,结束程序的运行

171.以下关于函数过程的叙述中错误的是__B______。

A.函数过程一定有返回值 B.函数过程一定有参数

C.函数过程可以在窗体模块和标准模块中定义 D.函数过程参数的类型与返回值的类型无关

172.在窗体上画两个名称分别为Text1、Text2的文本框,Text1的Text属性为“DateBase”,如图所示。

现有如下事件过程:

Private Sub Text1_Change() Text2.Text=Mid(Text1,1,5) End Sub

运行程序,在文本框Text1中原有字符之前输入a,Text2中显示的是_____C___。

A.DataA B.DataB C.aData D.aBase 173.下列描述中正确的是_____A___。

A.Visual Basic只能通过过程调用执行通用过程 B.可以在Sub过程的代码中包含另一个Sub过程的代码 C.可以像通用过程一样指定事件过程的名字 D.Sub过程和Function过程都有返回值 174.阅读程序:

Private Sub Command1_Click()

Dim arr

Dim i As Integer

arr=Array(0,1,2,3,4,5,6,7,8,9,10)

..

For i=0 To 2

Print arr(7-i); Next End Sub

程序运行后,窗体上显示的是____B____。

A.8 7 6 B.7 6 5 C.6 5 4 D.5 4 3

175.在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:

Private Sub Command1_Click() Dim a$,b$,c$,k% a=\"ABCD\" b=\"123456\" c=\"\" k=1

Do While k<=Len(a) Or k<=Len(b) If k<=Len(a) Then c=c & Mid(a,k,1) End If

If k<=Len(b)Then c=c & Mid(b,k,1) End If k=k+1 Loop

Print c End Sub

运行程序,单击命令按钮,输出结果是____D____。

A.123456ABCD B.ABCD123456 C.D6C5B4A321 D.A1B2C3D456

176.若在窗体模块的声明部分声明了如下自定义类型和数组

Private Type rec

Code As Integer Caption As String End Type

Dim arr(5) As rec

则下面的输出语句中正确的是____C____。

A.Print arr.Code(2),arr.Caption(2) B.Print arr.Code,arr.Caption

C.Print arr(2).Code,arr(2).Caption D.Print Code(2),Caption(2)

177.标准模块中有如下程序代码:

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

运行程序后单击命令按钮,窗体上显示的是___B_____。

A.100 100 B.100 120 C.110 100 D.110 120

178.在窗体上画一个命令按钮(名称为Command1),并编写如下代码:

Function Fun1(ByVal a As Integer,b As Integer)As Integer Dim t As Integer t=a-b b=t+a Fun1=t+b End Function

Private Sub Command1_C1ick() Dim x As Integer x=10

Print Fun1(Fun1(x,(Fun1(x,x-1))),x-1) End Sub

程序运行后,单击命令按钮,输出结果是___B_____。

A.10 B.0 C.11 D.21 179.假定有以下循环结构:

Do Until 条件表达式

循环体 Loop

则下列正确的描述是_____D___。

A.如果\"条件表达式\"的值是0,则一次循环体也不执行 B.如果\"条件表达式\"的值不为0,则至少执行一次循环体

C.不论\"条件表达式\"的值是否为\"真\",至少要执行一次循环体 D.如果\"条件表达式\"的值恒为0,则无限次执行循环体

180.窗体上有两个水平滚动条HV、HT(Max属性值均小于100),还有一个文本框Text1和一个标题为“计算”的命令按钮Command1,并编写了以下程序:

Private Sub Command1_Click()

Call calc(HV.Value,HT.Value) End Sub

Public Sub calc(x As Integer,y As Integer)

Text1.Text=x*y End Sub

..

运行程序,单击“计算”按钮,可根据速度与时间计算出距离,并显示计算结果。 对以上程序,下列叙述中正确的是___C_____。

A.过程调用语句不对,应为calc(HV,HT)

B.过程定义语句的形式参数不对,应为Sub calc(x As Control,y As Contro1) C.计算结果在文本框中显示出来 D.程序不能正确运行

181.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:

Public Enum s a=4 b=3 End Enum

Private Sub Command1_Click() Dim x As Integer x=a

If x>=3 Then MsgBox \"Pass!\" End Sub

运行程序,其结果是_____D_____。

A.运行错误,因为Enum定义有错 B.运行错误,因为x=a类型不匹配 C.运行正常结束,不显示任何信息

D.运行正常,显示内容为“Pass!”的信息框 182.有如下程序:

Option Base 1

Private Sub Command1_Click() Dim arr(10)

arr=Array(10,35,28,90,54,68,72,90) For Each a In arr If a>50 Then Sum=Sum+a End If Next a End Sub

运行上述程序时出现错误,错误之处是__A______。 A.数组定义语句不对,应改为Dim arr B.没有指明For循环的终值

C.应在For语句之前增加Sum=0 D.Next a应改为Next 183.阅读程序:

Function fac(ByVal n As Integer)As Integer Dim temp As Integer

..

temp=1

For i%=1 To n

temp=temp*i% Next i% fac=temp End Function

Private Sub Form_Click() Dim nsum As Integer nsum=1

For i%=2 To 4

nsum=nsum+fac(i%) Next i% Print nsum End Sub

程序运行后,单击窗体,输出结果是___C_____。

A.35 B.31 C.33 D.37

184.在窗体上画一个名为Command1的命令按钮,然后编写以下程序:

Private Sub Command1_Click()

Dim a(10)As Integer For k=10 To 1 Step -1

a(k)=20-2*k Next k k=k+7

Print a(k-a(k)) End Sub

运行程序,单击命令按钮,输出结果是___A_______。

A.18 B.12 C.8 D.6 185.请阅读程序:

Private Sub Form_Click() m=1

For i=4 To 1 Step-1 Print Str(m); m=m+1 For j=1 To i Print \"*\"; Next j Print Next i End Sub

程序运行后,单击窗体,则输出结果是_____A_____。

A.1**** B. 4****

2*** 3*** 3** 2** 4* 1*

..

C. **** D. * *** ** ** *** * ****

186.设窗体上有一个通用对话框控件CD1,希望在执行下面程序时,打开如图所示的文件对话框

Private Sub Command1_Click()

CD1.DialogTitle=\"打开文件\" CD1.InitDir=\"C:\\\"

CD1.Filter=\"所有文件|*.*|Word文档|*.doc|文本文件|*.txt\" CD1.FileName=\"\" CD1.Action=1

If CD1.FileName=\"\" Then

Print\"未打开文件\" Else

Print\"要打开文件\" & CD1.FileName End If End Sub

但实际显示的对话框中列出了C:\\下的所有文件和文件夹,“文件类型”一栏中显示的是“所有文件”。下面的修改方案中正确的是_____C___。

A.把CD1.Action=1改为CD1.Action=2

B.把“CD1.Filter=”后面字符串中的“所有文件”改为“文本文件” C.在语句CD1.Action=1的前面添加:CD1.FilterIndex=3 D.把CD1.FileName=\"\"改为CD1.FileName=\"文本文件\"

187.设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:

Function fun(a As Integer,b As Integer)

While a>b

a=a-b Wend fun=a End Function

在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是_____D___。

A.把a=a-b改为a=b-a B.把a=a-b改为a=a\\b C.把While a>b改为While aD.把While a>b改为While a>=b

188.以下关于过程及过程参数的描述中,错误的是___C_____。

..

A.过程的参数可以是控件名称

B.调用过程时使用的实参的个数应与过程形参的个数相同 C.只有函数过程能够将过程中处理的信息返回到调用程序中 D.窗体可以作为过程的参数

189.在窗体上画一个命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

Dim I,Num Randomize Do

For I=1 To 1000

Num=Int(Rnd*100) Print Num;

Select Case Num Case 12

Exit For Case 58

Exit Do Case 65,68,92 End End Select Next I

Loop End Sub

上述事件过程执行后,下列描述中正确的是______D__。

A.Do循环执行的次数为1000次

B.在For循环中产生的随机数小于或等于100 C.当所产生的随机数为12时结束所有循环

D.当所产生的随机数为65、68或92时窗体关闭、程序结束 190.现有如下程序:

Private Sub Command1_Click()

For i=1 To 5

s=s+f(5+i) Next Print s End Sub

Public Function f(x As Integer)

If x>=10 Then

t=x+1 Else

t=x+2 End If f=t

End Function

运行程序,则窗体上显示的是_____B___。

..

A.38 B.49 C.61 D.70 191.设有如下程序:

Option Base 1

Private Sub Form_Click()

Dim a(5) As String, i As Integer For i=1 To 5

a(i) = Chr(Asc(\"A\")+i) Call f(a,i) Next i End Sub

Sub f(ta() As String, n As Integer) Dim i As Integer For i=1 To n Print ta(i); Next i Print End Sub

对上述程序,以下叙述中正确的是______C___。

A.程序有错,因为在过程f的定义中数组参数格式不正确 B.程序可正常运行,输出内容的第一行是一个字母“A” C.程序可正常运行.输出内容的第一行是一个字母“B” D.程序可正常运行,输出内容的第一行是数字65

192.要求产生10个随机整数,存放在数组arr中。从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。现有如下程序:

Option Base 1

Private Sub Command1_Click() Dim arr(10)As Integer

For i=1 To 10 '循环1 arr(i)=Int(Rnd*100) Print arr(i); Next

x=InputBox(\"输入1-10的一个整数:\") For i=x+1 To 10 '循环2 arr(i-1)=arr(i) Next

For i=1 To 10 '循环3 Print arr(i); Next End Sub

程序运行后发现显示的结果不正确。需修改的是____D____。 A.产生随机数时不使用Int函数 B.循环2的初值应为i=x

C.数组定义改为Dim a(11)As Integer

D.循环3的循环终值应改为9

..

193.在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下代码:

Sub S(x As Integer,y As Integer) Static z As Integer y=x*x+z z=y End Sub

Private Sub Command1_Click()

Dim i As Integer,z As Integer m=0 z=0

For i=1 To 3 S i,z m=m+z Next i

Label1.Caption=Str(m) End Sub

程序运行后,单击命令按钮,在标签中显示的内容是____B____。

A.50 B.20 C.14 D.7

194.窗体上有一个名为Command1的命令按钮,并有如下程序:

Private Sub Command1_Click()

Dim a(10),x% For k=1 To 10

a(K)=Int(Rnd*90+10) x=x+a(k) Mod 2 Next k Print x End Sub

程序运行后,单击命令按钮,输出结果是_____A____。

A.10个数中奇数的个数 B.10个数中偶数的个数 C.10个数中奇数的累加和 D.10个数中偶数的累加和

195.在窗体上画一个命令按钮(其名称为Command1),然后编写如下代码:

Private Sub Command1_Click() Dim a

a=Array(1,2,3,4) i=3:j=1

Do While i>=0 s=s+a(i)*j i=i-1 j=j*10 Loop Print s End Sub 运行上面的程序,单击命令按钮,则输出结果是__D_____。

A.4321 B.123 C.234 D.1234

..

196.下面程序运行时,若输入395,则输出结果是____B___。

Private Sub command1_Click()

Dim x%

x=InputBox(\"请输入一个3位整数\") Print x Mod 10;x\\100;(x Mod 100)\\10 End Sub

A.3 9 5 B.5 3 9 C.5 9 3 D.3 5 9

197.下列关于通用对话框CommonDialog1的叙述中,错误的是___A____。

A.只要在\"打开\"对话框中选择了文件,并单击\"打开\"按钮,就可以将选中的文件打开 B.使用CommonDialog1.ShowColor方法,可以显示\"颜色\"对话框

C.CancelError属性用于控制用户单击\"取消\"按钮关闭对话框时,是否显示出错警告 D.在显示\"字体\"对话框前,必须先设置CommonDialog1的Flags属性,否则会出错 198.设有如下通用过程:

Public Function Fun(xStr As String)As String Dim tStr As String,strL As Integer tStr=\"\"

strL=Len(xStr) i=strL/2

Do While i<=strL

tStr=tStr & Mid(xStr,i+1,1) i=i+1 Loop

Fun=tStr & tStr End Function

在窗体上画一个名称为Textl的文本框和一个名称为Commandl的命令按钮。然后编写如下的事件过程: Private Sub Command1_Click() Dim S1 As String S1=\"ABCDEF\"

Text1.Text=LCase(Fun(S1)) End Sub

程序运行后,单击命令按钮,文本框中显示的是___C____。

A.ABCDEF B.abcdef C.defdef D.defabc

199.在窗体上画一个名为Command1的命令按钮,然后编写如下代码:

Option Base 1

Private Sub Command1_Click()

Dim a

a=Array(1,2,3,4) j=1

For i=3 To 1 Step -1 s=s+a(i)*j j=j*10

Next i Print s

..

End Sub

运行上面的程序,其输出结果是___A____。

A.123 B.12 C.34 D.4321

200.窗体上有一个用菜单编辑器设计的菜单。运行程序,并在窗体上单击鼠标右键,则弹出一个快捷菜单,如图所示。以下叙述中错误的是_____A__。

A.在设计“粘贴”菜单项时,在菜单编辑器窗口中设置了“有效”属性(有“√”) B.菜单中的横线是在该菜单项的标题输入框中输入了一个“-”(减号)字符

C.在设计“选中”菜单项时,在菜单编辑器窗口中设置了“复选”属性(有“√”)

D.在设计该弹出菜单的主菜单项时,在菜单编辑器窗口中去掉了“可见”前面的“√” 201.窗体上有一个名称为Picture1的图片框控件,一个名称为Timer1的计时器控件,其Interval属性值为1000。要求每隔5秒钟图片框右移100。现编写程序如下:

Private Sub Timer1_Timer() Static n As Integer n=n+1

If (n/5)=Int(n/5) And Picture1.Left分析以上程序,以下叙述中正确的是___D_____。

A.程序中没有设置5秒钟的时间,所以不能每隔5秒移动图片框一次 B.此程序运行时图片框位置保持不动

C.此程序运行时图片框移动方向与题目要求相反

D.If语句条件中的“Picture1.Left202.使用驱动器列表框Drive1、目录列表框Dir1、文件列表框File1时,需要设置控件的同步。以下能够正确设置两个控件同步的命令是____B____。

A.Dir1.Path=Drive1.Path B.File1.Path=Dir1.Path C.File1.Path=Drive1.Path D.Drive1.Drive=Dir1.Path

203.以下说法中正确的是____C____。

A.MouseUp事件是鼠标向上移动时触发的事件

B.MouseUp事件过程中的x,y参数用于修改鼠标位置

C.在MouseUp事件过程中可以判断用户是否使用了组合键 D.在MouseUp事件过程中不能判断鼠标的位置

204.窗体上有一个名为Command1的命令按钮和一个名为Timer1的计时器,并有下面事件过程:

Private Sub Command1_Click()

Timer1.Enabled=True End Sub

Private Sub Form_Load()

Timer1.Interval=10

..

Timer1.Enabled=False End Sub

Private Sub Timer1_Timer()

Command1.Left=Command1.Left+10 End Sub

程序运行时,单击命令按钮,则产生的结果是___D_____。

A.命令按钮每10秒向左移动一次 B.命令按钮每10秒向右移动一次 C.命令按钮每10毫秒向左移动一次 D.命令按钮每10毫秒向右移动一次

205.下列可以打开随机文件的语句是_____D___。

A.Open\"file1.dat\" For Input As #1 B.Open\"file1.dat\" For Append As #1 C.Open\"file1.dat\" For Output As #1

D.Open\"file1.dat\" For Random As #1 Len=20

206.窗体上有List1、List2两个列表框,List1中有若干列表项(见图),并有下面的程序:

Private sub Command1_Click()

For k=List1.ListCount-1 To 0 step-1

If List1.Selected(k)Then

List2.AddItem List1.List(k) List1.RemoveItem k End If Next k End Sub 程序运行时,按照图示在List1中选中2个列表项,然后单击Command1命令按钮,则产生的结果是_____C___。

A.在List2中插入了\"外语\"、\"物理\"两项 B.在List1中删除了\"外语\"、\"物理\"两项 C.同时产生A和B的结果

D.把List1中最后1个列表项删除并插入到List2中

207.在利用菜单编辑器设计菜单时,为了把组合键\"Alt+X\"设置为\"退出(X)\"菜单项的访问键,可以将该菜单项的标题设置为____B____。

A.退出(X&) B.退出(&X) C.退出(X#) D.退出(#X)

208.在窗体上画一个命令按钮和一个文本框(名称分别为Commandl和Textl),并把窗体的KeyPreview属性设置为True,然后编写如下代码:

Dim SaveAll As String Private Sub Form_Load() Show

Textl.Text=\"\" Text1.SetFocus End Sub

Private Sub Command1_Click()

Textl.Text=LCase(SaveAll)+SaveAll End Sub

..

Private Sub Form_KeyPress(KeyAscii As Integer) SaveAll=SaveAll+Chr(KeyAscii) End Sub

程序运行后,直接用键盘输入:VB,再单击命令按钮,则文本框中显示的内容为____A____。

A.vbVB B.不显示任何信息 C.VB D.出错 209.设有如下通用过程:

Public Function Fun(xStr As String)As String

Dim tStr As String,strL As Integer tStr=\"\"

strL=Len(xStr) i=1

Do While i<=strL/2

tStr=tStr & Mid(xStr,i,1) & Mid(xStr,strL-i+1,1) i=i+1

Loop Fun=tStr End Function

在窗体上画一个名称为Command1的命令按钮。然后编写如下的事件过程: Private Sub Command1_Click( )

Dim S1 As String S1=\"abcdef\"

Print UCase(Fun(S1)) End Sub

程序运行后,单击命令按钮,输出结果是___C_____。

A.ABCDEF B.abcdef C.AFBECD D.DEFABC

210.窗体上有一个名称为Picture1的图片框控件,一个名称为Label1的标签控件。如图所示。

现有如下程序:

Public Sub display(x As Control) If TypeOf x Is Label Then

x.Caption=\"计算机等级考试\" Else

x.Picture=LoadPicture(\"pic.jpg\") End If End Sub

Private Sub Label1_Click() Call display(Label1) End Sub

Private Sub Picture1_Click() Call display(Picture1) End Sub

对以上程序,下列叙述中错误的是_____A___。

A.程序运行时会出错

..

B.单击图片框,在图片框中显示一幅图片 C.过程中的x是控件变量

D.单击标签,在标签中显示一串文字

211.窗体上有一个名称为Command1的命令按钮,其事件过程如下:

Private Sub Command1_Click()

Dim i As Integer, j As Integer, k As Integer Dim s As Double s=0:i=1:j=0:k=-1 Do While i<6 s=s+k*(j/i) i=i+1 j=j+1 k=-k Loop Print s End Sub

以上程序所计算的表达式是___A_____。

A.1/2-2/3+3/4-4/5 B.-1/2+2/3-3/4+4/5 C.1-1/2+2/3-3/4+4/5 D.-1+1/2-2/3+3/4-4/5 212.以下关于弹出式菜单的叙述中,错误的是___A_____。

A.一个窗体只能有一个弹出式菜单 B.弹出式菜单在菜单编辑器中建立

C.弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为False D.弹出式菜单通过窗体的PopupMenu方法显示

213.假定已经在菜单编辑器中建立了窗体的弹出式菜单,其顶级菜单项的名称为a1,其“可见”属性为False。程序运行后,单击鼠标左键或右键都能弹出菜单的事件过程是____B____。

A.Private Sub Form_MouseDown(Button As Integer,_ Shift As Integer,X As Single,Y As Single) If Button=1 And Button=2 Then PopupMenu a1 End If End Sub

B.Private Sub Form_MouseDown(Button As Integer,_ Shift As Integer,X As Single,Y As Single) PopupMenu a1 End Sub

C.Private Sub Form_MousoDown(Button As Integer,_ Shift As Integer,X As Single,Y As Single) If Button=1 Then PopupMenu a1 End If

End Sub

D.Private Sub Form_MouseDown(Button As Integer,_ Shift As Integer,X As Single,Y As Single) If Button=2 Then

..

PopupMenu a1 End If End Sub

214.设窗体上有一个名为List1的列表框,并编写下面的事件过程:

Private Sub List1_Click()

Dim ch As String

ch=List1.List(List1.ListIndex) List1.RemoveItem List1.ListIndex List1.AddItem ch End Sub

程序运行时,单击一个列表项,则产生的结果是____C____。

A.该列表项被移到列表的最前面 B.该列表项被删除

C.该列表项被移到列表的最后面

D.该列表项被删除后又在原位置插入

215.有弹出式菜单的结构如下表,程序运行时,单击窗体则弹出如下图所示的菜单。下面的事件过程中能正确实现这一功能的是____C____。 内缩 无 … … 标题 编辑 复制 粘贴 名称 edit cut paste

A.Private Sub Form_Click() PopupMenu cut End Sub

B.Private Sub Command1_Click() PopupMenu edit End Sub

C.Private Sub Form_Click() PopupMenu edit End Sub

D.Private Sub Form_Click()

PopupMenu cut PopupMenu paste End Sub

216.设工程中有2个窗体:Form1、Form2,Form1为启动窗体。Form2中有菜单,其结构如表。要求在程序运行时,在Form1的文本框Text1中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Form1,显示Form2。若口令为“Teacher”,所有菜单项都可见;否则看不到“成绩录入”菜单项。为此,某人在Form1窗体文件中编写如下程序:

Private Sub Textl_KeyPress(KeyAscii As Integer)

If KeyAscii=13 Then

If Text1.Text=\"Teacher\" Then

Form2.input.Visible=True Else

..

Form2.input.Visible=False End If End If

Form1.Hide Form2.Show End Sub

程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。下面修改方案中正确的是____B____。

A.把Form1中Text1文本框及相关程序放到Form2窗体中 B.把Form1.Hide、Form2.Show两行移到2个End If之间 C.把If KeyAscii=13 Then改为If Key Ascii=\"Teacher\"Then D.把2个Form2.input.Visible中的\"Form2.\"删去

217.在窗体上画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

运行程序后,在文本框中输入\"Number 100\",并单击命令按钮,则文本框中显示的是____D____。

A.NUMBER 100 B.REBMUN C.REBMUN l00 D.001 REBMUN 218.设有以下程序:

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 ElSe

a=a+x End If Next i Print a End Sub

程序运行后,单击窗体,在输入对话框中依次输入15、24、35、46,输出结果为___A_____。

A.100 B.50 C.120 D.70

..

219.某人为计算n!(0Private Function fun(n As Integer)As Long

Dim p As Long p=1

For k=n-1 To 2 Step -1 p=p*k

Next k fun=p End Function

在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是____B____。

A.把p=1改为p=n

B.把For k=n-1 To 2 Step-1改为For k=1 To n-1 C.把For k=n-1 To 2 Step-1改为For k=1 To n D.把For k=n-1 To 2 Step-1改为For k=2 To n

220.窗体上有两个名称分别为Text1、Text2的文本框。Text1的KeyUp事件过程如下:

Private sub Text1_KeyUp(Keycode As Integer,Shift As Integer) Dim c As String

c=UCase(Chr(Keycode)) Text2.Text=Chr(Asc(c)+2) End sub

当向文本框Text1中输入小写字母a时,文本框Text2中显示的是____C____。

A.A B.a C.C D.c

221.窗体上有一个名称为Command1的命令按钮,其单击事件过程如下:

Private Sub Command1_Click() Dim a,b(2,3) As Integer

a=Array(3,7,5,11,31,43,17,62,9,23,37,41) i=0

Do While i<=UBound(a) For j=0 To 2 For k=0 To 3 b(j,k)=a(i) i=i+1 Next Next Loop

Print b(2,2) End Sub

运行程序,窗体上显示的是___C_____。

A.43 B.17 C.37 D.23 222.有如下程序:

Private Type stu X As String Y As Integer

..

End Type

Private Sub Command1_Click() Dim a As stu a.X=\"ABCD\" a.Y=12345 Print a End Sub

程序运行时出现错误。错误的原因是_____D___。

A.Type定义语句没有放在标准模块中 B.变量声明语句有错 C.赋值语句不对

D.输出语句Print不对

223.在窗体上画一个名称为CD1的通用对话框,并有如下程序: Private Sub Form_Load() CD1.DefaultExt=\"doc\"

CD1.FileName=\"c:\\filel.txt\"

CD1.Filter=\"应用程序(*.exe)|*.exe\" End Sub

程序运行时,如果显示了“打开”对话框,在“文件类型”下拉列表中的默认文件类型是______A__。

A.应用程序(*.exe) B.*.doc C.*.txt D.不确定

224.窗体上有一个名为Command1的命令按钮,并有如下程序:

Private Sub Command1_Click()

Dim a As Integer,b As Integer a=8 b=12

Print Fun(a,b);a;b End Sub

Private Function Fun(ByVal a As Integer,b As Integer)As Integer

a=a Mod 5 b=b\\5 Fun=a End Function

程序运行时,单击命令按钮,则输出结果是___B_____。

A.3 3 2 B.3 8 2 C.8 8 12 D.3 8 12 225.请阅读程序:

Option Base 1

Private Sub Form_Click() Dim Arr(4,4) As Integer For i=1 To 4 For j=1 To 4

Arr(i,j)=(i-1)*2+j Next j

..

Next i

For i=3 To 4 For j=3 To 4

Print Arr(j,i); Next j Print Next i End Sub

程序运行后,单击窗体,则输出结果是_____C___。

A.5 7 B.6 8 6 8 7 9 C.7 9 D.8 10 8 10 8 11

226.某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中

Private Sub Commandl_Click()

Open \"out.txt\" For Output As #2 Print \"Text1\" Close#2 End sub

调试时发现没有达到目的,为实现上述目的,应做的修改是__A______。

A.把Print \"Text1\"改为Print#2,Text1 B.把Print \"Text1\"改为Print Text1 C.把Print \"Text1\"改为Write\"Text1\" D.把所有#2改为#1 227.窗体的左右两端各有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.WidthShape1.Left=Shape1.Left+100

End If Next k End Sub

运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。为得到与题目要求相符的结

..

果,下面修改方案中正确的是____B____。

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.WidthA.当窗体为活动窗体时,用Ctrl+E键可以打开菜单编辑器 B.把菜单项的Enabled属性设置为False,则可删除该菜单项 C.弹出式菜单在菜单编辑器中设计

D.程序运行时,利用控件数组可以实现菜单项的增加或减少 229.假定有以下函数过程:

Function Fun(S As String) As String

Dim s1 As String For i=1 To Len(S)

s1=LCase(Mid(S,i,1))+s1

Next i Fun=s1 End Function

在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click()

Dim Str1 As String,Str2 As String Str1=InputBox(\"请输入一个字符串\") Str2=Fun(Str1) Print Str2 End Sub

程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击\"确定\"按钮后在窗体上的输出结果为_____D____。

A.ABCDEFG B.abcdefg C.GFEDCBA D.gfedcba

230.设窗体上有一个文本框Text1和一个命令按钮Command1,并有以下事件过程:

Private Sub Command1_Click() Dim s As String, ch As String For k = 1 to Len(Text1) ch = Mid(Text1,k,1) s = ch + s Next k

Text.Text = s End Sub

程序执行时,在文本框中输入\"Basic\",然后单击命令按钮,则Text1中显示的是___B_____。

A.Basic B.cisaB C.BASIC D.CISAB

231.窗体上有一个名称为Command1的命令按钮,其事件过程如下:

Private Sub Command1_Click() Dim s As String

Open \"d:\\File1.txt\" For Input As#1

..

Open \"d:\\File2.txt\" For Output As#2 Do While Not EOF(1) Input #1,s Print #2,s Loop

Close #1,#2 End Sub

关于上述程序,以下叙述中错误的是_____B____。

A.程序把File1.txt文件的内容存放到File2.txt文件中 B.程序中打开了两个随机文件 C.程序中打开了两个顺序文件

D.“EOF(1)”中的“1”对应于File1.txt文件

232.在窗体上画两个名称分别为Text1、Text2的文本框,一个名称为Label1的标签,窗体外观如图a所示。要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图b所示。实现上述功能的程序如下:

Private Sub Text1_Change() Call ShowText(Text1) End Sub

Private Sub Text2_Change() Call ShowText(Text2) End Sub

Private Sub ShowText(T As TextBox)

Label1.Caption=\"文本框中的内容是:\"& T.Text End Sub

关于上述程序,以下叙述中错误的是____C____。

A.ShowText过程的参数类型可以是Control B.ShowText过程的参数类型可以是Variant

C.两个过程调用语句有错,应分别改为Call ShowText(Text1.Text)、Call ShowText(Text2.Text) D.ShowText过程中的T是控件变量 233.以下描述中错误的是___A_____。

A.在多窗体应用程序中,可以有多个当前窗体 B.多窗体应用程序的启动窗体可以在设计时设定

C.多窗体应用程序中每个窗体作为一个磁盘文件保存 D.多窗体应用程序可以编译生成一个EXE文件

234.为了从当前文件夹中读入文件File1.txt,某人编写了下面的程序:

Private Sub Command1_Click()

Open\"File1.txt\" For Output As#20 Do While Not EOF(20)

Line Input#20,ch$ Print ch Loop Close#20 End Sub

程序调试时,发现有错误,下面的修改方案中正确的是_____D____。

..

A.在Open语句中的文件名前添加路径 B.把程序中各处的\"20\"改为\"1\" C.把Print ch语句改为Print#20,ch

D.把Open语句中的Output改为Input

235.下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果。例如:若str=\"ABCDABCD\",ch=\"B\",则函数的返回值为:\"ACDACD\"

Function delchar(str As String,ch As String)As String Dim k As Integer,temp As String,ret As String ret=\"\"

For k=1 To Len(str) temp=Mid(str,k,1) If temp=ch Then ret=ret & temp End If Next k delchar=ret End Function

但实际上函数有错误,需要修改。下面的修改方案中正确的是____B_____。

A.把ret=ret & temp改为ret=temp

B.把If temp=ch Then改为If temp<>ch Then C.把delchar=ret改为delchar=temp D.把ret=\"\"改为temp=\"\"

236.窗体上有一个名为Command1的命令按钮,并有下面的程序:

Private Sub Command1_Click()

Dim arr(5) As Integer For k=1 To 5

arr(k)=k Next k prog arr() For k=1 To 5

Print arr(k); Next k End sub

Sub prog(a() As Integer)

n=UBound(a)

For i=n To 2 step -1

For j=1 To n-1

If a(j)t=a(j):a(j)=a(j+1):a(j+1)=t End If Next j Next i End sub

程序运行时,单击命令按钮后显示的是_____B____。

..

A.1 2 3 4 5 B.5 4 3 2 1 C.0 1 2 3 4 D.4 3 2 1 0 237.下列有关文件的叙述中,正确的是_____C____。

A.以Output方式打开一个不存在的文件时,系统将显示出错信息

B.以Append方式打开的文件,既可以进行读操作,也可以进行写操作 C.在随机文件中,每个记录的长度是固定的

D.无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的 238.以下叙述中错误的是______C___。

A.在程序运行时,通用对话框控件是不可见的

B.调用同一个通用对话框控件的不同方法(如ShowOpen或ShowSave)可以打开不同的对话框窗口 C.调用通用对话框控件的ShowOpen方法,能够直接打开在该通用对话框中指定的文件 D.调用通用对话框控件的ShowColor方法,可以打开颜色对话框窗口 239.为计算an的值,某人编写了函数power如下:

Private Function power(a As Integer,n As Integer)As Long

Dim p As Long p=a

For k=1 To n p=p*a

Next k power =p End Function

在调试时发现是错误的,例如Print power(5,4)的输出应该是625,但实际输出是3125。 程序需要修改。下面的修改方案中有3个是正确的,错误的一个是_____C____。

A.把For k=1 To n改为For k=2 To n B.把p=p*a改为p=p^n

C.把For k=1 To n改为For k=1 To n-1 D.把p=a改为p=1

240.某人编写了如下程序,用来求10个整数(整数从键盘输入)中的最大值:

Private Sub Command1_Click()

Dim a(10)As Integer,max As Integer For k=1 To 10

a(k)=InputBox(\"输入一个整数\")

Next k

max=0

For k=1 To 10

If a(k)>max Then

max=a(k) End If Next k Print max End Sub

运行程序时发现,当输入10个正数时,可以得到正确结果,但输入10个负数时结果是错误的,程序需要修改。下面的修改中可以得到正确运行结果的是___D______。

A.把If a(k)>max Then改为If a(k)..

B.把max=a(k)改为a(k)=max

C.把第2个循环语句For k=1 To 10改为For k=2 To 10 D.把max=0改为max=a(10)

241.以下关于文件及相关操作的叙述中错误的是_____A____。

A.以Append方式打开的文件可以进行读写操作 B.文件记录的各个字段的数据类型可以不同 C.随机文件各记录的长度是相同的

D.随机文件可以通过记录号直接访问文件中的指定记录 242.设有打开文件的语句如下:

Open \"test.dat\" For Random As #1

要求把变量a中的数据保存到该文件中,应该使用的语句是____C_____。 A.Input #1,a B.Write #1,a C.Put #1,,a D.Get #1,,a 243.以下关于顺序文件的叙述中,正确的是____B_____。

A.可以用不同的文件号以不同的读写方式同时打开同一个文件 B.文件中各记录的写入顺序与读出顺序是一致的

C.可以用Input #或Line Input #语句向文件写记录

D.如果用Append方式打开文件,则既可以在文件末尾添加记录,也可以读取原有记录

244.以下程序运行后的窗体如图所示。其中组合框的名称是Combo1,已有列表项如图所示;命令按钮的名称是Command1。

Private Sub Command1_Click()

If Not Check(Combo1.Text)Then

MsgBox(\"输入错误\") Exit Sub End If

For k=0 To Combo1.ListCount-1

If Combo1.Text=Combo1.List(k) Then

MsgBox(\"添加项目失败\") Exit Sub End If Next k

Combo1.AddItem Combo1.Text MsgBox(\"添加项目成功\") End Sub

Private Function Check(ch As String)As Boolean

n=Len(ch) For k=1 To n

c$=UCase(Mid(ch,k,1)) If c<\"A\"Or c>\"Z\" Then

Check=False Exit Function End If Next k Check=True

..

End Function

程序运行时,如果在组合框的编辑区中输入\"Java\",则单击命令按钮后产生的结果是______B___。

A.显示“输入错误” B.显示“添加项目失败” C.显示“添加项目成功” D.没有任何显示

245.在窗体上画一个命令按钮和两个文本框,其名称分别为Command1、Text1和Text2,在属性窗口中把窗体的KeyPreview属性设置为True,然后编写如下程序:

Dim S1 As String,S2 As String Private Sub Form_Load() Text1.Text=\"\" Text2.Text=\"\"

Text1.Enabled=False Text2.Enabled=False End Sub

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) S2=S2 & Chr(KeyCode) End Sub

Private Sub Form_KeyPress(KeyAscii As Integer) S1=S1 & Chr(KeyAscii) End Sub

Private Sub Command1_Click() Text1.Text=S1 Text2.Text=S2 S1=\"\" S2=\"\" End Sub

程序运行后,先后按\"a\"、\"b\"、\"c\"键,然后单击命令按钮,在文本框Text1和Text2中显示的内容分别为____A_____。

A.abc和ABC B.空白 C.ABC和abc D.出错

246.下面程序运行时,若输入\"Visual Basic Programming\",则在窗体上输出的是_____D____。

Private Sub Command1_Click()

Dim count(25)As Integer,ch As String

ch=UCase(InputBox(\"请输入字母字符串\")) For k=1 To Len(ch)

n=Asc(Mid(ch,k,1))-Asc(\"A\") If n>=0 Then

count(n)=count(n)+1 End If Next k m=count(0) For k=1 To 25

If mm=count(k) End If

..

Next k Print m End sub

A.0 B.1 C.2 D.3 247.窗体如图1所示。要求程序运行时,在文本框Text1中输入一个姓氏,单击\"删除\"按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。若编写以下程序来实现此功能:

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改为____A_____。

A.For k=List1.ListCount-1 To 0 Step-1 B.For k=0 To List1.ListCount C.For k=1 To List1.ListCount-1 D.For k=1 To List1.ListCount

248.设在工程文件中有一个标准模块,其中定义了如下记录类型:

Type Books

Name As String*10 TelNum As String*20 End Type

在窗体上画一个名为Commandl的命令按钮,要求当执行事件过程Commandl_Click时,在顺序文件Person.txt中写入一条Books类型的记录。下列能够完成该操作的事件过程是_____A____。

A.Private Sub Command1_Click() Dim B As Books

Open \"Person.txt\" For Output As #1 B.Name=InputBox(\"输入姓名\")

B.TelNum=InputBox(\"输入电话号码\") Write #1,B.Name,B.TelNum Close #1 End Sub

B.Private Sub Command1_Click()

..

Dim B As Books

Open \"Person.txt\" For Input As #l B.Name=InputBox(\"输入姓名\")

B.TelNum=InputBox(\"输入电话号码\") Print #1,B.Name,B.TelNum Close#1 End Sub

C.Private Sub Command1_C1ick() Dim B As Books

Open \"Person.txt\" For Output As #1 B.Name=InputBox(\"输入姓名\")

B.TelNum=InputBox(\"输入电话号码\") Write #1,B Close #1 End Sub

D.Private Sub Command1_Click()

Open \"Person.txt\" For Input As #1 Name=InputBox(\"输入姓名\")

TelNum=InputBox(\"输入电话号码\") Print #1,Name,TelNum Close #1 End Sub

249.某人编写了下面的程序

Private Sub Command1_Click()

Dim a As Integer,b As Integer a=InputBox(\"请输入整数\") b=InputBox(\"请输入整数\") pro a pro b

Call pro(a+b) End Sub

Private Sub pro(n As Integer)

While (n>0)

Print n Mod 10; n=n\\10 Wend Print End Sub

此程序功能是:输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字。例如:若输入123和234,则应该输出: 3 2 1 4 3 2 7 5 3

但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即2个数之和的反序),程序需要修改。下面

..

的修改方案中正确的是______A___。

A.把过程pro的形式参数n As Integer改为ByVal n As Integer B.把Call pro(a+b)改为pro a+b C.把n=n\\10改为n=n/10

D.在pro b语句之后增加语句c%=a+b,再把Call pro(a+b)改为pro c

250.已知在4行3列的全局数组score(4,3)中存放了4个学生3门课程的考试成绩(均为整数)。现需要计算每个学生的总分,某人编写程序如下:

Option Base 1

Private Sub Command1_Click()

Dim sum As Integer sum=0

For i=1 To 4

For j=1 To 3

sum=sum+score(i,j)

Next j

Print \"第\" & i & \"个学生的总分是:\";sum Next i End Sub

运行此程序时发现,除第1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。以下修改方案中正确的是____B____。

A.把外层循环语句For i=1 To 4改为For i=1 To 3,内层循环语句For j=1 To 3改为For j=1 To 4 B.把sum=0移到For i=1 To 4和 For j=1 To 3之间 C.把sum=sum+score(i,j)改为sum=sum+score(j,i) D.把sum=sum+score(i,j)改为sum=score(i,j)

二、填空题

1.窗体上有从左到右4个单选按钮组成控件数组Opt1,下标从0开始。程序运行时,单击命令按钮“选择”(名称为Command1),则在标签Label1中显示所选中的信息,如图所示。 以下是完成上述功能的程序,请填空。

Private Sub Command1_Click() For i=0 To 3

If Opt1(i).Value=True Then Call f( Opt1(i) ) End If Next End Sub

Private Sub f(x As Control)

Label1.Caption=\"您选择的是:\"& x .Caption End Sub

2.下面的事件过程执行时,可以把Text1文本框中的内容写到文件“file1.txt”中去。请填空。

Private Sub Command1_Click()

Open \"file1.txt\" For output As #1 Print #1 ,Text1.Text Close #1

..

End Sub

3.为了使标签能自动调整大小以显示标题(Caption属性)的全部文本内容,应把该标签的 Autosize 属性设置为True。

4.在窗体上有1个名称为Command1的命令按钮,并有如下事件过程和函数过程:

Private Sub Command1_Click()

Dim p as Integer p=m(1)+m(2)+m(3) Print p End Sub

Private Function m(n As Integer)As Integer

Static s As Integer For k=1 To n 1 1+1+1=3 3+1+1+1=6 1+3+6=10

s=s+1 Next m=s End Function

运行程序,单击命令按钮Command1后的输出结果为 10 。

5.窗体上有一个名称为Combo1的组合框,其初始内容为空,有一个名称为Command1、标题为“添加项目”的命令按钮。程序运行后,如果单击命令按钮,会将给定数组中的项目添加到组合框中,如图所示。请填空。

Option Base 1

Private Sub Command1_Click() Dim city As Variant

city= Array (\"北京\",\"天津\",\"上海\",\"武汉\",\"重庆\",\"西宁\")

For i= 1 To UBound(city)

Combo1.AddItem city(i) Next End Sub

6.为了使复选框禁用(即呈现灰色),应把它的Value属性设置为 2 。

7.工程中有Form1、Form2两个窗体。Form1窗体外观如图1所示。程序运行时,在Form1中名称为Text1的文本框中输入一个数值(圆的半径),然后单击命令按钮\"计算并显示\"(其名称为Command1),则显示Form2窗体,且根据输入的圆的半径计算圆的面积,并在Form2的窗体上显示出来,如图2所示。如果单击命令按钮时,文本框中输入的不是数值,则用信息框显示\"请输入数值数据!\"。请填空。

Private Sub Command1_Click()

If Text1.Text=\"\" Then

MsgBox\"请输入半径!\"

ElseIf Not IsNumeric( Text1.Text或Text1 )Then

..

MsgBox\"请输入数值数据!\"

Else

r=Val( Text1.Text或Text1 ) Form2.Show

Form2 .Print \"圆的面积是\" & 3.14*r*r End If End Sub

8.窗体如图所示,其中汽车是名称为Image1的图像框,命令按钮的名称为Command1,计时器的名称为Timer1,直线的名称为Line1。程序运行时,单击命令按钮,则汽车每0.1秒向左移动100,车头到达左边的直线时停止移动。请填空完成下面的属性设置和程序,以便实现上述功能。

(1)Timer1的Interval属性的值应事先设置为100 1000ms=1s (2) Private Sub Command1_Click() Timer1.Enabled=True End Sub

Private Sub Timer1_Timer()

If Image1.Left>= Line1.X1 Then Image1.Left= Image1.Left -100 End If End Sub

9.在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为Text1、Label1和Command1,然后编写如下两个事件过程:

Private Sub Command1_Click()

S$=InputBox(\"请输入一个字符串\") Text1.Text=S$ End Sub

Private Sub Text1_Change()

Label1.Caption=UCase(Mid(Text1.Text, 7)) End Sub

程序运行后,单击命令按钮,将显示一个输入对话框,如果在该对话框中输入字符串“VisualBasic”,则在标签中显示的内容是 BASIC 。 10.设有以下的循环:

x=1 Do

x=x+2 Print x

Loop Until x>=7

要求程序运行时执行3次循环体,请填空。 11.窗体上有一个名称为List1的列表框,列表框中有若干数据项,列表框的Style属性为1;有一个名称为Label2的标签;还有一个名称为Command1,Caption属性为“计算”的命令按钮(见图)。运行程序,在列表框中选中某些数据项后,单击命令按钮,则可以计算所选数据之和,并将结果显示在标签Label2中。以下是实现上述功能的程序,请填空。

Private Sub Command1_Click() s=0

For i=0 To List1.ListCount-1

..

If List1.Selected(i) =True Then s=s+ Val(List1.List(i)) End If Next

Label2.Caption= Str(s) End Sub

12.设窗体上有一个名称为Label1的标签。程序运行时,单击鼠标左键,再移动鼠标,鼠标的位置坐标会实时地显示在Label1标签中;单击鼠标右键则停止实时显示,并将标签中内容清除。下面的程序可实现这一功能,请填空。

Dim down As Boolean

Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) Select Case Button Case 1

down=True Case 2

down=False End Select End Sub

Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single) If down=True或down Then

_Label1.Caption或Label1 =\"X=\"& X &\" Y=\" & Y Else

Label1.Caption=\"\" End If End Sub

13.在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程: Private Sub Command1_Click() x=1

Result=1 While x<=10

Result= 【25】Result*x x=x+1 Wend

Print Result End Sub

上述事件过程用来计算10的阶乘。请填空。

14.在窗体上画1个名称为Command1的命令按钮,然后编写如下程序:

Private Sub Command1_Click()

Dim m As Integer,x As Integer Dim flag As Boolean flag=False

n=Val(InputBox(\"请输入任意1个正整数\")) Do While Not flag

a=2

..

flag= 【26】True

Do While flag And a<=Int(Sqr(n))

If n/a=n\\a Then

flag=False Else

【27】a=a+1 End If Loop

If Not flag Then n=n+1 Loop

Pint 【28】n End Sub

上述程序的功能是,当在键盘输入任意的1个正整数时,将输出不小于该整数的最小素数。请填空完善程序。 15.窗体上有一个名称为Text1的文本框和一个名称为Command1、标题为\"计算\"的命令按钮,如图所示。函数fun及命令按钮的单击事件过程如下,请填空。

Private Sub Command1_Click() Dim x As Integer

x=Val(InputBox(\"输入数据\")) Text1=Str(fun(x)+fun(x)+fun(x)) End Sub

Private Function fun(ByRef n As Integer) If n Mod 3=0 Then n=n+n Else

n=n*n End If

【29】fun =n End Function

当单击命令按钮,在输入对话框中输入2时,文本框中显示的是 【30】276 。

16.在窗体上画一个标签、一个计时器和一个命令按钮,其名称分别为Label1、Timer1和Command1,如图1所示。程序运行后,如果单击命令按钮,则标签开始闪烁,每秒钟“欢迎”二字显示、消失各一次,如图2所示。以下是实现上述功能的程序,请填空。

Private Sub Form_Load()

Label1.Caption=\"欢迎\" Timer1.Enabled=False

Timer1.Interval= 【31】1000 Command1.Caption=\"开始闪烁\" End sub

Private Sub Timer1_Timer()

Label1.visible=_Not Label1.Visible

End sub

Private Sub Command1_Click()

【33】 Timer1.Enabled = True

..

End sub

17.设有整型变量s,取值范围为0~100,表示学生的成绩。有如下程序段:

If s>=90 Then

Level=\"A\" ElseIf s>=75 Then

Leve1=\"B\" ElseIf s>=60 Then

Level=\"C\" Else

Level=\"D\" End If

下面用Select Case结构改写上述程序,使两段程序所实现的功能完全相同。请填空。

Select Case s

Case 【34】 Is >=90

Level=\"A\" Case 75 To 89

Level=\"B\" Case 60 To 74

Level=\"C\" Case Else

Level=\"D\"

【36】End Select End sub

18.设窗体上有一个名称为Combo1的组合框,并有以下程序:

Private Sub Combo1_KeyPress(KeyAscii As Integer)

If 【37】KeyAscii =13 Then ′回车符的ASCII码是13 For k=0 To Combo1.ListCount-1

If Combo1.Text=Combo1.List(k) Then Combo1.Text= \"\" Exit For End If Next k

If Combo1.Text<>\"\" Then

Combo1.AddItem 【38】Combo1.Text End If End If End Sub

程序的功能是:在组合框的编辑区中输入文本后按回车键,则检查列表中有无与此文本相同的项目,若有,则把编辑区中的文本删除,否则把编辑区中的文本添加到列表的尾部。请填空。 19.在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:

Private Sub Command1_Click()

a$=\"National computer rank Examination\" n=Len(a$) s=0

..

For i=1 To n

b$=Mid(a$, i, 1) If b$=\"n\" Then

s=s+1

End If Next i Print s End Sub

程序运行后,单击命令按钮,输出结果是 【39】4 。 20.窗体上命令按钮Command 1的事件过程如下:

Private Sub Command1_Click() Dim total As Integer total=s(1)+s(2) Print total End Sub

Private Function s(m As Integer)As Integer Static x As Integer For i=1 To m

x=x+1 Next i s=x

End Function

运行程序,第3次单击命令按钮Command1时,输出结果为 【40】16 。

21.以下程序的功能是从随机产生的20个20~200(含20和200)的整数中,找出能够同时被3和5整除的数的最大值,并显示出来。请填空。

Option Base 1

Private Sub Command1_Click() Dim a(20) As Integer m=0

For i=1 To 20

a(i)=Int(Rnd* 【41】181 )+20 If a(i) Mod 3=0 【42】And a(i) Mod 5=0 Then If a(i)>m Then m=a(i) End If Next

If 【43】m=0 Then

Print \"没有满足条件的数\" Else

Print \"满足条件的数是\";m End If End Sub

22.窗体上有List1、List2两个列表框,程序运行时,在两个列表框中分别选中1个项目,如图a所示,单击名称为Command1的“交换”按钮,则把选中的项目互换,互换后的位置不限,如图b所示。下面的程序可实现这一功能,请填空。

..

Private Sub Command1_Click()

If List1.Text=\"\" Or List2.Text=\"\" Then MsgBox\"请选择交换的物品!\" Else

List1.AddItem List2.Text

List2.RemoveItem__ List2.ListIndex ___List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub

23.在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程: Private Sub Command1_Click() t=0:m=l:Sum=0 Do

t=t+ 【46】m

Sum=Sum+ 【47】T m=m+2

Loop While m<=39【48】 Print Sum End Sub

该程序的功能是,单击命令按钮,则计算并输出以下表达式的值: 1+(1+3)+(1+3+5)+...+(1+3+5+...+39) 请填空。

24.以下程序的功能是:先将随机产生的10个不同的整数放入数组a中,再将这10个数按升序方式输出。请填空。

Private Sub Form_Click()

Dim a(10)As Integer,i As Integer Randomize i=0 Do

num=Int(Rnd*90)+10

For j=1 To i '检查新产生的随机数是否与以前的相同,相同的无效

If num=a(j)Then

Exit For End If Next j If j>i Then

i=i+1

a(i)= 【49】num End If

Loop While i<10 For i=1 To 9

For j= 【50】i+1 To 10

If a(i)>a(j)Then temp=a(i):a(i)=a(j): a(j)=temp【51】

..

Next j Next i

For i=1 To 10

Print a(i) Next i End Sub

25.窗体上有一个名称为List1的列表框,一个名称为Picture1的图片框。Form_Load事件过程的作用是,把Data1.txt文件中的物品名称添加到列表框中。运行程序,当双击列表框中的物品名称时,可以把该物品对应的图片显示在图片框中,如图所示。以下是类型定义及程序,请填空。 Private Type Pic

gName As String*10 '物品名称

picFile As String*20 '物品图片的图片文件名 End Type

Dim p(4)As Pie,pRec As Pic Private Sub Form_Load()

Open \"Data1.txt\" For Random As #1 【52】Len =Len(pRec)

For i=0 To 4

Get #1,i+1,p(i)

List1.AddItem p(i).gName Next i Close #1 End Sub

Private Sub List1_DblClick() For i=0 To 4

If RTrim(List1.List(i))=RTrim( p(i).gName【53】 )Then Picture1.Picture=LoadPicture(p(i). picFile【54】 ) Exit For End If Next End Sub

26.有如下程序:

Private Sub Form_Click()

n=10:i=0 Do

i=i+n n=n-2

Loop while n>2 Print i End sub

程序运行后,单击窗体,输出结果为 【55】28 。

27.窗体上有名称为Command1的命令按钮。事件过程及2个函数过程如下:

Private Sub Command1_Click()

Dim x As Integer,y As Integer,z

..

x=3 y=5 z=fy(y)

Print fx(fx(x)),y End Sub

Function fx(ByVal a As Integer)

a=a+a fx=a End Function

Function fy(ByRef a As Integer)

a=a+a fy=a End Function

运行程序,并单击命令按钮,则窗体上显示的2个值依次是 【56】12 和 【57】10 。

28.在当前目录下有一个名为\"myfile.txt\"的文本文件,其中有若干行文本。下面程序的功能是读入此文件中的所有文本行,按行计算每行字符的ASCII码之和,并显示在窗体上。请填空。

Private Sub Command1_Click() Dim ch$,ascii As Integer

Open \"myfile.txt\" For 【58】Input As #1 While Not EOF(1) Line Input #1,ch

ascii=toascii( 【59】ch ) Print ascii Wend Close #1 End Sub

Private Function toascii(mystr$)As Integer n=0

For k=l To 【60】Len(Mystr) n=n+Asc(Mid(mystr,k,1)) Next k toascii=n End Function

29.为了在运行时把d:\\pic文件夹下的图形文件a.jpg装入图片框Picture1,所使用的语句为 【61】 picture1.Picture=LoadPicture(\"d:\\pic\\a.jpg\") 。

30.在窗体上画一个名称为Command 1的命令按钮。编写如下程序:

Option Base 1

Private Sub Command1_Click() Dim a(10)As Integer For i=1 To 10 a(i)=i Next

Call swap( 【62】a ) For i=1 To 10

..

Print a(i); Next End Sub

Sub swap(b() As Integer) n= 【63】UBoune(b) For i=1 To n/2 t=b(i) b(i)=b(n) b(n)=t

【64】n=n-1 Next End Sub

上述程序的功能是:通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换……请填空。

31.在窗体上画一个名称为Timer1的计时器控件,其Enabled属性值设为False,Interval属性值设为100。要求程序运行后,当鼠标在窗体上移动时,沿鼠标经过的轨迹画出一系列半径为100的小圆。其效果如图所示。以下是实现上述功能的程序,请填空。

Dim a As Integer,b As Integer

Private Sub Form 【65】MouseMove (Button As Integer,Shift As Integer,X As Single,Y As Single) a=X b=Y

Timer1.Enabled= 【66】Ture End Sub

Private Sub Timer1_Timer()

Form1.Circle(a,b),100 '以(a,b)为圆心画一个半径为100的圆 End Sub

32.设窗体上有Text1文本框和Command1命令按钮,并有以下程序:

Private Sub Command1_Click() temp$=\"\"

For k=1 To Len(Text1) ch$=Mid(Text1,k,1)

If Not found(temp,ch)Then

temp=temp & 【67】ch End If Next k

Text1= 【68】temp End Sub

Private Function found(str As String,ch As String)As Boolean

..

For k=1 To Len(str)

If ch=Mid(str,k,1)Then

Found= 【69】Ture Exit Function End If Next k

Found=False End Function

运行时,在文本框中输入若干英文字母,然后单击命令按钮,则可以删去文本框中所有重复的字母。例如,若文本框中原有字符串为“abcddbbc”,则单击命令按钮后文本框中字符串为“abcd”。其中函数found的功能是判断字符串str中是否有字符ch,若有,函数返回True,否则返回False。请填空。 33.在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码: Private Sub Command1_Click() Dim M(10) As Integer For k=1 To 10 M(k)=12-k Next k x=6

Print M(2+M(x)) End Sub

程序运行后,单击命令按钮,输出结果是 【70】4 。

34.在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程: Private Sub Command1_Click() Dim n As Integer

n=Val(InputBox(\"请输入一个整数:\"))

If n Mod 3=0 And n Mod 2=0 And n Mod 5=0 Then Print n+10 End If End Sub

程序运行后,单击命令按钮,在输入对话框中输入60,则输出结果是 【71】70 。 35.在窗体上画一个命令按钮,名称为Command1,然后编写如下程序: Private Sub Command1_Click() Dim ct As String Dim nt As Integer

Open \"e:\\stud.txt\" 【72】For Append As #1 Do While True

ct=InputBox(\"请输入姓名:\")

If ct= 【73】\"end\" Then Exit Do nt=Val(InputBox(\"请输入总分:\")) Write #1, 【74】ct,nt Loop Close #1 End Sub

以上程序的功能是,程序运行后,单击命令按钮,则向e盘根目录下的文件stud.txt中添加记录(保留已

..

有记录),添加的记录由键盘输入;如果输入\"end\",则结束输入。每条记录包含姓名(字符串型)和总分(整型)两个数据。请填空。

36.窗体上已有名称分别为Drive1、Dir1、File1的驱动器列表框、目录列表框和文件列表框,且有1个名称为Text1的文本框。以下程序的功能是:将指定位置中扩展名为“.txt”的文件显示在File1中,如果双击File1中的某个文件,则在Text1中显示该文件的内容。请填空。

Private Sub Form_Load()

File1.Pattern= 【75】\"*.txt\" End Sub

Private Sub Drive1_Change()

Dir1.Path=Drive1.Drive End Sub

Private Sub Dir1_Change()

File1.Path=Dir1.Path End Sub

Private Sub File1_DblClick()

Dim s As String*1

If Right(File1.Path,1)=\"\\\" Then

f_name=File1.Path+File1.FileName Else

f_name=File1.Path+\"\\\"+File1.FileName End If

Open f_name 【76】For Input As #1 Text1.Text=\"\"

Do While 【77】Not Eof(1)

s=Input(1,#1)

Text1.Text=Text1.Text+S Loop Close #l End Sub

37.窗体上有一个名称为CD1的通用对话框。通过菜单编辑器建立如图1所示的菜单。程序运行时,如果单击“打开”菜单项,则执行打开文件的操作,当选定了文件(例如:D:\\VB\\2013_9\\in.txt)并打开后,该文件的文件名会被添加到菜单中,如图2所示。各菜单项的名称和标题等定义如下表。

以下是单击“打开”菜单项的事件过程,请填空。

Dim mnuCounter As Integer Private Sub mnuOpen_Click() CD1.ShowOpen

If CD1.FileName <> \"\" Then

Open CD1.FileName For Input as #1 ..

mnuCounter = mnuCounter + 1 Load FName(mnuCounter)

FName(mnuCounter).Caption = CD1.FileName

FName(mnuCounter). 【79】Visible = True Close #1 End If End Sub

38.在窗体上画一个名称为Command1的命令按钮。然后编写如下程序:

Option Base 1

Private Sub Command1_click()

Dim a(10)As Integer For i=1 To 10

a(i)=i Next

Call swap( a或a() ) For i=1 To 10

Print a(i); Next End sub

Sub swap(b() As Integer)

n=UBound(b) For i=1 To n/2

t=b(i) b(i)=b(n)

【81】 b(n)=t n=n-1 Next End sub

上述程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,……。请填空。

39.在窗体上画一个文本框,其名称为Text1,在属性窗口中把该文本框的MultiLine属性设置为True,然后编写如下的事件过程:

Private sub Form_Click()

Open\"d:\est\\smtext1.txt\" For Input As #1 Do While Not 【82】eof(1)

Line Input #1,aspect$

whole$=whole$+aspect$+Chr$(13)+Chr$(10) Loop

Text1.Text=whole$ 【83】Close #1

Open\"d:\est\\smtext2.txt\" For Output As #1

Print #1, 【84】Text1.Text或Text1或whole$ Close #1 End sub

..

运行程序,单击窗体,将把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。请填空。

40.窗体上有名称为Command1的命令按钮及名称为Text1、能显示多行文本的文本框。程序运行后,如果单击命令按钮,则可打开磁盘文件c:\est.txt,并将文件中的内容(多行文本)显示在文本框中。下面是实现此功能的程序,请填空。

Private Sub Command1_Click()

Text1=\"\"

Number=FreeFile

Open \"c:\est.txt\" For Input As Number Do While Not EOF( 【85】Number ) Line Input #Number,s

Text1.Text=Text1.Text+ 【86】s +Chr(13)+Chr(10) Loop

Close Number End Sub

41.本程序实现文本加密。先给定序列a1,a2,…,an,它们的取值范围是l~n,且互不相同。加密算法是:把原文本中第k个字符放到加密后文本的第ak个位置处。若原文本长度大于n,则只对前n个字符加密,后面的字符不变;若原文本长度小于n,则在后面补字符\"*\"使文本长度为n后再加密。

例如:若给定序列a1,a2,…,a7分别为2,5,3,7,6,1,4

当文本为\"PROGRAM\"时,加密后的文本为\"APOMRRG\"

当文本为\"PROGRAMMING\"时,加密后的文本为\"APOMRRGMING\" 当文本为\"THANK\"时,加密后的文本为\"*TA*HKN\"

下面的过程code实现这一算法。其中参数数组a()中存放给定序列(个数与数组a的元素个数相等)a1,a2,a3,…的值,要加密的文本放在参数变量mystr中。过程执行完毕,加密后的文本仍放在变量mystr中。请填空。

Option Base 1

Private Sub code(a()As Integer, mystr As String)

Dim ch As String,cl As String n=UBound(a)-Len(mystr) If n>0 Then

mystr=mystr & String$(n,\"*\") End If ch=mystr

For k= 【87】1 To UBound(a) cl=Mid(mystr,k,1) n= 【88】a(k) Mid$(ch,n)=c1 Next k mystr=ch End Sub

42.设有如下程序:

Private Sub Form_Click()

Cls

a$=\"ABCDFG\"

..

For i=1 To 6

Print Tab(12-i); 【89】 Right(a$,i)

Next i End Sub

程序运行后,单击窗体,结果如图所示,请填空。

43.在窗体上画一个命令按钮,其名称为Command1,然后编写如下代码:

Option Base 1

Private Sub Command1_Click()

Dim Arr

Arr=Array(43, 68, -25, 65, -78, 12, -79, 43, -94, 72) pos=0 neg=0

For k=1 To 10

If Arr(k)>0 Then

【90】Pos=Pos+Arr(k) Else

【91】neg=neg+Arr(k) End If

Next k

Print pos, neg End Sub

以上程序的功能是,计算并输出数组Arr中10个数的正数之和pos与负数之和neg,请填空。 44.在窗体上画一个名为Command1的命令按钮,然后编写如下程序:

Private Sub Command1_Click()

Dim i As Integer

n=InputBox(\"Enter a number\") n=Val(n) For i=1 To n

Sum= 【92】Sum=Sum+fun(i)

Next i Print Sum End Sub

Function fun(t As Integer)As Long

p=1

For i=1 To t p=p*i

Next i

【93】fun=p End Function

以上程序的功能是,计算1!+2!+3!+…+n!,其中n从键盘输入,请填空。 45.在窗体上画一个文本框,名称为Text1,然后编写如下程序:

Private Sub Form_Load()

Open \"d:\emp\\dat.txt\" For Output As #1 Text1.Text=\"\"

..

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii=13 Then

If UCase(Text1.Text)= 【94】\"END\" Then

Close #1 End

Else

Write #1, 【95】Text1.Text或Text1 Text1.Text=\"\"

End If End If End Sub

以上程序的功能是:在D盘temp文件夹下建立一个名为dat.txt的文件,在文本框中输入字符,每次按回车键都把当前文本框中的内容写入文件dat.txt,并清除文本框中的内容;如果输入\"END\",则不写入文件,直接结束程序。请填空。

46.在窗体上画一个通用对话框,其名称为CommonDialog1,然后画一个命令按钮,并编写如下事件过程:

Private Sub Command1_Click()

CommonDialog1.Filter=\"All Files(*.*)|*.*|Text Files\" _ & \"(*.txt)|*.txt I Batch Files(*.bat) |*.bat\" CommonDialog1.FilterIndex=1 CommonDialog1.ShowOpen

MsgBox CommonDialog1.FileName End Sub

程序运行后,单击命令按钮,将显示一个\"打开\"对话框,此时在\"文件类型\"框中显示的是 All Files(*.*) ;如果在对话框中选择d盘temp目录下的tel.txt文件,然后单击\"确定\"按钮,则在MsgBox信息框中显示的提示信息是 【97】d:\emp\el.txt 。

47. 以下程序的功能是:把顺序文件smtext1.txt的内容全部读入内存,并在文本框Text1中显示出来。请填空。

Private Sub Command1_Click() Dim inData As String Text1.Text=\"\"

Open\"smtext1.txt\" 【98】For Input As 【99】#2 Do While 【100】Not Eof(2) Input #2,inData

Text1.Text=Text1.Text & inData Loop Close #2 End Sub

三、写出程序结果题

1.执行下面的程序,在窗体上显示的输出结果的第一行是 6 ,第二行是 -29 。

Private Sub Form_Click()

Dim a As Integer, b As Integer, c As Integer c = -2

..

For a=6 To 1 Step c a = a +1 c = c-a b = b+1 Next a Print b Print c End Sub

2.执行下面的程序,在窗体上显示的输出结果的第一行是 13 ,第二行是 -30 。 Private Sub Form_Click()

Dim i As Integer, j As Integer j = 12

For i = 1 To j i = i + 1 j = j - i Next i Print i Print j End Sub

3.执行下面的程序,在窗体上显示的输出结果的第一行是 0 ,第二行是 13 。

Option Base 1 Dim a() As Integer

Private Sub Form_Click()

Dim i As Integer, j As Integer Redim a(3, 2) For i = 1 To 3

For j = 1 To 2

a(i, j) = i * 2 + j

Next j

Next i

Redim Preserve a(3, 4) For j = 3 To 4

a(3, j) = j + 9

Next j

Print a(2, 3) Print a(3, 4)

End Sub

4.执行下面的程序,在窗体上显示的输出结果的第一行是 7 ,第二行是 -29 。

Private Sub Form_Click()

Dim a As Integer, b As Integer, c As Integer c = -2:b=1

For a=6 To b Step c a = a +1 c = c-a

..

b = b+1 Next a Print b Print c End Sub

5.执行下面的程序,在窗体上显示的输出结果的第一行是 0 ,第二行是 2 。

Private Sub Form_Click()

Dim x As Integer, y As Integer, z As Integer z = 2

For x=6 To 1 Step c x = x +1 z = z-x y = y+1 Next x Print y Print z End Sub

6.执行下面的程序,当单击窗体时,显示在窗体上第一行的内容是 B ,第三行是 8 。 Private Sub Command1_Click() Dim s As String, t As String Dim i As Integer, m As Integer s = \"ABCDEF\" i = 1: m = i

For i = 1 To Len(s) Step m + 1

t = t & Chr(Asc(Mid(s, m, 1)) + i) i = i + 1

If Mid(s, i, 1) = \"F\" Then Exit For End If m = m + i Print t Next i Print m End Sub

7.执行下面程序,当单击Command1后,则在窗体上输出的第一行是 b ,第二行是 3 。

Private Sub Command1_Click() Dim s As String, t As String Dim k As Integer, m As Integer s = \"abcde\" k = 1: m = k

For k = 1 To Len(s) Step m + 1

t = t & Chr(Asc(Mid(s, m, 1)) + k) k = k + 1

If Mid(s, k, 1) = \"e\" Then Exit For

..

m = m + k Print t Next k Print m End Sub

8.执行下面的程序,当单击窗体时,显示在窗体上第一行的内容是 VISUAL ,第二行的内容是 2010.06.30 。

Private Sub Command1_Click()

Dim s As String, i As Integer, s1 As String, s2 As String Const Ch As String = \"0123456789.\" s = \"2L0A10U.0SI6V.30\" For i = 1 To Len(s)

If InStr(Ch, Mid(s, i, 1)) = 0 Then s1 = Mid(s, i, 1) & s1 Else

s2 = s2 & Mid(s, i, 1) End If Next i Print s1 Print s2 End Sub 9.执行下面的程序后,a(3, 2)的值是 0 , a(3, 4)的值是 13 。 Option Base 1 Dim a() As Integer Private Sub Form_Click() Dim i As Integer, j As Integer ReDim a(3, 2) For i = 1 To 3 For j = 1 To 2 a(i, j) = i * 2 + j Next j Next i ReDim a(3, 4) For j = 3 To 4 a(3, j) = j + 9 Next j

End Sub 10.下列程序

Private Sub Form_Click() x = Val(InputBox(\"x=\")) Print fny(x) End Sub

..

Private Function fny(x) If x > 0 Then fny = 1

ElseIf x = 0 Then fny = 0 Else

fny = -1 End If End Function

运行时从键盘为变量x输入数据5,输出的结果是 1 。 11.下列程序运行后输出结果是 12345 。

Private Sub Form_Click()

Dim k As Integer, t As Integer, s As Integer k = 1

For i = 5 To 1 Step -1 t = t * 10 + k s = s + t Next i Print s End Sub

12.下列程序段运行后,单击窗体时输出的第一行是 20 8 ,第二行是 8 8 。

Public Sub Proc(ByVal x As Integer, y As Integer) x = y + x y = x Mod y Print x ; y End Sub

Private Sub Form_Click()

Dim a As Integer, b As Integer a = 8:b = 12 Call Proc(a, b) Print a; b End Sub

13.执行下面程序,单击窗体时输出的第二行是 3 2 ,第四行是 5 2 。

Private Sub Form_Click()

Dim i As Integer, j As Integer i = 1: j = 2 Call test(i, j) Print i, j Call test(i, j) Print i, j End Sub

Private Sub test(m As Integer, ByVal n As Integer) Static t As Integer m = m + n n = n + m + t t = t + m Print m, n, t

..

End Sub

14.下列程序段运行后,单击窗体时输出的第一行是 20 4 ,第二行是 24 0 。

Public Sub Proc(x As Integer, y As Integer) x = y + x y = x Mod y

End Sub

Private Sub Form_Click() Dim a As Integer, b As Integer a = 12: b = 8 Call Proc(a, b) Print a; b Call Proc(a, b) Print a; b

End Sub

15.下列程序段运行后,单击窗体时输出的第一行是 18 7 ,第二行是 18 11 。

Private Sub Form_Click()

Dim a As Integer, b As Integer a = 7:b = 11 Call Proc(a, b) Print a; b End Sub

Public Sub Proc(x As Integer, ByVal y As Integer) x = y + x y = x Mod y Print x ; y End Sub

16.下列程序第一次调用子程序后K= 10 , 第二次调用子程序后K= 11 。 Private Sub Command1_Click() Dim K As Integer K=5

Call Prog(K)

Print \"第一次调用:K=\";K K=3

Call Prog(K)

Print \"第二次调用:K=\";K

End Sub

Private Sub Prog(n As Integer) Static m As Integer m = n + m n = m + n

End Sub

17.下列程序执行后,第一行的内容是 12 , 第二行的内容是 48 Private Sub Command1_Click()

Dim m As Integer, n As Integer, k As Integer m = 6: n = 4: k = 16

..

Print fun1(m, n)

Print fun1(fun1(m, n), k) End Sub

Private Function fun1(a As Integer, b As Integer) As Long Dim x As Integer x = a Do

If x Mod b = 0 Then fun1 = x

Exit Function Else

x = x + a End If Loop End Function

18.下列程序段运行后,单击命令按钮时输出的第一行是 3 2 ,第三行是 9 8 。

Private Sub Command1_Click()

Dim x As Integer, y As Integer, m As Integer y = 2

For x = 1 To 8 Step y m = x + y

Call sub1(m, x) Print m;x Next x End Sub

Private Sub sub1(ByVal a As Integer, b As Integer) a = a + b b = b + 1 End Sub

19.执行下列程序,当单击命令按钮时,窗体上输出的第一行的内容是 1 ,第二行的内容是 6 。

Private Sub Command1_click() Dim x As Integer, i As Integer x = 2

For i = 1 To 13 x = x * i

Print fun1(x, i) Next i End Sub

Private Function fun1(x As Integer, y As Integer) As Integer y = y + x fun1 = y \\ 2 End Function 20.执行下面的程序,当单击窗体时,显示在窗体上第一行的内容是 3 ,第二行的内容是 41 。 Private Sub Command1_Click()

..

Dim x As Integer, k As Integer x = 123: k = 2 Do Until x <= 1 If x Mod k = 0 Then x = x \\ k

List1.AddItem Str(k) Else k = k + 1 End If

Loop End Sub

21.一个窗体上有一个命令按钮Command1,下列程序执行后,输出的第一行为 2 ,第二行是 2 。

Private Sub Command1_Click() Dim x As Integer x = 1

Call sort(x) Print x

Call sort((x)) Print x End Sub

Private Sub sort(y As Integer) y = y + 1 End Sub

四、编程题

1. 编写程序求下面数列的和,计算结果精确到第n项小于10-5为止。要求计算阶乘用函数过程实现。

y

1111......式中,n=1,2,3,…。 2!4!6!(2n)!

Private Sub Command1_Click()

Dim n As Integer, x As Single, y As Single n = 2

x = 1 / jc(n)

Do While x > 0.00001 y = y + x n = n + 2 x = 1 / jc(n) Loop

Print \"y=\"; y End Sub

Private Function jc(n As Integer) As Long jc = 1

For i = 2 To n

..

jc = jc * i Next i End Function

2. 编程序:利用无穷级数求cos(x)的近似值。已知:

2nx2x4x6nxcos(x)1...(1)... n=0, 1, 2, … 2!4!6!(2n)!当第n项的绝对值小于等于10-6时计算为止。要求计算阶乘用函数过程实现。

Private Sub Command1_Click() Dim n As Integer, x As Single, y As Single Dim m As Single, t As Single x = Text1 y = 1:n = 2: m = 1 Do m = -m * x ^ 2 t = m / jc(n) If Abs(t) < 0.000001 Then Exit Do y = y + t n = n + 2 Loop

Print \"y=\"; y End Sub

Private Function jc(n As Integer) As Long jc = 1

For i = 2 To n jc = jc * i Next i End Function

3.编写程序,随机生成10个两位的正整数,删除其中最大的数,输出删除前后的数。要求查找最大数用通用过程实现。

Private Sub Command1_Click()

Dim a(10) As Integer, i As Integer, max As Integer For i = 1 To 10

a(i) = Int(Rnd * 90) + 10 Print a(i); Next i

Call zds(a, max) Print

For i = 1 To 10

If a(i) <> max Then Print a(i); End If Next i End Sub

Private Sub zds(a() As Integer, max As Integer) Dim i As Integer max = a(1)

For i = 1 To UBound(a) If a(i) > max Then max = a(i) End If Next i End Sub

4.编写程序求下面数列的和,计算结果精确到第n项小于10-5为止。要求计算阶乘用函数过程实现。

..

y11111..... .2!4!6!(2n)!式中,n=1,2,3,…。

Private Sub Command1_Click()

Dim n As Integer, y As Single Dim t As Single, m As Integer n = 2: y = 1: m = -1 Do

t = m / jc(n)

If Abs(t) < 0.000001 Then Exit Do y = y + t n = n + 2 m = -m Loop

Print \"y=\"; y End Sub

Private Function jc(n As Integer) As Long jc = 1

For i = 2 To n jc = jc * i Next i End Function

5.编写程序求下面数列的和,计算结果精确到第n项小于10-5为止。要求计算阶乘用函数过程实现。

y1111...... 1!3!5!(2n1)!式中,n=1,2,3,…。

Private Sub Command1_Click()

Dim n As Integer, x As Single, y As Single n = 1

x = 1 / jc(n)

Do While x > 0.00001 y = y + x n = n + 2 x = 1 / jc(n) Loop

Print \"y=\"; y End Sub

Private Function jc(n As Integer) As Long jc = 1

For i = 2 To n jc = jc * i Next i End Function

6. 本程序的功能是求数列

S1!2!k!...... x1(x1)(x2)(x1)...(xk)的和,规定计算到第k项的值≤10-6为止。(输入x=2)。要求计算阶乘用函数过程实现。

Private Sub Command1_Click()

Dim t As Single, y As Single, k As Integer k = 1: t = jc(k)

..

Do While t > 0.000001 y = y + t b k = k + 1 t = jc(k) Loop Print \"y=\"; y End Sub

Private Function jc(n As Integer) As Double Dim x As Integer x = 2 jc = 1

For i = 1 To n

jc = jc * i / (x + i) Next i End Function

7. 编写程序生成一个由两位随机正整数组成的5行4列二维数组,将其在文本框中输出。要求生成两位随机正整数二维数组由通用过程实现。

Private Sub Command1_Click() Dim a(5, 4) As Integer Call shuzu(a) For i = 1 To 5

For j = 1 To 4

Text1 = Text1 & Str(a(i, j)) Next j

Text1 = Text1 & vbCrLf Next i End Sub

Private Sub shuzu(a() As Integer) Dim i As Integer, j As Integer For i = 1 To UBound(a, 1)

For j = 1 To UBound(a, 2)

a(i, j) = Int(Rnd * 90 + 10) Next j Next i End Sub

8. 编写程序生成一个由两位随机正整数组成的4行5列二维数组,将其在图片框中输出。生成两位随机正整数组成的二维数组由通用过程实现。

Private Sub Command1_Click() Dim a(4, 5) As Integer Call shuzu(a) For i = 1 To 4

For j = 1 To 5

Picture1.Print a(i, j); Next j Picture1.Print Next i End Sub

Private Sub shuzu(a() As Integer) Dim i As Integer, j As Integer For i = 1 To UBound(a, 1)

For j = 1 To UBound(a, 2)

a(i, j) = Int(Rnd * 90 + 10) Next j Next i End Sub

9. 编写程序产生一个由两位随机正整数组成的5行5列二维数组,将其在窗体上输出。生成两位随机正整

..

数组成的二维数组由通用过程实现。

Private Sub Command1_Click() Dim a(5, 5) As Integer Call shuzu(a) For i = 1 To 5

For j = 1 To 5 Print a(i, j); Next j Print Next i End Sub

Private Sub shuzu(a() As Integer) Dim i As Integer, j As Integer For i = 1 To UBound(a, 1)

For j = 1 To UBound(a, 2)

a(i, j) = Int(Rnd * 90 + 10) Next j Next i End Sub

10. 写出用下面的公式计算π的近似值的函数过程:

41Private Function pi(n As Integer) As Single Dim a As Single, i As Integer For i = 1 To n a = (-1) ^ (i - 1) / (2 * i - 1) pi = pi + a Next i

pi = 4 * pi End Function

1111...(1)n1,n的值由调用该过程时的参数给定。函数返回值为π的值。 3572n1

..

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 版权所有