vb期末考试复习资料(经典总结版)_第1页
vb期末考试复习资料(经典总结版)_第2页
vb期末考试复习资料(经典总结版)_第3页
vb期末考试复习资料(经典总结版)_第4页
vb期末考试复习资料(经典总结版)_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章VISUALBASIC的特点与版本

例1与传统的程序设计语言相比,VisualBasic最突出的特点是

A.结构化程序设计B.程序开发环境

C.程序调试技术D.事件驱动编程机制

【分析】传统的程序设计语言是面向过程的,但一般都可以实现结构化程序设计,有的也提供了较

完善的集成开发环境和程序调试技术,但它们基本上都没有事件驱动编程机制。与这些语言相比,

VisualBasic最突出的特点就是事件驱动编程机制。

【答案】D

例2下列成员中不属于主窗口的是

A.最大化按钮B.状态栏C.系统菜单D.工具栏

【分析】主窗口由标题栏、菜单栏和工具栏构成,其中标题栏上有系统菜单(左端)以及最小化、最

大化和关闭按钮。因此,最大化按钮、系统菜单和工具栏都是主窗口中的成员,而主窗口中没有状

态栏。

【答案】B

例;在属性窗口中,属性列表可以按两种顺序排列,这两种顺序是和。

【分析】为了便于查找,属性窗口对当前对象的属性提供了两种排列方式,一种是按字母表顺序,

另种是按属性的分类顺序。

【答案】按字母序或按分类序

按分类序或按字母序

U1J4VisualBasic6.。的集成开发环境有两种方式,第一种方式是,第二种方式是。

【分析】在默认情况下,VisualBasic6.0集成开发环境为多文档界面方式,即MDI方式,在这种

方式下,窗体设计器窗口是固定的。使用“工具”菜单中的“选项”命令,可以把集成开发环境设

置为单文档界面方式,即SDI方式,在这种方式下,窗体设计器窗口是浮动的。

【答案】多文档界面或MDI

单文档界面或SDI

第二章对象及其操作

例1为了通过属性窗口把窗体的ControlBox属性设置为True(或False),下列正确的操作是

A.直接键入True(或False)

B.利用对话框设置属性值

C.选择ControlBox,然后按回车键

D.双击ControlBox属性条

【分析】ControlBox属性是--个逻辑值,其取值只有两种,即True和False,一般可以通过选择输

入,即单击属性条右端的箭头,下拉显示属性值True和False,从中选择所需要的值。在上面给出

的答案中,前三个答案都不能实现所要求的操作,只有答案D才能实现。实际上,对于只有两种可

能取值(True或False、0或1)的属性,都可以通过双击属性条设置。

【答案】D

例:下列语句用来设置窗体Forml的属性,其中在运行时不能正确操作的语句是

A.Forml.Caplin="FormTest"B.Forml.Name="FormTest"

C.FormI.MaxButton=FalseD.Forml.MinButton=False

【分析】这4个语句用来在运行时设置窗体的属性。其中Forml.Captin="FormTest"用来设置窗体

的标题,Forml.Name="FormTest"用来设置窗体的名称,Form1.MaxButton=False用来隐藏窗体的最

大化按钮,Forml.MinButton=False用来隐藏窗体的最小化按钮。从语法格式上来看,似乎没有什么

问题,在输入时也不会产生错误。但是,窗体的Name属性是一个“只读”属性,在运行时不能改

变,因此,程序运行后,当执行到Forml.Name="FormTest”语句时将会出错。

【答案】B

例3下列不能打开属性窗口的操作是

A.执行“视图”菜单中的“属性窗口”命令

B.按F4键

C.按Ctrl+T键

D.单击工具栏上的“属性窗口”按钮

【分析】在上面选择中,Ctrl+T键用来执行“工程”菜单中的“部件”命令,打开的是“部件”窗

U,不是属性窗口,其他3个选项都可以打开属性窗口。

【答案】C

例4为了对多个控件执行操作,必须选择这些控件。下列不能选择多个控件的操作是

A.按住Alt键,不要松开,然后单击每个要选择的控件

B.按住Shift键,不要松开,然后单击每个要选择的控件

C.按住Ctrl键,不要松开,然后单击每个要选择的控件

D.拖动鼠标画出一个虚线矩形,使所选择的控件位于这个矩形内

【分析】教程中介绍了选择控件的两种方法,即按住Shift键单击每个要选择的控件和拖动鼠标画

虚线矩形。除这两种方法外,按住Ctrl键单击每个要选择的控件也可实现选择控件的操作,但按住

Alt键单击每个要选择的控件不能达到目的。

【答案】A

例5为了在运行时把窗体Forml的标题(Caption属性)设置为“TestProgram",应使用的语句为

【分析】窗体的Caption属性用来设置窗体的标题,一般格式为:

[窗体.]C叩tion[=字符串]其中的“窗体.”可以是Forml.,可以省略,也可以是关键字Me:而“字

符串”就是要设置的窗体的标题。因此,本题有几种不同的答案。

【答案】

Form1.Caption="TestProgram"

或Me.Caption="TestProgram"

或Caption="TestProgram"

例6当选择了多个控件后,其中有一个控件是“基准控件”,设置“基准控件”的方法是

【分析】在一般情况下,如果选择了窗体上的多个控件,则其中有个控件自动成为“基准控件”。

选择方法不同,“自动基准控件”也不一样。如果按住Ctrl或Shift键选择多个控件,则最后单击的

控件为“基准控件”;如果用拖动鼠标的方法选择控件,则最后画到窗体上的控件是“基准控件”。

如果想用其他某个控件作为“基准控件”,可以在选择多个控件后,单击该控件。

【答案】选择多个控件后,单击其中的某个控件,即可把该控件设置为“基准控件”。

第三章VB程序设计基础

例1在设计阶段,当双击窗体上的某个控件时,所打开的窗口是

A.工程资源管理器窗口B.工具箱窗口

C.代码窗口D.属性窗口

【分析】VisualBasic集成开发环境下的窗U(包括代码窗口)基本上都可以通过执行“视图”菜单

中相应的菜单命令打开。在设计阶段,如果单击窗体上的某个控件,则只能打开代码窗口。

【答案】C

例2下列打开“代码窗口”的操作中不正确的是

A.按F4键

B.单击“工程资源管理器”窗口中“查看代码”按钮

C.双击已建立好的控件

D.执行“视图”菜单中“代码窗口”命令

【分析】在所给出的选择中,按F4键可以打开属性窗口,不可能用来打开代码窗口,而其他3个

选项都可以用来打开代码窗口。

【答案】A

例3下列正确的VisualBasic注释语句是

A.Dima(10)AsIntegerRem这是一个VB程序

B.'这是一个VB程序

PrivateSubCommandl_Click()...

C.a=l:b=2:Rem这是一个VB程序:c=3

D.IfShift=6AndButton=2Then

Print"BBBB"Rem这是一个VB程序

EndIf

【分析】在使用注释语句时,有以下“禁忌”:当注释出现在--个语句行的后面时,只能用撇号作

为注释符,不能使用Rem;在复合语句行中,注释必须是最后一个语句,不能放在复合语句行中;

注释语句不能放在续行符的后面。在所给出的选择中,A、C、D都是不正确的。

【答案】B

例4为了建立窗体的Click事件过程,即Form_Click,应先在代码窗口的______栏中选择Form,

然后在_____栏中选择Clicko

【分析】代码窗口的顶部(标题栏的下面)分为左右两栏,左边一栏是“对象”栏,右边一栏是“过

程”栏。在“对象”栏的下拉列表中可以选择窗体或控件的名称,在“过程”栏中可以选择事件的

名称。因此,为了建立事件过程Form_Qick,应在“对象”栏中选择Form,然后在“过程”栏中选

择Clicko

【答案】第一个空:“对象”或对象

第二个空:“过程”或过程

例5假定窗体的名称为Forml,对该窗体编写如下代码:

PrivateSubForm_Load()

Form[.Caption="AAAAA"

Me.Caption="BBBBB"

Caption="CCCCC"

EndSub

程序运行后,窗体的标题是。

【分析】FormLoad是程序运行后首先要执行的事件过程。在上面的事件过程中,有3个赋值语句,

这3个语句都用来对对象赋值,即对对象的Caption属性赋值,它们都可以设置窗体的标题。第一个

语句把窗体的标题设置为“AAAAA",执行第二个语句后,窗体的标题变为“BBBBB”,而执行第

三个语句后,窗体的标题变为“CCCCC”。

【答案】CCCCC

例6编写程序,用来设置窗体的位置和大小。要求:程序运行后,窗体的初始位置为(3000,3000),

其初始宽度和高度均为5000:单击一次窗体后,窗体位置的X坐标和Y坐标各减少一半,其宽度

和高度均减少到原来的一半。

【分析】窗体的位置由Top属性和Left属性来设置,宽度和高度分别由Width属性和Height属性

来设置。窗体的初始属性可以通过属性窗口设置,也可以在Form_Load事件过程中设置;而单击窗

体后的属性可以在Form_Click事件过程中设置。

程序如下:

PrivateSubFonn_Load()

Top=3000

Left=3000

Width=5000

Height=5000

EndSub

PrivateSubForm_Click()

Form1.Top=Form1.Top/2

Form1.Left=Form1.Left/2

Form1.Width=Form1.Width/2

Form1.Height=Form1.Height/2

EndSub

窗体的初始位置和大小在Form_Load事件过程中设置,程序运行后,显示窗体的初始位置和大小。

单击一次窗体后,其位置的X坐标、Y坐标及窗体的宽度、高度均减少到原来的一半。此后如果再

单击一次窗体,则仍减少一半。如果把Form_C1ick事件过程改为:

PrivateSub,Form_Click()

Forml.Top=1500

Form1.Left=1500

Forml.Width=2500

Form1.Height=2500

EndSub

则程序运行后,无论单击多少次窗体,窗体的位置和大小都是原来的一半。

该程序用到「窗体的4个属性,即TopxLeft>Width和Height。在设置这几个属性0寸,窗体名称(Forml)

可以有,也可以没有,也可以换成关键字Me。

例7在VisualBasic中,下列优先级最高的运算符是

A.*B.\C.<D.Not

【分析】VisualBasic提供了3类运算符,即算术运算符、关系运算符和逻辑运算符。在3类运算

符中,算术运算的优先级最高,其次是关系运算,最后是逻辑运算。在该例中,C和D分别为关系

运算符和逻辑运算符,A和B是算术运算符,A和B的优先级比C和D高。而对于A和B来说,

乘法(*)的优先级比整除(\)的优先级高。因此,优先级最高的应当是乘法运算符(*)。

【答案】A

例8以下关系表达式中,其值为False的是

A."XYZ"<"XYz"

B."VisualBasic"="visualbasic"

C."the"<>"there"

D."Integer">"Int"

【分析】该例通过关系表达式对字符串进行比较。在VisualBasic中,字符串数据按其ASCH码值

进行比较。在比较两个字符串时,首先比较两个字符串的第一个字符,其中ASCII码值较大的字符

所在的字符串大。如果第一个字符相同,则比较第二个……依次类推。在该例的4个选择中,A、C、

D的值均为True;B中的两个字符串基本相同,但第•个字符串的第一个字母是大写字母,而第二

个字符串的第一个字母是小写字母,第一个字符串小于第二个字符串,即两个字符串不相等,因此

"VisualBasic"="visualbasic"的值为假,即False«

【答案】B

例9下列正确的VisualBasic注释语句是

A.Dima(10)AsIntegerRem这是•个VB程序

B.’这是一个VB程序

PrivateSubCommandl_Click()...

C.a=l:b=2:Rem这是一个VB程序:c=3

D.IfShift=6AndButton=2Then

Print"BBBB"Rem这是一个VB程序

EndIf

【分析】在使用注释语句时,有以下“禁忌":当注释现在一个语句行的后面时,只能用撇号作

为注释符,不能使用Rem;在复合语句行中,注释必须是最后一个语句,不能放在复合语句行中;

注释语句不能放在续行符的后面。在所给出的选择中,A、C、D都是不正确的。

【答案】B

例10为了建立窗体的Click事件过程,即Form_Click,应先在代码窗口的栏中选择Form,

然后在栏中选择Click。

【分析】代码窗口的顶部(标题栏的下面)分为左右两栏,左边一栏是“对象”栏,右边一栏是“过

程”栏。在“对象”栏的下拉列表中可以选择窗体或控件的名称,在“过程”栏中可以选择事件的

名称。因此,为了建立事件过程Form_Qick,应在“对象”栏中选择Form,然后在“过程”栏中选

择Clicko

【答案】第一个空:“对象”或对象

第二个空:“过程”或过程

例II假定窗体的名称为Form1,对该窗体编写如下代码:

PrivateSubForm_Load()

Form[.Caption="AAAAA"

Me.Caption="BBBBB"

Caption="CCCCC"

EndSub

程序运行后,窗体的标题是。

【分析】FormLoad是程序运行后首先要执行的事件过程。在上面的事件过程中,有3个赋值语句,

这3个语句都用来对对象赋值,即对对象的Caption属性赋值,它们都可以设置窗体的标题。第一个

语句把窗体的标题设置为“AAAAA",执行第二个语句后,窗体的标题变为“BBBBB”,而执行第

三个语句后,窗体的标题变为“CCCCC”。

【答案】CCCCC

例12编写程序,用来设置窗体的位置和大小。要求:程序运行后,窗体的初始位置为(3000,3000),

其初始宽度和高度均为5000;单击一次窗体后,窗体位置的X坐标和Y坐标各减少一半,其宽度

和高度均减少到原来的一半。

【分析】窗体的位置由Top属性和Left属性来设置,宽度和高度分别由Width属性和Height属性

来设置。窗体的初始属性可以通过属性窗口设置,也可以在Form_Load事件过程中设置;而单击窗

体后的属性可以在Form_Click事件过程中设置。

程序如下:

PrivateSubForm_Load()

Top=3000

Left=3000

Width=5000

Height=5000

EndSub

PrivateSubForm_Click()

Form1.Top=Form1.Top/2

Forml.Left=Forml.Left/2

Form1.Width=Form1.Width/2

Form1.Height=Form1.Height/2

EndSub

窗体的初始位置和大小在FormJLoad事件过程中设置,程序运行后,显示窗体的初始位置和大小。

单击一次窗体后,其位置的X坐标、Y坐标及窗体的宽度、高度均减少到原来的一半。此后如果再

单击一次窗体,则仍减少一半。如果把Form_C1ick事件过程改为:

PrivateSub,Form_Click()

Forml.Top=1500

Forml.Left=1500

Forml.Width=2500

Form1.Height=2500

EndSub

则程序运行后,无论单击多少次窗体,窗体的位置和大小都是原来的一半。

该程序用到了窗体的4个属性,即Top^LeftsWidth和Height。在设置这几个属性时,窗体名称(Forml)

可以有,也可以没有,也可以换成关键字Me。

第四章数据的输入与输出例题分析

例1在窗体上画一个命令按钮(名称为Commandl),然后编写如下事件过程:

PrivateSubCommandl_Click()

a=4

b=5

c=6

Printa=b+c

EndSub

程序运行后,单击命令按钮,其结果为

A.a=llB.a=b+cC.FalseD.出错

【分析】Print方法具有计算和输出两种功能。当Print的输出项是表达式时,将先计算表达式,然后

输出表达式的值。所计算和输出的表达式可以是算术表达式,也可以关系表达式或逻辑表达式。该

例中的a=b+c是一个关系表达式,其中a的值为4,b+c的值是1LPrinta=b+c实际上执行的是Print

4=11,显然是一个“假”值。

【答案】C

注意,有人可能会认为本例的答案应当为D,这是不对的。

例2下列不正确的语句是

A.Printa=10+20

B.Print"a=";10+20

C.Print"a"="10+20"

D.Printa=;10+20

【分析】Print方法的输出项是一个表达式,包括算术表达式(字符串表达式)、关系表达式和逻辑表

达式。在所给出的选择中,A是用Print方法输出一个关系表达式的值,比较两个算术表达式的值是

否相等;B是用Print输出一个字符串和一个算术表达式的值,其中字符串照原样输出,然后计算并

输出算术表达式的值;C是用Print方法输出一个关系表达式的值,比较两个字符串是否相等,这儿

个语句都是正确的,可以输出正确的结果,而D会产生语法错误。

【答案】D

例3在窗体上画一个命令按钮,然后编写如下代码:

PrivateSubCommandl_Click()

a&=InputBox("请输入第一个数”)

b&=InputBox("请输入第二个数”)

Printb&+a&

EndSub

程序运行后,单击命令按钮,在两个输入对话框中先后输入12345和54321,程序的输出结果是

A.66666B.5432112345

C.1234554321D.出错

【分析】InputBox函数的返回值是一个字符串,但由于a&和b&通过类型说明符被显式地定义为

长整型变量,因而在执行InputBox函数后,所返回的字符串值被转换为长整型值,它实际上相当于

执行一次类型转换,即:

a&=CLng(InputBox("请输入第一个数"))

b&=CLng(InputBox("请输入第二个数"))

这样,当执行Print方法时,将计算并输出算术表达式b&+a&的值。

【答案】A

例4’假定程序中有如下语句:

answer=MsgBox("第一个字符串",vbAbortRetry!gnore_

OrvbCritical_

OrvbDefaultButton3,_

"第二个字符串”)

执行该语句后,将显示•个信息框,此时如果按回车键,则answer的值为

A."第二个字符串”B.5C.3D.7

【分析】MsgBox函数的返回值是一个整数,这个整数与所选择的按钮有关。本例的第二个参数由

三部分组成,其中vbAbortRetrylgnore用来在信息框中显示3个按钮,分别为“终止”、“重试”

和"忽略";vbCritical用来在信息框中显示CriticalMessage图标;而vbDefaultButton3把信息框的

第三个按钮(即“忽略”)指定为默认按钮。执行该语句后,在信息框中显示3个按钮,并把第三个按

钮作为默认按钮,此时如果按回车键,则返回值是该按钮所对应的值。由于“忽略”按钮对应的值

是5,因此变量answer的值为5。

[答案]B

例5.行下列语句后,显示输入对话框,此时如果单击“确定”按钮,则变量stri叩ut的内容是o

strinput=InputBox(“请输入字符串”,“字符串对话框”,“字符串”)

【分析】在执行InpulBox函数时,会产生一个输入对话框,该函数有7个参数,前三个参数都是

字符串。其中第•个参数用来在输入对话框内显示一个提示用户输入的字符串,第二个参数是对话

框的标题,第三个参数是输入的默认信息。也就是说,在执行InputBox函数后,如果用户没有输入

任何信息,则可用此默认字符串作为输入值。如果不想用这个默认字符串作为输入值,则可在输入

区直接键入数据,以取代默认值。在该例中,显示对话框后直接单击“确定”按钮,因此第三个参

数就是默认的输入值。

【答案】字符串

例6阅读程序:

PrivateSubForm_Click()

msgl$="继续吗?"

msg2$="操作对话框"

r=MsgBox(msgl$,vbYesNoOrvbDefaullButton2,msg2$)

EndSub

程序运行后,单击窗体,将产生一个信息框。此时如果直接按回车键,则相当于用鼠标单击信息框

中的按钮。

【分析】本例用MsgBox函数产生信息框,该函数的第一个参数在信息框内显示,第二个参数分为

两部分,其中前一部分(即vbYesNo)用来在信息框中产生两个按钮,分别为“是”和“否”,后一部

分(即vbDefaultButton2)把第二个按钮(即“否”)设置为默认按钮;第三个参数是信息框的标题。程

序运行后,单击窗体,所产生的信息框的标题为“操作对话框”,在信息框内显示的内容是“继续吗?”,

两个按钮分别是“是”和“否”,其中“否”是默认按钮。此时如果按回车键,则与单击“否”按钮

效果相同。

【答案】“否”或第二个

例7设有如下程序:

PrivateSubForm_Click()

a=32548.56

PrintFormat(Int((a*10+0.5))/10,"000,000.00")

EndSub

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

【分析】本例用Format函数对数值进行格式化输出,要输出的数值存放在变量a中。Format函数

的第•个参数对变量a进行了舍入处理,保留一位小数,第二位小数四舍五入,其值为32548.6oFormat

函数的第二个参数是格式说明符,使用的说明符有“0”和“,”,保留两位小数,该函数的返回值为

032,548.60,

【答案】032,548.60

例8编写程序,计算圆的面积。

【分析】圆面积的计算公式为:

S=nr2

其中r是要计算面积的圆的半径,程序运行后从键盘上输入。

程序如下:

PrivateSubForm_Click()

ConstPI=3.14159

DimrAsSingle,SAsSingle

r=InputBox("请输入圆的半径”,“输入数据“,“50”)

S=PI*r*r

PrintnS=";Format(S,"###,###.##")

EndSub

程序运行后,单击窗体,将显示一个输入对话框,在该对话框中输入圆的半径(默认为50),然

后单击确定按钮或按回车键,即可在窗体上输出圆的面积。假定在对话框中输入35,则单击“确定”

按钮后,输出结果为:S=3,848.45o

例9从键盘上输入小时、分和秒,把它转换为秒数并输出。

【分析】1小时等于60分,1分钟等于60秒。把小时数乘以60*60,把分钟数乘以60,再加上秒

数,就等于总秒数。设小时数为H,分钟数为M,秒数为S,则H小时、M分、S秒的总秒数SS

为:

SS=H*60*60+M*60+S

程序如下:

PrivateSubForm_Click()

H=InputBox("请输入小时”,“小时”)

H=Val(H)

M=InputBox(“请输入分”,“分")

M=Val(M)

S=InputBox("请输入秒“,“秒”)

S=Val(S)

SS=S+M*60+H*60*60

PrintH;“小时”;M;“分”;S;“秒=”;SS;“秒”

EndSub

程序运行后,单击窗体,将先后显示3个输入对话框,要求输入小时、分和秒。假定分别输入

5、45和25,则输出结果为:

5小时45分25秒=20725秒

第五章常用标准控件例题

例1在窗体上画两个文本框(其名称分别为Textl和Text2)和一个命令按钮(其名称为Commandl),

然后编写如下两个事件过程:

PrivateSubCommandl_Click()

Textl.Text="ComputerRankExamination"

EndSub

PrivateSubTextl_Change()

Text2,Text=UCase(Text1.Text)

EndSub

程序运行后,单击命令按钮,则在Text2文本框中显示的内容是

A.ComputerRankExamination

B.computerrankexamination

C.COMPUTERRANKEXAMINATION

D.空字符串

【分析】该例有两个事件过程,一个是命令按钮的Click事件过程,一个是文本框的Textl的Change

事件过程,当单击命令按钮时,执行前一个事件过程,而当在文本框Textl中输入信息时,将执行

该文本框内Change事件过程。在命令按钮事件过程中,为文本框Textl的Text属性赋值,即在该文

本框中显示字符串“ComputerRankExamination在这种情况下,将触发Textl文本框的Change

事件、把文本框Texll中的所有字母转换为大写字母,并在文本框Text2中显示出来。程序运行后,

如果单击命令按钮,则将先后触发命令按钮的Click事件和文本框Textl的Change事件,分别在两

个文本框中显示由两个事件过程所指定的内容。

【答案】C

例2在窗体上画一个名称为Listl的列表框,一个名称为Labell的标签。列表框中显示若干城市的

名称。当单击列表框中的某个城市名时,在标签中显示选中城市的名称。下列能正确实现上述功能

的程序是

A.PrivateSubListl_Click()

Label1.Caption=Listl.Listindex

EndSub

B.PrivateSubListl_Click()

Labell.Name=Listl.Listindex

EndSub

C.PrivateSubListl_Click()

Labell.Name=Listl.Text

EndSub

D.PrivateSubListl_Click()

Labe11.Caption=Listl.Text

EndSub

【分析】所给出的4个选择都是列表框的Click事件过程。当单击列表框中的某一项时,将发生单

击事件,同时选择一个列表项,这个列表项可以用列表框的Text属性来表示。也就是说,Listl.Text

就是所选择的项目。此外,为了在标签中显示所选择的列表项,必须使用列表框的标题属性,即

Labell.Captiono因此,正确的语句应当是:

Label1.Caption=Listl.Text

在VisualBasic中,不能在运行期间改变控件或窗体的名称(Name属性),因此B和C两个选择

都是错误的;而列表框的Lisllndex属性是所选择的列表项的位置,即列表项的标题,不是列表项本

身。

【答案】D

例3在窗体匕画一个文本框、一个标签和•个命令按钮,其名称分别为TextlNLabe11和Command1,

然后编写如下两个事件过程:

PrivateSubCommand1_Click()

a=InputBox("请输入一个字符串”)

Textl.Text=a

EndSub

PrivateSubTextl_Change()

Label1.Caption=UCase(Mid(Textl.Text,8))

EndSub

程序运行后,单击命令按钮,将显示一个输入对话框,如果在该对话框中输入字符串“VisualBasic”,

则在标签中显示的内容是

A.visualbasicB.VISUALBASIC

C.basicD.BASIC

分析】该例包括两个事件过程,其中命令按钮事件过程通过输入对话框来输入一个字符串,并把这

个字符串赋给文本框。而当改变文本框的内容时,将触发文本框的Change事件。因此,在把输入的

字符串赋给文本框时,将执行文本框的Change事件过程,对标签的Caption属性赋值,该值是:首

先取出文本框中第八个字符之后的全部字符,然后把它们转换为大写字母。由于文本框中的字符串

为“VisualBasic",第八个字符为为”,它之后的字符为“Basic",执行Ucase函数后,转换为大写,

即“BASIC”。

【答案】D

例4在窗体上画两个文本框(名称分别为Textl和Text2)和一个命令按钮(名称为Command!),然后

编写如下事件过程:

PrivateSubCommand1Click()

Textl.Text=InputBox("请输入身高")

Text2.Text=InputBox("请输入体重")

EndSub

程序运行后,如果单击命令按钮,将先后显示两个输入对话框,在两个输入对话框中分别输入1.78

和75,则两个文本框中显示的内容分别为和。

【分析】在一般情况下,通过InputBox函数输入的数据被赋给一个变量。在本例中,没有使用变

量,而是直接把输入对话框中的值赋给文本框的Text属性。因此,第一个文本框接收的是身高,第

二个文本框接收的是体重。

【答案】1.7875

例5为了在运行时把“d:\pic”文件夹下的图形文件a.jpg装入图片框Picturel,所使用的语句为

分析】在运行期间,可以用LoadPicture函数把指定的图形文件装入窗体、图片框或图像框,它实

际上是把图形文件赋给对象的Picture属性。•般格式为:

[对象.]Picture=LoadPicture(“文件名”)其中的“文件名”可以是多种格式的图形文件,包

括.bmp、.ico、.wmf、.emf、.jpg、.gif等,提供的“文件名”可以含有路径。对于本例来说,“文件

名”(包括路径)是:d:\pic\a.jpg,“对象”是Pictured

【答案】Picture1.Picture=LoadPicture("d:\pic\a.jpg")

例6在窗体上画一个列表框、一个命令按钮和一个标签。程序运行后,在列表框中选择一个项目,

然后单击命令按钮,即可将所选择的项目删除,并在标签中显示列表框当前的项目数,运行情况如

图6-1所示•下面是实现上述功能的程序,请填空。

PrivateSubForm_Load()

List1.Additem"AAAAA"

Listl.Additem"BBBBB"

List1.Additem"CCCCC"

Listl.Additem"DDDDD"

EndSub

PrivateSubCommandl_Click()

DimLAsInteger

L=______

Ifind>=0Then

Listl.RemoveItem

Label1.Caption=

Else

MsgBox"请选择要删除的项目"

EndIf

EndSub

(分析】本例提供的程序包括两个事件过程,其中FormLoad事件过程用来向列表框中添加项目,

而CommandlClick事件过程删除列表框中被选择的项目,并在标签中显示列表框当前的项目数,需

要填空的代码在这个事件过程中。

为了删除列表框中指定的项目,可以使用Removeitem方法,其格式为:

列表框.Removeltem索引值其中的“索引值”是项目的地址,列表框中的项目从。开始计数,被选择

的项目的索引值就是列表框的Listindex属性。为了删除列表框中被选择的项H,必须先确定该项目

的索引值,即列表框的Listindex属性,然后就可以用Removeitem方法将其删除。本题中的第一个

空是被选择的项目的索引值,应为Listl.Listlndex,并把它赋给变量L。第二个空是Removeitem方

法的参数,即“索引值”,由于该值已保存在变量L中,因此应填入L。第三个空是列表框中当前的

项目数,它就是列表框的ListCount属性。

【答案】List1.Listindex

L

List1.ListCount

例7在窗体上画一个图片框、一个垂直滚动条和一个命令按钮(标题为“设置属性”),通过属性窗

口在图片框中装入一个图形,图片框的宽度与图形的宽度相同,图片框的高度任意。编写适当的事

件过程。程序运行后,如果单击命令按钮,则设置垂直滚动条的属性如下:

Min100

Max2400

LargeChange200

SmallChange20

之后就可以通过移动滚动条匕的滚动框来放大或缩小图片框。

【分析】本例要求程序实现两个方面的功能,其一是当单击命令按钮时设置滚动条的几个属性;其

二是当移动滚动条的滚动框时扩大或缩小图片框的高度。第一个功能可以通过下面的事件过程来实

现:

PrivateSubCommand1_Click()

VScroll1.Min=100

VScrolll.Max=2400

VScroll1.LargeChange=200

VScroll1.SmallChange=20

EndSub

第二个功能可以用下面的事件过程来实现:

PrivateSubVScrolll_Change()

Picture1.Height=VScroll1.Value

EndSub

例8在窗体上画两个命令按钮和一个标签,把两个命令按钮的标题分别设置为“缩小”和“扩大”;

把标签的AutoSize属性设置为True,标题设置为“计算机等级考试”。程序运行后,如果单击第一

个命令按钮,则可使标签中标题的字体大小缩小L2倍;如果单击第二个命令按钮,则可使标签中

标题的字体大小扩大1.2倍。

【分析】命令按钮和标签的标题以及标签的AutoSize属性可以通过属性窗口设置,也可以在运行

期间设置。程序运行后,首先执行Form_Load事件过程,可以把设置标题和AutoSize属性的代码放

在该事件过程中。根据题意,当单击两个命令按钮时,分别使得标签中的字体缩小或扩大1.2倍,

而字体的大小可以通过标签的FontSize属性来设置。因此,如果想使标签中的字体缩小1.2倍,则

可执行下面的语句:

Label1.FontSize=Label1.FontSize/1.2

而如果想使标签中的字体扩大1.2倍,则应执行的语句为:

Label1.FontSize=Label1.FontSize*1.2程序如下:

PrivateSubFormLoad()

Label1.Caption:”计算机等级考试”

Command1.Caption="缩小"

Command2.Caption="扩大”

Label1.AutoSize=True

EndSub

PrivateSubCommand1_Click()

Label1.FontSize=Label1.FontSize/1.2

EndSub

PrivateSubCommand2_Click()

Label1.FontSize=Label1.FontSize*1.2

EndSub

第六章VB控制结构例题

例1已知一个人出生的年、月、II分别存放在变量yO、mO、dO中,当前H期的年、月、II分别存

放在变量yl、ml、dl中,这个人的实足年龄存放在变量age中。则以下可以正确计算实足年龄的程

序段是

A.B.

age=yl-yOage=yl-yO

Ifml<mOThenIfml<mOOrdKdOThen

age=age-1age=age-1

Elselfdl<dOThenEndIf

age=age-1

EndIf

C.D.

age=yl-yOage=yl-yO

Ifml<mOThenIfml<mOThen

age=age-1age=age-1

EndIfEndIf

Ifml=mOAnddl<dOThenIfdl<dOThen

age=age-1age=age-1

EndIfEndIf

【分析】所谓实足年龄,指的是实际到达的年龄,即当前的年、月、日都分别大于或等于出生的年、

月、日。例如一个人的出生日期是1964年8月23日,当前日期为2002年8月23日,则这个人的

实足年龄就是38岁;如果当前日期为2002年7月或2002年8月22日,则这个人的实足年龄就是

37岁。

这就是说,为了计算一个人的实足年龄,需要进行以下操作:

(1)计算出yl-yO,并把结果赋给age。

(2)如果ml<m0,则实足年龄为age-1。

(3)否则,如果ml=m0但dlVdO,则实足年龄为age-1。

(4)否则,如果ml=m0且dl>=dO,则实足年龄为age。

可以看出,为了计算实足年龄,可以先计算age=yl-yO,如果ml<m0,则不再考虑dl是否大

于dO,实足年龄=28©-1;如果ml=m0,则还要看dl是否关于等于dO,如果小于,则实足年龄=age-1,

否则实足年龄=age。

根据上面的分析,答案A显然是不正确的,因为在测试ml<m0后,就没有必要再测试dl是否大

于dO。答案B和D类似,只单独测试月或日,不能得到正确结果,只有答案C正确地描述了上面

所分析的情况。

【答案】Q

例2在窗体上画一个命令按钮和一个文本框,然后编写如下程序:

PrivateSubCommand1_Click()

a=10

t="旅游景点:

&Uf(a>3,"长城",

&Hf(a<8,"故宫",

&IIf(a<>7,"颐和园","")

Textl.Text=t

EndSub

程序运行后,单击命令按钮,则在文本框中显示的内容是

A.旅游景点:长城故宫B.旅游景点:长城颐和园

C.旅游景点:颐和园D.旅游景点:故宫

【分析】Hf函数有三个参数,其中第一个参数是一个Boolean值,如果该参数的值为True,则函数

的返回值为第二个参数;如果第一个参数的返回值为False,则函数的返回值为第三个参数。该例中

变量a的值为10,在第•个Hf函数中,第一个参数为True,其返回值为第二个参数,即“长城”;

在第二个Hf函数中,第个参数为False,其返回值为第三个参数,即空字符串;而在第三个Hf函

数中,第一个参数为True,其返回值为第二个参数,即“颐和园”。变量t的值为:

"旅游景点:"&"长城"&"颐和园"

【答案】B

例3假定有下面的程序段:

Fori=1To3

Forj=1Toi

Fork=jTo3

Print"i=";i,"j=";j,"k=k

Nextk

Nextj

Nexti

这是一个三重循环程序,在这个程序中,外层、中层和内层循环的循环次数是

A.3、6和14B.3、8和16

C.3、4和12D.3、9和18

【分析】在多重循环中,外层循环变化一次,内层循环从头到尾执行一遍。该题是一个三重循环,

而且中层循环变量的终值和内层循环变量的初值是随上一层循环的循环变量的变化而变化的,因此

需要逐层加以计算后累加出各层的循环次数。模拟计算机的计算过程,计算各层的循环次数如下:

(1)外层循环:i=lTo3,循环次数为3

(2)中层循环:当i=l时,j=lTo1,循环1次

当i=2时,j=lTo2,循环2次

当i=3时,j=lTo3,循环3次

中层循环的循环次数为6

(3)内层循环:当j=l时,k=lTo3,循环3次

当j=l时,k=lTo3,循环3次

当j=2时,k=2To3,循环2次

当j=l时,k=lTo3,循环3次

当j=2时,k=2To3,循环2次

当j=3时,k=3To3,循环1次

内层循环的循环次数为14

【答案】A

例4假定有以下当循环:

WhileNot条件

循环体

WEnd

则执行循环体的“条件”是

A.TrueB.1C.FalseD.-1

【分析】在当循环中,只有当While后面的“条件”为True时才能进入循环,执行循环体。也就

是说,在While条件中,只有“条件”为True才能执行循环体。本题在“条件”前加了一个取反

运算符Not,要想执行循环体,必须对“条件”本身求反,即“条件”必须为False。

[答案]C

例5阅读下面的程序:

PrivateSubForm_Click()

Dimm,nAsInteger

m=InputBox("请输入M的值”)

m=Val(m)

ml=m

n=Inpu田ox(”请输入N的值”)

n=Val(n)

nl=n

DoWhilenOO

remin=rnModn

m=n

n=remin

Loop

Printml,nl,m

EndSub

程序运行后,单击窗体,在输入对话框中分别输入16和24,则程序在窗体上的输出结果为

A.16244

B.16248

C.24166

D.24168

【分析】本题提供的是用“辗转相除法”求两个整数的最大公约数的程序。一般来说,假定有两个

整数m和n(m>n),把m作为被除数,n作为除数,相除后余数为r。如果r不等于0,则令m=n,

n=r,再进行一次除法运算(以新的m作为被除数,n作为除数),得到新的r。如果r仍不等于0,则

重复上述过程,直到r=0为止,此时的n就是两个数的最大公约数。

在本题的D。While-Loop循环中,通过辗转相除求最大公约数,循环结束的条件是相除后余数

为0,如果不为0,则一直“除”下去。这里用Mod运算符求余数,较大的整数作为被除数或者较

小的整数作为被除数都可以得到正确结果,但整除的次数可能会不一样。

例如,假定有两个数24和16,先把24作为被除数,16作为除数,相除后余数为8。再把原来

的除数16作为下一次的被除数,将上一次得到的余数8作为下一次的除数,相除后余数为0。此时

最后一次的除数8就是所求的最大公约数。

在本题的输入中,先输入16,再输入24,求出的最大公约数仍为8。

【答案】B

例6阅读下面的程序:

PrivateSubForm_Click()

DimCheck,Counter

Check=True

Counter=0

Do

DoWhileCounter<20

Counter=Counter+1

IfCounter=10Then

Check=False

ExitDo

EndIf

Loop

LoopUntilCheck=False

PrintCounter,Check

EndSub

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

A.150B.20-1

C.10TrueD.10False

【分析】这是一个二重循环,内层和外层都是D。循环。在内层循环中,执行循环体的条件是Counter

小于20,由于Counter的初值为0,因此执行循环体。在循环体中,每次循环Counter增1,达到10

后,把Check变量设置为False,同时执行ExitDo,退出内层循环。外层循环执行的条件是,变量

Check的值是True。如果Check为False,则退出外层循环,输出结果,结束程序。由于在退出内层

循环时,Check已被设置为False,因此退出内层循环后立即就可以退出外层循环。退出两层循环后,

Counter和Check的值没有发生任何改变,与退出内层循环时相同,分别为10和False»

【答案】D

例7在上面例题6的二重循环中,如果把外层循环中的Until关键字改为While,要求输出结果相

同,请填空。

Do

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论