第四章数据类型、运算符与表达式
教学要求:
了解Visual Basic语言的基本数据类型,了解各基本数据类型的数值范围;掌握Visual Basic常量与变量的概念,重点掌握字符串型、数值型数据的常量表示方法、类型分类、变量定义语法、变量赋初值语法等内容,理解变体类型变量的概念及定义语法,了解用户自定义数据类型和枚举类型的使用;了解变量的作用域;掌握常用内部函数的功能和用法。
掌握Visual Basic语言运算符和表达式的概念,掌握算术运算符、关系运算符和逻辑运算符的作用、语法、优先级规则;熟悉表达式的执行顺序。
知识点:
Visual Basic语言运算符和表达式;基本数据类型内容(常量形式、定义语法、赋初值语法、内存形式);运算符内容(作用、优先级、结合性);表达式内容(语法、应用规则);混合运算的规律。
内容导航:
一、数据类型
(一)基本数据类型
Visual Basic提供的基本数据类型主要有字符串型和数值型,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。
(二)用户定义的数据类型
用户可以利用Type语句定义自己的数据类型,其格式如下:
Type 数据类型名
数据类型元素名As 类型名数据类型元素名As 类型名……
End Type
二、常量和变量
(一)常量
Visual Basic中的常量分为两种,一种是文字常量,一种是符号常量。
(二)变量
1.命名规则
变量是一个名字,给变量命名时应遵循以下规则:
(1)名字只能由字母、数字和下划线组成;
(2)名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;
(3)名字的有效字符为255个;
(4)不能用Visual Basic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。
2.变量的类型和定义
任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在Visual Basic中,可以用下面几种方式来规定一个变量的类型:
(1)用类型说明符来标识。
(2)在定义变量时指定其类型
(3)用类型说明符定义的变量,在使用时可以省略类型说明符。
三、变量的作用域
根据变量的定义位置和所使用的变量定义语句的不同,Visual Basic中的变量可以分为3类,即局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。
四、常用内部函数
(一)转换函数
1.取整函数Int和Fix
2.数制转换函数
3.类型转换函数
4.格式输出函数
(二)数学函数
1.三角函数
2.绝对值函数(Abs)
3.符号函数(Sgn)
4.平方根函数(Sqr)
5.指数和对数函数(Exp、Log)
6.随机数函数Rnd
(三)日期和时间函数
1.Microsoft Windows的计时系统
2.日期函数
3.时间函数
4.日期/时间数值化函数
5.日期/时间运算函数
6.用变体类型表示日期
(四)、字符处理与字符串函数
1.删除空白字符函数
(1)LTrim$(字符串):去掉“字符串”左边的空白字符
(2)RTrim$(字符串):去掉“字符串”右边的空白字符
(3)Trim$(字符串):去掉“字符串”两边的空白字符
2.字符串截取函数
用来截取字符串的一部分,可以从字符串的左部、右部或中部截取。
(1)左部截取
格式:Left$(字符串,n)
(2)右部截取
格式:Right$(字符串,n)
(3 ) 中部截取
格式:Mid$(字符串,起始位置,[n])
3.字符串长度测试函数
格式:Len(字符串)Len(变量名)
4.String$函数
格式:String$(n,ASCII码)String$(n,字符串)
5.空格函数
格式:Space$(n)
6.字符串匹配函数
在编写程序时,有时候需要知道是否在文本框中输入了某个字符串,这可以通过InStr
函数来判断。
格式:InStr([首字符位置,]字符串1,字符串2[,n])
7.字母大小写转换
格式:Ucase$(字符串)Lcase$(字符串)
8.插入字符串语句Mid$
格式:Mid$(字符串,位置[,L])
五、运算符与表达式
(一)算术运算符
1.幂运算
2.浮点数除法与整数除法
3.取模运算
4.算术运算符的优先级
5.字符串连接
(二)关系运算符与逻辑运算符
1.关系运算符
2.逻辑运算符
(三)表达式的执行顺序
一个表达式可能含有多种运算,计算机按一定的顺序对表达式求值。一般顺序如下:1.首先进行函数运算;
2.接着进行算术运算,其次序为:
幂(^)→取负(-)→乘、浮点除(*、/)→整除(\)→取模(Mod)→加、减(+、-)→连接(&)
3.然后进行关系运算(=、>、<、<>、<=、>=);
4.最后进行逻辑运算,顺序为:
Not→And→Or→Xor→Eqv→Imp
训练:
一、选择题
1.设有如下变量声明:Dim TestDate As Date
为变量TestDate正确赋值的表达方式是________。
A) TestDate = #1/1/2002#
B) TestDate = #”1/1/2002”#
C) TestDate = date(“1/1/2002”)
D) TestDate = Format(“m/d/yy”,”1/1/2002”)
2.下列符号中不能作为VB中变量名的是________。
A) ABCD B) E0065700 C) 123TWDFF D) zxy
3.如果将布尔常量值True赋值给一个整型变量,则整型变量的值为________。
A) 0 B) –1 C) True D) False
4.下列符号常量的声明中,________是不合法的。
A) Const a As Single = 1.1 B) Const a As Integer = “12”
C) Const a As Double = sin(1) D) Const a = “OK”
5.四个字符是”E”,”y”,”B”,”8”的ASCII码值最大的是________。
A) ”E”B) ”y”C) ”B”D) ”8”
6.下列________是字符型常量。
A) ”I am a student”B) ’江苏南京’
C) #02/25/1999# D) 123#
7.下列________是日期型常量。
A) ”I am a student”B) ’江苏南京’
C) #02/25/1999# D) 123#
8.下列________是双精度型变量。
A) AAA% B) BBB$ C) CCC! D) DDD#
9.可以同时删除字符串前导和尾部空白的函数是________。
A) Ltrim B) Rtrim C) Trim D) Mid
10.设有如下变量声明:Dim X As Integer
如果Sgn(X)的值为-1,则X的值是________。
A) 整数B) 大于0的整数C) 等于0的整数D) 小于0的整数
11.从键盘上输入两个字符串,分别保存在变量str1、str2中。确定第二个字符串在第一个字符串中起始位置的函数是________。
A) Left B) Mid C) String D) Instr
12.设a=”Visual Basic”,下面使b=”Basic”的语句是________。
A) b = Left(a,8,12) B) b = Mid(a,8,5)
C) b = Right(a,5,5) D) b = Left(a,8,5)
13.表达式Left(”Today is Monday”,3)的值是________。
A) Tod B) Mon C) Today D) Monday
14.表达式Abs(-9)+Len(”I am a teacher”)的值是________。
A) 9 I am a teacher B) –9 I am a teacher
C) 23 D) 出错
15.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序
Private Sub Command1_Click()
Static x As Integer
Static y As Integer
Cls
y=1
y=y+5
x=5+x
Print x,y
End Sub
程序运行时,三次单击命令按钮Command1后,窗体上显示的结果为________。
A) 15 16 B) 15 6 C) 15 15 D) 5 6
16.函数Int(Rnd(0)*100)是在________范围内的整数。
A) (0 , 1) B) (0 , 100) C) (1 , 100) D) (1 , 90)
17.函数InStr(”China”, ”in”)的值是________。
A) 1 B) 2 C) 3 D) 4
18.将变量k四舍五入保留2位小数的表达式是________。
A) Int((k+0.5)*100)/100 B) Int(k*100)/100+0.5
C) Int(k*100+0.5)/100 D) Int(k*(100+0.5))/100
19.”x是小于105的非负数”,用VB表达式表示正确的是________。
A) 0<=x<105 B) 0<=x<105
C) 0<=x And x<105 D) 0<=x Or x<105
20.表达式4+5\6*7\8 Mod 9的值是________。
A) 4 B) 5 C) 6 D) 7
21.执行以下程序段后,变量c$的值为________。
a = "Visual Basic Programing"
b = "Quick"
c = b & UCase(Mid(a,7,6)) & Right(a,11)
A) Visual Basic Programing B) Quick Basic Programing
C) Visual BASIC Programing D) Quick BASIC Programing
22.假设a和b是整型变量,则表示条件”1≤a<8和1
A) 1<=A AND A<8 AND 1
B) (1<=A AND A<8) AND NOT (1
C) 1<=A AND A<8 OR 1
D) NOT (1<=A AND A<8) OR (1
23.数学式(1/4)cos(π/5+2.0)的VB表达式是________。
A) 1\4*cos(π/5.0+2.0)B) 1\4*cos(3.1415926/5.0+2.0)
C)1*cos(3.1415926/5)/4 D) 1.0\4.0*cos(3.1415926/5+2.0)
24.设K=5,M=10,X=5.0,Y=8,Z=-12,则表达式K/M*(X+Y+Z)-1的计算结果是________。
A) –0.5 B) –1.0 C) 0 D) 1.5
25.设M=3,N=5,P=4.5,Q=2.5,表达式(M*N+2)/(P-Q)的计算结果为________。
A) 8 B) 9 C) 8.5 D) 8.0
26.15除以2余数的-3次方的VB表达式为________。
A) MOD(15,2)^(-3) B) (15MOD2)^(-3)
C) 15.0MOD2^-3.0 D) MOD(15.0,3)^-3.0
27.设a=2,b=3,c=4,d=5,下列表达式的值为________。
3>2*b OR a=c AND b<>c OR c>d
A) 1 B)True C)False D) -1
28.设a=2,b=3,c=4,d=5,下列表达式的值为________。
a>b AND c<=d OR 2*a>c
A) True B)False C)-1 D) 1
29.设a=2,b=3,c=4,d=5,下列表达式的值为________。
NOT a<=c OR 4*c=b^2 AND b<>a+c
A)-1 B) 1 C) True D)False
30.设a=3,b=5,则以下表达式值为True的是________。
A) a>=b And b>10 B) (a>b) Or (b<10)
C) (a<0) Eqv (b>0) D) (-3+5>a) And (b>0)
二、填空题
1.123&表示的123是________数据类型;123@表示的123是________数据类型;123!表示的123是________数据类型。
2.在Visual Basic中,变量名的取名规则是以________________开头,总长度不超过________个字符。
3.________型是VB的默认数据类型,它可以存储各种类型的数据。
4.字符串运算符”+”连接两旁的操作数因均为________。
5.表达式Fix(-32.68)+Int(-23.02)的值为________。
6.执行下面的程序段后,b的值为________。
A = 300
b = 20
a = a+b
b = a-b
a = a-b
7.若A=20,B=80,C=70,D=30,则表达式A+B>160 OR (B*C>200 And Not D>60)的值是________。
8.表达式Len(Str(17.35))Mod2的值为________。
9.设A=3,B=2,C=8,X=-3,Y=6,W=True,M=False,则:
逻辑表达式”A>=B AND C*X 逻辑表达式”NOT C-Y<=A”的值为________; 逻辑表达式”X^2>C OR A 10.表示”x+y小于10,且x-y要大于0”的VB表达式为________________________________。11.表示”x和y都是正数或都是负数”的VB表达式为________________________________。12.表示”A和B之一为零但不同时为零”的VB表达式为________________________。13.表示”A+B+C大于等于255,或A与B分别大于90且C大于80”的VB表达式为_______________________________。 14.已知K=2,J=3,A=True,则VB表达式(K-J<=K)AND(NOT A)OR(K+J>=J)的值为________。15.不等式A 16.下列Visual Basic表达式是错误,其正确形式是________________。 -1/2+3*INT45.6 17.下列Visual Basic表达式是错误,其正确形式是________________。 [(x+y)+z×15]-5(c+d) 18.与下列数学式子对应的Visual Basic表达式是________________。 Cos(2(c+d)) ((c+d)为弧度) 19.与下列数学式子对应的Visual Basic表达式是________________。 1+2(a+b) 20.与下列数学式子对应的Visual Basic表达式是________________。 Cos(a)Sin((a)+1) 三、简答题 1.Visual Basic提供了哪些标准数据类型?声明类型关键字分别是什么? 2.用布尔表达式表示下列命题。 (1)a是b或c的倍数 (2)a是1000以内的正整数且为偶数 (3)|a|>|b|或a≤b 3.写出下列表达式值 (1)10>=2*4 (2)”ABCD”<”ABCEF” (3)”ABC”&”ABC”<>”ABC” (4)13<>12 Or Not 15>19-2 (5)(-1 Or 1<>1)+1 (6)Not 10-5<>5 (7)(-1 And 1<>1)-1 (8)3>5 And 4<9 4.写出下列函数的值 (1)Int(-4.5) (2)Int(Abs(10-11)/2) (3)Fix(-5.2) (4)Sqr(2^3) (5)Sgn(5*2-2*6) (6)Right(”vbName”,4) (7)Uc ase(”vbName”) (8)Val(”105th”) (9)Str(”123.45”) (10)Len(”vbName”) 5.指出执行下面赋值语句后,各变量的数据类型。 (1)a=6=5 (2)a=”5+3” (3)a=#11/26/99# (4)a=Not5>8