第四章数据类型、运算符与表达式教学要求:了解VisualBasic语言的基本数据类型,了解各基本数据类型的数值范围;掌握VisualBasic常量与变量的概念,重点掌握字符串型、数值型数据的常量表示方法、类型分类、变量定义语法、变量赋初值语法等内容,理解变体类型变量的概念及定义语法,了解用户自定义数据类型和枚举类型的使用;了解变量的作用域;掌握常用内部函数的功能和用法。掌握VisualBasic语言运算符和表达式的概念,掌握算术运算符、关系运算符和逻辑运算符的作用、语法、优先级规则;熟悉表达式的执行顺序。知识点:VisualBasic语言运算符和表达式;基本数据类型内容(常量形式、定义语法、赋初值语法、内存形式);运算符内容(作用、优先级、结合性);表达式内容(语法、应用规则);混合运算的规律。内容导航:一、数据类型(一)基本数据类型VisualBasic提供的基本数据类型主要有字符串型和数值型,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。(二)用户定义的数据类型用户可以利用Type语句定义自己的数据类型,其格式如下:Type数据类型名数据类型元素名As类型名数据类型元素名As类型名……EndType二、常量和变量(一)常量VisualBasic中的常量分为两种,一种是文字常量,一种是符号常量。(二)变量1.命名规则变量是一个名字,给变量命名时应遵循以下规则:(1)名字只能由字母、数字和下划线组成;(2)名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;(3)名字的有效字符为255个;(4)不能用VisualBasic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。2.变量的类型和定义任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在VisualBasic中,可以用下面几种方式来规定一个变量的类型:(1)用类型说明符来标识。(2)在定义变量时指定其类型(3)用类型说明符定义的变量,在使用时可以省略类型说明符。三、变量的作用域根据变量的定义位置和所使用的变量定义语句的不同,VisualBasic中的变量可以分为3类,即局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。四、常用内部函数(一)转换函数1.取整函数Int和Fix2.数制转换函数3.类型转换函数4.格式输出函数(二)数学函数1.三角函数2.绝对值函数(Abs)3.符号函数(Sgn)4.平方根函数(Sqr)5.指数和对数函数(Exp、Log)6.随机数函数Rnd(三)日期和时间函数1.MicrosoftWindows的计时系统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.设有如下变量声明:DimTestDateAsDate为变量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)ABCDB)E0065700C)123TWDFFD)zxy3.如果将布尔常量值True赋值给一个整型变量,则整型变量的值为________。A)0B)–1C)TrueD)False4.下列符号常量的声明中,________是不合法的。A)ConstaAsSingle=1.1B)ConstaAsInteger=“12”C)ConstaAsDouble=sin(1)D)Consta=“OK”5.四个字符是”E”,”y”,”B”,”8”的ASCII码值最大的是________。A)”E”B)”y”C)”B”D)”8”6.下列________是字符型常量。A)”Iamastudent”B)’江苏南京’C)#02/25/1999#D)123#7.下列________是日期型常量。A)”Iamastudent”B)’江苏南京’C)#02/25/1999#D)123#8.下列________是双精度型变量。A)AAA%B)BBB$C)CCC!D)DDD#9.可以同时删除字符串前导和尾部空白的函数是________。A)LtrimB)RtrimC)TrimD)Mid10.设有如下变量声明:DimXAsInteger如果Sgn(X)的值为-1,则X的值是________。A)整数B)大于0的整数C)等于0的整数D)小于0的整数11.从键盘上输入两个字符串,分别保存在变量str1、str2中。确定第二个字符串在第一个字符串中起始位置的函数是________。A)LeftB)MidC)StringD)Instr12.设a=”VisualBasic”,下面使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(”TodayisMonday”,3)的值是________。A)TodB)MonC)TodayD)Monday14.表达式Abs(-9)+Len(”Iamateacher”)的值是________。A)9IamateacherB)–9IamateacherC)23D)出错15.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序PrivateSubCommand1_Click()StaticxAsIntegerStaticyAsIntegerClsy=1y=y+5x=5+xPrintx,yEndSub程序运行时,三次单击命令按钮Command1后,窗体上显示的结果为________。A)1516B)156C)1515D)5616.函数Int(Rnd(0)*100)是在________范围内的整数。A)(0,1)B)(0,100)C)(1,100)D)(1,90)17.函数InStr(”China”,”in”)的值是________。A)1B)2C)3D)418.将变量k四舍五入保留2位小数的表达式是________。A)Int((k+0.5)*100)/100B)Int(k*100)/100+0.5C)Int(k*100+0.5)/100D)Int(k*(100+0.5))/10019.”x是小于105的非负数”,用VB表达式表示正确的是________。A)0=x105B)0=x105C)0=xAndx105D)0=xOrx10520.表达式4+5\6*7\8Mod9的值是________。A)4B)5C)6D)721.执行以下程序段后,变量c$的值为________。a=VisualBasicProgramingb=Quickc=b&UCase(Mid(a,7,6))&Right(a,11)A)VisualBasicProgramingB)QuickBasicProgramingC)VisualBASICProgramingD)QuickBASICPrograming22.假设a和b是整型变量,则表示条件”1≤a8和1b≤8中只要有一个成立即可”的逻辑表达式是________。A)1=AANDA8AND1BANDB=8B)(1=AANDA8)ANDNOT(1BANDB=8)C)1=AANDA8OR1BANDB=8D)NOT(1=AANDA8)OR(1BANDB=8)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)/4D)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.5B)–1.0C)0D)1.525.设M=3,N=5,P=4.5,Q=2.5,表达式(M*N+2)/(P-Q)的计算结果为________。A)8B)9C)8.5D)8.026.15除以2余数的-3次方的VB表达式为________。A)MOD(15,2)^(-3)B)(15MOD2)^(-3)C)15.0MOD2^-3.0D)MOD(15.0,3)^-3.027.设a=2,b=3,c=4,d=5,下列表达式的值为________。32*bORa=cANDbcORcdA)1B)TrueC)FalseD)-128.设a=2,b=3,c=4,d=5,下列表达式的值为________。abANDc=dOR2*acA)TrueB)FalseC)-1D)129.设a=2,b=3,c=4,d=5,下列表达式的值为________。NOTa=cOR4*c=b^2ANDba+cA)-1B)1C)TrueD)False30.设a=3,b=5,则以下表达式值为True的是________。A)a=bAndb10B)(ab)Or(b10)C)(a0)Eqv(b0)D)(-3+5a)And(b0)二、填空题1.123&表示的123是________数据类型;123@表示的123是________数据类型;123!表示的123是________数据类型。2.在VisualBasic中,变量名的取名规则是以________________开头,总长度不超过________个字符。3.________型是VB的默认数据类型,它可以存储各种类型的数据。4.字符串运算符”+”连接两旁的操作数因均为________。5.表达式Fix(-32.68)+Int(-23.02)的值为________。6.执行下面的程序段后,b的值为________。A=300b=20a=a+bb=a-ba=a-b7.若A=20,B=80,C=70,D=30,则表达式A+B160OR(B*C200AndN