第2章Visual Basic语言基础.doc

上传人:飞****2 文档编号:60092230 上传时间:2022-11-13 格式:DOC 页数:15 大小:158KB
返回 下载 相关 举报
第2章Visual Basic语言基础.doc_第1页
第1页 / 共15页
第2章Visual Basic语言基础.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《第2章Visual Basic语言基础.doc》由会员分享,可在线阅读,更多相关《第2章Visual Basic语言基础.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第2章 Visual Basic语言基础本章大纲要求:l 程序代码的组织方式:过程(事件过程、通用过程)与模块(窗体模块、标准模块及类模块)l 程序代码的书写规则l 数制与数据类型l 不同类型常量的表示方法,系统内置常量、用户定义常量的定义方法l 变量:变量命名;全局变量、局部变量和静态变量的说明;变量作用域l 运算符与表达式:算术运算、关系运算、逻辑运算与字符串运算;各种运算的优先级l Visual Basic 的公共函数l 算术函数:Abs、Sin、Atn、Exp、Hex、Log、Rnd、Sgn、Sqr、Tanl 字符串函数:Asc、Chr、Lcase、UCase、Left、Len、Tri

2、m、Mid、Right、Space、String、InStrl 日期及时间函数:Time、Date、Now、DateValue、Day、Month、Year、WeekDayl 转换函数:Str、Val、Chr、Asc、Cint、Fix、Int、CBool、Cbyte、CDate、Cdbl、Cstrl 用户交互函数:InputBox函数与MsgBox函数2.1试题精讲与分析2.1.1 选择题解析【例1】表示“XYZ”,正确的VB逻辑表达式是。A)XY And YZB)XYZC)XY OR YZD)XY And Z解析:本题考查的是逻辑表达式的书写。C表示的是XY 或者 YZ,故C是错误的。VB不

3、允许B这样的表达式,答案B是错误的。And 是逻辑运算符,它的两边应是表达式,而Z不是一个表达式,故答案D是错误的。答案:A)【例2】假设变量Lng为长整形变量,下面不能正常执行的语句是。A)Lng=16384*2B)Lng=4*0.5*16384C)Lng=1902D)Lng=32768*2解析:对于表达式在进行整数计算,当数值为16384时,系统自动默其为整型数,再乘于2后的结果为32768,产生溢出错误。当数值为32768时,系统自动默其为长整型数,再乘于2后的结果为65536,赋值给变量Lng时不会产生溢出错误。在进行表达式4*0.5*16384计算时,先进行4*0.5运算,计算结果为

4、20.0,此时系统将数值自动转变为单精度型数据,再乘于16348后也不会产生溢出,如果将0.5和16438颠倒顺序后也会产生溢出错误。在进行指数运算符()时,数据是按长整型计算的。答案:A)【例3】窗体上有一个文本框控件Text1,假设已存在三个整型变量a、b、c,且变量a的值为5,变量b的值为7,变量c的值为12。以下的语句可以使文本框内显示的内容为:5+7=12。A)Text1.Text = a+b=cB)Text1.Text = “a+b=c”C)Text1 = a & ”+” & b & ”=” & cD)Text1 = “a” & ”+” & ”b” & ”=” & ”c”解析:本题

5、考查的是字符串运算。A给Text1.Text 赋的值a+b=c 是个逻辑值,显示True 。B赋的值是一个字符串,显示a+b=c。C、D直接给Text1赋值,对文本框不指明属性,就是给Text属性赋值,D在拼接字符串时a、b、c是字符,不是变量,所以显示结果是 a+b=c。C在拼接字符串时a、b、c是变量,因此显示结果是5+7=12 。答案:C)【例4】数学算式的VB算术表达式是 。A)(12*x+5*y-Sqr(Abs(d3-m2)/Exp(-x)/Sin(x)B)(12*x+5*y-Sqr(Abs(d3-m2)/Exp(-x)*Sin(x)C)(12*x+5*y-Sqr(Abs(d3-m2

6、)/Exp(-x)/Sin(x)D)(12*x+5*y-Sqr(Abs(d3-m2)/e(-x)/Sin(x)解析:本题考查的是VB算术表达式的书写。本题B中使用*Sin(x),又没有括号,根据运算规则,Sin(x)就成了分子上乘积项,所以错误。C中分子项的括号数不匹配,右括号比左括号少一个,因而不对。C中分母部分有e(-x),不能表示e-x,应该用专门函数Exp(-x),也不对。答案:A)【例5】数学表达式对应的正确Visual Basic表达式为。A)-b + Sqr(b * b - 4 * a * c) / 2 * aB)-b + Sqr(b * b - 4 * a * c) / (2

7、* a)C)(-b + Sqr(b * b - 4 * a * c) / (2 * a)D)(-b + Sqr(b * b - 4 * a * c) / 2 * a解析:在用VB表达式描述数学表达式时,要注意分子和分母的书写形式,无论其是否为多项式,一般都应该用括号将其括起来。对于分子为多项式时,一定要用括号括起来。答案:C)【例6】下列表达式中,值为True的是。A)UCase(“ABCD”) = “abcd”B)14/23Left(“ABCD”,2)D)Not(Sqr(4)-3=-2)解析:本题考查的是关系表达式的求值。答案A中,UCase()函数是将字符串中的小写字母改为大写字母,UCa

8、se(“ABCD”)的值“ABCD”,因为大写字母的ASCII码值比小写字母小,所以“ABCD” “abcd”,因此A的结果是False。答案B中,14/23的值为2,10 MOD 4的值也是2,2= b为False,故表达式的值False。答案D中,表达式有语法错误,Spr()函数不存在。答案C中,Mid(“ABCD”,2,2) 的值是”BC”,Left(“ABCD”,2) 的值是”AB” ,”BC” ”AB”,故结果为True。答案:C)【例7】有变量定义语句Dim a, b as Integer,变量a的类型和初值是。A)Integer,0B)Variant,空值C)String,”D)

9、long,0.0解析:本题考查的是VB中变量的说明。在变量类型说明语句中,必须对每个需要说明的变量逐个使用As Type说明其类型,未加说明的变量将按变体型变量处理,初值为空值。因此,A、C、D都不对,B正确。答案:B)【例8】在Form_Click事件中执行如下语句的正确结果是。 Print Format(1236.54,”+#,#0.0%”)A)B)+123,654.0%C)+123,6.54%D)+123,654解析:本题考查的是格式化函数Format的使用。控制字符串”+#,#0.0%”表示输出时的格式,”+”表示要带符号、”,”表示要加千位分隔符、0.0”表示要带一位小数、%”表示要

10、强制以百分数输出。因此,A、C、D都不对,B正确。答案:B)【例9】VB中可以同时删除字符串前导和尾部空白的函数是。A)LtrimB)RtrimC)TrimD)Mid解析:本题考查的是字符函数的使用及区分它们。Ltrim函数的作用是去除字符串左边的空格;Rtrim的作用是去除字符串右边的空格;Trim函数的作用是去除字符串的首尾空格;Mid函数的作用是从字符串的某个位置开始取若干个字符组成一个新的字符串。根据题意,应为C。答案:C)【例10】函数CInt、Int、Fix都返回整数值,以下能正确地描述它们返回值的大小关系的是。A)CInt(-4.51) Int(-4.51) Fix(-4.51)

11、B)Int(-4.51) CInt(-4.51) Fix(-4.51)C)CInt(-4.51) Fix (-4.51) CInt(-4.51)D)Int(-4.51) Fix (-4.51)= CInt(-4.51)解析:CInt(x)将数值型数据x的小数部分四舍五入取整,Fix(x)将数值型数据x的小数部分舍去,Int(x)取小于等于x的最大整数。答案:A)【例11】执行下面语句后,Len函数值最大的是。Dim IA As Integer, B As Single, S As String *5, Ch As StringIA=32767: B=23.5: S=A:Ch=abcdA)Len

12、(IA)B)Len(B)C)Len(S)D)Len(Ch)解析:Len(X)函数的功能是计算X的字符串长度,当X为指定长度时Len返回指定长度,当X未指定时返回实际长度,当X未数值变量时,Len返回X的字节长度。答案:C)【例12】数学表达式ln(exy|arctan(z)|+cos3x)对应的Visual Basic算术表达式是。A)Ln(E(xy)+abs(Tan(z)+Cosx3)B)Log(Exp(xy)+abs(Tan(z)+Cos(x)3)C)Ln(Exp(x*y)+abs(Atn(z)+Cosx3)D)Log(Exp(x*y)+abs(Atn(z)+Cos(x)3)解析:本题考查

13、的是表达式的书写。e的幂用函数Exp()表示,xy表示为x*y,exy表述为Exp(x*y),绝对值函数和反正切函数是abs()和Atn(),|arctan(z)|表述为abs(Atn(z),cos3x表述为Cos(x)3,Cosx3表示的是cosx3,自然对数的函数是Log()。因此,A、B、C错,D正确。答案:D)【例13】设Mys1,Mys2均为字符串型变量,Mys1=Visual Basic,Mys2=b,则下面关系表达式中结果为True的是。A)Len(Mys1) 2 * InStr(Mys1, l)B)Mid(Mys1, 8, 1) Mys2C)Chr(98) & Right(My

14、s1, 4) = BasicD)InStr(Left(Mys1, 6), a) + 60 Asc(UCase(Mys2)解析:在选项A中,Len(Mys1)返回12,InStr(Mys1, l)返回6;Mid(Mys1, 8, 1)返回B,B不大于b;在选项B中,在选项C中,Chr(98)返回b,Right(Mys1, 4)返回asic,b & asic计算结果为basic;在选项D中,Left(Mys1, 6)返回的结果为Visual,InStr(Visual a)返回5,UCase(Mys2)返回B,Asc(B)返回66,65Mys2B)Len(Mys1)2*Instr(Mys1,”l”)

15、C)Chr(66)&Right(Mys1,4)=”Basic”D)Instr(Left(Mys1,6),”a”)+60Asc(UCase(Mys2)解析:本题考查的是字符串函数和比较运算。”Mid(Mys1,8,1)”的作用是从Mys1的第8位开始取1个字符为”B”,”B” 10 And x = 100 Or 10 Mod 2 = 0”的值为。A)FalseB)TrueC)1D)0解析:表达式的运算规则是:先算算术表达式,再算关系表达式,最后算逻辑表达式,对于逻辑运算符,按照Not、And、Or的顺序进行计算。算术运算符和关系运算符运算完毕后,上式相当于:False And True Or T

16、rue,结果是True。答案:b)【例23】表达式6.5 * 5 Mod 28 8的值是。A)0B)1C)2D)3解析:算术运算符的运算次序为: - (负号) *和(整除)Mod + 和 - &,按此规则可将上述表达式改写成:(6.5 * 5) Mod (28 8)=(32.5) Mid 3=32 Mod 3=2。答案:C)【例24】假设变量BOOL是一个布尔形变量,则下列赋值语句中,正确的是。A)BOOLTRUEB)BOOL.TRUE.C)BOOLTRUED)BOOLTRUE解析:Boolean逻辑型(布尔型)数只有True或False两个值。答案:D)【例25】如果在立即窗口中执行下列语句

17、:x$=”Mydocumment”y$=”Delete”C$=y$ & UCase(Mid(x$,3,8))则输出的结果是。A)DeleteDOCUMENTB)DELETEDOCUMENTC)DeleteMYDOCUMENTD)MYDOCUNENT解析:本题使用了一些VB中常用的字符串处理函数,这些函数的功能如下:UCase函数:将指定的字符串全部转化为大写。Mid函数:抽取字符串的一部分,从指定的位置抽取指定长度。在本题中,Mid函数的返回值是“document”,UCase函数的返回值是“DOCUMENT”。答案:A)【例26】在过程中定义的变量,如果希望在离开该过程后,还能保存过程中局部

18、变量的值,则应该使用关键字在过程中定义局部变量。A)Dim B)Private C)Public D)Static解析:在过程中使用Dim语句定义的变量,在过程结束后变量的值不能被保存下来。在每一次过程重新执行时,变量的内容将被清除。如果希望在离开该过程后,还能保存过程中局部变量的值,就应该使用Static关键字在过程中定义局部变量,即使过程结束,变量的值仍然保留着。所以,本题应选择“Static“关键自来定义变量。答案:D)【例27】在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:Dim k As IntegerPrivate Sub Form_Load()k = 15En

19、d SubPrivate Sub Command1_Click()Static b As Integerb = b + kk = k + 1Print k, bEnd Sub程序运行时,两次单击命令按钮Command1后,在窗体上显示的第二行是。A)17 31B)15 31C)17 16D)2 1解析: 本题定义了一个窗体级变量K,该变量可以被该窗体的所有过程使用,并在窗体加载时的Load事件中给变量K赋值15。第一次单击Command1时,定义了一个静态变量b,执行下面的两条赋值语句后b的值为15,窗体级变量k的值为16,所以输出为16 15。再一次单击Command1按钮,此时静态变量b是

20、上一次退出时的值15,而不是0,执行下面的两条赋值语句后b的值为31,窗体级变量k的值为17,所以输出为17 31。答案:A)【例28】在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim Str1 As String,Str2 As IntegerStr1= InputBox(请输入一个数字)Str2 = InputBox(请输入一个数字) Print Str1 & Str2End Sub程序运行后,单击命令按钮,在输入对话框中分别输入123和456,输出结果为。A)B)C)D)解析:本题在Command1的单击事件中定义了一个字符串型

21、变量Str1和一个整型变量Str2,通过第一InputBox函数输入一个由数字组成的字符串给变量Str1,Str1的值为“123”。由于InputBox函数返回值是一个字符串,所以第二个InputBox返回的是由数字组成的字符串“456”,赋值给整型变量Str2时,要转换为整型值456。最后输出Str2 & Str1,将Str2转换为字符串,再把Str1字符串连接在Str2的后面输出。答案:B)【例29】窗体上放置了三个文本框,若在Text1中输入456,在Text2中输入78,在程序中执行了语句Text3=Text1+Text2后,则在Text3中显示。A)434B)45678C)溢出D)语

22、法错误解析:文本框(Text)控件的Text属性的内容为字符型,当两个字符型变量之间使用“”运算符是表示连接。本题的运算表达式实为456 & 78 = 45678。答案:B)【例30】单击窗体运行下列程序,则程序输出结果是。Option ExplicitPrivate Sub Form_Click() Dim TempS As String, xS As String Dim SLen As Integer, j As Integer TempS = xS = SLen = Len(xS) j = 1 Do While j =16”,另一个条件是“x2+y2=16 And x*x+y*y=16

23、 And x2+y2=B AND C*XY”的值为;逻辑表达式“Not C-YC OR A=B AND C*X=B”即6=3,值为True,再算“C*XY”即5*(-2)4,值为True,故表达式的值为True。表达式“Not C-Y=A”的求值顺序是先算“C-Y=A”即5-4C OR AC” 即(-2)25的值为False,再算“AB”即6 1 And Len(p) Len(sta) Thensta = _End If_End IfNext iIf Len(p) 1 And Len(p) Len(sta) Then_Elsemax_st = staEnd IfEnd Function图4-1

24、解析:本程序要求从给定的纯英文字符串中找出最长的一个按字母顺序排列的子串,可以分解为两大工作:一是找到按字母顺序排列的子串,这可以通过前后两个字母的Ascii码值是否差1来进行判断,二是找到最长的,可以设置一个字符型变量,用来存放找到的子串,在找到新的子串时,将后一次找到的新的子串与前一次找到的子串的长度进行比较,如果新的子串的长度大于原来的,则将变量赋予新的子串值,否则不变。本题程序的运行过程可以简述如下:单击“查找”按钮后,读取Text1 的值,作为待查找对象,然后调用过程max_st找到最长的子串,并将其显示在Text2中。查找的过程是这样实现的:定义三个变量,p用来存储读取的字母或按字

25、母顺序排列的子串,sta 用来在For循环体中存放最长的子串,i作为循环变量。首先p赋初值,即本程序中的第一个字母h,然后进入一个For循环,循环的次数为原字符串的长度减1,最后将最后一次得到的子串与sta进行长度比较,从而得到最长的子串,并赋给max_st返回。循环体中通过语句“If Asc(Mid(st, i + 1, 1) - Asc(Mid(st, i, 1) = 1”来判断p后面字母的Ascii码值与p是否差1,如果是,则执行第一个分支,得到一个按字母顺序排列的子串,故第一个空格处填入“p & Mid(st, i + 1, 1)”表示将他们连接成一个子串;如果不是,则进入第二个分支,

26、第二个分支中首先执行一个条件语句,用于比较新找到的子串与当前所存储的最长子串的长度,如果新找到的子串的长度较长,则将新的子串设为最长子串,故第二个空格处填入p,即将新的子串设为最长子串,否则不做任何更改,条件语句执行完后,继续读取下一个字母,继续循环下去,最终找到最长的按字母顺序排列的子串。答案:p & Mid(st, i + 1, 1) p p = Mid(st, i + 1, 1) max_st = p【例14】下面程序的功能时,验证任意一个大于5的奇数可表示为3个素数之和。完善程序,实现以上功能。图4-2Option Base 1Private Sub Command1_Click()Dim P() As Integer, N As Integer, L As IntegerDim I As Integer,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁