当前位置:文档之家› 《VB程序设计》第四章第四节 参数的传递

《VB程序设计》第四章第四节 参数的传递

《VB程序设计》第四章第四节 参数的传递
《VB程序设计》第四章第四节 参数的传递

《VB程序设计》第四章第四节参数的传递

最后修改: 2010-6-2 23:16:59

第四节参数的传递

参数是在本过程有效的局部变量,用于传递信息。在调用一个有参数的过程时,首先进行的是“形参和实参结合”,实现调用过程的实参与被调过程的形参之间的数据传递,数据传递有两种方式:按值传递和按地址传递。

例如,下面实例由于传递的参数个数不匹配而出错。

Private Function Divisor(ByVal x As String,ByVal y As Integer) ′ 函数Divisor计算最大公约数

End Function

Divisor有两个参数,而调用语句中形参个数只有一个,代码如下:

Private Sub Form_Click()

Dim m As Integer, n As Integer, E As Integer

N=InputBox("请输入N" )

M=InputBox("请输入M" )

g=Divisor(n) ′未提供m参数

Print n;"和";m;"的最大公约数是:" ;g

End Sub

单击窗体运行程序时,则会显示出错信息,如图4-4-1所示。

图 4-4-1

一、形参和实参

1.形参

在被调用过程中的形参,出现在Sub过程和Function过程中。在过程被调用之前,形参并未被分配内存,只是说明形参的类型和在过程中的作用。形参列表中的各参数之间用逗

号(,)分隔,形参可以是变量名和数组名,定长字符串变量除外。

2.实参

实参是在主调过程中的参数,在过程调用时实参将数据传递给形参。

形参列表和实参列表中的对应变量名可以不同,但实参和形参的个数、顺序以及数据类型必须相同。因为“形实结合”是按照位置结合,即第一个实参与第一个形参结合,第二个实参与第二个形参结合,依此类推。

例如,在求最大公约数的[例Ex_Divisor1] 中被调用函数和调用过程如下:

Private Function Divisor(ByVal x As Integer,ByVal y As Integer)

End Sub

Private Sub Form_Click()

G=Divisor(n,m)

End Sub

当运行单击窗体事件调用Divisor过程时,首先进行“形实结合”。形参与实参的结合对应关系是:n→>x,m→y。

3.形参的数据类型

在创建过程时,如果没有声明形参的数据类型,则默认为Variant型。

例如,将[例Ex_Divisor1]函数过程中的x为Variant型,y为Integer型:

Private Function Divisor(ByVal x,ByVal y As Integer)

End Function

对于实参数据类型与形参定义的数据类型不一致时, VB会按要求对实参进行数据类型转换,然后将转换值传递给形参。

例如,将[例Ex_Divisor1]函数的实参n的数据类型改为Single型,被调函数如下:

Private Sub Form_Click()

Dim n As Single,m As Integer, g As Integer

N=InputBox(″请输入N″ )

M=InputBox(″请输入M″ )

G=Divisor(n,m)

Print n;″和″ ;m;″的最大公约数是:″ ;g

End Sub

被调函数过程如下:

Private Function Divisor(ByVal x As Integer, ByVal y As Integer)

End Sub

运行上述程序,当从InputBox输入框中输入n为44.5,m为25。当执行“g=Divisor(n,m)”语句时,先将Single型的n转换成44(Integer),然后将44→x,25→y. 运行结果为:44.5和25的最大公约数是:1

4.使用可选的参数

参数列表中的参数可以是可选的,在参数表中含有Optional关键字的参数是可选的。如果某一参数为可选参数,则参数表中此参数后面的其他参数也必须是可选的,并要用Optional来声明。

例如,[例Ex_Divisor1]的被调函数定义修改为:

Private Function Divisor(Optional x As Intege,Optional y As Integer)

在Form_Click事件过程中,程序代码如下:

g=Divisor(n) ′未提供第二个参数

g=Divisor(,n) ′未提供第一个参数

在未提供可选参数时,实际上是将该参数作为具有Variant型的Empty来赋值。不过,在本程序中如果将m或n作为Empty,在Divisor函数中的mod运算时会出错。

二、参数按值传递和按地址传递

在VB中传递参数有两种方式:按值传递(Passed By Value)和按地址传递(Passed By Reference),其中按地址传递习惯上称为“引用”。

1.按值传递参数

按值传递使用ByVal关键字。按值传递参数时,VB给传递的形参分配一个临时的内存单元,将实参的值传递到这个临时单元去。

实参向形参传递是单向的,如果在被调用的过程中改变了形参值,则只是临时单元的值变动,不会影响实参变量本身,当被调过程结束返回主调过程时,VB将释放形参的临时内存单元。

[例Ex_Max]用函数过程编写求a、b两数中最大数。

Max函数为求最大数,在cmdStart_Click事件中调用Max函数,程序代码如下:

Option Explicit

Private Function max(ByVal x As Integer, ByVal y As Integer)

Dim z As Integer

If x < y Then

z = x

x = y

y = z

End If

max = x

Text4.Text = x

Text5.Text = y

End Function

Private Sub Command1_Click()

Dim a As Integer, b As Integer, c As Integer

a = Val(Text1.Text)

b = Val(Text2.Text)

Text3.Text = max(a, b)

Text6.Text = a

Text7.Text = b

End Sub

当在文本框txtA和txtB中输入变量a为7,b为8时,数据的传递过程如下:

通过函数调用,给形参分配:临时内存单元x和y,将实参a和b的数据传递给形参。在被调函数中x、y和z交换数据,调用结束实参单元 a和b仍保留原值,参数的传递是单向的。

运行结果界面如图4-4-2所示,被调函数Max中的x和y已经交换过了,分别为8和7,而主调函数中的a和b仍为7和8。

图 4-4-2

2.按地址传递参数

在定义过程时,如果没有ByVal 关键字,默认的是按地址传递参数,或者用Byref关键字指定按地址传递。

按地址传递参数,是指把形参变量的内存传递给被调用过程,形参和实参具有相同的地址,即:形参、实参共享同一段存储单元。因此,在被调过程中改变形参的值,则相应实参的值也被改变,也就是说,与按值传递参数不同,按地址传递参数可以在被调过程中改变实参的值。

将[例Ex_Max]求两数中最大数的程序按值传递改为按地址传递,程序代码如下:

Option Explicit

Private Function max(x As Integer, y As Integer)

Dim z As Integer

If x < y Then

z = x

x = y

y = z

End If

max = x

Text4.Text = x

Text5.Text = y

End Function

Private Sub Command1_Click()

Dim a As Integer, b As Integer, c As Integer

a = Val(Text1.Text)

b = Val(Text2.Text)

Text3.Text = max(a, b)

Text6.Text = a

Text7.Text = b

End Sub

由于形参和实参共用同一内存单元,因此在被调函数中交换x和y的数值后,a和b的数值也同榉发生变化。

运行结果如图4-4-3所示,a和b的数据也交换了。

图 4-4-3

按地址传递参数比按值传递参数更节省内存空间,程序的运行效率更高。

对于按地址传递的形参,如果在过程调用时与之结合的实参是常数或表达式,则VB会用按值传递的方法处理,给形参数分配一个临时的内存单元,将常数或表达式传递到这个临时的内存单元去。

[例Ex_MulSum]计算5!+4!+3!+2!+1!,按照按地址参数传递的方法编写程序,代码如下:

Private Function multiply(n As Integer)

multiply = 1

Do While n > 0

multiply = multiply * n

n = n - 1

Loop

End Function

Private Sub Form_Click()

Dim sum As Integer, i As Integer

For i = 5 To 1 Step -1

sum = sum + multiply(i)

Next

Print "sum="; sum

End Sub

运行结果:

Sum=120

120而不是希望的153,本程序只计算了5!= 120。因为,形参n是按地址传递的,在第一次调用Multiply函数后n的值为o,由于实参与形参共享地址单元,实参i的值也是0。当执行“Sum=Sum+Multiply(i)”语句后,Sum的值是120,执行“Next”语句后在判断语句“For i :5 To 1 Step-1时就退出For循环。因此For循环只执行了一次,求了5!的值。

解决办法:

·将函数定义改为按值传递:

Private Function Multiply(ByVal n As Integer) As Integer

·将实参i改为表达式,因为表达式是按值传递的。把变量改为表达式的最简单的方法是用()将变量括起来。调用语句为:

Sum=Sum十Multiply((i))

三、数组参数

在定义过程时,数组可以作为形参出现在过程的形参列表中。声明数组参数的语法如下:

语法:

形参数组名( )[As数据类型]

形参数组对应的实参必须也是数组,数据类型与形参一致,实参列表中的数组不需要用“()”。过程传递数组只能按地址传递,形参与实参共有同一段内存单元。

在被调过程中不能用Dim语句对形参数组声明,否则会产生“重复声明”的编译错误。但是在使用动态数组时,可以用Redim语句改变形参数组的维界,重新定义数组的大小。

当返回调用过程时,对应的实参数组的维界也跟随发生变化。

[例Ex_AverScore]用同一个函数Average求正式员工和临时员工的的平均工资。

运行结果的界面如图4-4-4所示。

图 4-4-4

程序代码如下:

Option Explicit

Private Function average(stuarray() As Single, n As Integer)_ As Single '求平均值

Dim i As Integer

Dim aver As Single, sum As Single

For i = 1 To n - 1

sum = sum + stuarray(i)

Next

aver = sum / n

average = aver

End Function

Private Sub cmdstart_Click()

Dim salary1(5) As Single, salary2(8) As Single

salary1(0) = 1900: salary1(1) = 1970: salary1(2) = 1915

'设置初始值

salary1(3) = 1600: salary1(4) = 1655

salary2(0) = 2675: salary2(1) = 2780: salary2(2) = 2715

salary2(3) = 2540: salary2(4) = 2990: salary2(5) = 2770

salary2(6) = 2895: salary2(7) = 2765

'求正式员工工资

Text1.Text = Int(average(salary2(), 8) * 100) / 100

'求临时员工工资

Text2.Text = Int(average(salary1(), 5) * 100) / 100

End Sub

程序分析:

·被调函数Average的数据类型为Single型。

·为了使同一个函数Average,在调用过程Form_Click事件中将数组的元素个数作为参数传递,然后通过Redim语句重新定义数组的大小,使Average函数具有通用性。因此,对于数组元素个数不定的函数、可以采用将元素个数作为参数传递的方法。

·程序中的“Int(Average(Salaryl(),5)*100)/100”是为了显示时取两位数。

四、对象参数

在VB中对象也可以作为形参,即对象可以向过程传递,对象的传递只能是按地址传递。

对象作为形参时形参变量的类型声明为“Control”,或声明为控件类型,例如,形参类型声明为“Label”或“Form”,则表示可以向过程传递标签控件或窗体。

[例Ex_FormArgul]创建一个人员管理系统。

在窗体frmFirst中创建了3个按钮,3个按钮组成按钮数组,不同按钮的Caption属性值不同,单击不同的按钮进入窗体frmSecond。窗体frmFirst和窗体frmSecond中的控件属性如表4-4-1所示。

表 4-4-1

对象控件名属性名属性值

Form frmFirst Caption 人员管理

Command cmdEmp Index

Caption 正式员工

cmdEmp Index

Caption 退休员工

cmdEmp Index

Caption 临时员工

Label labEmplo Index 0

Caption 正式在册的员工信息

labEmplo Index 1

Caption 退休的员工信息

labEmplo Index 2

Caption 临时的员工信息

Form frmSecon Caption 空

Label Label1 Caption 空

为了使系统简单化,系统设计为在窗体frmFirst中单击不同按钮都打开同一个窗体frmSecond,但frmSecond显示不同的标题和标签内容,窗体frmSecond的标题和标签内容是通过过程参数传递的,如图4-4-5(a)是运行时窗体frmFirst,图4-4-5(b)是当单击按钮“正式员工”cmdEmployee(0)时的窗体frmSecond的显示情况。

(a)

(b)

图 4-4-5

采用将窗体和标签作为参数,通过按钮的不同索引值(index)传递按钮的“caption”属性给形式参数,使单击不同的按钮打开的窗体上显示不同的窗体标题和标签。

程序代码如下:

Private Sub frmselect(f As Form, cmdcap As String)

'传递窗体参数

f.Caption = cmdcap & "人员管理"

End Sub

'传递窗体参数

Private Sub labselect(l As Control, cmdcap As String)

l.Caption = "欢迎进入" & Chr(13) & cmdcap & "人员管理"

l.FontSize = 16

l.FontBold = True

l.Visible = True

frmsecond.Show

frmfirst.Hide

End Sub

Private Sub cmdemployee_click(index As Integer)

'单击不同按钮

'将按钮的文本传递给frmsecond窗体标题

Call frmselect(frmsecond, cmdemployee(index).Caption)

Call labselect(https://www.doczj.com/doc/e81621631.html,bel1, cmdemployee(index).Caption)

frmsecond.Show

frmfirst.Hide

End Sub

程序分析:

在Sub frmSelect函数中以窗体为形参,定义为“F As Form”;在Sub labSelect函数中以标签为形参,定义为“L As Label”。

《VB程序设计》考试题型练习 答案

《VB 程序设计》考试题型练习 一. 填空 1. VB 中的对象具有 属性 、 事件 、和 方法 三种特性,它们是构成对象的三个基本要素。 2. VB 中的常量分为哪三种: 文字常量 、 符号常量(用户自定义常量) 系统内部常量 。 3. 变量的三要素是指: 变量的名 、 变量的数据类型 、 变量的值 。 4. VB 中日期型数据的表示格式为: #mm/dd/YYYY#或#mm-dd-YYYY# 。 5. 在VB 中,“\”是 整除 运算符;“/”是 浮点除 运算符。两个字符串可以使用连接符 &或+ 串接起来。 6. 2 22z y x z y x ++++的VB 表达式为 (x+y+z )/sqr(x^2+y^2+z^2) 。 7. a ac b b 242-+的VB 表达式为 (b+sqr(b^2-4*a*c))/(2*a) 。 8. 计时器控件的 Interval 属性用于设置Timer 事件发生的时间间隔,为了使计时器控件Timer1每隔0.5秒触发一次Timer 事件,应将该属性设置为 500 ;为了暂时关闭计时器,应把该计时器的 Enable 属性设置为False 。 二. 单选题 1. 如果要使VB 程序运行时不能对文本框中的内容进行编辑,需将文本框的哪个属性设置为True ( D )。 A )MultiLine B )Visible C )TabStop D )Locked 2. 表达式Right("asdf", 2)+Ucase("as" )的值为( A )。 A )dfAS B )asAS C )dfas D )asas 3. 执行如下语句: a =InputBox("Today", "Tomorrow", "Yesterday") 将显示一个输入对话框,在对话框的输入区中的默认值是( C )。 A) Today B) Tomorrow C) Yesterday D) Today Tomorrow Yesterday 4. 设a=3,b=5,则以下表达式值为真的是( B )。 A) a>=b And b>10 B) (a>b) Or (b>0) C) (a<0) Or Not (b>0) D) (-3+5>a) And (b>0)

vb程序设计的几个简单例子

Option Explicit Private Sub Command1_Click() Dim i%, j%, r! i = Val(Text1.Text) j = Val(Text2.Text) Picture1.Print i; j; Call gysh(i, j) Picture1.Print "最大公约数是" & i r = Val(InputBox("输入半径")) Call S(r) End Sub Public Function gysh(m As Integer, n As Integer) As Integer Dim t% Do t = m Mod n: m = n: n = t Loop While t <> 0 End Function Public function S(r!) Const pi = 3.1415926 S = pi * r ^ 2 MsgBox "圆面积为:" & S End function Public Function 定积分() End Function

Dim a() As Integer, i%, j%, n%, t% Private Sub Command1_Click() Picture1.Print "排序前的数组为:" n = V al(InputBox("请输入一个3到100的整数")) ReDim a(1 To n) Randomize For i = 1 To n a(i) = Int(Rnd * 100) + 1 Picture1.Print Tab(((i - 1) Mod 5) * 6); a(i); Next i End Sub Private Sub Command2_Click() Picture1.Print Picture1.Print "排序后的数组为:" For i = 1 To n - 1 For j = i + 1 To n If a(i) > a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next Next For i = 1 To n Picture1.Print Tab(((i - 1) Mod 5) * 6); a(i); Next End Sub

《VB程序设计》习题答案-林卓然编著

《VB语言程序设计》教材 林卓然编著 《VB程序设计》习题参考答案 第1章习题 一、单选题 1.D 2.B 3.C 4.A 5.C 6. A 7.A 8.B 9.C 10.(1)A (2)B 二、多选题 1.ACDE 2.BCDE 3.CD 4. CE 三、填空题 1.事件驱动 2.解释,编译 3.设计,运行,中断 4. 属性,方法,事件 5. Command2_Click 6. 中央,代码 7.MyForm.frm 8. (1)Cmd1_Click() (2)Print "VB语言程序设计" 编程及上机调试 1. 按要求设置窗体属性 2.在窗体上建立一个标签Label1。程序代码如下: Private Sub Form_Click() Label1.Caption = "你单击了窗体" End Sub Private Sub Form_DblClick() Label1.Caption = "你双击了窗体" End Sub 3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。两个文本框的Text属性均为空。 Private Sub Command1_Click() Dim x As Single x = Val(Text1.Text) Text2.Text = 15 * x End Sub 第2章习题 一、单选题 1.①D,②D 2.①A,②C 3.A 4.B 5.B 6.B 7.C 8.D 9.B 10.B 11.A 12.A 13.B 14.A 15.B 16.A 17.B 二、多选题 1.BD 2.CD 3.AC 4. AD 三、填空题 1.(1) Sin(50*3.14159/180) (2) (2+x*y)/(2–y*y)

VB程序设计习题

练习一 一、选择题 1、下面列出的程序设计语言中(A )是面向问题的语言。 A、机器语言 B、汇编语言 C、高级语言 D、0、1二进制语言 解释:机器语言和汇编语言都是面向机器的语言,二进制语言为机器语言,故其为面向机器的语言 2、下面列出的程序设计语言中(C )不是面向对象的语言。 A、C B、C++ C、Java D、VB 3、下列(D )不属于VB 6.0的版本。 A、学习版 B、专业版 C、企业版 D、共享版 解释:VB6.0共有三个版本:标准版、专业版、企业版。而其中的标准版是为初学者了解基于windows的应用程序开发而设计的,也可称为学习版。 二、填空题 1、从程序设计语言发展过程的角度来分类,计算机程序设计语言分:机器语言、汇编语言和高级语言。 2、VB 6.0采用了面向对象、事件驱动(可视化编程)的编程机制。 3、启动VB 6.0后可以从“现存”选项卡选择并打开系统中现存的工程文件。 练习二 一、选择题 1、如果窗体对象的名称为Forma1,Backcolor是窗体对象的一个属性,用来设置窗体的背景色,那么设置窗体背景色为蓝色的语句正确的是( A ) A、Forma1.Backcolor=vbBlue B、Backcolor= vbBlue C、Forma1 =vbBlue D、Forma1′s Backcolor is vbBlue. 2、下面方法中,不能打开编码编辑器的是(D) A、单击“视图”菜单中的“代码窗口”命令。 B、双击窗体设计器的窗体或控件。 C、双击窗体设计器的窗体或控件,单击工程资源管理器中的“查看代码”按钮。 D、双击窗体设计器的窗体或控件,单击标准工具栏中的“代码窗口”按钮。 3 、保存VB应用程序时,下列方法中正确的是(A) A、先保存窗体文件,再保存工程文件。 B、先保存工程文件,再保存窗体文件 C、直接保存窗体文件,系统会自动按顺序先保存窗体文件再保存工程文件。 D、直接保存窗体文件,系统会自动按顺序先保存工程文件再保存窗体文件。 二、填空题 1、VB工程文件的扩展名是工程文件(*.vbp),窗体文件的扩展名是窗体文件(*.frm)。 2、选中工程资源管理器中的窗体对象,再单击按钮可打开窗体设计器。 3、在VB中,按下工具栏中的“启动”按钮或键运行程序。 练习三 一、选择题 1、在设计阶段,当双击窗体上的某个控件时,所打开的窗口是(C) A、工程资源管理器窗口 B、工具箱窗口 C、代码窗口 D、属性窗口 2、新建一个工程,将其窗体的名称属性设置为MyFirst,则默认的窗体文件名为(C) A、Form1. frm B、工程1. frm C、MyFirst.frm D、Form1.vbp 3、下列叙述中正确的是(C) A、只有窗体才是VB中的对象 B、只有控件才是VB中的对象 C、窗体和控件都是VB中的对象 D、窗体和控件都不是VB中的对象 解释:窗体时VB中最常见的对象,而控件是VB中预先定好的、程序中能够直接使用的对象。 4、设置窗体最小化时的图标可通过(A )属性来实现。 A、MouseIcon B、BackStyle C、Icon D、Picture 5、设置标签边框的属性是( B ) A、BorderStyle B、BackStyle C、AutoSize D、Alignment 6、文本框没有( D )属性。 A、Enable B、Visible C、BackColor D、Caption 7、下列操作中不能触发命令按钮的Click事件的是( B ) A、在按钮上单击鼠标左键 B、在按钮上单击鼠标右键 C、把焦点移至按钮上,然后按回车键 D、使用该按钮的快捷键

vb程序设计试题(含答案)

第一套试题 一、选择题(每题2分,共30分) 1.在VB环境中,工程文件的扩展名是( C ) (A).frm (B).bas (C).vbp (D).frx 2.下面4项中不属于面向对象系统三要素的是( A ) (A)变量(B)事件(C)属性(D)方法 3. \、/、Mod、*这4个算述运算符中,优先级别最低的是( C ) (A)\ (B)/ (C)Mod (D)* 4.要使Print方法在Form_Load事件中起作用,要对窗体的( C )属性进行设置(A)BackColor (B)ForeColor (C)AutoRedraw (D)Caption 5.不论何控件,共同具有的属性是( B ) (A)Text (B)Name (C)ForeColor (D)Caption 6.要使Form1窗体的标题栏显示“欢迎使用VB”,以下语句正确的是( D ) (A)Form1.Caption=“欢迎使用VB”(B)Form1.Caption=ˊ欢迎使用VBˊ(C)Form1.Caption=欢迎使用VB (D)Form1.Caption=〞欢迎使用VB〞 7.VB提供了结构化程序设计的3种基本结构,这3种基本结构是( D ) (A)递归结构,选择结构,循环结构(B)选择结构,过程结构,顺序结构 (C)过程结构,输入、输出结构,转向结构(D)选择结构,循环结构,顺序结构 8.给变量赋值a=123+MID(“123456”,3,2),a变量中的值是( D ) (A)“12334”(B)123 (C)12334 (D)157 9.下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是( D ) (A)If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1 (B)If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1 (C)If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1 (D)If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1 10.若要清除列表框的所有内容,可用来实现的方法是( C )

VB程序设计编程考试~题及答案~

VB程序设计编程考试题及答案 1.输入3个数,输出最大的数 Private Sub command1_click() Dim max For i = 1 To 3 n = Val(InputBox("输入第" & i & "个数")) If n > max Then max = n End If Next Print "三个数中最大的数是" ; max End Sub 2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根 Private Sub Command1_Click() Dim a, b, c, n a = Text1 b = Text2 c = Text3 n = b * b - 4 * a * c If n >= 0 Then Label4 = "方程有根" Else Label4 = "方程无根" End If End Sub 3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”, 若小于60,则弹出消息框,显示“抱歉!成绩没有通过! Private Sub Form_Load() Text1 = "" End Sub Private Sub Command1_Click() Dim n n = Text1 If n > =60 Then Val (MsgBox("恭喜!成绩通过!")) Else Val (MsgBox("抱歉!成绩没有通过!")) End If End Sub 4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整 除但不能被100整除,或者能被400整除) Private Sub Command1_Click() Dim y%

《VB程序设计》期末复习要点

《VB程序设计》期末复习要点 重点复习内容: 通过本课程的学习,要求重点掌握: 1. VB窗体的属性,事件和方法,常用的控件的公用属性和常用标准控件. 2. VB常用的数据类型,常量的定义,变量的命名,变量的声明及作用域. 3. 常用的表达式. 4. For…Next循环,Do…Loop循环,If…Then…Else条件判断语句,Select Case语句. 5. 一维数组,二维数组的声明与存取. 6. 过程的声明与调用. 7. 菜单编辑器,输入对话框,消息输出对话框及系统对话框的使用. 考试题型及分值: 1. 判断题共10题(每题1分,共10分) 2. 单项选择题10题(每题2分,共30分) 3. 填空题10空(每空2分,共20分) 4. 阅读程序,写出程序运行结果2题(每题10分,共20分) 5. 程序填空( 共20分) 复习题: 判断题(正确的打√,错误的打×) ( )1.VB对象就是窗体和控件. ( )2.事件是VB对象可以响应的用户操作. ( )3.文本框和标签框通过同一属性在窗体上显示文字. ( )4.For…Next循环结构的默认步长为1. ( )5.对象的属性都可以在程序中通过语句设置. ( )6.能够改变多项选择框中背景颜色的属性是BackColor. ( )7.使用Open语句可以创建新的顺序文件. ( )8.要在窗体上添加控件,从工具箱中将控件拖到窗体上即可. ( )9.所有对象的属性都可以在属性窗口中设定. ( )10.标签没有change事件和setFocus方法. ( )11.方法Form1.show与Form1.visible=True是等效的. ( )12.Msgbox函数建立的信息框既能显示信息又能输入用户的信息. ( )13.Do…Loop Until语句实现循环时,不管条件真假,首先无条件地执行一次循环. ( )14.函数Str(23)与Str(-23)的值的长度相同. ( )15.变量名的第一个字符必须是字母. ( )16.InputBox函数和MsgBox函数一样,返回的是字符串. ( )17.改变窗体的标题也就是改变其属性窗口中的name属性. ( )18.文本框控件有Caption属性. ( )19.在Visual Basic中,向过程传递参数时,按地址传递参数是缺省的. ( )20.在工具箱内双击命令按钮图标,便会在窗体上建立一个命令按钮. ● 单项选择题 1.若要求从文本框中输入密码时在文本框中只显示* 号,则应在此文本框的属性窗口中设置( ). A,Text属性值为* B,Caption属性值为* C,Password属性值为空D,Passwordchar属性值为* 2.在文本框的属性中,用于设定文本框最多可接受字符数的属性是( ).

[整理]VB程序设计复习题及答案.

中南大学现代远程教育课程(专科)考试复习题及答案 《VB程序设计与应用》 一、选择题:在每小题给出的四个选项中,只有一项是符合题目要求的,请把所选项前的字母填在 题后的括号内。 1. Visual Basic程序中分隔一行中各语句的字符是()。[ ] A)‘ B): C)\ D)_ 2. 下列可作为Visual Basic的变量名的是()。[ ] A: Filename B: A(A+B)C: A%D D : Print 3. 要让菜单项无效,应将()属性值设置为False。 [ ] A. Visible B. Enabled C. Moveable D. Checked 4. 以下过程是()事件。 Prviate Sub Form_Load( ) …… End Sub [ ] A: 命令按钮的单击B: 命令按钮的装载 C; 窗体的装载D: 窗体的单击 5. Vb中描述文件扩展名的是()属性。[ ] A: Drive B: Pattern C: FileName D: Path 6. 关于Visual Basic中事件的说法中,不正确的为()。[ ] A)事件是由Visual Basic预先定义好的,能够被对象识别的动作 B)DblClick(双击)是Visual Basic中的一种事件 C)一个对象可以识别一个或多个事件 D)对于一个系统提供的对象可以识别哪些事件,需要程序员自己定义 7. 下列控件中可设置滚动条是()。 [ ] A. 检查框(复选框) B. 框架 C. 文本框 D. 标签框 8. 在Visual Basic中建立一个空窗体,( )不会是其默认名。 [ ] A. Form1 B. Form2 C. Formx D. Form10 9. Const One&=1,则One为()类型的常数。[ ] A)整型 B)字节型

VB程序设计 试题与答案-1

《VB程序设计基础》试题 一、选择题:(每空 2 分,共 20 分) 1. 与传统的程序设计语言相比,Visual Basic最突出的特点是___________。 A. 结构化程序设计 B. 程序开发环境 C. 事件驱动编程机制 D. 程序调试技术 2. Visual Basic 是一种面向对象的程序设计语言,构成对象的三要素是________。 A. 属性、事件、方法 B. 控件、属性、事件 C. 窗体、控件、过程 D. 窗体、控件、模块 3. 窗体模块保存在一个扩展名为__________的文件中。 A. bas B. vbp C. vbg D. frm 4. 下面正确的赋值语句是_________。 A. x+y=30 B. y=π*r*r C. y=x+30 D. 3y=x 5. 设S=“492”,表达式Right(S,1)+Left(S,1)+Mid(S,2,1)的值为__________。 A.“492” B.“249” C.“294” D.“429” 6. 将数学表达式a≤b≤c写成Visual Basic表达式,正确的是__________。 A. a<=b<=c B. a<=b Or b<=c C. a<=b And b<=c D. a<=b Not b<=c 7.为了把焦点移到文本框,所使用的方法是___________。 A. SetFocus B.Visible C.Refresh D.GetFocus 8. INT(100*RND)产生的随机整数的闭区间是_____________。 A.[0,100] B.[1,100] C.[1,99] D.[0,99] 9. 一个数组说明为Dim a(0 to 5,1 to 5) As Integer,则该数组共有_________个 元素。 A. 5 B. 36 C. 30 D. 不确定 10. 下面过程定义语句合法的是____________。

VB程序设计教程第四版课后答案

vb 课后习题答案 第一章习题参考答案 一、填空题 1、对象事件驱动 2、编译运行模式解释运行模式 二、简答题 1、简述 VB 的特点。 答:①可视化的程序设计方法 ②面向对象的程序设计思想 ③事件驱动的编程机制 ④结构化的程序设计语言 ⑤高度的可扩充性 ⑥强大的数据库访问能力 ⑦支持动态数据交换 ⑧支持对象链接与嵌入 2、简述 VB 的安装过程。 答:①向光驱中放入VB 安装光盘; ②计算机将运行自动安装程序,若没有,执行VB 目录下的Setup.exe; ③根据提示逐一回答问题,并点击“下一步”; ④点击“完成”; 2、如何启动 VB。 答:三种方法: ①单击“开始”按钮,选择“程序”菜单下的“Microsoft Visual Basic 6.0 中文版”菜单项并单击; ②双击桌面上的VB6.0 快捷图标; ③在“开始”菜单的运行对话框中输入命令来启动VB; 第二章习题参考答案 一、选择题: 1-10、 DCACD BCBBC 11-20、 BADCA BBAAB 21-29、 AACBB CDDC 二、填空题 1.窗体、控件 2.属性值 3.属性窗口设置、代码窗口设置 4.事件过程 5.对象名、下划线、事件名 6. Form_Click 第三章习题参考答案 一、选择题

1、B 2、 C 3、 A 4、B 5、 A 6、 C 7、 C 二、填空题 1、 11 字符型、字节型、整型、长整型、单精度型、双精度型、货币型、逻辑型、日 期型、对象型、变体型。 String、 Byte、 Integer 、 Long、 Single、 Double、 Currency、 Boolean 、Date、 Object 、 Variant 2、双引号 (英文 )、# 3、 ASCII、1 、2 4、 public 、通用、 Dim、 Static、Private、 Static 5、 &、 +、+ 6、 Now()、 Time 、日期型 三、解答题 1、(3) 2、 (1 ) 3、( 1)常量(关键字)( 2)字符型常量( 3)逻辑型常量( 4)变量( 5)字符串常量( 6)变量 (7)字符串常量( 8)变量( 9)日期型常量(题目应是 #11/16/1999# )( 10)数值型常量(单精度) 4、31 5、( 1) (1+y/x)/(1-y/x) (2) x^3+3*x*y/(2-y) (3) sqr(abs(a*b-c^3)) ( 4)sqr(s*(s-a)*(s-b)*(s-c)) 6、 7、( 1) 13 ( 2) 17 (3) #1999-11-12# ( 4) zxy123ABC 8、( 1) 19 ( 2) 8.16666666666667 (3) 5. 25 (4) 2 9、( 1) -4 (2) 2 . 82842712474619 ( 3) -3 ( 4) 49 (5)” hello (”6)He 7)16 ( 8)“-459.65 ”( 9) 5 10、( 4) 11、( 2) 12、( 4) 第四章习题参考答案 一、选择题: 1—7: DAABBCD 二、填空题 1. 500.00% 2.将字号扩大为原来的二倍 3. B 三、编程题(略) 1.文本框、标签和命令按钮的名称分别为text1 、 label1、 command1 Private Sub Command1_Click() Label1.caption=text1.text Command1.caption=text1.text End Sub

VB程序设计期末复习题

《V i s u a l B a s i c程序设计》期末复习题 一、单项选择题 1.Visual Basic是一种面向对象的可视化编程语言,采取了()的编程机制。 A.按过程顺序执行B.从主程序开始执行 C.事件驱动D.按模块顺序执行 2.与传统的设计语言相比,Visual Basic最突出的特点是() A.程序开发环境B.结构化程序设计 C.程序调试技术D.事件驱动的编程机制 3.将调试通过的工程经“文件”菜单的“生成.exe文件”编译成.exe后,将该可执行文件拿到其它机器上不能运行的主要原因是()。 A.缺少.frm窗体文件B.该可执行文件有病毒 C.运行的机器上无VB系统D.以上原因都不对 4. Visual 集成开发环境有三种工作模式,下列不属于三种工作模式之一的是()。 A.设计模式B.编写代码模式 C.执行模式D.中断模式 5.后缀为.bas的文件表示()。 A.工程文件 B.窗体文件 C.窗体二进制数据文件 D.标准类模块文件 6.工程文件的扩展名是()。 A..vbp B..frm C..bas D..frx 7.刚建立一个新的标准EXE工程后,不在工具箱中出现的控件是()。 A.时钟控件B.图像框C.框架D.通用对话框 8.以下叙述中错误的是()。 A.一个工程中可以包含多个窗体文件 B.在设计Visual Basic程序时,窗体、标准模块、类模块等需要分别保存为不同类型的文件 C.在一个窗体文件中用Private定义的通用过程能被其它窗体调用 D.全局变量必须在标准模块中定义 9.要在窗体Form1内显示“欢迎您!”,使用的语句是() A.="欢迎您!" B.="欢迎您!" C.Form. print "欢迎您!" D. "欢迎您!" 10.决定标签内显示内容的属性是() A.Name B.Text C.Caption D.Alignment 11.要设置命令按钮的背景图形,必须设置的两个属性是() A.Caption和Picture B.Style和Picture C.Style和Icon D.Value和Icon 12.将数据项“China”添加到列表框List1中成为第一项,应使用的语句是()A."China" B."1,China" C."China",0 D."China",1 13.在VB中,下列各项合法的变量名是()。 A.Integer B.ab-c C.2abc D. a_bc 14.在VB中,下列合法的变量名是()

VB程序设计试题及答案一

V B程序设计试题及答案(一) 一、单选题 1. VB6.0是一种面向B 的编程环境。 (A) 机器(B) 对象 (C) 过程(D) 应用 2. 要使FormI窗体的标题栏显示"欢迎使用VB",以下D 语句是正确的。 (A) Forml.Caption=“欢迎使用VB” (B) Forml.Caption='欢迎使用VB' (C) Forml.Caption=欢迎使用VB (D) Forml.Caption="欢迎使用VB" 3. 若要使命令按钮不可操作,要对A 属性进行设置。 (A) EnabIed (B)Visible (C) Backcolor (D)Caption 4. 如果在窗体上已经创建了一个文本框对象TextI,可以通过C 事件获得输入键值的ASCII码。 (A) Change (B) LostFocus (C) KeyPress (D) GotFocus 5. 下面A 是合法的变量名。 (A) X_yz (B) 123ab。(C) integer (D) X-Y 6. 以下关系表达式中,其值为False的是A 。 (A) "ABC">"AbC" (B) "女">"男" (C) "BASIC"=UCase("basic) (D) "123"<"23" 7. 为了给x、y、z三个变量赋初值1,下面正确的赋值语句是A 。 (A) x=1:y=1:z=1 (B) x=1,y=1,z=1 (C) x=y=z=1 (D) xyz=1 8. VB提供了结构化程序设计的三种基本结构,三种基本结构是D 。 (A)递归结构、选择结构、循环结构 (B)选择结构、过程结构、顺序结构 (C)过程结构、输入输出结构、转向结构 (D)选择结构、循环结构、顺序结构 9. 下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是 D 。 (A) If sex="男" And age=4O And InStr(duty,"教授")>O Then n=n+l (B) If sex="男" And age=4O And (duty="教授" Or duty="副教授") Then n=n+l (C) If sex="男" And age=4O And Right(duty,2)="教授" Then n=n+l (D) If sex="男" And age=4O And duty="教授" And duty="副教授" Then n=n+l 10.下列关于Do…Loop循环结构执行循环次数的描述正确的是D 。 (A) Do While…Loop循环和Do…Loop Until循环至少都执行一次 (B) Do While…Loop循环和Do…Loop Until循环可能都不执行 (C) Do While…Loop循环至少执行一次和Do…Loop Until循环可能不执行 (D) Do While…Loop循环可能不执行和Do…Loop Until循环至少执行一次 11.以下B 是正确的For…Next结构。 (A) For x=1 To Step 10 (B) For x=3 To -3 Step -3 ……

VB程序设计试卷

《VB程序设计》试卷试卷十五 一、判断题(共10分,每题1分,在答题卡上回答,A表示正确,B表示错误) 1. 窗体中只能有一个命令按钮设置Default属性为True,在任何情况下,按键,就相当于 执行该命令按钮的Click()事件。 2. 直线控件没有Left和Top属性。 3. 在VB工具箱中双击控件图标,可以在窗体中添加控件,但不能直接将控件引入到框架中。 4. Style属性为0和2的组合框由于下拉,故不能多选,但Style属性为1的组合框不是下拉的, 所以可以多选。 5. 单选按钮和复选框都没有双击事件。 6. Cls方法能清除窗体中用Line和Circle方法画的直线、矩形和圆形,但不能清除窗体中用直线 控件和形状控件产生的直线、矩形和圆形。 7. “打开”对话框和“另存为”对话框,除了标题栏上的文字不同之外,其他内容与用法均相同, 因此,也可以用“另存为”对话框来指定要打开的文件。 8. 当图片框的AutoSize属性为True,而影像框的Stretch属性为False时,两者显示图片的效果相 同。 9. Pset (X, Y)方法在(X, Y)处画一个点,而Point(X, Y)函数返回(X, Y)点的颜色值。 10. 若要用鼠标在文本框中右击能弹出mnuEdit的快捷菜单,只要在该文本框的Mouse_Down()事 件中,添加一条PopupMenu mnuEdit 语句便可。 二、单选题(共20分,每题2分) 11. VB提供了许多目录和文件操作语句,其中删除文件夹语句的关键词是。 [A] ChDir [B] RmDir [C] KillDir [D] DelDir 12. 标签的WordWrap = True 可以固定标签宽度来显示多行文本,它必须和属性一起设置。 [A] MultiLine [B] AutoSize [C] Alignment [D] Width 13. 表达式4 + 5 \ 4 * 9 / 8 Mod 3的值是。 [A] 7 [B] 5 [C] 6 [D] 9 14. 在默认的情况下,由Dim axyz(3, 2 To 4) As String * 2语句定义的数组占用______字节的内存空 间。 [A] 24 [B] 18 [C] 9 [D] 48 15. 以下叙述中错误的是。 [A] 以.BAS为扩展名的文件是标准模块文件,是一个纯代码性质的文件。 [B] 编程人员不能改变窗体或控件的事件名称,但是可以改变控件的名称 [C] 在V isual Basic工具箱中的所有控件都具有宽度(Width)和高度(Height)属性 [D] 用Hide方法只是隐藏一个窗体,不能从内存中清除该窗体 16. 要使得文件列表框File1中,只显示文件后缀名为bmp和jpg的图片文件,应设置其Pattern属 性为______。 [A] "*.bmp|*.jpg" [B] "*.bmp", "*.jpg" [C] "*.bmp;*.jpg" [D] "*.bmp, *.jpg "

VB程序设计复习题

《VB程序设计》复习题 一、选择题 1.改变控件在窗体中的上下位置,应修改控件的__A_____属性 A .Top B. Left C.Width D. Right 2.将通用对话框类型,设置为字体对话框,可修改该控件的____D_____属性 A. font B. filename C. filter D. action 3.标签控件最重要的属性是__A______ A. caption B. text C. name D. width 4.文本框中选定的内容,由下列____C_____属性反映。 A. Text B.Caption C. Seltext D. sellenght 5.选中复选框控件时,value属性的值,可以是_ D______ A.true B. false C. 0 D.1 6.设置列表框选中的文本用____D____属性 A. selected B. caption C. text D. list 7.简单组合框的style值为____B_____ A .0 B. 1 C. 2 D. 3 8.在文件列表框的实现文件的多重选择,应修改该控件的___D______属性 A. filename B. pattem C. path D. multiselect 9.语句listl.removeitem 1 将删除list.listindext等于___D______的项目。 A. 0 B. 2 C. 3 D. 1 10.计时器的interval属性为0时,表示____A_____。 A. 计时器失效 C. 相隔0 毫秒 B. 相隔0秒 D. 计时器的enable属性为false 11.以下的vb 常量中非法的是(B) a. “Good Luck” b. PI c. 1.5E-03 d. 16.3412 12.要想返回文本框中输入的内容则可利用其( B )属性进行编程 a.caption b. text https://www.doczj.com/doc/e81621631.html, d. righttoleft 13.下列不能用commondialog 控件调用的对话框是( D) a. open/save b. help c. font d. search 14.vb 应用程序是分层管理的,其最高的层次为( A) a. 工程 b. 模块 c. 窗体 d. 过程

VB程序设计试卷一

2016/2017 学年第一学期 VB程序设计课程考试试题(A)卷 类别继续教育学院拟题人叶臣 适用专业计算机网络技术专科 (答案写在答题纸上,写在试题纸上无效) 一、选择题(每题2分,共30分) 1、VB窗体文件的扩展名是()。 A..frm B..vbp C..bas D..res 2、在窗体上已经创建了一个文本框对象Text1,可以通过()事件获得输入键值的ASCII码。 A.Change B.LostFocus C.KeyPress D.GotFocus 3、以下子过程和函数过程语句说明合法的是()。 A.Sub f1( ByVal n%( ) ) B.Sub f1( n%( ) ) As Integer C.Function f1%(f1%) D.Function f1(ByVal n%) As Integer 4、不论何控件,共同具有的属性是()。 A.Caption B.Name C.ForeColor D.Text 5、InputBox函数返回值的类型是()。 A.整型B.字符型C.可变类型D.数值或字符型 6、赋值语句:a=123 & Mid("123456",3,2)执行后,a变量中的值是()。 A."12334" B.123234 C.123 D.157 7、设a=1,b=3,c=4,表达式:Not a<=c Or 4*c=b^2 And b< >a+c的值是()。 A.-1 B. 1 C.False D.True 8、要使命令按钮不可操作,需要设置其()属性。 A. Visible B. Enabled C. Caption D. BackColor 9、下面关于多重窗体的叙述中,正确的是()。 A.作为启动对象的Main子过程只能放在窗体模块内 B. 如果启动对象是Main子过程,则程序启动时不加载任何窗体,以后由该过程根据不同情况决定是否加载或加载哪一个窗体。 C. 如果没有启动窗体,则程序不能执行。 D. 以上都不对。 10、复选框的Value属性为1时,表示()。 A 复选框未被选中 B 复选框显示为灰色 C 复选框操作有错误 D 复选框被选中 11、为了把焦点移到某个指定的控件,所使用的方法是()。

常见vb程序设计代码

常见vb程序设计代码 作者 : 窦振山 1、猴子每天吃掉的桃子是所有桃子的一半多一个,到第七天发现只剩下一个了,问最开始有几个桃子?、、 Private Sub Command1_Click() Dim m(1 To 7) m(1) = 1 For i = 2 To 7 m(i) = (m(i - 1) + 1) * 2 Next For i = 1 To 7 Print "第" & i & "天的桃数是"; m(i) Next End Sub 2、百元百鸡问题:公鸡三元一只,母鸡两元一只,小鸡一元两只,现用百元买一百只鸡Private Sub Command1_Click() Dim x As Integer Dim y As Integer For x = 1 To 100 For y = 1 To 100 If 3 * x + 2 * y + (100 - x - y) / 2 = 100 Then Print "公鸡 "; x; "母鸡"; y; "小鸡"; 100 - x - y End If Next Next End Sub 1、综合运用一维数组、二维数组、动态数组和控件数组的有关知识编写程序,要求能输入学生的学号、姓名、性别、年龄等个人简况,输入的学生人数不限,并可按学号或姓名查询。界面设计用到了三个command即“添加”、“查询”和“退出”,八个label和四个text 用来输入学号、姓名、成绩和年龄,一个frame,一个picturebox图片框用来显示结果 其程序代码设计如下: Private Type stu id As Integer nam As String sco As Single age As Integer End Type Dim students(100) As stu Dim s As Integer Private Sub Command1_Click() Static i As Integer If Text1.Text = "" Then

VB程序设计复习题答案

VB程序设计复习题 1.Visual Basic是一种___D___的可视化程序设计语言。 A.面向机器 B.面向过程 C.面向问题 D.面向对象2.Visual Basic主窗口中不包括____B_____。 A.标题栏 B.状态栏 C.工具栏 D.菜单栏 3.程序运行中用鼠标双击当前窗体时,会触发窗体的_____C____ 事件。 A.Load B.Unload C.DblClick D.KeyPress 4.假设窗体上已有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先要执行的操作是 ____A______。 A.单击窗体上没有控件的地方 B.单击任一个控件 C.双击任一个控件 D.双击窗体上没有控件的地方 5、要设置窗体上各控件的属性,可在 ____C___ 中进行。 A.窗体布局窗口 B.工程资源管理器窗口 C.属性窗口 D.窗体窗口 6.设变量A的值为-2,则___A___函数的执行结果与其他三个不一样。 A.Val("A") B.Int(A) C.Fix(A) D.-Abs(A) 7.要在窗体Forml的标题栏上显示"统计程序",可用___B___语句。 A.https://www.doczj.com/doc/e81621631.html,="统计程序" B.Form1.Caption="统计程序" C. Forml.Caption=统计程序 D.https://www.doczj.com/doc/e81621631.html,=统计程序 8.函数String(n, "str")的功能是 B 。 A.把数值型数据转换为字符串 B.返回由n个字符组成的字符串 C.从字符串中取出n个字符 D.从字符串中第n个字符的位置开始取子字符串 9、定义变量如下: Dim MyVar MyVar =”come see me “ 若在立即窗口中显示MyVar的值,下面正确的是( A )

VB程序练习题整理稿剖析

1.退出Visual Basic 的快捷键是______。A. Ctrl+Q B.Shift+Q C.Alt+Q 2.窗体设计器是用于设计______。 A.应用程序的界面 C.应用程序的代码D. Ctrl+Alt+Q B. 对象的属性D. 窗体的代码 3.启动Visual Basic 后,VB为用户建立的第一个窗体是______。 A.Form1 B.Form C.窗体1 D. 窗体 4.启动Visual Basic 后,VB为用户新建立的工程的名字是______。 A.窗体1 B. 工程1 C.窗体 D. 工程 5.工程资源管理器窗口包含的文件类型有______种。 A.1 B.2 C.3 D. 4 6.如果VB环境中缺少某个窗口,一般应从主菜单______的下拉菜单中找到相应的激活命令。 A.编辑C.调试B. 文件D. 视图 7.能够通过标准工具栏打开的窗口是______。 A.代码窗口 C.属性窗口 8.窗体文件的扩展名______。B. 设计器窗口D. 窗体布局窗口 A..bas B. vbp C..exe 9.工程文件的扩展名______。 A..com D. frm B. vbp C..exe D. bas 10.Visual Basic的编程机制是______。 A.面向过程C.事件驱动B. 面向对象D. 可视化 (三)练习题 使用VB建立一个应用软件的全过程有哪些步骤?。1.具体过程如下(1)在窗体上建立用户窗口(界面)对象。 (2)分别对对象设置属性。 (3)分别对对象事件的过程编程且完成代码输入。 (4)运行程序和调试程序。 (5)保存程序。 1. 2.保存VB文件,至少要保存几个文件?应先保存什么文件?2.至少保存2个文件,先保存窗体文件,后保存工程文件。

相关主题
文本预览
相关文档 最新文档