VB综合复习题

更新时间:2023-10-19 09:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

综合复习题

一、选择题

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

A. VB是事件驱动型可视化编程工具

B. VB窗体文件包含该窗体及其控件的属性,窗体级的常量、变量的定义等 C. VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属性 D. VB中控件的某些属性只能在运行时修改 2.以下说法中,错误的是 。

A. 方法是构成对象实体的一个部分 B. 方法是一种特殊的过程或函数

C. 调用方法的一般格式是:[对象名.]方法名 [参数] D. 图片框和列表框均可执行Cls方法

3.以下叙述中,错误的是 。

A.在VB中,对象所能响应的事件是由系统定义的

B.对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定 C.VB中不同对象可具有名称相同的方法 D.VB中的对象具有自己的属性

4.在Visual Basic中,每个对象一般都能感知和接收多个不同的事件,并能对这些事件作出响应,其响应方式就是通过调用执行一个与之相对应的 来实现的。

A.事件过程 B.通用过程 C.主程序 D.Sub Main过程

5.下列选项中,不能使控件获得焦点的操作是 。

A.在程序运行期间,用鼠标单击对象 B.在程序运行期间,用快捷键选择对象 C.在程序运行期间,用Tab键 D.在程序运行期间,用Enter键

6.以下合法的VB标识符是 。

A.ForLoop B.Const C.9abc D.a#x

7.下面四组均为正确的VB常量是 。

A. 3276,123.56,1.2E-2,#True# B. -32768,1.34D2,\,25! C. &HABCE,02-03-2002,False,D-3 D.ABCDE,#02-02-2002#,E-2 8.下列表达式中,值为True的是 。

A.3<2<1

B.Ucase(\

C.Mid(\D.14 / 2 \\ 3 > 10 Mod 4

9.以下表达式的值为True的是______________。

A. Str(23.45)=Trim(\

B. Sgn(7 Mod 3 - 4)+ \

1

C. Fix(3.5)+Cint(2.5)=6

D. \

10.以下关系表达式中,其值为False的是 。 A.\ B.\

C. \\ D.\

11.设a=2, b=3, c=4, 下列表达式的值是 。

Not a<=c Or 4*c=b^2 And b<>a+c

A.-1 B.1 C.True D.False 12.数学表达式|e3+lnX+arctgY|对应的VB表达式是 。

A.Abs(e ^ 3 + Log(X) + 1 / Atn(Y))

B.Abs(Exp(3) + Log(X) / Log(10) + Atn(Y)) C.Abs(Exp(3) + Log(X) + 1 / Atn(Y)) D.Abs(Exp(3) + Log(X) + Atn(Y))

12x?5y?d3?m213.数学表达式

e?x?sinx,对应的VB算术表达式为____________。

A. (12*x+5*y-Sqr(Abs(d^3-m^2)))/Exp(-x)/Sin(x) B. (12*x+5*y-Sqr(Abs(d^3-m^2)))/Exp(-x)*Sin(x) C. (12*x+5*y-Sqr(Abs(d^3-m^2))/Exp(-x)/Sin(x) D. (12*x+5*y-Sqr(Abs(d^3-m^2)))/e^(-x)/Sin(x) 14.表达式4+5\\6*7/8的结果为____________。

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

15.只能用于除去字符串右侧空格的函数是 。

A.RightTrim B.RTrim C.Trim D.RLTrim

16.执行语句 Print Sgn(Fix(3.1) + Int(-3.1)) ,在窗体上输出的结果是 。

A.1 B.0 C.-1 D.6 17.下列语句不能正常执行的是 。

A.Print 20 + 5 = 25 B.Print \C.Print 11 & 11 D.Print 32700 + 100

18.设x=12,y=10,z=8,执行语句Print x < y < z后,窗体上显示的是_________。

A. True B. False C. -1 D. 出错信息 19.执行下面语句的正确显示结果是______________。 Print Format(+2004.601, \

A. +2,004.601 B. ++#2,004.601 C. #2,004.6010 D. +2,004.6010

20.在某过程中已说明变量a为整型、变量s为字符型,过程中的以下四组语句不能正常执行的是 。

A. s = 2 * a + 1 B. s = \a = s C. s = \ D. a = 2 : s = 16400 * a 21.在某事件过程中,以下声明语句正确的是______________。

A. Const eps As Single B. Dim ivar = \

C. Dim n As Integer, a(1 to n) As Integer D. Static m As Integer

22.关于窗体Name属性的叙述,正确的是 。

A.窗体Name属性的属性值必须通过属性窗口进行设置

2

B.窗体Name属性的属性值最长可达255个字符

C.窗体Name属性的属性值不能与其它的控件对象的Name属性的属性值相同 D.窗体Name属性的属性值可以通过赋值语句来给它赋值

23.确定一个控件在窗体上的位置的属性是 。

A.Width 和Height B.Width 或Height C.Top和Left D.Top或Left 24.关于窗体的Load语句和Show方法,下列说法正确的是 。

A.Load和Show的功能一样,都是将指定的窗体装入内容,同时显示出来 B.Load和Show的功能一样,都是将指定的窗体装入内容,但都不显示出来 C.Load和Show都能将窗体装入内存,但前者不显示出来,而后者显示出来 D.Load和Show都能将窗体装入内存,但前者显示出来,而后者不显示出来 25.以下能够触发文本框Change事件的是____________。

A. 文本框失去焦点 B. 文本框获得焦点 C. 清空文本框原有的内容 D. 文本框设置焦点 26.在窗体上有一文本框(名称为Text1),有如下代码:

Private Sub Form_Click()

Text1.SelStart = 5: Text1.SelLength = 3: Text1.SelText = \ End Sub

运行该程序在文本框中输入:this is a book。然后单击窗体,在文本框中将显示__ __。

A. this is a book B. thishello a book C. this hello a book D. this helloa book

27.设窗体上有一个文本框Text1,程序运行后,要求该文本框只能显示信息不能接收输入的信息,以下能实现该功能的语句是 。

A.Text1.Locked = True B.Text1.Enabled = True C.Text1.Visible = True D.Text1.TabStop = True

28.在窗体上有两个文本框Text1和Text2,若希望在Text1中输入字符时,该字符也将出现在Text2中,要实现该功能,则必须在文本框Text1的 事件中书写代码。

A.Click B.GotFocus C.LostFocus D.Change 29.在窗体上画一个文本框,然后编写如下事件过程: Private Sub Form_Click()

x = InputBox$(\请输入一个整数\ Print x + Text1.Text End Sub

程序运行时,在文本框中输入456,然后单击窗体,在输入对话框中输入123,单击

“确定”按钮后,则在窗体上显示的内容是: 。

A. 123 B. 456 C. 579 D. 123456

30.窗体上有一个标签Label1,假设已存在三个整型变量a、b和c,且变量a 、b和c的值分别为1、2和3。以下的___________语句可以使标签内显示的内容为:3=1+2 A. Label1.Caption = c = a + b B. Label1.Caption = \

C. Label1 = c & \D. Label1.Print c & \

31.下列语句中,结果与Print \\输出相同的是 。

A.Print \ B.Print \

C.Print \ D.Print \

3

32.下列语句不能正确执行的是 。

A.Print \ B.Print 123+\.Print 12<45 D.Print 12 & 45 33.执行如下两条语句后,窗体上显示的是 。

A=9.8596

Print Format(A, \

A. 0,009.86 B.$9.86 C.9.86 D.$0,009.86

34.下列控件中,具有Caption属性的是 。

A.文本框 B.复选框 C.滚动条 D.列表框 35.下列选项中(其中对象的Name属性值均为默认值),控件的属性值既能在设计时设置,又能在运行时通过赋值语句改变的是 。

A.List1.Name B.Text1.MultiLine C.Command1.Style D.Label1.Visible

36.为了在按下ESC键时执行某个命令按钮的Click事件过程,需要把该命令按钮的 属性的值设置为True。

A.Value B.Default C.Cancel D.Enabled

37.下列有关单选钮、复选框和框架的说法中,错误的是 。

A.框架中的单选钮和复选框将随框架一起移动、显示和消失;

B.若要在框架中创建单选钮,只需将窗体上的单选钮拖到框架中即可;

C.框架的主要功能是用于对窗体上一些对象的分组,以便提供视觉上的区分; D.对于框架中的单选钮来说,它的操作不会影响框架外单选钮的操作。 38.以下关于复选框的说法,正确的是__________。

A. 一个窗体上的所有复选框一次只能有一个被选中 B. 一个框架中的所有复选框一次只能有一个被选中

C. 若选中一个复选框,则另一个已被选中的复选框自动变为不被选中 D. 无论是在框架中还是在窗体中,都可以同时选中多个复选框

39.若需要在同一窗体内安排两组相互独立的单选钮( OptionButton ),可使用 ____________ 控件将它们分隔开。

① TextBox ② PictureBox ③ Image ④ Frame A. ①② B. ②③ C. ②④ D. ③④

40.对时钟控件来说,它不具有的属性是 。

A.Interval B.Visible C.Enabled D.Name

41.为使计时器控件每隔3秒钟产生一个计时器事件(Timer事件),则应将其Interval属性的值设置为___________。

A.3 B.300 C. 3000 D.180

42.如图1所示,在窗体中创建了框架、单选钮和命令按钮(其中对象的Name属性值均为默认值),图中“公共基础课”字样的内容,是通过 语句来实现的。

A.Frame1.Caption=\公共基础课\B.Form1.Caption=\公共基础课\C.Option1.Caption=\公共基础课\D.Command1.Caption=\公共基础课\

43.在使用菜单编辑器设计菜单时,必须设置的菜单项属性是 。

4

A. Index B. Name C. Checked D.Visible 44.在用菜单编辑器设计菜单时,必须输入的是______。

A. 标题 B. 名称 C. 快捷键 D. 热键

45.下列选项中不属于结构化程序设计的基本结构的是 。

A.顺序结构 B.选择结构 C.循环结构 D.递归结构 46.下面关于赋值语句的说法中,错误的是 。

A.一个赋值语句只能给一个变量(或对象的一个属性)赋值 B.赋值语句是一种顺序语句

C.当赋值语句中变量的数据类型与表达式的数据类型不一致时,该语句一定会出错 D.赋值语句中出现两个“=”号时,系统会根据“=”所处的位置自动判断符号的意义。 47.如图2所示,Inputbox函数的参数中“提示信息”的值是 。

A.输入你的学号 B.信息输入框 C.0101001 D.确定

48.若要在窗体上弹出一个输入信息对话框,其标题为\输入对话框\,提示信息为\请输入您的姓名\,缺省信息为空,对话框在屏幕上显示位置的x坐标和y坐标均为100,则使用正确的InputBox函数是_________。

A. InputBox(\请输入您的姓名\输入对话框\ B. InputBox(\请输入您的姓名\输入对话框\ C. InputBox(\输入对话框\请输入您的姓名\ D. InputBox(\输入对话框\请输入您的姓名\

49.通用对话框的Action属性决定了通用对话框在运行阶段打开何种类型的对话框,当Action属性值为1时,其与之对应的方法是 。

A.ShowSave B.ShowOpen C.ShowColor D.ShowFont 50.在Select Case X结构中,如果60≤X≤69是其中的一个判断条件,则正确描述的测试项应该写成 。

A. Case 60 <= X <= 69 B. Case X>=60 And X <= 69

C. Case 60 To 69 D. Case Is <= 69, Is >=60 51.若选中单选钮Opt1时执行某个操作,则下列IF语句中条件表达式表述不正确的是 。

A.If Opt1 = True Then B.If Opt1.Value = 1 Then

C.If Opt1 Then D.If Opt1.Value = -1 Then 52.在Select Case X结构中,如果5≤X≤10是其中的一个判断条件,则正确描述

5≤X≤10的测试项应该写成 。

A. Case 5 <= X <= 10 B. Case 5 <= X, X <= 10 C. Case 5 To 10 D. Case Is <= 10, Is >= 5

5

53.现有语句: y = IIf(x > 0 , x \\ 5, 0) 设x = 10,则y的值是 。

A.10 B.2 C.0 D.语句有错

54.阅读以下程序,运行该程序,单击窗体,则在窗体上显示 。

Private Sub Form_Click()

Dim i As Integer For i = 1 To 5 i = i + 1 Next i Print i End Sub

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

55.执行下面的程序,当单击窗体时,窗体上显示的是_________。

Private Sub Form_Click() Dim I As Integer, s As Integer For I = 5 To 32 Step 9 s = s + I Next I s = s + I Print s, I End Sub

A. 74 32 B. 74 41 C. 115 41 D. 115 32

56.下面的循环语句中,不可以采用 来求1到100的和。

A.Sum = 0 B.Sum = 0

For I = 1 To 100 For I = 100 To 1 Step -1 Sum = Sum + I Sum = Sum + I

Next I Next I C.I = 1 D.I = 1

Do Do Until I > 100 Sum = Sum + I I = I + 1

I = I + 1 Sum = Sum + I Loop While I <= 100 Loop

57.以下关于数组的说法中,错误的是__________。

A. 可用Public语句在窗体模块的通用说明处定义一个全局数组。 B. 对数组的输入输出处理常常和循环结合在一起使用。 C. 控件数组可以在设计时创建,也可以在运行时创建。

D.在过程中用ReDim语句定义的动态数组,其下标的上下界可为赋了值的变量。

58.对动态数组A(),若原数组为A(5),要改变其维界为A(10),同时还要保留原数组的数据不丢失,应使用 语句进行重新定义。

A. Dim A(10) B. ReDim Preserve A(5 To 10) C. ReDim Preserve A(10) D. ReDim A(10) 59.下面关于Array函数的说法错误的是 。

A.Array函数可以给定义为变体类型的动态数组赋值 B.Array函数可以给任意维的数组赋值

6

C.Array函数可以给定义为变体类型的变量赋值 D.Array函数只能给一维数组赋值

60.下面定义数组的语句中错误的是 。

A.Dim a(x-10) B.Dim f(3,1 To 4)

C.Dim m( ) As Single D.Static b(0 To 5) As Long

61.下列有关控件数组的说法中,错误的是 。

A. 控件数组可以在设计时创建,也可以在运行时创建 B. 命令按钮可以和标签组成控件数组

C. 控件数组通过索引号来指定某个控件元素

D. 控件数组具有相同的名称,共享同样的事件过程

62.假定一个VB应用程序由一个窗体模块和一个标准模块构成。为了保存该应用程序,以下正确的操作是 。

A.只保存窗体模块文件

B.分别保存窗体模块、标准模块和工程文件 C.只保存窗体模块和标准模块文件 D.只保存工程文件 63.以下叙述中错误的是 。

A.打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件 B.当程序运行时,双击一个窗体,则触发该窗体的DblClick事件 C.VB应用程序只能以解释方式执行

D.VB中有的事件可以由用户引发,有的事件也可以由系统引发

64.如果一个工程含有多个窗体及标准模块,则以下叙述中正确的是__________ 。

A.如果工程中含有Sub Main过程,则程序一定首先执行该过程 B.可以把标准模块设置为启动模块

C.用Hide方法只是隐藏一个窗体,并没有从内存中卸载该窗体 D.要用Show方法来显示一个窗体时,该窗体必须已在内存中 65.编写一个对Single类型一维数组a排序的Sub过程,该过程只能被本模块中其他过程所调用,其首句为 。

A. Sub f(a() As Single, n As Integer) B. Private Sub f(a() As Single)

C. Private Sub f(a As Single, n As Integer) D. Public Sub f(a() As Single)

66.若某过程声明为Sub g(n as Integer),调用程序中的变量m为Integer型,则调用时实参与形参是按地址传递的为 。

A. Call g(5) B. Call g(m+1) C. Call g(m) D. Call g(( m ))

67.有如下事件过程:

Private Sub Command1_Click() Static n As Integer

Dim m As Integer

Cls

For m = 1 to 3

n = m + n Next m

7

Print m, n

End Sub

程序运行时,两次单击Command1命令按钮后,窗体上的显示结果为_____ _。

A. 3 6 B. 3 12 C. 4 6 D. 4 12

68.在窗体Form1中用\定义过程F,在窗体Form2中定义了变量i为

Integer型,则若要在窗体Form2的某事件过程中调用窗体Form1中的过程F,下列语句中错误的是___________。

A. Call Form1.F(i) B. Call Form1.F((i)) C. Form1.F (i) D. Form1.F i+1

69.若要定义一个变量,希望能够在该窗体的所有事件过程中都能够访问,可以将其定义为_____________。

①静态变量 ②局部变量 ③窗体/模块级变量 ④全局变量 A. ①②③ B. ②③④ C. ③④ D. ①④

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

Private Sub Commandl_Click() Static n As Integer Dim m As Integer Cls m = 2 m = m + 5 n = m + n Print m, n End Sub

程序运行时,三次单击Commandl命令按钮后,窗体上的显示结果为______。 A. 7 21 B. 21 7 C. 7 14 D. 7 7

71.在窗体(Name属性为Form1)上画两个文本框(Name属性分别为T1和T2)和一个命令按钮(Name属性为C1)。单击命令按钮C1后在窗体上输出的结果为 。

Private Sub C1_Click() s = T1.Text + T2.Text Print s End Sub

Private Sub Form_Load() T1.Text = 234 T2.Text = 432 End Sub

A.666 B.234432 C.432234 D.出错

72.现有一自定义的Sub子过程Private Sub Sort(A() As Integer),主调过程中对数组的定义语句为Dim m(10) As Integer,下列选项中不能正确调用该子过程的语句是 。

A.Sort m B.Call Sort(m) C.Call Sort(m(10)) D.Sort m()

73.以下关于变量的作用域的说法中正确的是 。

Private X As Integer

Private Sub Form_Load()

8

Dim X As Integer Show X=2 Print X End Sub

A.窗体的“通用声明”处声明的X的值2 B.两个变量的值都是2 C.Load事件过程中声明的X的值2 D.两个变量的值都不是2 74.下列控件中,具有Caption属性的控件是 。

A.滚动条 B.列表框 C.计时器 D.框架

75.将字符串\添加到列表框的最后,可使用_________语句。

A. List1.AddItem \ B. List1.AddItem \ C. List1.AddItem \ D. List1.AddItem \

76.关于列表框的Text属性,下列 所描述的含义与List1.Text等价。

A.List1.List B.List1.ListIndex C.List1.List(List1.ListIndex) D.List1.List(ListIndex) 77.输出列表框(List1)最后一个数据项可以使用 。

A.Print List1.List(List1.ListCount) B.Print List1.List(List1.ListCount - 1) C.Print List1.List(ListCount) D.Print List1.List(ListCount - 1)

78.要将一个组合框设置为简单组合框,则应将其Style属性设置为__________。

A.0 B.1 C.2 D.3 79.下列关于改变滚动条Value属性值的方法,错误的是 。

A.单击滚动条两端的三角钮可以改变其Value属性值; B.可以通过赋值语句来改变滚动条的Value属性值;

C.单击滚动条滑块两端的空白处可以改变其Value属性值; D.单击滚动条上的滑块可以改变其Value属性值。 80.滚动条控件的LargeChange属性所设置的是___________。

A. 单击滚动条上空白区域时,滚动条控件Value属性值的改变量 B. 单击滚动条两端的箭头时,滚动条控件Value属性值的改变量

C. 单击滚动条上空白区域时,滚动条上滑块将移动到Value属性的最大值位置 D. 单击滚动条两端的箭头时,滚动条上滑块的最大移动范围 81.下列操作中,不能触发滚动条的Change事件的操作是 。

A.单击滚动条两端的箭头 B.单击滚动条空白区域

C.通过程序对滚动条的value属性赋值 D.单击滚动条上的滑块 82.在VB中,下列关于控件的属性或方法中,搭配错误的有 个。

(1)Command1.Value (2)List1.Cls (3)Label1.Print (4)Timer1.Visible (5)VScroll1.Value (6)Picture1.Print (7)Option1.Value (8)Text1.Value

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

9

83.在VB中,下列关于控件的属性或方法中,搭配错误的有 个。

(1) Picture1.Print (2)Timer1.Height (3)Text1.Print (4)List1.RemoveItem (5)Vscroll1.Value (6) Command1.Value

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

84.下列选项中,可以列出计算机中的所有驱动器的控件是 。

A.驱动器列表框 B.目录列表框 C.文件列表框 D.列表框

85.在窗体上创建驱动器列表框Drive1和目录列表框Dir1,如果希望改变Drive1中的驱动器时,Dir1中显示的目录也随之变化,则在Drive1的Change事件中的代码正确的是 。

A.Dir1.Path = Drive1.Path B.Drive1.Drive = Dir1.Path C.Dir1.Path = Drive1.Drive D.Drive1.Path = Dir1.Path 86.下列有关打开顺序文件的说法错误的是 。

A.For模式中的Output选项可用来在磁盘上创建一个新的顺序文件。 B.Input选项用来从文件中读取。若该文件不存在,则创建一个文件。

C.Append选项可用来打开一个新的顺序文件,文件打开后文件指针位于文件的末尾。 D.可以使用不同的文件号以Input方式打开同一顺序文件。 87. 以下有关文件的说法中正确的是 。

A.打开文件命令中,所指定的文件号最大可取512

B.在Input方式下,不能使用不同文件号同时打开同一个文件

C.若以Output或Append方式打开一个不存在的顺序文件,系统会出错 D.若以Input方式打开一个不存在的顺序文件,系统会出错 88.关于顺序文件的描述,下列说法中正确的是 。

A.可以用两个不同的文件号同时打开一个顺序文件来进行读操作或写操作;

B.使用Output模式打开一个顺序文件进行写操作时,如果文件已经存在,则用新的数据来取代原文件中的数据;

C.如果打开了一个顺序文件进行读操作,那么读操作结束后必须要用Close语句来关闭已打开的文件;

D.用Append模式打开一个文件进行写操作,如果文件不存在,则无法对该文件进行写数据,如果文件已经存在,则从末尾开始写数据。

二、分析程序,写结果

1. 运行下面的程序,当单击窗体时,窗体上显示的内容第一行是__(1)__,第二行是

___(2)___。

Private Sub Form_Click()

Dim x As Integer, y As Integer Do

x = x + 2 y = y + x * x If x > 4 Then Exit Do End If Loop Print x Print y

10

End Sub

2. 运行下面的程序,当单击窗体时,窗体上显示的内容第一行是___(3)___,第二行是

__(4)__。

Private Sub Form_Click()

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

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

For i = 1 To 3

For j = i + 1 To 3 Print a(j, i); Next j Print Next i End Sub

3. 运行下面的程序,当单击窗体时,窗体上显示的内容第一行是 (5) ,第三行是 (6) ,Form_Click()事件过程中的第二个For-Next循环共执行了 (7) 次。

Private Sub Form_Click() Dim x(1 To 4) As Integer Dim i As Integer, j As Integer For i = 1 To 4 x(i) = i * i Print x(i); Next i Print

For j = 1 To 4

Call sub1(x(j), j) Print j Next j End Sub

Private Sub sub1(x As Integer, m As Integer) If x - m <= 2 Then m = m + 2 Else

m = m + 3 End If End Sub

4. 运行下面的程序,当单击窗体时,窗体上显示的内容第一行是___(8)____,第二行是

___(9) _,第三行是___(10)___。 Private Sub Form_Click() Print cal(2) End Sub

11

Private Function cal(a As Integer) As Integer Dim temp As Integer If a = 1 Then temp = 2 Else

temp = cal(a - 1) * 2 End If cal = temp Print a, temp End Function

5. 运行下列程序,单击窗体,当在Inputbox输入框中输入值为7时,窗体上显示的内容

是 (1) ,本程序的功能是 (2) 。 Private Sub Form_Click()

Dim S$, n%, a%

n = Val(InputBox(\请输入一个十进制整数:\ S = \

Do While n <> 0

a = n Mod 2 n = n \\ 2

S = Chr(Asc(\ Loop Print S End Sub

6. 运行下列程序,单击窗体,则在窗体上显示的第一行内容是__ (3) _,第二行内

容是__ (4) __,第四行内容是 (5) 。 Private Sub Form_Click()

Dim a(2, 3) As Integer, b(1 To 6) As Integer Dim i As Integer, j As Integer For i = 1 To 2 For j = 1 To 3

a(i, j) = i * 3 + j * 2 + 3 Print a(i, j);

b((i - 1) * 3 + j) = 2 * a(i, j) Next j Print Next i

For i = 1 To UBound(b)

Print Right(\ If i Mod 3 = 0 Then Print Next i End Sub

7. 运行下列程序,当单击Command1时,窗体上显示的第二行内容是 (6) ,第四行

内容是 (7) 。

Private Sub Command1_Click()

12

Print Test(5) End Sub

Private Function Test(t As Integer) As Integer If t >= 1 Then

Test = 2 * Test(t - 2) + 1 Print Chr(Asc(\ End If End Function

8. 运行下列程序,单击窗体后,则在窗体上显示的第一行内容是____(_8_)__,第二行

内容是 __(9)_ ,第四行内容是 (10) 。 Dim m As Integer

Private Sub Form_Click()

Dim x As Integer, y As Integer x = 3: y = 2: m = 2 sub1 y, x Print x, y, m Call sub1(x, y) Print x, y, m End Sub

Private Sub sub1(x As Integer, ByVal y As Integer) Dim m As Integer x = m * 2 + y y = x + 1 m = m + y Print x, y, m End Sub

9. 执行下面的程序,当单击窗体时,第一行显示的是 (1) ,第二行显示的是 (2) ,第三行显示的是 (3) 。 Private Sub Form_Click() Dim A(5, 5) As Integer

Dim I As Integer, J As Integer For I = 2 To 3 For J = 2 To 3

A(I, J) = (I - 1) * 2 + J If I = 3 Then Print A(I, J) Next J Next I

Print A(I, J) End Sub

10. 执行下面的程序,当单击命令按钮Command1时,窗体的第二行显示的是 (4) ,第四

行显示的是 (5) 。(注:小写字母a的ASCII值为97) Private Sub Command1_Click()

Dim s As String, i As Integer, s1 As String

13

i = Asc(\ s1 = \ Do i = i + 1

s = s1 + UCase(Chr(i)) s1 = Mid(s, 2, 1) & Right(s, 2) Print s1 Loop Until i >= 100 Print s End Sub

11. 执行下面的程序,当单击窗体时,在窗体上第一行显示的是 (6) ,第二行显示的是 (7) 。 Dim x As Integer, y As Integer

Private Sub p(m As Integer, ByVal n As Integer) m = m + 2 x = 2 * m n = x Mod 3 Print m, n End Sub

Private Sub Form_Click() x = 2: y = 3 Call p(y, x) Print x, y End Sub

12. 执行下面的程序,单击命令按钮Command1后,窗体的第一行显示的是 (8) ,第二行显示的是 (9) ,第三行显示的是 (10) 。 Private Sub Command1_Click() Dim i As Integer, x As Integer For i = 1 To 3 x = x + m(i) Print x Next i End Sub

Private Function m(ByVal i As Integer) As Integer If i = 1 Then m = 3

ElseIf i >= 2 Then m = m(i - 1) + i End If End Function

三、完善程序

1.下面程序的功能是找出10到1000之间所有平方数是回文数的整数,并以图1所示格式显示在窗体的列表框List1中。所谓回文数是指顺读和倒读数字相同,即指最高位和最低位数字相同,次最高位和次最低位数字相同,依此类推。

14

Private Sub Command1_Click() Dim I As Long, L As Long For I = 10 To 1000 L = I * I If (1) Then

List1.AddItem CStr(I) & \ End If Next I End Sub

Private Function rewind(m As Long) As Boolean Dim n As Integer, I As Integer, a() As Integer n = Len(CStr(m)) rewind = False (2) For I = 1 To n

a(I) = Val(Mid(CStr(m), I, 1)) Next I

For I = 1 To n \\ 2

If a(I) <> a(n - I + 1) Then Exit Function End If Next I (3) End Function

2.文件file1.txt中有十个国家的英文名称(字符串类型),名称间用逗号相隔,从file1.txt中读出这十个国家名称,放到a数组中,采用选择排序法,将国家名称按字典顺序排序,然后把排完序的国家名称写到file2.txt中。 Private Sub Command1_Click() Dim a(1 To 10) As String Dim i%, j%, imin%, t As String Open \ For i = 1 To 10

If EOF(1) Then Exit For (4) Next i For i = 1 To 9 (5) For j = i + 1 To 10 If a(j) < a(imin) Then imin = j End If Next j t = a(i) a(i) = a(imin)

15

图1

a(imin) = t Next i

Open \ For i = 1 To 10 Write #2, a(i) Next i (6) End Sub

3.本程序的功能是找出1000到9999之间所有的超素数,并统计超素数个数。要求将超素数在多行文本框Text1中显示,超素数个数在文本框Text2中显示。所谓超素数是指一个素数从低位到高位依次去掉一位数仍然是素数,则此素数是超素数。

例如:数2333本身为素数,且从低位到高位依次去掉一位数所得到的233、23、2都是素数,所以2333是超素数。

Private Sub Command1_Click()

Dim i As Integer, flg As Boolean, n As Integer For i = 1001 To 9999 Step 2 SuperPrime i, flg If flg Then

Text1 = Text1 & i & vbCrLf (7) End If Next i Text2 = n End Sub

Public Sub SuperPrime( (8) , f As Boolean) f = True Do While n > 0 If Prime(n) Then n = n \\ 10 Else (9) Exit Do End If Loop End Sub

Public Function Prime(p As Integer) As Boolean Dim k As Integer If p = 1 Then Exit Function Else

For k = 2 To Int(Sqr(p))

If p Mod k = 0 Then Exit Function

16

图2

Next k End If

(10) End Function

4.在窗体上有1个时钟控件Timer1,1个文本框Text1(支持多行显示,并带有垂直滚动条),1个复选框Check1和1个命令按钮CmdClose,设计时的窗体界面如图1所示,程序运行时,若复选框被选中,则时钟开始工作,并每隔2秒钟在文本框中添加显示一次系统的当前时间;若单击“退出”按钮,结束程序运行。运行时的窗体界面如图2所示。请将属性设置表和程序中的空白处补充完整。

图1 图2 对象 窗体 文本框 时钟 复选框 命令按钮 Name Form1 Text1 Timer1 Check1 Caption Form1 无定义 无定义

Enabled Multiline Interval ScrollBars True True False True 无定义 无定义 无定义 无定义 无定义 无定义 2 无定义 无定义 (1) 无定义 无定义 无定义 (2) 无定义 时钟开/关 True CmdClose 退出

Private Sub Check1_Click()

If Check1.Value = (3) Then Timer1.Enabled = True End Sub

Private Sub Timer1_Timer() Dim strTime As String strTime = Time$ Text1 = (4) End Sub

Private Sub CmdClose_Click() (5) Me End Sub

?5.已知2?(1?1111)?(1?)?(1?)???(1?)??1?33?55?7(2n?1)?(2n?1)

17

,下述程序的功能是用这个公式求出π的近似值,规定当n取某一值时,若

1(2n?1)?(2n?1)<10-6,则停止运算。

Private Sub Command1_Click() Dim n&, sum!, t! (6)

n = 1

t = 1 / (1 * 3)

Do While t > 0.000001

sum = sum * (1 + t) n = n + 1 t = (7) Loop

Text1.Text = sum * 2 End Sub

图3

6.本程序功能用于求1!+2!+3!+??+9!+10!的值。

Private Sub Form_Click()

Dim Sum As Long, I As Integer For I = 1 To 10

Sum = Sum + Fact(I) Next I

Print \End Sub

Private Function Fact( (8) ) As Long Fact = 1

Do While x <> 0 Fact = Fact * x (9) Loop

End Function

7.下述程序的功能是:从文件D:\\file1.txt中读出所有数据(均为整型),保存在动态数组a中,然后用选择排序法,使得数组a的元素按从小到大排好序。 Private Sub Form_Click()

Dim i%, n%, min%, imin%, j%, temp% , a() As Integer n = 0

(10)

Do While Not EOF(1)

18

n = n + 1 (11) Input #1, a(n) Loop

For i = 1 To UBound(a) Print a(i); Next i

Print

For i = 1 To UBound(a) - 1 min = a(i) imin = i

For j = (12) If min > a(j) Then min = a(j): imin = j Next j

If imin <> i Then temp = a(i): a(i) = min: a(imin) = temp Next i

For i = 1 To UBound(a) Print a(i); Next i

End Sub

8.下述程序的功能是找出所有的四位正整数,它的9倍恰好是其反序数,并将该数与其反序数写入一个顺序文件中(D:\\file2.txt)。文件file2.txt结果如图4所示。

Private Sub Command1_Click() Dim k As Long, newk As Long

Open \ For k = 1000 To 9999 If (13) Then newk = 9 * k Print #1, k, newk End If Next k Close #1

图4

End Sub

Private Function Fun1(ByVal n As Long) As Long Dim m As Long, new1 As Long, k As Integer (14) new1 = 0

For k = 1 To 4

new1 = new1 * 10 + m Mod 10 m = (15) Next k

If n * 9 = new1 Then Fun1 = new1

19

Else

Fun1 = 0 End If

End Function

9.下列程序的功能是:计算出租汽车收费。出租车计费方式为:3公里以内收费7元,超过3公里的部分每公里1.4元。程序运行参考界面如图3。 Private Sub Form_Click() Dim x As Single, y As Single x = Val(Text1.Text) If (1) Then y = 7 Else

(2) End If

Text2.Text = Str(y)

图3

End Sub

10.使用下面的公式,根据输入的精度计算arcsh(x)的近似值,要求保留四位小数。程序运行结果参考界面如图4。

1x31?3x51?3???(2n?1)x2n?1narcsh(x)?x???????(?1)??232?452?4???2n2n?1Private Sub Form_Click()

Dim x As Single, eps As Single, result As Double, n As Integer Dim t As Double, i As Long, p As Single x = Val(Text1.Text) eps = Val(Text2.Text) n = 1

result = x (3) Do While (4) result = result + t n = n + 1 p = 1

图4

For i = 1 To n

p = p * (2 * i - 1) / (2 * i) Next i

t = (5) Loop

Text3.Text = Format$(result, \End Sub

11.下列程序的功能是:输出100以内的能被3整除且个位数为6的所有整数。程序运行结果参考界面如图5所示。 Private Sub Form_Click()

20

本文来源:https://www.bwwdw.com/article/txof.html

Top