《 Visual basic程序设计基础教程》习题解答 第1章Ⅴ isual basic6.0基本知识 1.Ⅴ isual basic可视化环境中的基本成分有哪些? isual basic60集成开发环境由各种可视化操作成分组成,除了最常见的菜单、工具 栏以外,它还包括:工具箱、窗体设计器、属性窗口、工程管理器、代码编辑器,以及对 象浏览器、窗体布局窗口、编程环境设置窗口。 2.试列举文件菜单的菜单项,并说明其作用。 参见教材 3.试列举工程菜单的菜单项,并说明其作用。 参见教材。 4.工具栏和菜单有什么关系?跟菜单比较,工具栏能够带来哪些便利 工具栏的作用与菜单一样,但工具栏是通过其上面的图标按钮执行菜单命令,将一些 常用的菜单命令通过工具栏来提供,由此可以加快操作速度 5.工程资源管理器有什么用途? Visual basic通过工程资源管理器实现了对工程中诸多文件的可视化集中管理,并通过 能够对工程文件进行有效更新 6.试说明窗体设计器的用途? 窗体设计器是用来以可视方式编辑用户界面的,通过菜单命令“视图对象窗口”,或 在“工程资源管理器”上选择“对象窗口”图标,可以显示窗体设计器 7.试说明中断调试的用途? 中断就是暂时终止程序的执行,把程序切换到中断模式,从而便于查找错误点。通过 菜单命令“运行\中断”,或单击“调试”工具栏中的“中断”按钮,或按Ctrl+ Break键 就可以进入到中断模式。 8.试说明单步调试程序的方法与用途 单步调试方法可以使程序逐语句或逐过程地执行
《Visual Basic 程序设计基础教程》习题解答 第 1 章 Visual Basic 6.0 基本知识 1. Visual Basic 可视化环境中的基本成分有哪些? Visual Basic 6.0 集成开发环境由各种可视化操作成分组成,除了最常见的菜单、工具 栏以外,它还包括:工具箱、窗体设计器、属性窗口、工程管理器、代码编辑器,以及对 象浏览器、窗体布局窗口、编程环境设置窗口。 2. 试列举文件菜单的菜单项,并说明其作用。 参见教材。 3. 试列举工程菜单的菜单项,并说明其作用。 参见教材。 4. 工具栏和菜单有什么关系?跟菜单比较,工具栏能够带来哪些便利。 工具栏的作用与菜单一样,但工具栏是通过其上面的图标按钮执行菜单命令,将一些 常用的菜单命令通过工具栏来提供,由此可以加快操作速度。 5. 工程资源管理器有什么用途? Visual Basic 通过工程资源管理器实现了对工程中诸多文件的可视化集中管理,并通过 能够对工程文件进行有效更新。 6. 试说明窗体设计器的用途? 窗体设计器是用来以可视方式编辑用户界面的,通过菜单命令“视图\对象窗口”,或 在“工程资源管理器”上选择“对象窗口”图标,可以显示窗体设计器。 7. 试说明中断调试的用途? 中断就是暂时终止程序的执行,把程序切换到中断模式,从而便于查找错误点。通过 菜单命令“运行\中断”,或单击“调试”工具栏中的“中断”按钮,或按 Ctrl+Break 键, 就可以进入到中断模式。 8. 试说明单步调试程序的方法与用途。 单步调试方法可以使程序逐语句或逐过程地执行
第1章 Visual basic60基本知识 逐语句就是一次执行一条语句。连续地按F8键,或选择菜单命令“调试\逐语句”, 或单击“调试”工具栏中的“逐语句”按钮,可以逐语句地运行程序 逐过程与逐语句相似,只有在当前被执行的语句中含有对其它过程的调用时,两者才 会有差异。逐过程是将过程视为一个基本单位来执行的。可以按Shf+F8,或选择菜单命 令“调试\逐过程”,或单击“调试”工具栏中的“逐过程”按钮,而逐过程地运行程序 9.试建立一个含有窗体的程序,窗体上摆放有两个文本框,一个命令按钮,一个标签, 用于实现两个待输入数的乘积运算。其中,“文本框”用于输入待计算的数,“命令按钮” 用于实现计算,“标签”用于显示计算结果 程序如下 Private Sub Command1 Click Labell Val(TextI)*Val(Text2) End Sub 第2章数据类型及运算 试说明常数、变量的区别及其用途。 常量是用标识符表示的不变的数值或字符串,使用 Const语句来声明。一旦已经定义 了常量标识符,就可将它们放置在代码中代替某个值。在程序运行过程中,常量是不能改 变的,因此不能对常量赋新值。当常量标识符为有意义的名称时,可以使源代码更加便于 阅读。设置常量标识符的好处还体现在当需要对常量值作修改时,只需要在常量标识符定 义处做改动,这有利于提高源程序的可维护性 在 Visual basic应用程序运行期间,变量被用来存储可能变化的数据。可以把变量看 作内存中存放未知值的所在处。变量在使用之前往往需要先做声明,声明变量就是事先将 变量通知程序,由此使变量的使用合法。声明变量时需要指明变量名和变量类型。其中 变量类型被用来确定变量能够存储的数据的种类。 2.试说明过程级变量、模块级变量的区别。在编写程序时为什么提倡使用过程级变 量? 过程级变量只有在声明它们的过程中才能被识别,也叫做局部变量。由于无法在一个 过程中访问另一个过程中的局部变量,因此在不同过程中就可以使用相同的变量名,而不 必担心有什么冲突。可以在过程内使用Dm或 Static关键字来声明过程级变量。 模块级变量比过程级变量的作用范围要大。模块级变量对该模块的所有过程都可用, 但其它模块不能使用。可以在模块顶部的声明段用 Private或Dim关键字声明模块级变量。 过程级变量只对自己所在过程起作用,影响范围小,便于程序的调试和错误修改,可
·2· 第 1 章 Visual Basic 6.0 基本知识 逐语句就是一次执行一条语句。连续地按 F8 键,或选择菜单命令“调试 \ 逐语句”, 或单击“调试”工具栏中的“逐语句”按钮,可以逐语句地运行程序。 逐过程与逐语句相似,只有在当前被执行的语句中含有对其它过程的调用时,两者才 会有差异。逐过程是将过程视为一个基本单位来执行的。可以按 Shift+F8,或选择菜单命 令“调试 \ 逐过程”,或单击“调试”工具栏中的“逐过程”按钮,而逐过程地运行程序。 9. 试建立一个含有窗体的程序,窗体上摆放有两个文本框,一个命令按钮,一个标签, 用于实现两个待输入数的乘积运算。其中,“文本框”用于输入待计算的数,“命令按钮” 用于实现计算,“标签”用于显示计算结果。 程序如下: Option Explicit Private Sub Command1_Click() Label1 = Val(Text1) * Val(Text2) End Sub 第 2 章 数据类型及运算 1. 试说明常数、变量的区别及其用途。 常量是用标识符表示的不变的数值或字符串,使用 Const 语句来声明。一旦已经定义 了常量标识符,就可将它们放置在代码中代替某个值。在程序运行过程中,常量是不能改 变的,因此不能对常量赋新值。当常量标识符为有意义的名称时,可以使源代码更加便于 阅读。设置常量标识符的好处还体现在当需要对常量值作修改时,只需要在常量标识符定 义处做改动,这有利于提高源程序的可维护性。 在 Visual Basic 应用程序运行期间,变量被用来存储可能变化的数据。可以把变量看 作内存中存放未知值的所在处。变量在使用之前往往需要先做声明,声明变量就是事先将 变量通知程序,由此使变量的使用合法。声明变量时需要指明变量名和变量类型。其中, 变量类型被用来确定变量能够存储的数据的种类。 2. 试说明过程级变量、模块级变量的区别。在编写程序时为什么提倡使用过程级变 量? 过程级变量只有在声明它们的过程中才能被识别,也叫做局部变量。由于无法在一个 过程中访问另一个过程中的局部变量,因此在不同过程中就可以使用相同的变量名,而不 必担心有什么冲突。可以在过程内使用 Dim 或 Static 关键字来声明过程级变量。 模块级变量比过程级变量的作用范围要大。模块级变量对该模块的所有过程都可用, 但其它模块不能使用。可以在模块顶部的声明段用 Private 或 Dim 关键字声明模块级变量。 过程级变量只对自己所在过程起作用,影响范围小,便于程序的调试和错误修改,可
第1章 Visual basic60基本知识 以使程序更加健壮。因此,程序设计时,提倡使用过程级变量 3.试说明过程级变量中静态变量的定义方式,什么情况下需要用到静态变量? 静态变量使用 Static声明 在过程内定义的静态变量尽管在过程外不能访问,但在整个应用程序运行期它却一直 存在,即使过程结束,变量的值也仍然保留在内存中。当需要保存中间计算结果,而这个 计算又与其它过程无关时,可以使用过程级静态变量。 4.如何定义公共变量?什么情况下需要用到公共变量? 只能在模块的声明段中用 Public关键字声明公共变量。 经过 Public关键字声明的公共变量可用于应用程序的所有模块、过程。当一个变量需 要被多个模块使用时,需要用到公共变量 5.数值型数据有哪几种?为什么可以把Byte类型的数据当做数值型数据使用? Visual basic支持的数值型数据有: Integer(整型)、Long(长整型)、 Single(单精度 浮点型)、 Double(双精度浮点型)、 Currency(货币型)。 yt是字节型数据,但其数据范围是0到25,因此,它也就可以当作数值型数据使 6.整型数据、浮点型数据都是数值型数据,比较起浮点数,整型数有什么优势? 整型数变量只能存储只能整数,尽管存数范围比浮点数小,但整型数的运算速度比浮 点数快,而且所占据的内存也少。 7. Variant数据类型有什么特点?为什么要限制使用? Variant型是声明变量时的缺省类型,能够存储所有类型的数据。如果把数据赋予 Variant变量,则不必在这些数据的类型间进行转换; Visual basic会自动完成任何必要的 转换。 Variant型变量使用方便,但是比较起专用类型的数据更消耗内存资源,为提高程序 处理数据的效率,一般采用专用类型的变量而限制 Variant数据类型的使用。 8.多维数组为什么需要更多的存储空间? 任何数据类型的数组都需要20个字节的内存空间,另外数组每增加一个维数就要多 增加4个字节;所以,多维数组需要更多的存储空间。例如,4个2字节 Integer数据 元所组成的二维数组,数据本身占8个字节,而二维数组额外需要28个字节,这使得这 个二维数组所需总内存空间为36个字节 9.在使用动态数组时需要用到 ReDim语句,试说明该语句的作用 ReDin语句是执行语句,通过在应用程序运行过程中执行ReDm语句,而能够给数
第 1 章 Visual Basic 6.0 基本知识 ·3· 以使程序更加健壮。因此,程序设计时,提倡使用过程级变量。 3. 试说明过程级变量中静态变量的定义方式,什么情况下需要用到静态变量? 静态变量使用 Static 声明。 在过程内定义的静态变量尽管在过程外不能访问,但在整个应用程序运行期它却一直 存在,即使过程结束,变量的值也仍然保留在内存中。当需要保存中间计算结果,而这个 计算又与其它过程无关时,可以使用过程级静态变量。 4. 如何定义公共变量?什么情况下需要用到公共变量? 只能在模块的声明段中用 Public 关键字声明公共变量。 经过 Public 关键字声明的公共变量可用于应用程序的所有模块、过程。当一个变量需 要被多个模块使用时,需要用到公共变量。 5. 数值型数据有哪几种?为什么可以把 Byte 类型的数据当做数值型数据使用? Visual Basic 支持的数值型数据有:Integer(整型)、Long(长整型)、Single(单精度 浮点型)、Double(双精度浮点型)、Currency(货币型)。 Byte 是字节型数据,但其数据范围是 0 到 255,因此,它也就可以当作数值型数据使 用。 6. 整型数据、浮点型数据都是数值型数据,比较起浮点数,整型数有什么优势? 整型数变量只能存储只能整数,尽管存数范围比浮点数小,但整型数的运算速度比浮 点数快,而且所占据的内存也少。 7. Variant 数据类型有什么特点?为什么要限制使用? Variant 型是声明变量时的缺省类型,能够存储所有类型的数据。如果把数据赋予 Variant 变量,则不必在这些数据的类型间进行转换; Visual Basic 会自动完成任何必要的 转换。Variant 型变量使用方便,但是比较起专用类型的数据更消耗内存资源,为提高程序 处理数据的效率,一般采用专用类型的变量而限制 Variant 数据类型的使用。 8. 多维数组为什么需要更多的存储空间? 任何数据类型的数组都需要 20 个字节的内存空间,另外数组每增加一个维数就要多 增加 4 个字节;所以,多维数组需要更多的存储空间。例如,4 个 2 字节 Integer 数据 元所组成的二维数组,数据本身占 8 个字节,而二维数组额外需要 28 个字节,这使得这 个二维数组所需总内存空间为 36 个字节。 9. 在使用动态数组时需要用到 ReDim 语句,试说明该语句的作用。 ReDim 语句是执行语句,通过在应用程序运行过程中执行 ReDim 语句,而能够给数
4 第1章 Visual basic60基本知识 组动态指定维数和分配实际的元素个数 10.试建立一个枚举数据类型将全年的12个月份列举出来 Public Enum month 四月 五月 六月 八月 十二月 1l.试建立一个自定义数据类型,该数据类型用于存储学生的学号(整型)、姓名(字 符串型)、平时成绩(浮点型)、期考成绩(浮点型)等信息 Private Type StuRecord Number As Integer Name As string PeGrade As single FiGrade As single End Type 12.运算符有哪些类型?其优先级如何? isual basic中的运算符类型有:算术运算符、比较运算符、连接运算符、逻辑运算符 等 表达式中运算符的优先顺序是:先处理算术运算符,接着处理比较运算符,然后再处 理逻辑运算符 所有比较运算符的优先顺序都相同 算术运算符优先级由高至低是:指数运算()、负数(-)、乘法和除法(*、/)、 整数除法(、求模运算(Mod)、加法和减法(+、-) 逻辑运算符优先级由高至低是:Not、And、Or、Xor、Eqv、Imp 当运算符优先级相同时,按照从左到右出现的顺序进行。可以用括号改变优先顺序
·4· 第 1 章 Visual Basic 6.0 基本知识 组动态指定维数和分配实际的元素个数。 10. 试建立一个枚举数据类型将全年的 12 个月份列举出来。 Public Enum month 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 End Enum 11. 试建立一个自定义数据类型,该数据类型用于存储学生的学号(整型)、姓名(字 符串型)、平时成绩(浮点型)、期考成绩(浮点型)等信息。 Private Type StuRecord Number As Integer Name As String PeGrade As Single FiGrade As Single End Type 12. 运算符有哪些类型?其优先级如何? Visual Basic 中的运算符类型有:算术运算符、比较运算符、连接运算符、逻辑运算符 等。 表达式中运算符的优先顺序是:先处理算术运算符,接着处理比较运算符,然后再处 理逻辑运算符。 所有比较运算符的优先顺序都相同。 算术运算符优先级由高至低是:指数运算 (^)、负数 (–)、乘法和除法 (*、 /)、 整数除法 (\)、求模运算 (Mod)、加法和减法 (+、 –)。 逻辑运算符优先级由高至低是:Not、And、Or、Xor、Eqv、Imp 当运算符优先级相同时,按照从左到右出现的顺序进行。可以用括号改变优先顺序
第1章 Visual basic60基本知识 字符串连接运算符“&”在所有算术运算符之后,而在所有比较运算符之前 3.有变量X=246,Y=3,Z=“97”。试给出以下表达式的结果: (a)x+y: (b)x/y: (c)X\y: (d)X Mod Y: (e)y+Z (f)Y&Z:(g) X>Y:(h) Not((X<Y And Y<Z=Or(X>Y)). (a)276;(b)8.2;(c)8:(d)1:(e)100 (f)”397”;(g)Tru (h) False 第3章程序结构 If.Then.Else分支语句和 Select case分支语句有什么不同?在进行多分支处理时, 什么情况下只能使用IfE.Then.Flse,而不能使用 Select Case. Select case用于实现多重选择,其作用与If.Then.Else语句类似,但主要用于只有 个条件,并且条件值为离散值的分支选择。另外,If.Then.Flse..为每个 Elself语句 计算不同的表达式,而 Select case只在开始处计算测试条件的值。因此,只有在If语句 的每一个 Elself语句计算相同表达式时,才能用 Select case结构替换If.Then.Fse..结 2.假如要在进入循环体之前检测循环条件,应该选择什么类型的循环结构? 应该选择循环检测条件在前的循环结构,例如 Do While条件表达式 语句块 Lool 或 Do Until条件表达式 语句块 3.试对子过程、函数过程、事件过程作出比较? (1)子过程,通过Sub语句声明,不能返回值 (2)函数过程,通过 Function语句声明,能够返回值。由于函数过程可以返回值, 因此函数过程也就有了数据类型。 (3)事件过程,通过被引用的类中所包含的事件声明所提供 4.在向过程传递参数时有按值传递和按地址传递两种方式,它们有什么不同?sual 的缺省方式按地址传递,若需要按值传递,则其参数定义格式是什么?
第 1 章 Visual Basic 6.0 基本知识 ·5· 字符串连接运算符“&”在所有算术运算符之后,而在所有比较运算符之前。 13. 有变量 X=24.6,Y=3,Z=“97”。试给出以下表达式的结果: (a)X+Y;(b)X / Y;(c)X \ Y;(d)X Mod Y;(e)Y+Z; (f)Y&Z;(g)X>Y;(h)Not ( (X<Y And Y<Z=Or (X>Y))。 (a)27.6;(b)8.2; (c)8; (d)1; (e)100; (f)”397”;(g)True; (h)False 第 3 章 程序结构 1. If...Then...Else 分支语句和 Select Case 分支语句有什么不同?在进行多分支处理时, 什么情况下只能使用 If...Then...Else,而不能使用 Select Case。 Select Case 用于实现多重选择,其作用与 If...Then...Else 语句类似,但主要用于只有 一个条件,并且条件值为离散值的分支选择。另外,If...Then...Else... 为每个 ElseIf 语句 计算不同的表达式,而 Select Case 只在开始处计算测试条件的值。因此,只有在 If 语句 的每一个 ElseIf 语句计算相同表达式时,才能用 Select Case 结构替换 If...Then...Else... 结 构。 2. 假如要在进入循环体之前检测循环条件,应该选择什么类型的循环结构? 应该选择循环检测条件在前的循环结构,例如: Do While 条件表达式 语句块 Loop 或 Do Until 条件表达式 语句块 Loop 3. 试对子过程、函数过程、事件过程作出比较? (1)子过程,通过 Sub 语句声明,不能返回值。 (2)函数过程,通过 Function 语句声明,能够返回值。由于函数过程可以返回值, 因此函数过程也就有了数据类型。 (3)事件过程,通过被引用的类中所包含的事件声明所提供。 4. 在向过程传递参数时有按值传递和按地址传递两种方式,它们有什么不同?Visual Basic 的缺省方式按地址传递,若需要按值传递,则其参数定义格式是什么?