第三章思考题答案及相关内容         
    1Visual Basic提供了哪些标准数据类型?声明类型时,其类型关键字分别是什么?其类型符又是什么?
    1.3.1 Visual Basic 的数据类型
数据类型
关键字
类型符
前缀
占字节数
   
字节型
Byte
byt
1
0255
逻辑型
Boolean
bin
2
TrueFalse
整型
Integer
int
2
-3276832767
长整型
Long
&
lng
4
-21474836482147483647
单精度型
Single
!
sng
4
负数:-3.402823E38-1.401298E-45正数:1.401298E-453.402823E38
双精度型
Double
#
dbl
8
负数:-1.79769313486232D308-4.94065645841247D-324
正数:4.94065645841247D-3241.79769313486232D308
货币型
Currency
@
cur
8
-922337203685477.5808922337203685477.5807
日期型
Date(time)
dtm
8
0101,10012319999
字符型
String
$
str
字符串长有关
065535个字符
对象型
Object
obj
4
任何对象引用
变体型
Variant
vnt
根据需要分配
2.哪种数据类型需要的内存容量最少,且可存储诸如3.2345这样的值?
答:单精度数据类型。
3.在Form1窗体通用声明部分声明的变量,可否在Form2窗体中的过程被访问?
4.为了使某变量在所有的窗体中都能使用,应在何处声明该变量?
    5.在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?有没有联系?
      1.3.22  不同作用范围的2种过程定义及调用规则
作用范围
   
   
窗体
标准模块
窗体
标准模块
定义方式
过程名前加Private
例:Private Sub Mysubl(形参表)
过程名前加Public或缺省
例:[Public] Sub My2(形参表)
能否被本模块其他过程调用
能否被本应用程序其他模块调用
不能
不能
能,但必须在过程名前加窗体名,例:Call窗体名.My2(实参表)
能,但过程名必须唯一,否则要加标准模块名,例:Call标准模块名.My2(实参表)
(1) 局部变量:指在过程内用dim语句声明的变量(或不加声明直接使用的变量),只能在本过程中使用的变量,别的过程不可访问。局部变量随过程的调用而分配存储单元,并进行变量的初始化),在此过程体内进行数据的存取,一旦该过程体结束,变量的内容自动消失,占用的存储单元释放。不同的过程中可有相同名称的变量,彼此互不相干。使用局部变量,有利于程序的调试。
    1.3.23  不同作用范围的3种变量声明及使用规则
作用范围
局部变量
窗体/模块级变量
全局变量
   
标准模块
声明方式
DimStatic
DimPrivate
Public
声明位置
在过程中
窗体/模块的“通用声明”段
窗体/模块的“通用声明”段
能否被本模块的其他过程存取
不能
能否被其他模块存取
不能
不能
能,但在变量名前加窗体名
    (2)窗体/模块级变量:指在一个窗体/模块的任何过程外,即在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。               
    (3)全局变量:指只能在标准模块的任何过程或函数外,即在“通用声明”段中用Public语句声明的变量,可被应用程序的任何过程或函数访问。全局变量的值在整个应用程序中始终不会消失和重新初始化,只有当整个应用程序执行结束时,才会消失。
6.将数字字符串转换成数值,用什么函数?判断是否是数字字符串,用什么函数?取字符串中的某几个字符,用什么函数?大小写字母间的转换用什么函数?
答:(1) VALC);
(2) ISNUMERICEXPRESSIONAS BOOLEAN
(3) LEFT$(“C”,N),  MID$(“C”,N1,N2),  RIGHT$(“C”,N);
(4) Lcase$(“ABCD”),  Ucase$(“abcd”)
7.使用MsgBox函数与Msgbox过程的区别是什么?
答:  MsgBox函数用法如下:
        变量[%]=MsgBox(提示[,按钮][,标题])
    MsgBox语句用法如下:
          MsgBox提示[,按钮][,标题]
其中:
    “提示”和“标题”:意义与InputBox函数中对应的参数相同。
    “按钮”:整型表达式,决定信息框按钮的数目和类型及出现在信息框上的图标类型,其设置见表1.3.5
                          “按钮”设置值及意义
分组
内部常数
按钮值
   
按钮数目
VbOkOnly
VbOkCancel VbAboutRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel
0
1
2
3
4
5
只显示“确定”按钮
显示“确定”、“取消”按钮
显示“终止”、重试”、“忽略”按钮
显示“是”、“否”、“取消”按钮
显示“是”、“否”按钮
显示“重试”、“取消”按钮
图标类型
VbCritical VbQuestion VbExclamation VbInformation
16
32
48
64
关键信息图标红STOP标志
询问信息图标 ?
警告信息图标 !
信息图标    i
缺省按钮
VbDefaultButton1 VbDefaultButton2 VbDefaultButton3
0
256
512
第一个按钮为缺省
第二个按钮为缺省
第三按钮为缺省
模式
VbApplicationModale VbSystemModal
0
4096
应用模式
系统模式
    注意    (1)以上按钮的四组方式可以组合使用(可以用内部常数形式或按钮值形式表示)    (2)以应用模式建立对话框,则必须响应对话框才能继续当前的应用程序;若以系统模式建立对话框时,所有的应用程序都将被挂起,直到用户响应了对话框。
MsgBox的作用是打开一个信息框,等待用户选择一个按钮。MsgBox函数返回所选按钮的整数值,其数值的意义见表1.3.16若不需返回值,则可作为MsgBox过程使用。 
                1.3.16  MsgBox函数返回所选按钮整数值的意义
vb程序设计教程第二版答案
内部常数
返回值
被按下的按钮
VbOk
VbCancel
VbAbout
VbRetry
VbIgnore
VbYes
VbNo
1
2
3
4
5
6
7
确定
取消
终止
重试
忽略
8,在KeyPress事件中,如何取消用户刚键入的字符?
答、首先按要求判断是否是合法的输入,若为非法输入则加入如下语句取消输入:keyascii=0.
9.静态数组与动态数组的区别是什么?在声明静态数组、重定义动态数组时的下标都可以用变量来表示吗?
    答:(1)在静态数组声明中的下标只能是常量,在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量。
    (2)在过程中可多次使用ReDim来改变数组的大小,也可改变数组的维数。
    (3)每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数用来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。
声明静态数组、重定义动态数组时不都可以用变量表示。
10.函数过程和子过程的区别是什么?
答:对于同一个问题,若可以用函数过程实现,则也可以用子过程实现,反之则不然。函数过程与子过程不同之处是函数过程有返回值,而子过程通过形参与实参的传递得到结果;当然调用的方式也不同。
11.子过程调用有哪两种形式?
    答:(1)子过程利用语句加以调用,使子过程成为一个独立的语句,其形式为:
          子过程名[参数列表]
      Call  子过程名[(参数列表)]
    2)函数过程的调用
    由于函数过程可由函数过程名返回一个值,故函数过程不能作为单独的语句加以调用,被调用的函数必须作为表达式或表达式中的一部分,再配以其他的语法成分构成语句。
    最简单的情况就是在赋值语句中调用函数过程,其形式为
        变量名=函数过程名([参数列表])
12、什么是形参?什么是实参?什么是值引用?什么是地址引用?地址引用时,对应的实参有没有限制?
  答:1、参数也称为形参或哑元,在定义时没有值ByVal表示当该过程被调用时,参数是值传递,否则是引用传递。定义子过程与函数过程时,都可以无参数。但函数过程无参数时,函数过程名后的括号不能省略。这是函数过程与子过程表示上的区别。
    2
(1)“参数列表称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应.
    (2)调用时把实参的值传递给形参称为参数传递。其中值传递(形参前有ByVal说明)时实参的值不随形参的值变化而改变,而引用传递实参的值随形参的值一起改变。
    (3)当参数是数组时,形参与实参在参数声明时应省略其维数,但括号不能省。
    (4)调用子过程的形式有两种,用Call关键字时,实参必须加圆括号括起,反之则全无。
    3    在调用过程时,一般主调过程与被调过程之间有数据传递,即将主调过程的实参传递给被调的过程,完成实参与形参的结合,然后执行被调过程体。在VB中,实参与形参的结合有两种方法,即传址和传值,其中传址又称为引用,是默认的方法。区分两种结合的方法是在要使用传值的形参前加“ByVal”关键字。
    传址的结合过程是:当调用一个过程时,它将实参的地址传递给形参。因此在被调过程体中对形参的任何操作都变成了对相应实参的操作,因此实参的值就会随形参的改变而改变。当参数是字符串、数组时,使用传址传递直接将实参的地址传递给过程,会使程序的效率提高。
传值的结合过程是:当调用一个过程时,系统将实参的值复制给形参,实参与形参断开了联系。被调过程中的操作是在形参自己的存储单元中进行,当过程调用结束时,这些形参所占用的存储单元也同时被释放。因此在过程中对形参的任何操作不会影响到实参。        为了程序的可靠和便于调试,减少各过程间的关联,一般用传值方式,除非希望从被调过程改变实参的值。    4、使用传址方式时,对应的实参不能是表达式、常数。第四章        
1. 框架的作用是什么?如何在框架中建立控件?
答:当需要在同一窗体中建立几组相互独立的单选钮时,就需要用框架(frame)将每一组单选钮框起来,这样在一个框架内的单选钮为一组,它们的操作不影响框外其他组的单选钮。另外,对于其他类型的控件用框架框起来,可提供视觉上的区分和总体的激活或屏蔽特性。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。