VB第2章 复习资料文档格式.docx

上传人:b****5 文档编号:19102220 上传时间:2023-01-03 格式:DOCX 页数:15 大小:66.84KB
下载 相关 举报
VB第2章 复习资料文档格式.docx_第1页
第1页 / 共15页
VB第2章 复习资料文档格式.docx_第2页
第2页 / 共15页
VB第2章 复习资料文档格式.docx_第3页
第3页 / 共15页
VB第2章 复习资料文档格式.docx_第4页
第4页 / 共15页
VB第2章 复习资料文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

VB第2章 复习资料文档格式.docx

《VB第2章 复习资料文档格式.docx》由会员分享,可在线阅读,更多相关《VB第2章 复习资料文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

VB第2章 复习资料文档格式.docx

Sin(45*3.14/180)+(Exp(10)+Log(10))/Sqr(x+y+1)

4.根据条件写出相应的VB表达式。

(1)产生“C”~“L”范围内的一个大写字符。

Chr(Int(Rnd*10+67))

(2)产生100~200(包括100和200)范围内的一个正整数。

Int(Rnd*101+100)

(3)已知直角坐标系中任意一点的坐标(x,y),表示其位于第1或第3象限内。

x*y>

(4)表示x是5或7的倍数。

xMod5=0OrxMod7=0

(5)将任意一个两位数x的个位数与十位数对换。

例如,x=78,则表达式的值相应为87。

(xMod10)*10+x\10

(6)将变量x的值按四舍五入保留小数点后两位。

例如,x的值为123.2389,则表达式的值应为123.24。

Round(x*100)/100

(7)表示字符型变量c是字母字符(不区分大小写字母)。

Ucase(c)>

=”A”AndUcase(c)<

=”Z”

或Lcase(c)>

=”a”AndLcase(c)<

=”z”

(8)取字符型变量s中从第5个字符起的6个字符。

MID(s,5,6)

(9)表达关系式

x>

=10Andx<

20

(10)x、y之一小于z

x<

zAndy>

zOrx>

zAndy<

z

(11)x和y都大于z

5.写出下列表达式的值。

(1)123+23Mod10\7+Asc(“A”)值为:

188

   

(2)100+“100”&

100值为:

“200100”

(3)Int(68.555*100+0.5)/100值为:

68.56

(4)已知A$=“87654321”,求表达方式Val(Left(A$,4)+Mid(A$,4,2))的值。

值为:

876554

(5)DateAdd(“m”,1,#1/30/2000#)值为:

#2/29/2000#

(6)Len(“VB程序设计”)值为:

6

6.利用Shell函数,在VB程序中分别执行画图和Word应用程序。

调用Shell函数,形式为:

   Shell(“Mspaint.exe”,1)‘画图程序是Windows系统自带的,可省略路径

Shell(“C:

\ProgramFiles\MicrosoftOffice\Office\Winword.exe”,1)

7.VisualBasic提供了哪些基本数据类型?

申明类型时,其类型关键字分别是什么?

其类型符又是什么?

参见主教材表3.1。

8.哪种数据类型所需的内存容量最小,且可存储3.2345这样的值?

单精度类型。

9.将数字字符串转换成数值,使用什么函数?

判断是否是数字字符串,使用什么函数?

取字符串中的某几个字符,使用什么函数?

实现大小写字母间的转换,使用什么函数?

数字字符串转换成数值,用Val()函数;

IsNumeric()函数判断是否是数字字符串;

Mid()函数用于取字符串中的某几个字符;

Ucase()函数用于将小写字母转换成大写字符;

Lcase()函数用于将大写字母转换成小写字母。

常见错误和难点分析

1.常见错误语句和使用时的注意事项

(1)DimSinAsInterger

使用时应注意:

Sin是函数名,不要作为变量名,虽然语法上没有错误,但Sin函数无效。

(2)DimStAsString,nAsInteger

N=100

  St=“n的值为:

“+n

错误:

字符串连接符两边应为字符类型,而变量n是整型,应该用“&

”连接符或Str(n)函数将n转换成字符类型。

(3)Dimx,y,zAsInteger

使用时应注意:

本语句要声明3个整型变量,这样声明使得x,y为变体型变量。

(4)S=πr^2

本语句目的为求半径r的面积。

错误之处:

π与r之间漏了乘号,而且π应该用3.14直接常量来表示。

2.逻辑表达式输入错误,编译时没有造成语法错而形成逻辑错。

例如,要将数学表达式如

以VB的逻辑表达式表示,有的写成的VB表达式为:

   3<

=x<

10

此时在其他程序语言中会产生语法错,而在VB中不产生语法错,程序能继续运行,但不管x的值为多少,表达式的值永远为Ture,虽然程序能正常运行,但其结果却不是期望值。

因为在VB中,当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。

例如,逻辑常量Ture转换为数值型的值为-1,False为0;

反之数值型非0转换为逻辑型的值为Ture,0为False。

同样数字字符与数值运算,转换为数值型。

例如,语句PrintTure+3‘显示的结果是2

     Print“123”+100‘显示的结果是223

     Print#5/1/2006#+3‘显示的结果是2006-5-4

根据此原因,表达式:

                  3<

_①______

值的计算过程:

①根据x的值计算3<

=x,结果总为(-1)或False(0)。

       ②根据①计算的结果(-1或0)与10比较结果永远为Ture。

正确的VB表达式书写为:

    3<

=xAndx<

3.同时给多个变量赋值,编译时没有造成语法错而形成逻辑错

例如,要同时给x,y,z三个整型变量赋初值1,有的写成如下赋值语句:

    x=y=z=1

在C语言中,上述语句可以实现同时对多个变量赋值,而在VB中规定在一条赋值语句内只能给一个变量赋值,但上述语句并没有产生语法错,运行后x,y,z中的结果均为0。

原因是VB将上述三个“=”表示不同的含义,最左的一个表示赋值号,其余表示为关系运算符等号;

因此将y=z=1作为一个关系表达式,再将表达式的结果赋值给x。

在VB中默认数值型变量的初值为0,根据上面错误2的分析类推,因此表达式y=z=1的结果为0,所以x赋得的值为0,y、x变量的值为默认值0。

4.标准函数名输入错误

VB提供了很多标准函数,如IsNumeric()、Data()、Left()等。

当函数名写错时,如将IsNumeric写成IsNummeric,系统显示“子程序或函数未定义”,并将该写错的函数名选中提醒用户修改。

如何判断函数名、控件名、属性、方法等是否写错,最简便的方法是当该语句写完后,按Enter键,系统把被识别的上述名称自动转换成规定的首字母大写形式,否则为错误的名称。

5.数据合法性检查中引起程序的死循环

在数据输入时,经常要对输入的数据做合法性检查,以确保程序运行的正确性。

如在实验B第一题中,输入的温度要求是数字,否则删除原输入内容,焦点仍定位于文本框。

有关属性设置参见表2.1,界面如图2.1所示,程序段如下:

表2.1控件有关属性

有关控件名

TabIndex

Text1

2

Text2

3

Command1

4

5

图2.1实验B.1运行界面

PrivateSubText1_LostFocus()PrivateSubText2_LostFocus()

IfNotIsNnmeric(Text1)ThenIfNotIsNnmeric(Text2)Then

Text1=””Text2=””

Text1.SetFocusText2.SetFocus

EndIfEndIf

EndSubEndSub

当华氏温度输入值有错误按回车键后,焦点在Text2处不停地闪动,程序产生死循环。

原因是Text1输入结束按Tab键,激发Text1_LostFocus事件,焦点已到Text2;

但当判断Text1文本框输入数据错时,执行Text1.SetFocus,使焦点从Text2拉回到Text1;

又激发Text2_LostFocus事件,此时判断Text2文本框输入数据错,又执行Text2.SetFocus,使焦点从Text1拉回到Text2,如此交错造成死循环。

而当摄氏温度(Text2)输入错误时,程序正常运行。

因为当Text2输入结束按Tab键,焦点已到Comman2,因此不会产生死循环。

解决方法:

只要把privateSubTexst2_LostFocus()事件的If表达式IfNotIsNnmeric(Text2)Then改为:

IfText2<

>

””AndNotIsNumeric(Text2)Then即可。

6.如何终止死循环

当编写程序时考虑不周到,产生死循环(尤其在使用第4章介绍的循环结构)时,只要同时按Ctrl+Break键就可以终止死循环,找出死循环的原因,修改程序。

7.声明局部变量和窗体级变量的问题

在VB程序中,除了控件对象外,还要使用一些变量,暂时存放一些中间结果。

这些变量一般在过程内声明,称为局部变量。

但当多个过程需要用到同一个变量时,该变量必须放在代码的最前面级“通用声明”段声明,称为窗体级变量。

有关概念将在主教材的第6章介绍。

具体对实验B第2题来说,在方法一的窗体内有4个过程,共同要用到三个变量a,b,c,因此对这变量的声明应在“通用声明”段,否则Click事件过程中a,b,c变量的值为零。

在方法二中只有一个事件过程,变量a,b,c作为过程级变量声明。

方法一:

方法二:

Dima#,b#,c#

PrivateSubText1_LostFocus()PrivateSubForm_Click()

…’对变量a赋值Dima#,b#,c#

EndSub…’用到变量a,b,c

PrivateSubText2_LostFocus()EndSub

…’对变量b赋值

EndSub

PrivateSubText3_LostFocus()

…’对变量c赋值

PrivateSubCommand1_Click()

…’用到变量a,b,c

8.在Form_Load事件中,Print方法、SetFocus方法不起作用

因为系统在窗体装入内存是无法同步地Print、SetFocus方法显示后定位控件的焦点。

①Print显示解决的方法:

在属性窗口将窗体AUTOREDRAW属性设置为TRUE(默认FALSE)。

②SetFocus定位解决的方法:

在属性窗口对要定位焦点的控件将其TABINDEX值设置为0即可。

9.Print方法中定位问题

定位通过TAB、SPC函数和最后的逗号、分号和无符号来控制。

VB中通过PRINT方法中各参数的综合使用达到所需的结果,但初学者往往难以掌握。

(1)TAB(N)与SPC(N)的区别

TAB(N)从最左第1列开始算起定位于第N列,若当前打印位置已超过N列,则定位于下一行的第N列,这是常常定位不好出现的问题。

在格式定位中,TAB用的最多。

SPC(N)从前一打印位置起空N个空格。

例如,下面程序段显示了TAB与SPC的区别,效果如图2.2所示。

图2.2运行效果例一图2.3运行效果例二

PrivateSubCommand1_Click()

Print"

1234567890"

PrintTab

(1);

"

**"

;

Tab

(2);

%%%"

Spc

(2);

$$$$"

(2)紧凑格式“;

”分号的使用

紧凑格式“;

”,即输出项之间无间隔。

但对于数值型,输出项之间系统自动空一格。

而由于数值系统自动加符号位,因此,大于零的数值,实际空两列。

对于字符型之间无空格。

例如,下面程序段,效果如图2.3所示。

Print1;

-2;

3

1234"

5678"

A"

B"

C"

D"

E"

F"

G"

H"

从该例应能区分数值和字符在紧凑格式输出上的差异。

10.程序运行时对多个文本框焦点移动的问题

方法一:

按“TAB”键。

这时可不必编程,直接利用系统提供的功能方便的在各控件之间移动。

若要确定离开或进入哪个控件,则利用“控件_LostFocus”或”控件_GotFocus”事件进行判断。

方法二:

按“回车”键.这时必须通过KeyPress事件编程来实现,有关程序段如下:

PrivateSub某文本框_KeyPress(KeyAsciiASInteger)

IFKeyAscii=13Then

另一控件.SetFocus

EndIf

测试题

一、选择题

1.在一行语句内写多条语句时,每个语句之间用______符号分隔。

A,B:

C\D;

2.一条语句要在下一行继续写,用_____符号作为续行符。

A+B-C_D…

3.下面___是合法的变量名。

A.X_yzB.123abcC.integerD.X-Y

4.下面___是不合法的整常数。

A.100B.&

O100C.&

H100D.%100

5.下面____是合法的字符常数。

A.ABC$B.”ABC”C.’ABC’D.ABC

6.下面_____是合法的单精度型变量。

A.Num!

B.Sun%C.xinte$D.mm#

7.下面_____是不合法的单精度常数。

A.100!

B.100.0C.1E+2D.100.0D+2

8.表达式16/4-2^5*8/4MOD5\2的值为____。

A.14B.4C.20D.2

9.数学表达式3≤X<10在VB中的逻辑表达式为_____。

A.3<

10B.3<

=xANDx<

C.x>

=3ORx<

10D.3<

=xAND<

10.\、/、Mod、*4个算术运算符中,优先级别最低的是__。

A.\B./C.ModD.*

11.与数学表达式

对应,不正确的VB算术表达是__。

A.a*b/(3*c*d)B.a/3*b/c/d

C.a*b/3/c/dD.a*b/3*c*d

12.Rnd函数不可能为下列__值。

A0B1C0.1234D0.0005

13.Int(198.555*100+0.5)/100的值_。

A198B199.6C198.56D200

14.已知A$=”12345678”,则表达式Val(Left$(A$,4)+Mid$(A$,4,2))的值为__。

A123456B123445C8D6

15.MsgBox函数返回值的类型是__。

A.整型数值B.字符串C.变体D.数值或字符串

16.InputBox函数返回值的类型是__。

A.整型数值B.字符串C.变体D.数值或字符串

17.表达式Len(“123程序设计ABC”)的值是__。

A.10B.14C.20D.17

18.以下关系表达式中,其值为False的是__。

A.”ABC”>

”AbC”B.”女”>

”男”

C.”BASIC”=UCase(“basic”)D.”123”<

”23”

19.下面正确的赋值语句是__。

A.x+y=30B.y=π*r*r

C.y=x+30D.3y=x

20.为了给x,y,z三个变量赋初值1,下面正确的赋值语句是__。

A.x=1:

y=1:

z=1B.x=1,y=1,z=1

C.x=y=z=1D.xyz=1

21.赋值语句:

a=123+Mid(“123456”,3,2)执行后,a变量中的值是__。

A.”12334”B.123C.12334D.157

22.赋值语句:

a=123&

Mid(“123456”,3,2)执行后,a变量中的值是__。

A.”12334”B.123C.12334D.157

23.语句:

Print”Sqr(9)=”;

Sqr(9)的输出结果是__。

A.Sqr(9)=Sqr(9)B.Sqr(9)=3

C.”3”=3D.3=Sqr(9)

24.如果要处理一个值为50000的整数,应采用哪种VB基本数据类型描述更合适?

__。

A.IntegerB.LongC.SingleD.String

二、填空题

1.在VB中,1234、123456&

、1.2346E+5、1.2346D+54个常数分别表示

(1)、

(2)、(3)、(4)类型。

2.整型变量x中存放了一个两位数,要将两位数交换位置,例如,13变成31,实现的表达式是(5)。

3.数学表达式

的VB算术表达式为(6)。

4.数学表达式

的VB算术表达式为(7)。

5.表示x是5的倍数或是9的倍数的逻辑表达式为(8)。

6.已知a=3.5,b=5.0,c=2.5,d=True,则表达式:

a>

=0Anda+c>

b+3OrNotd的值是(9)。

7.Int(-3.5)、Int(3.5)、Fix(-3.5)、Fix(3.5)、Round(-3.5)、Round(3.5)的值分别是(10)、(11)、(12)、(13)、(14)、(15)。

8.表达式Ucase(Mid(“abcdefgh”,3,4))的值是(16)。

9.在直角坐标系中,x、y是坐标系中任意点的位置,用x与y表示在第一或第三象限的表达式是(17)。

10.计算现在起离北京奥运会(以2008年8月8日开幕)举行还有多少天的函数表达式是(18)。

11.计算现在起离你毕业还有多少个星期的函数表达式是(19)。

12.表示s字符变量是字母(不区分大小写字母)的逻辑表达式为(20)。

13.下面程序段的输出结果为(21)。

x=35:

y=20

Print"

("

&

x&

\"

y&

)*"

="

(x\y)*y

x;

y;

14.下面程序段的输出结果为(22)。

x=10:

Printx;

+"

Printx+y

计算结束"

参考答案

一、选择题

1.B

2.C

3.AB数字开头错误;

C是VB表示表示整型关键字,不可使用;

D中间是减号。

4.DA是十进制整常数;

B是八进制整常数;

C是十六进制整常数。

5.BA是字符变量;

C字符串常量不允许单引号;

D没有类型声明,则默认为变体类型的变量。

6.AB整型;

C字符型;

D双精度型。

7.DD是双精度常数的形式。

8.B掌握算术运算符优先级别和整除,取余运算符的使用。

9.B见常见错误和难点分析1。

10.C次序为:

/,*,﹨,Mod。

11.D按D的表示,数学表达式为:

12.BRnd的随机函数产生0~1(包括0,不包括1)的随机数。

13.C

14.B掌握取子字符串函数Left,Mid,Right函数的使用。

15.A该函数表示在当前日期按“m”月格式加一个月,本应该C,但这是不合法的日期。

16.C该函数表示两个指定日期间的时间间隔数目。

本例格式“y”表示日数。

17.ALen求的字串个数,在VB中一个汉字,一个英文字符都是一个字。

18.CLenB求的是字节数,在VB中的一个汉字,一个英文字都是两个字节。

19.CA错误在于赋值号左边只允许是变量;

B错误在于表达式中应该用3.14直接常量表示。

D错误在于3y是非法的变量名。

20.AB错误VB规定不允许使用“,”作为语句分隔符;

C错误不能同时给三个变量赋值,此语句在VB中语法没有错,但结果错。

D错误xyz是一个变量。

21.DMid(“123456”,3,2)的值为”34”,与整数123进行“+”运算。

在VB中,“+”既可作算术相加,也可作字符串连接加,到底属于哪一种,就看两边的操作数,类型均相同,不必考虑。

当类型不同时,一边是数字,另边是数字字符,按算术加处理,否则出现“类型不匹配”的错误。

本例中数字字符“34”自动转换成数值34,再和123相加,结果为157。

22.A“&

”是字符串连接符,连接的两边先转换成字符类型,再连接。

23.B输出时,“Sqr(9)=”字符串直接按样输出,Sqr(9)表达式输出其值。

24.BInteger类型存放的最大值为32767,因此用Long类型存放;

而Single和Double为实数类型,占用空间比整数类型多。

(1)整数

(2)长整型

(3)单精度型

(4)双精度型

(5)(xMod10)*10+x\10

‘利用xMod10和x/10运算可将一个两位数分离出来,要连接起来,通过乘10再加个位数即可

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1