VB程序设计习题集(附答案) 下载本文

VB程序设计习题集

附 答 案

班级 学号 姓名

目 录

VB简介 ............................................................................................................................................ 1 程序代码基础 ................................................................................................................................... 4 选择结构程序设计 ........................................................................................................................... 9 循环结构程序设计 ......................................................................................................................... 11 数组 ................................................................................................................................................ 13 过程 ................................................................................................................................................ 19 常用控件......................................................................................................................................... 23 文件 ................................................................................................................................................ 27 根据题目要求完善程序 ................................................................................................................. 28 根据程序写运行结果 ..................................................................................................................... 36 综合应用题..................................................................................................................................... 40 答案 ............................................................................................................................................ 4051

VB简介

1、在以下有关对象属性的叙述中,不正确的是___________。 A、一个对象的属性可分为外观、行为若干类 B、不同属性可能具有不同的数据类型

C、一个对象的所有属性都可在属性窗口的列表中进行设置 D、属性窗口中的属性列表既可按字母排序也可按类别排序

2、Visual Basic中最基本的对象是___________,它是应用程序的基石,也是其他控件的容器。

A、文本框 B、命令按钮 C、窗体 D、标签

3、有程序代码“Text1.Text=\Basic\”,其中的Text1、Text和“Visual Basic”分别代表___________。

A、对象、值、属性 B、对象、方法、属性 C、对象、属性、值 D、属性、对象、值

4、用窗体的___________属性来设置窗体的标题。 A、Caption B、Style C、Text D、Name

5、窗体上有一个文本框控件Text1,假设已存在三个整型变量a、b、c,且变量a的值为5,变量b的值为7,变量c的值为12。以下的___________语句可以使文本框内显示的内容为:5+7=12。

A、Text1.Text = a + b + c B、Text1.Text = \

C、Text1 = a & \

D、Text1 = \

6、如果在窗体上有命令按钮OK,在代码编辑窗口有与之对应的Cmd_Click()事件,则命令按钮的名称属性和Caption属性分别为_________。 A、OK、Cmd B、Cmd、OK

C、CmdOK、OK D、OK、CmdOK

7、窗体Form1的名称属性是frm,它的Load事件过程名为___________。 A、Form_Load B、Form1_Load C、frm_Load

1

D、Me_Load

8、下列有关对象属性的说法正确的是___________。 A、对象所有的属性都罗列在属性窗口列表中 B、不同对象不可能有同名属性 C、不同对象的同名属性取值一定相同

D、对象的某些属性既可以在属性窗口中设置,也可以在程序代码中设置 9、一个对象可以执行的动作与可被对象识别的动作分别被称为___________。 A、事件、方法 B、方法、事件 C、属性、方法 D、过程、事件

10、下列有关算法的叙述中,___________是不正确的。 A、算法中执行的步骤可以无休止的执行下去 B、算法中的每一步操作必须含义明确 C、算法中的每一步操作都必须是可执行的 D、算法必须有输出

11、对象可以识别和响应的某些行为称为___________。

A、方法 B、继承 C、属性 D、事件

12、如果设计时在属性窗口将命令按钮的___________属性设置为False,则运行时按钮从窗体上消失。

A、Visible B、Enabled C、DisabledPicture D、Default

13、将文本框的___________属性设置为True时,文本框可以输入或显示多行文本。 A、MultiLine B、ScrollBars C、Text D、Enabled 14、下面___________对象无Caption属性。

A、Form B、CommandButton C、TextBox D、Label 15、决定控件上文字的字体、字形、大小、效果的属性是___________。 A、Text B、Caption C、(名称) D、Font 16、结构化程序设计有三种基本结构,不包括___________。

A、顺序结构 B、模块结构 C、选择结构 D、循环结构 17、一个对象所能做的事情称为对象的___________。

A、方法 B、继承 C、属性 D、封装

18、如果设计时在属性窗口将命令按钮的___________属性设置为False,则运行时按钮不能响应用户的鼠标事件。

A、Visible B、Enabled C、DisabledPicture D、Default

19、当标签的标题内容太长,需要根据标题自动调整标签的大小时,应设置标签的 ___________属性设置为True。

A、AutoSize B、WordWrap C、Visible D、Enabled 20、下面控件中,没有 Caption 属性的是___________。

A、复选框 B、单选按钮 C、组合框 D、框架 21、任何控件都具有___________属性。

A、Text B、Caption C、(名称) D、ForeColor

22、窗体上有多个控件,在Form_Activate()事件过程中添加___________语句,就可以确保每次运行程序时,都将光标定位在文本框Text1中 A、Text1.Text=\

2

B、Text1.SetFocus

C、Text1.GetFocus D、Text1.Visible=True

23、若已把一个命令按钮的Default属性设置为True,则下面可导致按钮的Click事件过程被调用的操作是___________。 A、用鼠标右键单击此按钮 B、按键盘上的Esc键 C、按键盘上的回车键 D、用鼠标右键双击此按钮

24、如下选项中,___________不是VB提供的程序控制结构。 A、顺序结构 B、选择结构 C、重复结构 3

D、树型结构

程序代码基础

?b?b2?4ac2a1、数学表达式对应的Visual Basic表达式为__________。

A、-b + Sqr(b * b - 4 * a * c) / 2 * a

B、-b + Sqr(b * b - 4 * a * c) / (2 * a) C、(-b + Sqr(b * b - 4 * a * c) )/ 2 * a D、(-b + Sqr(b * b - 4 * a * c) )/ (2 * a)

2、Visual Basic中可以同时删除字符串前导和尾部空格的函数是__________。 A、Ltrim B、Rtrim C、Trim D、Mid

3、设A=7,B=4,C=6,则表达式A Mod 3 + B ^ 3 / C \\ 5的值为__________。 A、出错 B、3 C、2 D、1

4、在Form_Click事件中执行如下语句的结果是__________。 Print Format(1236.54, \A、123456

B、+123,654.0% C、+123,6.54% D、+123,654

5、语句Print \的输出结果是__________。 A、\

B、出现错误信息 C、5*20 D、100

6、窗体上放置了三个文本框,若在Text1中输入123,在Text2中输入78,在程序中执行了语句Text3 = Text1 + Text2后,则在Text3中显示__________。

A、434 B、12378 C、溢出 D、语法错误 7、表达式Val(“abcdfg123e1234”)的值为__________。

A、 789 B、1234 C、0 D、表达式错

8、假设变量BOOL是一个布尔型变量,则下列赋值语句中,正确的是__________。 A、BOOL ='TRUE' B、BOOL =.TRUE.

C、BOOL =#TRUE# D、BOOL = True

9、函数Cint、Int、 Fix都返回整数值,以下能正确地描述它们返回整数值大小关系的是

4

__________。

A、CInt(-5.59)=Int(-5.59)< Fix(-5.59) B、Int(-5.59)

10、表达式Int(91*Rnd+20)的最大值是__________。

A、10 B、90 C、 99 D、110 11、能正确返回正整数N的数据位数的语句是__________。

A、Len(N) B、Len(Str(N)) C、Len(CStr(N)) D、Len(Val(N)) 12、如下四个符号,可以作为VB合法变量名的是__________。

A、5_f B、 _5flg C、 User%s D、 N1 13、下列表达式中运算结果为True的是__________。 A、\B、Int(134.69) < CInt(134.69)

C、78.9 / 35.77 <= 97.5 / 43、87 And -45.4 > -4.98 D、Str(32.345) = CStr(32.345)

14、表达式6.5 * 5 Mod 28 \\ 8的值是__________。

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

15、能正确描述条件“A、B之一为零但不得同时为零”的VB逻辑表达式是__________。 A、A = 0 Or B = 0 B、A * B = 0 And A + B <> 0 C、A * B = 0 Or A + B <> 0 D、A = 0 And B = 0

16、如下语句中,不能正常执行的是__________。 A、Print 5+7=100 B、Print 3245343+23233

C、Print 3423/89 D、Print 32765+3

17、假设变量Lng为长整形变量,下面不能正常执行的语句是__________。 A、Lng=16384*2 B、Lng=4*0.5*16384

C、Lng=190^2 D、Lng=32768*2

18、设a=“Visual Basic”,下面使b的值为“Basic”的语句是__________。 A、b=Left(a,8,12) B、b=Mid(a,8,5)

C、b= Right(a,5,5) D、b=Left(a,8,5)

19、下面所列四组数据中,全部是正确的VB常数是__________。 A、32768 1、34D2 \ &O1767 B、3276 123.56 1、2E-2 #True#

C、&HABCE 02-03-2002 False D-3 D、ABCDE #02-02-2002# E-2 #True# 20、表达式Int(5*Rnd+10)的最小值是__________。

5

A、9 B、 10 C、 11 D、12

21、将数学表达式cos2(a+b)+5e2是写成Vb表达式的正确形式是__________。 A、Cos(a+b)^2+5*Exp(2) B、Cos ^2(a+b) +5*Exp(2) C、Cos (a+b) ^2 +5*e^2 D、Cos ^2(a+b) +5*Ln(2)

22、假设变量myd为日期时间型变量,下面不能正常执行的语句是__________。 A、myd = 12:23:30

B、myd =#10/22/2010 3:30:32 PM#-1 C、myd = #10/22/2010 3:30:32 PM# D、myd =#10/22/2010 3:30:32 PM#+1 23、数学表达式

a?b对应的正确Visual Basic表达式为__________。 a?bA、a-b/a+b B、a-b/(a+b) C、(a-b)/a+b D、(a-b)/(a+b)

24、设Mys1,Mys2均为字符串型变量,Mys1=\则下面关系表达式中结果为True的是__________。

A、Len(Mys1)<>2*InStr(Mys1,”i”) B、Mid(Mys1,8,1)>Mys2

C、Chr(98) & Right(Mys1,4)=”Basic”

D、InStr(Left(Mys1,6),”a”)+60>Asc(Ucase(Mys2))

25、设A=7,B=4,C=6,,则表达式A Mod3+B^3/C\\5的值为__________。 A、1 B、2 C、3 D、出错

26、语句Print Format(12345.6, \执行结果是__________。

A、12,345.6 B、 +12,345.60 C、 +#12,345.60 D、+12,345.6 27、已知函数ASC(“A”)的值65,则函数ASC(“b”)的值是__________。 A、65 B、98 C、78 D、100 28、以下___________是字符串常量。

A、False B、\ C、'def ' D、# True # 29、以下不能作为Visual Basic变量名的是___________。

A、2Fa B、F2a C、Fa2 D、Fa_2 30、设有以下定义语句:

Dim m, n as Single, d1 as Double, d2 as string 则变量m的类型是___________

A、单精度型 B、双精度型 C、字符串型 D、可变类型 31、表达式5 * 2 Mod 25 \\ 2 ^ 2的值是___________。

A、1 B、0 C、6 D、4 32、显示如图所示输入框的Inputbox语句是___________。

6

A、a = InputBox(\应用示例\请输入\正整数\

B、a = InputBox(\应用示例\请输入\正整数\ \ C、a = InputBox(\请输入\正整数\应用示例\

D、a = InputBox(\请输入\正整数\应用示例\33、以下___________是布尔型常量。

A、True B、\ C、' True ' D、# True #

34、如果将布尔常量值True赋值给一个整型变量,则整型变量的值为___________。 A、0 B、-1 C、True D、False 35、下列叙述正确的是___________。

A、注释语句是执行语句,仅对程序的有关内容起注释作用 B、代码中加入注释语句的目的是提高程序的可读性 C、注释语句不可以放在续行符的后面 D、只能使用Rem关键字书写注释语句 36、下面__________不是字符串常量。

A、\你好\ B、\ \ C、\ D、#False# 37、下列符号常量的声明中,__________是不合法的。 A、Const a as Single=1.1 B、Const a as Integer=\

C、Const a as Double=Sin(1) D、Const a=\

38、下列叙述中不正确的是__________。 A、变量名的第一个字符必须是字母 B、变量名的长度不超过255个字符

C、变量名可以包含小数点或者内嵌的类型声明字符 D、变量名不能使用关键字

39、Int(100 * Rnd())产生的随机整数区间是__________。

A、[0,99] B、[1,100] C、[0,100] D、[1,99] 40、函数Right(\的值是__________。

A、Beij B、jing C、eiji D、ijin 41、表达式Abs(-5) + Len(\的值是__________。

A、5ABCDE B、-5ABCDE C、10 D、0

42、设A、B、C表示三角形的三条边,表示条件“任意两边之和大于第三边”的布尔表达式可以用__________表示。

A、A + B > C Or A + C > B Or B + C > A B、A + B < C Or A + C < B Or B + C < A C、A + B > C And A + C > B And B + C > A D、A + B < C And A + C < B And B + C < A

43、在一个语句行内写多条语句时,语句之间应该用__________分隔。 A、逗号 B、分号 C、顿号 D、冒号 44、下面__________是字符串常量。

A、m B、#01/01/99# C、\ D、True

45、要强制显式声明变量,可在窗体模块或标准模块的通用声明段中加入语句__________。 A、Option Base 0 B、Option Explicit

7

C、Option Base 1 D、Option compare

46、产生[10,37]之间的随机整数的VB表达式是__________。 A、Int(Rnd * 27) + 10 B、Int(Rnd * 28) + 10

C、Int(Rnd * 27) + 11 D、Int(Rnd * 28) + 11 47、有以下定义语句: Dim max, min As Integer

则变量max的类型是__________。

A、可变类型 B、单精度型 C、整型 D、长整型 48、函数Left(\的值是__________。

A、how B、are C、you D、how are you 49、函数Mid(\的值是__________。

A、shangh B、sha C、angh D、hai

50、可表示“两个变量A和B之一为0,但不能同时为0”的表达式是__________。 A、A = 0 And B <> 0 B、A * B = 0 And A <> B C、A <> 0 And B = 0

D、A <> 0 And B = 0 And A = 0 And B <> 0

51、在VB代码编辑器中,用来表示续行的是__________。 A、一个空格加一个下划字符( _ ) B、一个下划字符( _ )

C、直接回车 D、一个空格加一个连字符( - )

52、如果将布尔常量值False赋值给一个整型变量,则整型变量的值为__________。 A、0 B、-1 C、True D、False

8

选择结构程序设计

1、下列语句正确的是__________。 A、If x < 4 * y And x > y Then y = x4 B、If x < 4 * y And x > y Then y = x ^ 4 C、If x < 4 * y : x > y Then y = x ^ 4 D、If x < 4 * y And x > y Then y = x ** 4 2、分析下列语句,给出执行结果 Private Sub Form_Click() Const pi As Single = 3.14 a% = 7

If a Mod 4 > pi Then Print \努力\ Else Print \学习\End Sub

执行结果为___________,其判决条件的值为__________。 A、努力 TRUE B、学习 False C、努力 False D、学习 TRUE

3、针对语句If I = 1 Then J = 1,下列说法正确是__________。 A、I = 1和J = 1均为赋值语句 B、I = 1、J = 1均为关系表达式

C、I = 1为关系表达式,J = 1为赋值语句 D、I = 1为赋值语句,J = 1为关系表达式

4、如果X的值大于或等于Y的平方,则打印“OK”,表示这个功能的单行格式If语句是___________。

A、If x >= y ^ 2 Then Print OK B、If x >= y 2 Then Print \C、If x >= y ^ 2 Then Print \

D、If x >= y ^ 2 Then Print \

5、语句X = X + 1的正确含义是__________。 A、变量X的值与X+1的值相等 B、将变量X的值存到X+1中去

C、将变量X的值加1后赋给变量X D、变量X的值为1

6、以下__________程序段可以实现X、Y变量值的交换。 A、Y = X: X = Y B、Z = X: Y = Z: X = Y C、Z = X: X = Y: Y = Z D、Z = X: W = Y: Y = Z: X = Y 7、下列语句正确的是__________。 A、If A≥B Then T=A A=B B=T

9

B、If A≥B Then T=A ;A=B; B=T C、If A>=B Then T=A A=B B=T D、If A>=B Then T=A : A=B : B=T

8、关于语句If x = 1 Then y = 1,下列说法正确的是__________。 A、x = 1 和 y = 1均为赋值语句 B、x = 1 和 y = 1均为关系表达式

C、x = 1 为关系表达式, y = 1为赋值语句 D、x = 1 为赋值语句, y = 1为关系表达式 9、下列说法中正确的是__________。

A、语句Text1.Text = x的含义是将变量x的值显示于文本框Text1中 B、语句Text1.Text = x的含义是将文本框Text1中的内容赋值给变量x

C、语句Text1.Text = x的含义是将文本框Text1中的内容转换为数值型后赋值给变量x D、以上说法都是错误的

10、下列语句正确的是__________。

A、If x < 3 * y And x > y Then y = x ^ 3 B、If x < 3 * y And x > y Then y = x3 C、If x < 3 * y : x > y Then y = x ^ 3 D、If x < 3 * y And x > y Then y = x * * 3

11、如果X的值小于或等于Y的平方,则打印“OK”,表示这个功能的单行If语句是__________。

A、If x <= y2 Then Print \ B、If x <= y ^ 2 Then Print \C、If x <= y ^ 2 Then \D、If x <= y ^ 2 Print \

10

循环结构程序设计

1、在程序中有语句For i = n1 To n2 Step n3,则在循环体中有下列__________语句会影响循环执行的次数。 A、n1 = n1 + 1 B、n2 = n2 + n3 C、n3 = 2 * n3 D、i=i+n3

2、循环结构For I = 1 to 15 step 2 的执行次数是__________。

A、6 B、7 C、8 D、9 3、下列循环结构中,窗体上打印出来的循环变量i的值为___________。 sum = 0

For i = 1 To 100 sum= sum + i Next i

Print i;sum

A、1 B、2 C、100 D、101 4、下列循环结构中,循环体x = x + k的执行次数为___________。 x = 0

For k = 1 To 10 Step 2 x = x + k Next k print k;x

A、0 B、1 C、5 D、10 5、以下循环语句中在任何情况下都至少执行一次循环体的是___________。 A、Do While <条件> B、While <条件> 循环体 循环体 Loop Wend

C、Do D、Do Until <条件> 循环体 循环体 Loop Until <条件> Loop

6、在窗体上画一个名称为Command1的命令按钮,并编写以下程序: Private Sub Command1_Click() Dim n% ,b ,t

t = 1 : b = 1 : n = 2 Do

b = b * n t = t + b n = n +1 Loop Until n>9 Print t

11

End Sub

此程序计算并输出一个表达式的值,该表达式是___________。 A、9! B、10!

C、1!+2!+?+9! D、1!+2!+?+10!

12

数组

1、某过程的说明语句中,正确的数组说明语句是__________。 Const n As Integer = 3 Dim L As Integer

① Dim x(L) As Integer ② Dim a(k) As Integer Const k As Integer = 3 ③ Dim b(n) As Integer

④ Dim y(2000 to 2008) as Integer A、①②④ B、①③④ C、③④ D、②③

2、下列有关数组的说法中,错误的是__________。 A、数组必须先定义后使用

B、数组形参可以是定长字符串类型

C、Erase语句的作用是对已定义数组的值重新初始化 D、定义数组时,数组维界值可以不是整数

3、在窗体的通用声明处有语句“Dim a() As Single”,以下在某事件过程中重定义此数组的一组正确语句是__________。 A、ReDim a(3, 3)

ReDim a(4, 4) As Integer B、ReDim a(3, 3)

ReDim preserve a(4, 4) C、ReDim a(3)

ReDim a(3, 3) as Integer D、ReDim a(3, 3)

ReDim preserve a(3, 4)

4、以下___________是Visual Basic合法的数组元素表示法。

A、x_9 B、x[9] C、x{9} D、x(9) 5、下面的数组声明语句中___________是正确的。

A、Dim a[3,4] As Integer B、Dim a(3, 4) As Integer C、Dim a(3;4) As Integer D、Dim a(3:4) As Integer 6、设有数组声明语句: Option Base 1

Dim b(-1 To 1, 2 ) As Integer

则数组b中共有___________个元素。

A、2 B、4 C、6 D、9

7、使用语句Dim a(1 To 15) As String声明数组a之后,以下说法正确的是___________。 A、A数组中的所有元素值为0

13

B、A数组中的所有元素值不确定 C、A数组中的所有元素值为空串 D、A数组中的所有元素值为True

8、关于ReDim语句,以下说法错误的是___________。 A、ReDim语句可以改变数组的维数

B、ReDim语句既可以在过程中使用,也可以在模块的通用声明处使用 C、ReDim语句可保留动态数组中原有的内容

D、在ReDim语句中,可使用变量说明动态数组的大小 9、设有数组声明语句: Option Base 1

Dim a(-1 To 2,8) As Long

则,函数LBound(a,2) 的值为___________。

A、0 B、-1 C、1 D、2 10、下列关于控件数组的说法错误的是___________。

A、控件数组由一组具有共同名称和相同类型的控件组成 B、控件数组中的每一个控件共享同样的事件过程

C、控件数组中的每个元素的下标由控件的Index属性指定 D、同一控件数组中的元素只能有相同的属性值

11、设有命令按钮Command1单击事件过程,代码如下: Private Sub Command1_Click() Dim a(30)As Integer For i=1 To 30

a(i)=Int(Rnd*100) Next

For Each arrItem In a

If arrItem Mod 7=0 Then Print arrItem; If arrItem>90 Then Exit For Next End Sub

对于该事件过程,以下叙述中错误的是___________。 A、a数组中的数据是30个100以内的整数 B、语句For Each arrItem In a有语法错误

C、If arrItem Mod 7=0??语句的功能是输出数组中能够被7整除的数

D、If arrItem>90??语句的作用是当数组元素的值大于90时退出For循环 12、有以下程序: 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

14

Next i

ReDim Preserve a(3, 4) For j = 3 To 4

a(3, j) = j + 9 Next j

Print a(3, 2); a(3, 4) End Sub

程序运行后,单击窗体,输出结果是___________。 A、 8 13 B、 0 13 C、 7 12 D、 0 0 13、下面的数组声明语句中__________是正确的。 A、Dim a[3,4] as Integer B、Dim a(3, 4) As Integer C、Dim a[3;4] as Integer D、Dim a(3:4) as Integer 14、设有数组声明语句: Option Base 1

Dim A(2) As Integer

则数组A的下界为__________。

A、0 B、1 C、2 D、不能确定 15、以下说法不正确的是__________。

A、使用ReDim语句可以改变动态数组的维数

B、若用Dim语句定义了动态数组的类型,可以用ReDim更改为其它类型 C、使用ReDim语句可以改变动态数组每一维的大小

D、使用ReDim语句可以对动态数组中的所有元素进行初始化 16、用Array函数给某X赋值时,X必须是__________。 A、已经声明的静态数组 B、已经声明的动态数组 C、Variant类型的变量 D、整型变量

17、设有数组声明语句: Option Base 1

Dim A(-1 To 2) As Long

则函数UBound(A)的值为__________。

A、0 B、-1 C、1 D、2

18、设用复制、粘贴的方法建立了一个命令按钮数组Command1,以下对该数组的说法中错误的是__________。

A、命令按钮的Caption属性都是Command1

B、在代码中访问任意一个命令按钮只需使用名称Command1 C、命令按钮的大小都相同

D、命令按钮共享相同的事件过程

19、在窗体上画 1 个命令按钮,并编写如下事件过程: Private Sub Commandl Click() Dim a(3,3) For m=1 To 3

15

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

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

200204230200040040340045 A、006 B、406 C、006 D、056

20、下列程序段的执行结果为__________。 Dim A(3) For i = 1 To 3 A(i) = i * i Next i

Print A(i - 1)

A、16 B、9 C、4 D、1 21、以下__________是VB中合法的数组元素表示法。

A、X9 B、X[9] C、X{9} D、X(9) 22、设有数组声明语句: Option Base 1

Dim A(-1 to 2) As Integer

则数组A中共有__________个元素。

A、2 B、3 C、4 D、不能确定 23、使用语句Dim A(1 To 15) As Integer声明数组A之后,下面说法中正确的是__________。 A、数组中所有元素的值为0 B、数组中所有元素的值不确定 C、数组中所有元素的值为空串 D、以上说法均不对

24、在以下语句中,a只能是__________。 Dim X(15) For Each a In X Print a; Next a

A、已经声明的静态数组 B、已经声明的动态数组 C、Variant类型的变量 D、整型变量 25、设有数组声明语句: Option Base 1

16

Dim A(2) As Long

则函数LBound(A)的值为__________。

A、0 B、-1 C、1 D、2

26、在窗体上用复制、粘贴的方法建立了一个命令按钮数组,数组名为M1。设窗体Form1标题为“myform1”,双击控件数组中的第三个按钮,打开代码编辑器,写如下代码: Private Sub M1_Click(Index As Integer) Form1.Caption = \End Sub

运行时单击按钮数组中的第一个按钮,则窗体显示标题为__________。 A、Form1 B、M1 C、myform1 D、myform2

27、在窗体上画一个名为 Command1 的命令按钮,然后编写如下代码: Option Base 1

Private Sub Command1_Click() Dim a, s As Integer 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

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

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

28、窗体上有 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 中元素的个数是__________。

A、5 B、6 C、10 D、11 29、下面有关数组的说法中,错误的是__________。 A、一般而言,数组必须先定义后使用 B、数组的下界必须从0开始

C、Erase语句的作用是对已定义固定大小数组的值重新初始化 D、定义数组时,数组维界值可以不是整数

30、下面有关数组处理的叙述中,不正确的是__________。

17

A、过程中用ReDim语句重定义动态数组时,其下标的上下界可为赋了值的变量 B、在过程中,可以使用Dim、Private和Static语句定义数组

C、用ReDim语句重新定义动态数组时,不得改变该数组的数据类型

D、在ReDim语句中使用Preserve语句时,只能改变数组最后一维的维上界

18

过程

1、下列说法中正确的是__________。

A、在某个Sub过程中定义的局部变量可以与其它事件过程中定义的局部变量同名,但其作用域只限于该过程

B、在窗体的Form_Load事件过程中定义的变量是全局变量 C、局部变量的作用域可以超出所定义的过程

D、在调用过程时,所有局部变量被系统初始化为0或空字符串 2、下有关参数的说法中,错误的是__________。 A、过程的形参不可以是定长字符串类型的变量 B、按地址传递参数,形参和实参的类型可以不同

C、按值传递参数,形参和实参的类型可以不同,只要相容即可

D、按地址传递参数,形参和实参也能以按值传递方式进行形实结合 3、Visual Basic中系统默认的参数传递方式是__________。 A、按值 B、按地址 C、byval D、按形参

4、在Visual Basic中,下列关于过程的定义说法正确的是__________。 A、过程可以嵌套定义也可以嵌套调用 B、过程可以嵌套定义但不可以嵌套调用 C、过程不可以嵌套定义但可以嵌套调用 D、过程不可以嵌套定义也不可以嵌套调用

5、若在应用程序中用“Private Sub sub1(x As Integer, y As Single)”定义了子程序sub1,调用程序中的变量i,j均为Integer型,则正确调用子程序sub1的是__________。 ①Call sub1(i, j) ②Call sub1(3.1415, i)

③Call sub1(3.14, 234) ④Call sub1(\A、①③ B、③④ C、①②③ D、无

6、调用由语句Private Sub convert(y As Integer)定义的Sub过程时,以下不是按值传递的语句是__________。 A、Call convert((x)) B、Call convert(x * 1) C、convert (x) D、convert x

7、在Visual Basic中,全局变量的定义方式是__________。 A、Dim B、Static C、Private

19

D、Public

8、在过程中定义的变量,若希望在离开过程后,还能保存过程中该变量的值,则应该使用__________关键字在过程中定义该局部变量。 A、Dim B、Static C、Private D、Public

9、可以在__________中,使用Public pubstr as String*20定义一个定长字符串。 A、窗体模块 B、标准模块 C、类模块 D、三者均可

10、若在应用程序的标准模块、窗体模块和过程Sub1的说明部分,分别用“Public G As Integer”、“Private G As Integer”和“Dim G As Integer”语句说明了三个同名变量G。如果在过程Sub1中使用赋值语句“G=3596”,则该语句是给在__________说明部分定义的变量G赋值。

A、标准模块 B、过程Sub1 C、窗体模块

D、标准模块、窗体模块和过程Sub1

11、多窗体程序由多个窗体组成。在缺省情况下,Visual Basic在执行应用程序时,总是把__________指定为启动窗体。 A、不包含任何控件的窗体 B、设计时的第一个窗体 C、命名为Frm1的窗体 D、包含控件最多的窗体

12、在窗体模块的通用声明段中声明变量时,不能使用___________关键字。 A、Dim B、Static C、Private D、Public 13、下面的过程定义语句中合法的是___________。

A、Sub proc1(Byval n()) B、Sub proc1(n) As Integer C、Function proc1(proc1) D、Function proc1(Byval n) 14、Sub过程与Function过程最根本的区别是___________。 A、两种过程参数的传递方式不同

B、Sub过程可以使用Call语句或直接使用过程名调用,而Function不可以 C、Sub过程的过程名不能返回值,而Function过程能通过过程名返回值 D、Function过程可以有参数,Sub过程不可以

15、在过程调用中,参数的传递可以分为___________两种方式。

A、按值传递和按地址传递 B、按值传递和按参数传递 C、按地址传递和按参数传递 D、按参数传递和按位置传递

16、要想在过程调用后返回两个结果,下面的过程定义语句中正确的是_________。 A、Sub proc1(ByVal n, ByVal m) B、Sub proc1(ByVal n, m) C、Sub proc1(n, ByVal m) D、Sub proc1(n, m)

17、通用过程可以通过执行“工具”菜单中的___________命令来建立。

A、添加过程 B、通用过程 C、添加窗体 D、添加模块

20

18、假设已定义了一个私有通用过程Private Sub Sub1(a As Single, b As Single),则下列调用语句中错误的是___________。

A、Sub1 12,12 B、Call Sub1 x,y C、Call Sub1(2*x,sin(1)) D、sub1 12,x

19、在过程调用中,参数的传递可以分为按值传递和__________两种方式。 A、按数组传递 B、按参数传递 C、按地址传递 D、按索引传递

20、在参数传递过程中,使用关键字__________来修饰参数,可以使之按值传递。 A、ByVal B、ByRef C、Value D、Reference 21、下面有关标准模块的叙述中,错误的是__________。 A、标准模块不完全由代码组成,还可以有窗体

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

D、标准模块中的全局变量可以被工程中的任何模块引用 22、下面的过程定义语句合法的是__________。

A、Sub proc1(ByVal n()) B、Sub proc1(n) As Integer C、Function proc1(proc1) D、Function proc1(ByVal n)

23、在过程调用中,参数的传递可以分为按地址传递和__________两种方式。 A、按数组传递 B、按参数传递 C、按值传递 D、按位置传递

24、在参数传递过程中,使用关键字__________来修饰参数,可以使之按地址传递。 A、ByVal B、ByRef C、Value D、Reference 25、Sub过程与Function过程最根本的区别是__________。 A、Sub过程可以使用Call语句调用,而Function过程不可以 B、Function过程可以有参数,而Sub过程不可以 C、两种过程的参数传递方式不同

D、Sub过程的过程名不能返回值,而Function过程能通过过程名返回值 26、标准模块中有如下程序代码: Public x As Integer,Y As Integer Sub var_pub() x=10 : y=20 End Sub

在窗体上有 1 个命令按钮,并有如下事件过程: Private Sub Commandl_Click() Dim x As Integer Call var_pub x=x+100 y=y+100 Print x; y End Sub

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

A、100 100 B、100 120 C、110 100 D、110 120 27、在窗体上有 1 个命令按钮,并有如下事件过程: Sub S() X = 1 Y = 2

21

Z = X + Y Print X, Y, Z End Sub

Private Sub Command1_Click() X = 2 Y = 3 Z = X + Y Call S

Print X, Y, Z End Sub

运行程序后单击命令按钮,窗体上显示的第二行是__________。 A、1 2 3 B、2 3 5 C、2 3 3 D、1 2 5

22

常用控件

1、下列__________属性是每个控件都具有的。 A、Name B、Caption C、Font D、Interval

2、单选按钮用于一组互斥的选项中,若一个应用程序中包含多组互斥条件,可使用__________控件对单选按钮进行分组。 A、框架控件或图像控件 B、组合框或图像控件 C、组合框或图片框 D、框架控件或图片框

3、以下所列的8个控件中,具有Caption属性的有__________个。 CheckBox(复选框)、ComboBox(组合框)、HscrollBar(水平滚动条)、DirListBox(文件夹列表框)、Image(图像框)、Frame(框架)、Label(标签)、Line(线条) A、5 B、4 C、3 D、2

4、使用__________方法可以将新的列表项添加到一个列表框中。 A、Print B、AddItem C、Clear

D、RemoveItem

5、在程序中可以通过复选框和单选按钮的__________属性值来判断它们的当前状态。 A、Caption B、Value C、Checked D、Selected

6、以下使用方法的语句中,正确的是__________。 A、List1.Clear B、Form1.Clear C、Combo1.Cls D、Picture1.Clear

7、Visual Basic中除窗体能显示图片外,下面列出的控件中可以显示图片的控件有__________个。

PictureBox、Image、TextBox、CommandButton、OptionButton、Label A、2 B、3 C、4

23

D、5

8、能够区分各鼠标按钮与【Shift】、【Ctrl】、【Alt】键的事件过程是__________。 A、Click B、Keypress C、Dblclick D、MouseMove

9、下列关于Line和Shape控件说法不正确的是__________。

A、Line和Shape控件都可以在窗体或图片框控件内绘制图形或画线 B、Line和Shape控件绘制的图形不支持任何事件 C、程序运行时可以使用Move方法移动Line控件

D、可以在容器中绘制Shape控件,但是不能把该控件当作容器 10、Visual Basic中利用Circle方法不可以画__________。 A、圆 B、直线 C、弧 D、椭圆

11、如下语句中,与List1.List(List1.ListIndex)功能相同的是__________。 A、List1.Text B、List1.ListCount C、Text1.Text D、List1.ListIndex

12、使用__________方法可将新的列表项添加到一个列表框中。

A、Print B、AddItem C、Clear D、 RemoveItem 13、在程序中可以通过复选框和单选按钮的__________属性值来判断它们的当前状态。 A、Caption B、Checked C、Value D、Selected

14、单选按钮用于一组互斥的选项中,若一个应用程序包含多组互斥的条件。可在不同的__________中安排适当的单选按钮,即可以实现。

A、框架控件或图像控件 B、组合框或图像控件 C、组合框或图片框 D、框架控件或图片框 15、下列使用方法的语句中,正确的是________ 。 A、List1.Clear B、Form1.Clear C、Combo1.Cls D、Picture1.Clear 16、在VB中可以作为容器的是_________。

A、Form、TextBox、PictureBox B、Form、PictureBox、Frame

C、Form、TextBox、Label D、PictureBox、TextBox、ListBox 17、以下所列的6个控件中, CheckBox(复选框)、ComboBox(组合框)、HscrollBar(水平滚动条)、Image(图像框)、Frame(框架)、Label(标签)、具有Caption属性的有__________个。

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

18、下面 语句,可以将列表框List1中的当前选定的列表项的值替换成”ABC”。 A、List1.AddItem \ B、List1.Text=\ C、List1.List(List1.ListIndex)= \ D、前三项均可 19、以下控件对象中,不具有text属性的是___________。

A、标签 B、文本框 C、列表框 D、组合框 20、不可以作为容器对象使用的是___________。

A、框架 B、图片框 C、窗体 D、图像框

24

21、Visual Basic中,任何控件都具有___________属性。

A、Text B、Caption C、(名称) D、Font 22、引用列表框的最后一项应使用___________。 A、List1.list(List1.ListCount-1) B、List1.list(List1.ListCount) C、List1.list(ListCount) D、List1.list(ListCount-1)

23、在窗体上画一个命令按钮和两个文本框,然后编写如下的事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) ?? End Sub

假定焦点已经位于文本框中,则能够触发KeyPress事件的操作是___________。 A、单击鼠标 B、双击文本框 C、鼠标滑过文本框 D、按下键盘上的某个键

24、要使两个单选按钮属于同一个框架,正确的操作是___________。 A、先画一个框架,再在框架中画两个单选按钮

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

25、要设置某文本框的文字具有粗体效果,正确的语句是___________。 A、Text1.FontItalic = True B、Text1.FontItalic = False C、Text1.FontBold = True D、Text1.FontBold = False 26、要选择列表框List1的第6项,可以使用语句___________。 A、List1.ListIndex = 5 B、List1.Selected= 5 C、List1.ListIndex = 6 D、List1.Selected = 6 27、引用列表框List1的最后一项应使用___________。

A、List1.List(List1.ListCount - 1) B、List1.List(List1.ListCount) C、List1.List(ListCount) D、List1.List(ListCount - 1) 28、语句List1、RemoveItem List1、ListIndex的作用是___________。 A、删除列表框的最后一项 B、删除列表框的第一项

C、删除列表框中当前选中的项 D、删除列表框中最后添加的一项 29、要清除组合框Combo1中的所有内容,可以使用___________语句。 A、Combo1.Cls B、Combo1.Clear C、Combo1.Delete D、Combo1.Remove

30、Timer控件的___________属性决定该控件是否对时间的推移做出响应。将该属性设置为False会关闭Timer控件,设置为True则打开它。

A、Enabled B、Visible C、Time D、Capable 31、要使滚动条表示最大值100,应设置其___________属性。

A、Min B、Max C、SmallChange D、LargeChange 32、要设置某文本框的文字具有斜体效果,正确的语句是 。 A、Text1.FontItalic = True B、Text1.FontItalic = False C、Text1.FontBold = True D、Text1.FontBold = False

25

33、要选择列表框List1的第4项,可以使用语句___________。 A、List1.Selected = 4 B、List1.Selected(4) = True C、List1.Selected = 3 D、List1.Selected(3) = True 34、引用列表框List1的第一项应使用___________。

A、List1.List(1) B、List1.List(List1.ListIndex) C、List1.List(0) D、List1.List(ListCount - 1)

35、语句List1、RemoveItem List1、ListCount-1的作用是___________。 A、删除列表框的最后一项 B、删除列表框的第一项 C、删除列表框中当前选中的项 D、删除列表框中所有的项 36、要清除列表框List1中的所有内容,可以使用___________语句。 A、List1.Cls B、List1.Clear C、List1.Delete D、List1.Remove

37、定时器的Interval属性以___________为单位指定Timer事件之间的时间间隔。 A、分 B、秒 C、毫秒 D、微秒

38、要使每次单击滚动条两端箭头时变化值为10,应设置其___________属性。 A、Min B、Max C、SmallChange D、LargeChange 39、通过设置Shape控件的___________属性可以绘制多种形状的图形。 A、Shape B、BorderStyle C、FillStyle D、Style

40、窗体上有两个名称分别为Text1、Text2的文本框。Text1的KeyUp的事件过程如下: Private Sub Text1_KeyUp(KeyCode As Integer , shift As Integer) Dim C As string c=Text1、Text

Text2、Text=Chr(Asc(c)+2) End Sub

当向文本框Text1中输入小写字母a时,文本框Text2中显示的是___________。 A、 A B、 a C、 C D、 c

41、如果在两个菜单命令项之间加一条分隔线,可在标题文本框中输入__________。 A、- B、+ C、& D、#

26

文件

1、若磁盘文件c:\\data1.dat不存在,则下列打开文件语句中会出现错误的是__________。 A、Open \B、Open \C、Open \D、Open \

2、Visual Basic中三种文件访问的类型是__________。 A、顺序、随机、文本 B、顺序、随机、二进制 C、数据库、表格、文本 D、文本、随机、二进制

3、下列有关文件的说法中不正确的是__________。

A、当程序正常结束时,所有没用Close语句关闭的文件都会自动关闭

B、在关闭文件或程序结束之前,可以不用Unlock语句对已锁定的记录解锁 C、可以用不同的文件号同时打开一个随机文件

D、用Output模式打开一个顺序文件,即使不对它进行写操作,原来内容也被清除 4、以下关于文件的叙述中,错误的是___________。

A、使用Append方式打开文件时,文件指针被定位于文件尾

B、当以输入方式 (Input)打开文件时,如果文件不存在,则建立一个新文件 C、顺序文件各记录的长度可以不同

D、随机文件打开后,既可以进行读操作,也可以进行写操作

5、设有语句Open “d:\\Test.txt” For Output As #1,以下叙述中错误的是___________。 A、若d盘根目录下无Test.txt文件,则该语句创建此文件 B、用该语句建立的文件的文件号为1

C、该语句打开d盘根目录下一个已存在的文件Test.txt,之后就可以从文件中读取信息 D、执行该语句后,就可以通过语句Print #向文件Test.txt写入信息

6、在Visual Basic中按文件的访问方式不同,可以将文件分为___________。 A、顺序文件、随机文件和二进制文件 B、文本文件和数据文件 C、数据文件和可执行文件 D、ASCII文件和二进制文件

7、要在C盘根目录下建立一个名为1.Dat的顺序文件,应使用___________语句。 A、Open \ B、Open \ C、Open \ D、Open \

8、执行语句Open \后,系统___________。 A、将C盘根目录下名为1.dat的文件内容读入内存 B、在C盘根目录下建立名为1.dat的顺序文件

C、将内存中数据存放在C盘根目录下名为1.dat的文件中

D、将某个磁盘文件的内容写入C盘根目录下名为1.dat的文件中

27

根据题目要求完善程序

1、下面的程序用于求三个数中的最大数和最小数,请完善程序。 Option Explicit

Private Sub Command1_Click()

Dim a As Integer, b As Integer, c As Integer Dim max As Integer, min As Integer a = Val(InputBox(\请输入第一个数\b = Val(InputBox(\请输入第二个数\c = Val(InputBox(\请输入第三个数\max = a

If b >___________ Then max = b If ___________ Then max = c min = a

If b <___________ Then min = b If ___________Then min = c Print \最大数为\Print \最小数为\End Sub

2、下列程序的功能是:运行程序首先出现如左图所示(Form1)的界面,要求用户输入口令,输入完毕后单击“确定”按钮,若输入口令正确,则显示Form2,否则出现如右图所示的信息框;若单击“取消”按钮,则结束程序。要求完善程序。

Private Sub Command1_Click() '确定 Dim password As String

If password = \ ___________ Form2.Show Else

MsgBox End If End Sub

Private Sub Command2_Click() '取消 ___________ End Sub

28

3、如下程序的功能是求N!。完善程序代码。 Private Sub Form_Click()

Dim i As Integer, F As Long Dim N As Integer

N = InputBox(\请输入N\ ___________ For i = 1 To N

F = ___________ Next i

Print N; \ End Sub

4、下列程序的功能是:用100元买100只鸡,公鸡每只5元,母鸡每只3元,小鸡一元3只。要求完善程序。 Private Sub form_Click()

Dim x As Integer, y As Integer, z As Integer For x = 0 To 20

For y = 0 To ___________ For z = 0 To 100 Step 3

If ___________ And ___________ Then Print x; y; z Next z, y, x End Sub

5、下列程序的功能是:求一维数组的最大值及其下标。要求完善程序。 Option Base 1

Private Sub form_Click()

Dim t(10) As Integer, max As Integer, max_i As Integer For i = 1 To 10

t(i) = Int(Rnd * 100) Next i

max = t(1): max_i = ___________ For i = 2 To 10

If t(i) ___________Then max =___________ max_i = i End If Next i

Print max, max_i End Sub

6、如下程序的功能是:随机产生12个两位整数,存放在数组Com中,并从中找出一个最大值和一个最小值,完善程序。 Option Explicit Option Base 1

29

Private Sub Form_Click()

Dim Com(12) As Integer, I As Integer

Dim Max As Integer, ___________As Integer Randomize

For I = 1 To ___________

Com(I) = Int(___________* Rnd) + 10 Print Com(I); Next I Print

Max = Com(1): Min =___________ For I =___________ to 12 If Com(I) > Max Then ___________

ElseIf Com(I) < Min Then Min = Com(I) End If Next I

Print \最小数是:\ Print \最大数是:\End Sub

7、如下程序的功能是:用选择法对数组按升序排序,排序前将原始数据显示在Text1内,排序后的结果显示在Text2内,完善程序。 Option Explicit Option Base 1

Private Sub Command1_Click()

Dim Sort(10) As Integer, Temp As Integer Dim I As Integer, J As Integer Randomize

Text1 = \ For I = 1 To 10

Sort(I) = Int(99 * Rnd) + 1 Text1 = ___________ Next I

For I = 1 To ___________ For J =___________to 10 If ___________Then Temp = Sort(I) Sort(I) = Sort(J) Sort(J) = Temp End If Next J

Text2 = Text2 & Str(Sort(I)) Next I

30

Text2 = Text2 & Str(Sort(I)) End Sub

8、如下程序的功能是找出200以内所有的素数,并按每行10个的形式输出。完善程序代码。 Option Base 1 Option Explicit

Private Sub Form_Click()

Dim Prime() As Integer, I As Integer

Dim K As Integer, M As Integer, J As Integer M = 1

Redim Prime(M) Prime(M) = 2

For I = 3 To 199 Step 2

For K = 2 To ___________

If ___________Then Exit For Next K

If K > Sqr(I) Then

M = M + 1

Preserve Prime(M) Prime(M) = I End If Next I

For J = 1 To Ubound(Prime) Print Prime(J);

If J Mod ___________ = 0 Then Print Next J End Sub

9、下面的程序功能是:生成100个 -10到10之间的随机整数并显示到文本框中,统计这100个数中 -10 、-5 、 5 、10的个数并显示在图片框中。请完善程序。 Dim A(1 To 100) As Integer Private Sub Command1_Click()

Dim num1 As Integer, num2 As Integer, num3 As Integer, num4 As Integer num1 = 0: num2 = 0: num3 = 0: num4 = 0 For I = 1 To 100

Select Case ___________ Case -10

num1 = num1 + 1 Case -5

num2 = num2 + 1 Case 5

num3 = num3 + 1 Case 10

num4 = num4 + 1 End Select Next I

Picture1.Print \的个数=\的个数=\Picture1.Print \的个数=\的个数=\End Sub

31

Private Sub Form_Load()

Text1.Text = \For I = 1 To 100

___________= Int(Rnd() * 21 - 10)

Text1.Text = ___________& Str(A(I)) & \ \Next I End Sub

10、下面的过程用比较交换法实现数据从大到小的排序,请完善代码。 Sub SortArray(a() As Integer) Dim i As Integer, j As Integer Dim n As Integer, t As Integer ___________= UBound(a) For i = 1 To n - 1

For j =___________ To n If a(i) < a(j) Then t =___________ a(i) = a(j)

___________= t End If Next j Next i End Sub

11、下列程序代码读入N个数,用比较交换法对这N个数按从大到小的顺序排序,并在文本框Text1中输出排序结果。 Private Sub Command1_Click()

Dim a() As Integer

Dim i As Integer, j As Integer Dim t As Integer, n As Integer

n = Val(InputBox(\请输入正整数N:\ ReDim ___________ For i = 1 To n

___________= Val(InputBox(\请输入第\个数\ Next i

For i = 1 To n - 1

For j = ___________To n If a(i) < a(j) Then t = a(i)

a(i) =___________ a(j) = ___________ End If Next j Next i

For i = 1 To n

Text1.Text = Text1.Text & Str(a(i)) & \ Next i End Sub

12、以下程序代码实现单击命令按钮Command1时生成20个[0,100]之间的随机整数,存于数组中,打印数组中大于50的数,并求这些数的和。 Private Sub Command1_Click()

Dim a(1 To 20) As Integer

Dim i As Integer, sum As Integer For i = 1 To 20

a(i) = ___________

32

Picture1.Print a(i); Next i

For i = 1 To 20

If ___________Then Picture2.Print a(i); sum = ___________ End If Next i

Picture2.Print

Picture2.Print \End Sub

13、下列程序的功能是:在窗体上生成包含有[1,10]之间随机整数的6行6列的矩阵,并对该矩阵进行转置。要求完善程序。 Option Base 1

Private Sub form_Click()

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

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

___________ Next i Print

For i = 1 To 6 For j = 1 To 6

b(i, j) = ___________ Print b(i, j); Next j Print Next i End Sub

14、下面程序的功能是:在窗体上输出一个N行、N列、主对角线和次对角线元素为1、其余元素均为0的矩阵。N由用户指定。请完善程序。 Option Base 1

Dim A() As Integer

Private Sub Form_Click()

Dim N As Integer, I As Integer, J As Integer

N = Val(InputBox(\请输入N值\生成矩阵\ReDim For I = 1 To N For J = 1 To N A(I, J) = 0

If ___________Then A(I, J) = 1 End If

If I + J = N + 1 Then A(I, J) = 1

33

End If Next J, I

For I = 1 To N For J = 1 To N

Print ___________; Next J Print Next I End Sub

15、下列程序的功能是:计算裴波那契数列第n项的值(n由用户输入)。要求完善程序。 Private Sub form_Click() Dim n As Integer

n = InputBox(\输入整数n\ Print f___________ End Sub

Private Function f(ByVal a As Integer) As Integer If ___________Then f = 0

ElseIf a = 2 Then ___________ Else

f = ___________ End If End Function

16、下面程序的功能是:在窗体的文本框Text1中输入一个正整数,当单击命令按钮后,在窗体的文本框Text2中输出这个正整数的阶乘。请完善程序。 Option Explicit

Function Fact(N As Integer) As Long

Dim I As Integer, F As Long F = ___________

For I = 1 To F = F * I Next I

___________ End Function

Private Sub Command1_Click()

Dim X As Integer X = Val(Text1.Text)

Text2.Text = Str___________ End Sub

17、下面是求两个正整数m和n的最大公约数的函数,请完善代码。 Function gcd(m As Integer, n As Integer) As Integer

Dim r As Integer r = m Mod n

Do While r___________0 ___________= n ___________= r r = m Mod n Loop gcd = n

34

End Function

18、在窗体上画一个命令按钮和一个文本框,其名称分别为Command1和Text1,然后编写如下事件过程:

Private Sub Command1_Click()

Dim St As String Text1.Text = \

Open \Do While ___________ Input #1, St

Text1.Text = Text1.Text & St Loop End Sub

程序的功能是,打开D盘根目录下的文本文件myfile.txt,读取它的全部内容并显示在文本框中。

35

根据程序写运行结果

1、运行下面的程序,单击窗体后在窗体显示的内容是___________。 Private Sub Form_Click()

Dim x As Integer, y As Integer x = 1: y = 0 Do While x < 3 y = y + x x = x + 1 Loop Print x, y End Sub

2、运行下面的程序,单击窗体后在窗体显示的第三行内容是___________。 Private Sub Form_Click()

Dim mystr As String, mystr1 As String, mystr2 As String mystr1 = \ For i = 1 To 3

mystr2 = LCase(mystr1) mystr1 = mystr1 & mystr2 mystr = mystr & mystr1 Print mystr

mystr1 = Chr(Asc(mystr1) + i) Next i End Sub

3、运行下面的程序,单击命令按钮,在文本框内显示的内容是___________。 Private Sub Command1_Click() For i = 1 To 4 x = 4

For j = 1 To 3 x = 3

For k = 1 To 2 x = x + 6 Next k, j, i

Text1.Text = Str(x) End Sub

4、运行下面的程序,单击窗体后在窗体显示的内容是___________。 Option Base 1

Private Sub Form_Click()

36

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

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

For i = 1 To 3 Print a(i, 4 - i); Next i End Sub 5、如下程序运行后,在窗体上输出的第一行内容是___________,第二行内容是___________。 Private Sub Command1_Click()

Dim p As Integer, I As Integer, n As Integer p = 2: n = 20

For I = 1 To n Step p p = p + 2 n = n - 4 I = I + 2

If p >= 10 Then Exit For Next I Print p; n Print I End Sub

6、下面程序段执行一次后,窗体上有___________行输出,其中第一行上显示的是___________,第四行上显示的是___________。 Option Explicit Option Base 1

Private Sub Command1_Click()

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

If i Mod 2 = 0 Then a(i) = i + 1 Else

a(i) = 5 - i End If Print a(i) Next i End Sub

7、已知程序段内容如下,在文本框Text1中输入3,在文本框Text2中输入5,当单击命令按钮Command1后,文本框Text1中显示的是___________,文本框Text2中显示的是___________。 Option Explicit

Private Sub Command1_Click()

Dim a As Integer, b As Integer, c As Integer a = Val(Text1.Text)

37

b = Val(Text2.Text) c = a + b a = c - a b = c - a

Text1.Text = CStr(a) Text2.Text = CStr(b) End Sub

8、运行下面的程序,单击窗体后在窗体显示的内容是___________。 Private Sub Form_Click() Dim a As Integer a = 2

Call sub1(a) End Sub

Private Sub sub1(x As Integer) x = x * 2 + 1 If x < 10 Then Call sub1(x) End If

x = x * 2 + 1 Print x; End Sub

9、已知某程序内容如下,当在窗体上单击时窗体上显示的内容有___________行,第一行上显示的是___________,最后一行上显示的是___________。

Function SumOrMulti(Operate As Boolean, ParamArray var()) As Long

Dim sum As Long, multi As Long If Operate Then sum = 0

For Each x In var sum = sum + x Next x

SumOrMulti = sum Else

multi = 1

For i = LBound(var) To UBound(var) multi = multi * var(i) Next i

SumOrMulti = multi End If End Function

Private Sub Form_Click()

Print SumOrMulti(True, 1, 3, 5, 7) Print SumOrMulti(False, 2, 4) End Sub

10、已知某程序内容如下,当在窗体上单击命令按钮Command1后,窗体上显示的A的值是___________,B的值是___________,C的值是___________。 Sub SS(ByVal X, ByVal Y, ByVal Z)

X = X + 1: Y = Y + 1: Z = Z + 1 End Sub

Private Sub Command1_Click()

38

A = 1: B = 2: C = 3 Call SS(A, B, C) Print A, B, C End Sub

39

综合应用题

1、编写程序,求圆柱体的底面积、侧面积和体积。运行界面如图所示。

Command1

Private Sub Command1_Click() Const pi = 3.14 Dim r As Single Dim h As Single r = Val(Text2.Text) h = Val(Text1.Text) Text3.Text = pi * r ^ 2 Text4.Text = 2 * pi * r * h

Text5.Text = Val(Text3.Text) * Val(Text1.Text) End Sub

2、用条件语句实现:从文本框(Text1)输入一个数,单击“判断”按钮(Command1)判断它能否同时被3、5、7整除,若能整除,则用消息框(Msgbox函数)显示“能同时被3、5、7整除”,否则显示“不能整除”。

Private Sub Command1_Click() a = Val(Text1.Text)

If a Mod 3 = 0 And a Mod 5 = 0 And a Mod 7 = 0 Then MsgBox \能同时被3、5、7整除\ Else

MsgBox \不能整除\ End If End Sub

40

3、使用循环控制结构在窗体上打印出下三角形式的九九乘法表。(界面如图所示)

Command1

Private Sub Command1_Click()

Dim a(9, 9) As Integer, i As Integer, j As Integer For i = 1 To 9 For j = 1 To i a(i, j) = i * j Print i & \\ Next j Print Next i End Sub

4、编写程序,对输入的学生成绩给出五级评分。要求:学生成绩由文本框(Text1)输入,结果显示在标签(Label1)中。评分标准如下: 优 90≤成绩≤100 良 80≤成绩<90 中 70≤成绩<80 及格 60≤成绩<70 不及格 0≤成绩<60

Private Sub Command1_Click() grade = Val(Text1.Text) Select Case grade

Case Is > 100,Is < 0 Label1.caption=\

MsgBox \请输入正确分数\错误\ Text1.SetFocus Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text) Case Is >= 90

Label1.Caption = \优\ Case Is >= 80

Label1.Caption = \良\ Case Is >= 70

Label1.Caption = \中\ Case Is >= 60

41

Label1.Caption = \及格\ Case Is >= 0

Label1.Caption = \不及格\ End Select

Text1.SetFocus

Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text) End Sub

5、编写程序求

?k??kk?1k?1100502的值,要求结果显示在窗体上。

Private Sub Command1_Click() Dim i As Integer, sum As Long For i = 1 To 100 sum = sum + i Next i

For i = 1 To 50

sum = sum + i ^ 2 Next i Print sum End Sub

6、随机生成15个100以内的正整数并显示在一个文本框(Text1)中,再将所有对称位置的两个数据对调后显示在另一个文本框(Text2)中(第1个数与第15个数对调,第2个数与第14个数对调,??,第7个数与第9个数对调)。

Option Base 1

Private Sub Command1_Click() Dim a(15) As Integer For i = 1 To 15

a(i) = Int(Rnd * 100 + 1)

Text1.Text = Text1.Text & “ ” & a(i) Next i

For i = 1 To 7 t = a(i)

a(i) = a(16 - i) a(16 - i) = t Next i

For i = 1 To 15

Text2.Text = Text2.Text & “ ” & a(i) Next i End Sub

7、随机生成20个两位正整数显示在一个文本框(Text1)中,并求出它们的平均值显示在另一个文本框(Text2)中。

Option Base 1

42

Private Sub Command1_Click() Dim a(20) As Integer For i = 1 To 20

a(i) = Int(Rnd * 90 + 10)

Text1.Text = Text1.Text & \ Sum = Sum + a(i) Next i

Text2 = Str(Sum / 20) End Sub

8、随机生成50个三位正整数显示在一个文本框中(Text1)中,并将它们逆序显示在另一个文本框(Text2)中。

Option Base 1

Private Sub Command1_Click() Dim a(50) As Integer For i = 1 To 50

a(i) = Int(Rnd * 900 + 100)

Text1.Text = Text1.Text & \ Next i

For i = 50 To 1 Step -1

Text2.Text = Text2.Text & \ Next i End Sub

9、用InputBox函数输入10个数到数组A中,输入后将这10个数显示在一个文本框(Text1)中,并计算其中所有正数的和,将结果显示在另一个文本框(Text2)中。

Option Base 1

Private Sub Command1_Click() Dim a(10) As Integer For i = 1 To 10

a(i) = Val(InputBox(\输入数据\ Text1.Text = Text1.Text & \ If a(i) > 0 Then Sum = Sum + a(i) Next i

Text2 = Sum End Sub

10、生成100个[0,100]之间的随机整数存于数组A中,并将它们显示在一个文本框(Text1)中,在数组A中查找指定的元素Number。要求:Number用InputBox函数输入,查找结果显示在窗体上。

Option Base 1

Private Sub Command1_Click() Dim a(100) As Integer For i = 1 To 100

a(i) = Int(Rnd * 101)

Text1.Text = Text1.Text & \

43

Next i

Number = Val(InputBox(\输入数据\ For i = 1 To 100

If a(i) = Number Then Print i k = k + 1 End If Next i

If k = 0 Then MsgBox \不存在所查找的数\End Sub

11、编程求由一位随机整数构成的4×5二维数组A的每一列元素的和。运行界面如图所示。

Option Base 1

Private Sub Command1_Click() Dim a(4, 5) As Integer For i = 1 To 4 For j = 1 To 5

a(i, j) = Int(Rnd * 9 + 1)

Text1.Text = Text1.Text & \ Next j

Text1.Text = Text1.Text & vbCrLf Next i

For j = 1 To 5 Sum = 0

For i = 1 To 4

Sum = Sum + a(i, j) Next i

Text2.Text = Text2.Text & \ Next j End Sub

12、单击命令按钮command1时,生成包含[1,9]之间随机整数的两个5*5矩阵,分别显示在图片框Picture1和Picture2中,并求两个矩阵之和显示在图片框Picture3中。

44

Option Base 1

Dim a(5, 5) As Integer, b(5, 5) As Integer, c(5, 5) As Integer

Private Sub Command1_Click() Picture3.Cls Randomize For i = 1 To 5

For j = 1 To 5

a(i, j) = Int(Rnd * 9 + 1) b(i, j) = Int(Rnd * 9 + 1)

Picture1.Print Format(a(i, j), \ Picture2.Print Format(b(i, j), \ Next j

Picture1.Print Picture2.Print Next i

For i = 1 To 5

For j = 1 To 5

c(i, j) = a(i, j) + b(i, j)

Picture3.Print Format(c(i, j), \ Next j

Picture3.Print Next i

End Sub

13、编写程序,在窗体上打印出如图所示的杨辉三角形。要求:行数由用户指定。

Option Base 1 Dim a() As Double

Private Sub Form_Click()

n = Val(InputBox(\输入打印行数\

45

Form1.Cls ReDim a(n, n) a(1, 1) = 1 a(2, 1) = 1 a(2, 2) = 1 Print Print Print

For i = 1 To n For j = 1 To i

If j = 1 Or j = i Then a(i, j) = 1 Else

a(i, j) = a(i - 1, j - 1) + a(i - 1, j) End If

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

End Sub

14、随机生成一个由两位正整数构成的5行5列矩阵显示在窗体上,并求出该矩阵中两条对角线元素之和。

Option Base 1

Private Sub Command1_Click() Dim a(5, 5) As Integer For i = 1 To 5 For j = 1 To 5

a(i, j) = Int(Rnd * 90 + 10)

If j = 1 Or i + j = 6 Then s = s + a(i, j) Print a(i, j); Next j Print Next i Print Print Print s End Sub

15、随机生成一个由两位正整数构成的6行6列矩阵显示在窗体上,并求出该矩阵中所有元素之和。

Option Base 1

Private Sub Command1_Click() Dim a(6, 6) As Integer For i = 1 To 6

46

For j = 1 To 6

a(i, j) = Int(Rnd * 90 + 10) s = s + a(i, j) Print a(i, j); Next j Print Next i Print Print Print s End Sub

16、编写一个求1+2+3+?+n的函数,单击命令按钮(Command1)时调用该函数求1+2+3+4+5的值,结果显示在一个文本框(Text1)中。

Option Base 1

Private Sub Command1_Click() Text1.Text = F(5) End Sub

Public Function F(n As Integer) As Integer For i = 1 To n F = F + i Next i

End Function

17、编写程序,判断一个数N是否是奇数。要求使用通用过程。

Private Sub Command1_Click() Dim n As Integer

n = Val(InputBox(\输入需要判断的数\ Print F(n) End Sub

Public Function F(n As Integer) As Boolean If n Mod 2 = 0 Then F = False Else

F = True

18、编写求表达式

x3?y3?z3的值的Function过程。

Public Function Fact(X As Integer, Y As Integer, Z As Integer) As Single

Fact = Sqr(Abs(X ^ 3 + Y ^ 3 + Z ^ 3))

47

End Function

19、编写一个摄氏温度与华氏温度转换的通用过程。在一个文本框(Text1)中输入摄氏温度,单击命令按钮command1时调用该通用过程在另一个文本框(Text2)中显示对应的华氏温度。摄氏温度(C)与华氏温度(F)转换的公式是:F?C?9?5?32。

Private Sub Command1_Click() Dim c As Double c = Val(Text1.Text) Text2.Text = CStr(F(c)) End Sub

Public Function F(c As Double) As Double F = c * 9 / 5 + 32 End Function

20、编写一个判断某正整数N是否是完数的通用过程。完数:一个数恰好等于它的因子之和(除自身),如:6=1+2+3,因此6是完数。

Public Function F(n As Integer) As Boolean F=False

For i = 1 To n - 1

If n Mod i = 0 Then s = s + i Next i

If s = i Then F = True End Function

21、编写一个求正整数m和正整数n的最大公约数的函数。

Public Function F(m As Integer, n As Integer) As Integer r = m Mod n While r <> 0 m = n n = r

r = m Mod n Wend F = n End Function

22、编写一个对数组元素进行排序的通用过程。

Public Sub P(X() As Integer)

Dim i As Integer, j As Integer, n as integer N=ubound(x) For i = 1 To n - 1 For j = i To n

If X(i) > X(j) Then t = X(i) X(i) = X(j) X(j) = t End If

48