vb期末考试复习资料(经典总结版)

更新时间:2023-04-26 23:04:01 阅读量: 实用文档 文档下载

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

第一章 VISUAL BASIC的特点与版本

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

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

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

【分析】传统的程序设计语言是面向过程的,但一般都可以实现结构化程序设计,有的也提供了较完善的集成开发环境和程序调试技术,但它们基本上都没有事件驱动编程机制。与这些语言相比,Visual Basic最突出的特点就是事件驱动编程机制。

【答案】D

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

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

【分析】主窗口由标题栏、菜单栏和工具栏构成,其中标题栏上有系统菜单(左端)以及最小化、最大化和关闭按钮。因此,最大化按钮、系统菜单和工具栏都是主窗口中的成员,而主窗口中没有状态栏。

【答案】B

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

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

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

按分类序或按字母序

例4 Visual Basic 6.0的集成开发环境有两种方式,第一种方式是______,第二种方式是______。【分析】在默认情况下,Visual Basic 6.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

例2下列语句用来设置窗体Form1的属性,其中在运行时不能正确操作的语句是A.Form1.Captin = "Form Test" B.9729c72b824d2b160b4e767f5acfa1c7aa008227 = "FormTest"

C.Form1.MaxButton = False D.Form1.MinButton = False

【分析】这4个语句用来在运行时设置窗体的属性。其中Form1.Captin="Form Test"用来设置窗体的标题,9729c72b824d2b160b4e767f5acfa1c7aa008227="FormTest"用来设置窗体的名称,Form1.MaxButton=False用来隐藏窗体的最大化按钮,Form1.MinButton=False用来隐藏窗体的最小化按钮。从语法格式上来看,似乎没有什么问题,在输入时也不会产生错误。但是,窗体的Name属性是一个“只读”属性,在运行时不能改变,因此,程序运行后,当执行到9729c72b824d2b160b4e767f5acfa1c7aa008227="FormTest"语句时将会出错。

【答案】B

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

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

B.按F4键

C.按Ctrl+T键

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

【分析】在上面选择中,Ctrl+T键用来执行“工程”菜单中的“部件”命令,打开的是“部件”窗口,不是属性窗口,其他3个选项都可以打开属性窗口。

【答案】C

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

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

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

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

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

【分析】教程中介绍了选择控件的两种方法,即按住Shift键单击每个要选择的控件和拖动鼠标画虚线矩形。除这两种方法外,按住Ctrl键单击每个要选择的控件也可实现选择控件的操作,但按住Alt键单击每个要选择的控件不能达到目的。

【答案】A

例5为了在运行时把窗体Form1的标题(Caption属性)设置为“Test Program”,应使用的语句为______。

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

[窗体.]Caption[=字符串]其中的“窗体.”可以是Form1.,可以省略,也可以是关键字Me:而“字符串”就是要设置的窗体的标题。因此,本题有几种不同的答案。

【答案】

Form1.Caption = "Test Program"

或Me.Caption = "Test Program"

或Caption = "Test Program"

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

【分析】在一般情况下,如果选择了窗体上的多个控件,则其中有一个控件自动成为“基准控件”。选择方法不同,“自动基准控件”也不一样。如果按住Ctrl或Shift键选择多个控件,则最后单击的控件为“基准控件”;如果用拖动鼠标的方法选择控件,则最后画到窗体上的控件是“基准控件”。如果想用其他某个控件作为“基准控件”,可以在选择多个控件后,单击该控件。

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

第三章 VB程序设计基础

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

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

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

【分析】Visual Basic集成开发环境下的窗口(包括代码窗口)基本上都可以通过执行“视图”菜单中相应的菜单命令打开。在设计阶段,如果单击窗体上的某个控件,则只能打开代码窗口。

【答案】C

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

A.按F4键

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

C.双击已建立好的控件

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

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

【答案】A

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

A.Dim a(10)As Integer Rem这是一个VB程序

B.′这是一个VB程序

Private Sub Command1_Click() …

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

D.If Shift = 6 And Button = 2 Then

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

End If

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

为注释符,不能使用Rem;在复合语句行中,注释必须是最后一个语句,不能放在复合语句行中;注释语句不能放在续行符的后面。在所给出的选择中,A、C、D都是不正确的。

【答案】B

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

【分析】代码窗口的顶部(标题栏的下面)分为左右两栏,左边一栏是“对象”栏,右边一栏是“过程”栏。在“对象”栏的下拉列表中可以选择窗体或控件的名称,在“过程”栏中可以选择事件的名称。因此,为了建立事件过程Form_Click,应在“对象”栏中选择Form,然后在“过程”栏中选择Click。

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

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

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

Private Sub Form_Load()

Form1.Caption = "AAAAA"

Me.Caption= "BBBBB"

Caption = "CCCCC"

End Sub

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

【分析】Form Load是程序运行后首先要执行的事件过程。在上面的事件过程中,有3个赋值语句,这3个语句都用来对对象赋值,即对对象的Caption属性赋值,它们都可以设置窗体的标题。第一个语句把窗体的标题设置为“AAAAA”,执行第二个语句后,窗体的标题变为“BBBBB”,而执行第三个语句后,窗体的标题变为“CCCCC”。

【答案】CCCCC

例6 编写程序,用来设置窗体的位置和大小。要求:程序运行后,窗体的初始位置为(3000,3000),其初始宽度和高度均为5 000;单击一次窗体后,窗体位置的X坐标和Y坐标各减少一半,其宽度和高度均减少到原来的一半。

【分析】窗体的位置由Top属性和Left属性来设置,宽度和高度分别由Width属性和Height属性来设置。窗体的初始属性可以通过属性窗口设置,也可以在Form_Load事件过程中设置;而单击窗体后的属性可以在Form_Click事件过程中设置。

程序如下:

Private Sub Form_Load()

Top = 3000

Left = 3000

Width = 5000

Height = 5000

End Sub

Private Sub Form_Click()

Form1.Top = Form1.Top / 2

Form1.Left = Form1.Left / 2

Form1.Width = Form1.Width / 2

Form1.Height = Form1.Height / 2

End Sub

窗体的初始位置和大小在Form_Load事件过程中设置,程序运行后,显示窗体的初始位置和大小。单击一次窗体后,其位置的X坐标、Y坐标及窗体的宽度、高度均减少到原来的一半。此后如果再单击一次窗体,则仍减少一半。如果把Form_Click事件过程改为:

Private Sub, Form_Click()

Form1.Top = 1500

Form1.Left = 1500

Form1.Width = 2500

Form1.Height = 2500

End Sub

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

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

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

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

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

【分析】Visual Basic提供了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"

【分析】该例通过关系表达式对字符串进行比较。在Visual Basic中,字符串数据按其ASCII码值进行比较。在比较两个字符串时,首先比较两个字符串的第一个字符,其中ASCII码值较大的字符所在的字符串大。如果第一个字符相同,则比较第二个……依次类推。在该例的4个选择中,A、C、D的值均为True;B中的两个字符串基本相同,但第一个字符串的第一个字母是大写字母,而第二个字符串的第一个字母是小写字母,第一个字符串小于第二个字符串,即两个字符串不相等,因此"VisualBasic"="visualbasic"的值为假,即False。

【答案】B

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

A.Dim a(10)As Integer Rem这是一个VB程序

B.′这是一个VB程序

Private Sub Command1_Click() …

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

D.If Shift = 6 And Button = 2 Then

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

End If

【分析】在使用注释语句时,有以下“禁忌”:当注释出现在一个语句行的后面时,只能用撇号作为注释符,不能使用Rem;在复合语句行中,注释必须是最后一个语句,不能放在复合语句行中;注释语句不能放在续行符的后面。在所给出的选择中,A、C、D都是不正确的。

【答案】B

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

【分析】代码窗口的顶部(标题栏的下面)分为左右两栏,左边一栏是“对象”栏,右边一栏是“过程”栏。在“对象”栏的下拉列表中可以选择窗体或控件的名称,在“过程”栏中可以选择事件的名称。因此,为了建立事件过程Form_Click,应在“对象”栏中选择Form,然后在“过程”栏中选择Click。

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

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

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

Private Sub Form_Load()

Form1.Caption = "AAAAA"

Me.Caption= "BBBBB"

Caption = "CCCCC"

End Sub

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

【分析】Form Load是程序运行后首先要执行的事件过程。在上面的事件过程中,有3个赋值语句,这3个语句都用来对对象赋值,即对对象的Caption属性赋值,它们都可以设置窗体的标题。第一个语句把窗体的标题设置为“AAAAA”,执行第二个语句后,窗体的标题变为“BBBBB”,而执行第三个语句后,窗体的标题变为“CCCCC”。

【答案】CCCCC

例12 编写程序,用来设置窗体的位置和大小。要求:程序运行后,窗体的初始位置为(3000,3000),其初始宽度和高度均为5 000;单击一次窗体后,窗体位置的X坐标和Y坐标各减少一半,其宽度和高度均减少到原来的一半。

【分析】窗体的位置由Top属性和Left属性来设置,宽度和高度分别由Width属性和Height属性来设置。窗体的初始属性可以通过属性窗口设置,也可以在Form_Load事件过程中设置;而单击窗体后的属性可以在Form_Click事件过程中设置。

程序如下:

Private Sub Form_Load()

Top = 3000

Left = 3000

Width = 5000

Height = 5000

End Sub

Private Sub Form_Click()

Form1.Top = Form1.Top / 2

Form1.Left = Form1.Left / 2

Form1.Width = Form1.Width / 2

Form1.Height = Form1.Height / 2

End Sub

窗体的初始位置和大小在Form_Load事件过程中设置,程序运行后,显示窗体的初始位置和大小。单击一次窗体后,其位置的X坐标、Y坐标及窗体的宽度、高度均减少到原来的一半。此后如果再单击一次窗体,则仍减少一半。如果把Form_Click事件过程改为:

Private Sub, Form_Click()

Form1.Top = 1500

Form1.Left = 1500

Form1.Width = 2500

Form1.Height = 2500

End Sub

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

该程序用到了窗体的4个属性,即Top、Left、Width和Height。在设置这几个属性时,窗体名称(Form1)可以有,也可以没有,也可以换成关键字Me。

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

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

Private Sub Command1_Click()

a=4

b=5

c=6

Print a = b + c

End Sub

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

A.a=11 B.a=b+c C.False D.出错

【分析】Print方法具有计算和输出两种功能。当Print的输出项是表达式时,将先计算表达式,然后输出表达式的值。所计算和输出的表达式可以是算术表达式,也可以关系表达式或逻辑表达式。该例中的a=b+c是一个关系表达式,其中a的值为4,b+c的值是11,Print a=b+c实际上执行的是Print 4=11,显然是一个“假”值。

【答案】C

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

例2下列不正确的语句是

A.Print a = 10 + 20

B.Print "a ="; 10 + 20

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

D.Print a =; 10 + 20

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

达式。在所给出的选择中,A是用Print方法输出一个关系表达式的值,比较两个算术表达式的值是否相等;B是用Print输出一个字符串和一个算术表达式的值,其中字符串照原样输出,然后计算并输出算术表达式的值;C是用Print方法输出一个关系表达式的值,比较两个字符串是否相等,这几个语句都是正确的,可以输出正确的结果,而D会产生语法错误。

【答案】D

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

Private Sub Command1_Click()

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

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

Print b&+ a&

End Sub

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

C.1234554321 D.出错

【分析】InputBox函数的返回值是一个字符串,但由于a&和b&通过类型说明符被显式地定义为长整型变量,因而在执行InputBox函数后,所返回的字符串值被转换为长整型值,它实际上相当于执行一次类型转换,即:

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

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

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

【答案】A

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

answer=MsgBox("第一个字符串",vbAbortRetryIgnore_

Or vbCritical_

Or vbDefaultButton3,_

"第二个字符串")

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

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

【分析】MsgBox函数的返回值是一个整数,这个整数与所选择的按钮有关。本例的第二个参数由三部分组成,其中vbAbortRetryIgnore用来在信息框中显示3个按钮,分别为“终止”、“重试”和“忽略”;vbCritical用来在信息框中显示Critical Message图标;而vbDefaultButton3把信息框的第三个按钮(即“忽略”)指定为默认按钮。执行该语句后,在信息框中显示3个按钮,并把第三个按钮作为默认按钮,此时如果按回车键,则返回值是该按钮所对应的值。由于“忽略”按钮对应的值是5,因此变量answer的值为5。

【答案】B

例5执行下列语句后,显示输入对话框,此时如果单击“确定”按钮,则变量strinput的内容是______。strinput=InputBox(“请输入字符串”,“字符串对话框”,“字符串”)

【分析】在执行InputBox函数时,会产生一个输入对话框,该函数有7个参数,前三个参数都是字符串。其中第一个参数用来在输入对话框内显示一个提示用户输入的字符串,第二个参数是对话框的标题,第三个参数是输入的默认信息。也就是说,在执行InputBox函数后,如果用户没有输入任何信息,则可用此默认字符串作为输入值。如果不想用这个默认字符串作为输入值,则可在输入区直接键入数据,以取代默认值。在该例中,显示对话框后直接单击“确定”按钮,因此第三个参数就是默认的输入值。

【答案】字符串

例6阅读程序:

Private Sub Form_Click()

msg1$="继续吗?"

msg2$="操作对话框"

r=MsgBox(msg1$,vbYesNo OrvbDefaultButton2,msg2$)

End Sub

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

中的______ 按钮。

【分析】本例用MsgBox函数产生信息框,该函数的第一个参数在信息框内显示,第二个参数分为两部分,其中前一部分(即vbYesNo)用来在信息框中产生两个按钮,分别为“是”和“否”,后一部分(即vbDefaultButton2)把第二个按钮(即“否”)设置为默认按钮;第三个参数是信息框的标题。程序运行后,单击窗体,所产生的信息框的标题为“操作对话框”,在信息框内显示的内容是“继续吗?”,两个按钮分别是“是”和“否”,其中“否”是默认按钮。此时如果按回车键,则与单击“否”按钮效果相同。

【答案】“否”或第二个

例7设有如下程序:

Private Sub Form_Click()

a = 32548.56

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

End Sub

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

【分析】本例用Format函数对数值进行格式化输出,要输出的数值存放在变量a中。Format函数的第一个参数对变量a进行了舍入处理,保留一位小数,第二位小数四舍五入,其值为32548.6。Format 函数的第二个参数是格式说明符,使用的说明符有“0”和“,”,保留两位小数,该函数的返回值为032,548.60。

【答案】032,548.60

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

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

S=πr2

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

程序如下:

Private Sub Form_Click()

Const PI = 3.14159

Dim r As Single, S As Single

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

S=PI*r*r

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

End Sub

程序运行后,单击窗体,将显示一个输入对话框,在该对话框中输入圆的半径(默认为50),然后单击确定按钮或按回车键,即可在窗体上输出圆的面积。假定在对话框中输入35,则单击“确定”按钮后,输出结果为:S=3,848.45。

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

【分析】1小时等于60分,1分钟等于60秒。把小时数乘以60*60,把分钟数乘以60,再加上秒数,就等于总秒数。设小时数为H,分钟数为M,秒数为S,则H小时、M分、S秒的总秒数SS 为:

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

程序如下:

Private Sub Form_Click()

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

H=Val(H)

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

M=Val(M)

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

S=V al(S)

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

PrintH;"小时";M;"分";S;"秒=";SS;"秒"

End Sub

程序运行后,单击窗体,将先后显示3个输入对话框,要求输入小时、分和秒。假定分别输入5、45和25,则输出结果为:

5小时45分25秒=20725秒

第五章常用标准控件例题

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

Private Sub Command1_Click()

Text1.Text = "Computer Rank Examination"

End Sub

Private Sub Text1_Change()

Text2.Text = UCase(Text 1.Text)

End Sub

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

A.Computer Rank Examination

B.computer rank examination

C.COMPUTER RANK EXAMINATION

D.空字符串

【分析】该例有两个事件过程,一个是命令按钮的Click事件过程,一个是文本框的Text1的Change 事件过程,当单击命令按钮时,执行前一个事件过程,而当在文本框Text1中输入信息时,将执行该文本框的Change事件过程。在命令按钮事件过程中,为文本框Text1的Text属性赋值,即在该文本框中显示字符串“Computer Rank Examination”,在这种情况下,将触发Text1文本框的Change 事件,把文本框Text1中的所有字母转换为大写字母,并在文本框Text2中显示出来。程序运行后,如果单击命令按钮,则将先后触发命令按钮的Click事件和文本框Text1的Change事件,分别在两个文本框中显示由两个事件过程所指定的内容。

【答案】C

例2在窗体上画一个名称为List1的列表框,一个名称为Labell的标签。列表框中显示若干城市的名称。当单击列表框中的某个城市名时,在标签中显示选中城市的名称。下列能正确实现上述功能的程序是

A.Private Sub List1_ Click()

Label1 .Caption = List1.ListIndex

End Sub

B.Private Sub List1_ Click()

9729c72b824d2b160b4e767f5acfa1c7aa008227 = List1. ListIndex

End Sub

C.Private Sub List1_Click()

Label 9729c72b824d2b160b4e767f5acfa1c7aa008227 = List1.Text

End Sub

D.Private Sub List1_Click()

Labe1 1.Caption = List1.Text

End Sub

【分析】所给出的4个选择都是列表框的Click事件过程。当单击列表框中的某一项时,将发生单击事件,同时选择一个列表项,这个列表项可以用列表框的Text属性来表示。也就是说,List1.Text 就是所选择的项目。此外,为了在标签中显示所选择的列表项,必须使用列表框的标题属性,即Label1.Caption。因此,正确的语句应当是:

Label1.Caption=List1.Text

在Visual Basic中,不能在运行期间改变控件或窗体的名称(Name属性),因此B和C两个选择都是错误的;而列表框的ListIndex属性是所选择的列表项的位置,即列表项的标题,不是列表项本身。

【答案】D

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

Private Sub Command1_Click()

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

Text1.Text = a

End Sub

Private Sub Text1_Change()

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

End Sub

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

A.visual basic B.VISUAL BASIC

C.basic D.BASIC

分析】该例包括两个事件过程,其中命令按钮事件过程通过输入对话框来输入一个字符串,并把这个字符串赋给文本框。而当改变文本框的内容时,将触发文本框的Change事件。因此,在把输入的字符串赋给文本框时,将执行文本框的Change事件过程,对标签的Caption属性赋值,该值是:首先取出文本框中第八个字符之后的全部字符,然后把它们转换为大写字母。由于文本框中的字符串为“Visual Basic”,第八个字符为“B”,它之后的字符为“Basic”,执行Ucase函数后,转换为大写,即“BASIC”。

【答案】D

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

Private Sub Command1 Click()

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

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

End Sub

程序运行后,如果单击命令按钮,将先后显示两个输入对话框,在两个输入对话框中分别输入1.78和75,则两个文本框中显示的内容分别为______和______。

【分析】在一般情况下,通过InputBox函数输入的数据被赋给一个变量。在本例中,没有使用变量,而是直接把输入对话框中的值赋给文本框的Text属性。因此,第一个文本框接收的是身高,第二个文本框接收的是体重。

【答案】1.78 75

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

分析】在运行期间,可以用LoadPicture函数把指定的图形文件装入窗体、图片框或图像框,它实际上是把图形文件赋给对象的Picture属性。一般格式为:

[对象.]Picture=LoadPicture(“文件名”)其中的“文件名”可以是多种格式的图形文件,包括.bmp、.ico、.wmf、.emf、.jpg、.gif等,提供的“文件名”可以含有路径。对于本例来说,“文件名”(包括路径)是:d:\pic\a.jpg,“对象”是Picture1。

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

例6在窗体上画一个列表框、一个命令按钮和一个标签。程序运行后,在列表框中选择一个项目,然后单击命令按钮,即可将所选择的项目删除,并在标签中显示列表框当前的项目数,运行情况如图6-1所示。下面是实现上述功能的程序,请填空。

Private Sub Form_Load()

List1.AddItem "AAAAA"

List1.AddItem "BBBBB"

List1.AddItem "CCCCC"

List1 .AddItem "DDDDD"

End Sub

Private Sub Command1_Click()

Dim L As Integer

L=______

If ind >= 0 Then

List1.RemoveItem______

Label1.Caption = ______

Else

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

End If

End Sub

【分析】本例提供的程序包括两个事件过程,其中Form Load事件过程用来向列表框中添加项目,而Command1 Click事件过程删除列表框中被选择的项目,并在标签中显示列表框当前的项目数,需要填空的代码在这个事件过程中。

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

列表框.RemoveItem索引值其中的“索引值”是项目的地址,列表框中的项目从0开始计数,被选择的项目的索引值就是列表框的ListIndex属性。为了删除列表框中被选择的项目,必须先确定该项目的索引值,即列表框的ListIndex属性,然后就可以用RemoveItem方法将其删除。本题中的第一个空是被选择的项目的索引值,应为List1.ListIndex,并把它赋给变量L。第二个空是RemoveItem方法的参数,即“索引值”,由于该值已保存在变量L中,因此应填入L。第三个空是列表框中当前的项目数,它就是列表框的ListCount属性。

【答案】List1.ListIndex

L

List 1.ListCount

例7在窗体上画一个图片框、一个垂直滚动条和一个命令按钮(标题为“设置属性”),通过属性窗口在图片框中装入一个图形,图片框的宽度与图形的宽度相同,图片框的高度任意。编写适当的事件过程。程序运行后,如果单击命令按钮,则设置垂直滚动条的属性如下:

Min100

Max 2400

LargeChange200

SmallChange 20

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

【分析】本例要求程序实现两个方面的功能,其一是当单击命令按钮时设置滚动条的几个属性;其二是当移动滚动条的滚动框时扩大或缩小图片框的高度。第一个功能可以通过下面的事件过程来实现:

Private Sub Command1_Click()

VScroll1.Min = 100

VScroll1.Max = 2400

9729c72b824d2b160b4e767f5acfa1c7aa008227rgeChange = 200

VScroll1.SmallChange = 20

End Sub

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

Private Sub VScroll1_Change()

Picture 1 .Height = VScroll 1.Value

End Sub

例8在窗体上画两个命令按钮和一个标签,把两个命令按钮的标题分别设置为“缩小”和“扩大”;把标签的AutoSize属性设置为True,标题设置为“计算机等级考试”。程序运行后,如果单击第一个命令按钮,则可使标签中标题的字体大小缩小1.2倍;如果单击第二个命令按钮,则可使标签中标题的字体大小扩大1.2倍。

【分析】命令按钮和标签的标题以及标签的AutoSize属性可以通过属性窗口设置,也可以在运行期间设置。程序运行后,首先执行Form_Load事件过程,可以把设置标题和AutoSize属性的代码放在该事件过程中。根据题意,当单击两个命令按钮时,分别使得标签中的字体缩小或扩大1.2倍,而字体的大小可以通过标签的FontSize属性来设置。因此,如果想使标签中的字体缩小1.2倍,则可执行下面的语句:

Label 1.FontSize=Label 1.FontSize/1.2

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

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

Private Sub Form Load()

Label1.Caption="计算机等级考试"

Command1.Caption="缩小"

Command2.Caption="扩大"

Label1.AutoSize=True

End Sub

Private Sub Command1_Click()

Label1.FontSize = Label1.FontSize / 1.2

End Sub

Private Sub Command2_Click()

Label1.FontSize = Label1.FontSize * 1.2

End Sub

第六章 VB控制结构例题

例1 已知一个人出生的年、月、日分别存放在变量y0、m0、d0中,当前日期的年、月、日分别存放在变量y1、m1、d1中,这个人的实足年龄存放在变量age中。则以下可以正确计算实足年龄的程序段是

A.B.

age = y1-y0 age = y1-y0

If m1 <m0 Then If m1 <m0 Or d1<d0 Then

age = age -1 age = age -1

ElseIf d1 <d0 Then End If

age = age-1

End If

C.D.

age = y1-y0 age = y1-y0

If m1 <m0 Then If m1 <m0 Then

age = age -1 age = age -1

End If End If

If m1 = m0 And d1<d0 Then If d1 <d0 Then

age = age - 1 age = age - 1

End If End If

【分析】所谓实足年龄,指的是实际到达的年龄,即当前的年、月、日都分别大于或等于出生的年、月、日。例如一个人的出生日期是1964年8月23日,当前日期为20XX年8月23日,则这个人的实足年龄就是38岁;如果当前日期为20XX年7月或20XX年8月22日,则这个人的实足年龄就是37岁。

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

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

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

(3)否则,如果m1=m0但d1<d0,则实足年龄为age-1。

(4)否则,如果m1=m0且d1>=d0,则实足年龄为age。

可以看出,为了计算实足年龄,可以先计算age=y1-y0,如果m1<m0,则不再考虑d1是否大于d0,实足年龄=age-1;如果m1=m0,则还要看d1是否大于等于d0,如果小于,则实足年龄=age-1,否则实足年龄=age。

根据上面的分析,答案A显然是不正确的,因为在测试m1<m0后,就没有必要再测试d1是否大于d0。答案B和D类似,只单独测试月或日,不能得到正确结果,只有答案C正确地描述了上面所分析的情况。

【答案】C

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

Private Sub Command1_Click()

a= 10

t="旅游景点:"_

&IIf(a>3,"长城","")_

&IIf(a<8,"故宫","")_

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

Text1.Text = t

End Sub

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

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

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

【分析】IIf函数有三个参数,其中第一个参数是一个Boolean值,如果该参数的值为True,则函数的返回值为第二个参数;如果第一个参数的返回值为False,则函数的返回值为第三个参数。该例中变量a的值为10,在第一个IIf函数中,第一个参数为True,其返回值为第二个参数,即“长城”;在第二个IIf函数中,第一个参数为False,其返回值为第三个参数,即空字符串;而在第三个IIf函数中,第一个参数为True,其返回值为第二个参数,即“颐和园”。变量t的值为:

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

【答案】B

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

For i = 1 To 3

For j = 1 To i

For k = j To 3

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

Next k

Next j

Next i

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

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

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

【分析】在多重循环中,外层循环变化一次,内层循环从头到尾执行一遍。该题是一个三重循环,而且中层循环变量的终值和内层循环变量的初值是随上一层循环的循环变量的变化而变化的,因此需要逐层加以计算后累加出各层的循环次数。模拟计算机的计算过程,计算各层的循环次数如下:

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

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

当i=2时,j=1 To 2,循环2次

当i=3时,j=1 To 3,循环3次

中层循环的循环次数为6

(3)内层循环:当j=1时,k=1 To 3,循环3次

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

当j=2时,k=2 To 3,循环2次

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

当j=2时,k=2 To 3,循环2次

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

内层循环的循环次数为14

【答案】A

例4假定有以下当循环:

While Not条件

循环体

WEnd

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

A.True B.1 C.False D.-1

【分析】在当循环中,只有当While后面的“条件”为True时才能进入循环,执行循环体。也就是说,在While条件中,只有“条件”为True才能执行循环体。本题在“条件”前加了一个取反运算符Not,要想执行循环体,必须对“条件”本身求反,即“条件”必须为False。

【答案】C

例5阅读下面的程序:

Private Sub Form_Click()

Dim m, n As Integer

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

m=Val(m)

m1=m

n=InputBox("请输入N的值")

n=Val(n)

n1=n

Do Whilen<>0

remin = rn Mod n

m=n

n = remin

Loop

Print m1, n1, m

End Sub

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

A.16 24 4

B.16 24 8

C.24 16 6

D.24 16 8

【分析】本题提供的是用“辗转相除法”求两个整数的最大公约数的程序。一般来说,假定有两个整数m和n(m>n),把m作为被除数,n作为除数,相除后余数为r。如果r不等于0,则令m=n,n=r,再进行一次除法运算(以新的m作为被除数,n作为除数),得到新的r。如果r仍不等于0,则重复上述过程,直到r=0为止,此时的n就是两个数的最大公约数。

在本题的Do While-Loop循环中,通过辗转相除求最大公约数,循环结束的条件是相除后余数为0,如果不为0,则一直“除”下去。这里用Mod运算符求余数,较大的整数作为被除数或者较小的整数作为被除数都可以得到正确结果,但整除的次数可能会不一样。

例如,假定有两个数24和16,先把24作为被除数,16作为除数,相除后余数为8。再把原来的除数16作为下一次的被除数,将上一次得到的余数8作为下一次的除数,相除后余数为0。此时最后一次的除数8就是所求的最大公约数。

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

【答案】B

例6阅读下面的程序:

Private Sub Form_Click()

Dim Check, Counter

Check = True

Counter = 0

Do

Do While Counter <20

Counter = Counter + 1

If Counter = 10 Then

Check = False

Exit Do

End If

Loop

Loop Until Check = False

Print Counter, Check

End Sub

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

A.15 0B.20 -1

C.10 True D.10 False

【分析】这是一个二重循环,内层和外层都是Do循环。在内层循环中,执行循环体的条件是Counter 小于20,由于Counter的初值为0,因此执行循环体。在循环体中,每次循环Counter增1,达到10后,把Check变量设置为False,同时执行Exit Do,退出内层循环。外层循环执行的条件是,变量Check的值是True。如果Check为False,则退出外层循环,输出结果,结束程序。由于在退出内层循环时,Check已被设置为False,因此退出内层循环后立即就可以退出外层循环。退出两层循环后,Counter和Check的值没有发生任何改变,与退出内层循环时相同,分别为10和False。

【答案】D

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

Do

Do While Counter<20

Counter = Counter + 1

If Counter = 10 Then

Check = False

Exit Do

End If

Loop

Loop While _____

【分析】在Do-Loop循环中,Until关键字的含义是“直到条件变为真之前”执行循环体,而While 关键字正好相反,是“当条件为真时”执行循环体。也就是说,这两个关键字后面的条件是相反的,只要在条件前加上取反运算符Not,或者条件从False改为True,就可以用While替换Until,并且反之亦然。

【答案】Not Check=False或Check=True

例8阅读程序:

Private Sub Form_Click()

Dim i As Integer, sum As Integer

For i = 2 To 10

If i Mod 2 <>0 Then

Print i

Else

sum = sum + i

End If

Next i

Print sum

End Sub

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

【分析】本题For循环的循环变量的初值为2,终值为10,步长为1。在循环体内,判断循环变量的值是否为偶数,如果是,则将该值累加到变量sum,否则输出循环变量的值。不难看出,运行该程序后,在循环体内输出的是奇数,而累加的是偶数。在循环体外,输出偶数的累加和。

【答案】

3

5

7

9

30

例9阅读程序:

Private Sub Form_Click()

Dim num As Integer, digit As Integer

num= InputBox("")

While num <>0

digit =num Mod 10

num = num\ 10

Print digit

Wend

End Sub

程序运行后,如果从键盘上输入9876,则输出结果为_____。

【分析】本题使用了当循环,循环执行的条件是num不等于0。在循环体内,先用Mod运算符求出输入的数num的余数,接着用10对该数进行整除,把得到的商赋给num,最后输出余数。然后对整除后的num重复上述过程,直到num为0,结束循环。

在循环内,digit存放的是num的个位数,而每次整除后,num都要去掉个位数,而输出的也是个位数。例如,假定输入的是9876,则循环的执行过程如下:

digit = 9876 Mod 10 = 6

num= 9876 \ 10 = 987

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

Top