vb程序设计中的逻辑错误
- 格式:pdf
- 大小:105.83 KB
- 文档页数:1
一、单项选择题(共10题、总分30分、得分30分)1. 下列哪个语句定义了包含8个元素的单精度数组() (本题分数:3 分,本题得分:3 分。
)A、Dim a(2,4) As SingleB、 Dim a(1 to 8)!C、Dim a!(7)D、 Dim a(1 to 2,3 to 6) As Long2. 下列关于菜单访问键和快捷键的说法正确的是() (本题分数:3 分,本题得分:3 分。
)A、若一菜单项的Caption属性为“打开(&O)”,则其快捷键是Ctrl+OB、快捷键指用于执行一个命令的功能键或组合键,可以在菜单编辑器中将快捷键设为Alt+FC、可以为任意的菜单项都添加快捷键或访问键D、通过访问键打开某个子菜单时,必须先使焦点位于其上一级菜单3. 如果要退出Do…Loop循环,可使用语句()。
(本题分数:3 分,本题得分:3 分。
)A、ExitB、 Exit DoC、 Exit ForD、Exit For4. 若有数组说明语句:Dim t(1 To 10) As Variant,则t被定义为()。
(本题分数:3 分,本题得分:3 分。
)A、数值数组B、可调数组C、字符串数组D、可变类型数组5. 在下列关于对话框的叙述中,错误的是(): (本题分数:3 分,本题得分:3 分。
)A、作为对话框窗体的Borderstyle、ControlBox、MaxButton和MinButton应分别设置为l、True、False和 False。
B、语句frmAbout.Show vbModeless,frmMain将 fmAbout窗体显示为 fmMain的无模式子窗体。
C、可以将对话框分成两种类型:模式的和无模式。
D、语句frmAbout.Show将frmAbout作为无模式对话框显示。
6. 在窗体上有一按钮Command1,其事件过程如下,则按下Command1窗体上显示的是()Private Sub Command1_Click()Dim i As IntegerScale (0, 0)-(10, 10)For i = 1 To 3DrawStyle = iDrawWidth = iLine (0, i + 1)-Step(8, 0)CurrentY = CurrentY + 1NextEnd Sub (本题分数:3 分,本题得分:3 分。
第八章程序调试8.1 程序错误分类VB中常见的程序错误可分为编译错误、运行错误和逻辑错误3类。
1.编译错误编译错误也称为语法错误,在编写程序时,如果语句不符合VisualBasic的语法规则,就会产生这类错误。
例如,输入了不正确的关键字、遗漏了某个必需的标点符号、缺少表达式、类型不匹配或者应该配对的语句没有配对等,都会产生编译错误。
在编写代码或运行程序时,很容易检查出这类错误。
在编写代码时,VB会自动对程序进行语法检查,某些类型的语法错误能够被即时检查出来,并且会弹出一个出错消息框,出错的那一行以高亮度显示。
例如,当输入“I=”后没有接着输入表达式,而是切换到其他行,则会弹出如图8.1所示的消息框。
还有一些类型的语法错误,在编写代码时VB检查不出来,例如,If语句后没有对应的End If语句、输入了错误的属性名等。
在运行程序时,VB将弹出错误消息框,提示用户错误所在,如图8.2所示。
8.2调试工具栏为了调试程序的方便,用户可以使用VB的调试工其栏。
在默认情况下,VB界面上不显示调试工具栏。
打开【视图】菜单,指向【工具栏】选项,则弹出【工具栏]子菜单,执行其中的【调试】命令即可打开调试工具栏。
其中各按钮的功能如表8.1所示。
8.3 设置断点断点是告诉VB挂起程序执行的一个标记,当程序执行到断点处即暂停程序的执行,进入中断模式,此时可以在【代码】窗口中查看程序内变量、属性的值。
在代码中设置断点是常用的一种调试方法。
在VB中,断点的设置有两种办法:(1)将光标放置在需要设置断点的地方,执行【调试】菜单中的【切换断点】命令或单击调试工具栏中的l切换断点l按钮,即可在该行语句上设置一个断点。
(2)设置断点更简便的办法是,直接在要设置断点的行的左边单击鼠标。
设置了断点的行将以粗体显示,并且在该行左边显示一个黑色的圆点,作为断点的标记。
在代码中可以设置多个断点。
设置完断点后,运行程序,运行到断点处,程序就暂停下来,进入中断模式。
1.模块声明段中有Option Base ()语句,则在该模块中Dim a(6,3to5)声明的数组有21个元素3.在一条Dim语句中可以声明多个变量,如DimstrVas,intVal As Integer,则strVar 与sngVard的数据类型分别是Variant,Variant和integer5.写出清除标签Lable1的显示信息的语句Lable.caption=””7.在过程调用中,参数传递时可分为两种方式,其中按地址传递方式是默认的9.VB中的变量按其作用分为全局变量,模块变量,局部变量11.如果:I=11:I=3:I=int(-8,6)+I\I+13/3 Mod5 则I值是-213.使用Move 方法把图形框Picture1的左上角移动到距窗体顶部100Twip距窗体左边框200 Twap,同时图形框缩小50%,具体形式为picture1.move 100,100 15. String(3,”abc”)的结果为aaa17. 写出用随机产生一个200到300之间整数的VB表达式200+Int(Rnd*100) 19.一个工程可以包括多种类型的文件,其中,扩展为vbp的文件表示工程文件21.VisualBasic6.0用于开发windows环境下的应用程序23.设x为一个两位数,将x各位数和十位数交换后所得两位数VB的表达式是(x mod 10)*10+int(x/10)25.如果:I=12;I=3:I=int(-8.6)+I\I+13/3mod5,则I值是-127. VB中,变量的声明可分为两种方式:隐式声明和显式声明29. 由For k=35 to 0 step 3 :next k循环语句控制的循环次数是031.在模块声明段中有Option Base1语句,则在模块Dim a (3 to 5,6)声明的数组有18个元素33.如果要指明mystring为固定15个字长的全局变量,应该在标准模块中用以下说明语句定义public mystring as string*1535.文件按照存取方式及其组成结构可以分为顺序文件和随机文件37.写出清除图片框的文字或图形信息的语句Picture1.cls39.大于X的最小整数的VB表示形式为Int(x)+141.把条件1<=x<12写成VB关系表达式为x>=1 and x<1243.求x与y之积除以z的余数的VB表达式为x*y Mod z45.由Dim(10)As single定义的数组占用44字节的内存空间47.VB6.0基本表达式包括算术表达式、关系表达式和逻辑表达式49.要使鼠标停留在按钮上显示特殊的鼠标形状,应设置的属性值是MousePointer 51.表达式1 and 0的值false53.要使一个按钮设为默认按钮,应把此按钮的default属性的值设为true55.声明单精度常量p1代表3.14159语句const PI=3.14159 const pi as single = 3.1415957.设x=2,y=4,a=4,b=6,表达式(a>x Xor b<x)OR x<y IMP y<b 的结果为true 59.按照数据文件的存储方法的不同,文件可以分为三种不同的类型:顺序文件、随机文件和二进制文件61.Option Base 1的作用是确定数组的下界为163.命令按钮表面显示文字“退出(X)”(字符X下加下划线),其Caption属性设置为退出65.要使同一类型控件组成一个控件数组,必须name 相同67.设置计时器控件只能触发timer事件69.在控件之中,activex控件单独保存在.ocx文件中,在必要时可以加入到工具箱中71.一个工程可以包括多种类型的文件,其中activeX控件的文件扩展名为ocx 73.Print ”x=”& (2=4)的结果为x=false75.列表框(ListBox)显示项目列表,用户可以从中选择一个或多个项目77.在VB中,若要将字符串“12345”转换成数字值应使用的类型转换函数是val79.设X$=”abc 123456”则“a”+str$(Val(righ+(X$,4)))的值是a345681.要使命令按钮cmdEnd可以以快捷健E访问,应设置属性caption83.变量min&表示长整型类型的变量85.在VB6.0中,变量名最长可达255个字符87.列表框控件不支持Click事件,但支持dblclick事件89.表达式(-3)Mod 8的值为-391.Vb的工作模式可分为三种:“设计”、“运行”以及“中断”93.Val(“123.55ab456”)的值是多少123.5595.在VB中,窗体由属性定义外观,由方法定义行为,由事件定义其与用户的交互97.在vb中,若要求在模块中强制显示地指定变量的数据类型,应当在模块首部的声明部分使用option explicit语句99.文本框中所显示的内容是它的text属性的值101.X=2:Y=8:PRINT X+Y=10的结果是true103.表达式81\7MOD2^2的值是3105.Vb提供了列表框控件,当列表框中的项目较多,超过了列表框的长度是,系统会自动的在列表框边上加一个垂直滚动条107.滚动条控件有水平滚动条和垂直滚动条109.A和b中有仅只有一个为1 ,相应得visual basic逻辑表达式为b=1111.声明定长为10个字符变量Sstr的语句为Dim Ssts as String*10113.声明单精度常量g(重力加速度)代表9.8可写成const g=9.8115.在过程调用中,参数的传递可分为:地址传递和值传递两种方式。
《VB程序设计教程》(第4版)习题解答单元一巩固与提高答案一、选择题1. Visual Basic 6.0分为3种版本,不属于这3种版本的是A)学习版B)专业版C)企业版D)业余版【答】D。
2. 下列方法中不能退出Visual Basic的是A)按Alt+Q组合键B)按下Alt+F组合键,然后按Esc键C)按F10键,然后按F键,再按X键D)打开“文件”菜单→“退出”命令【答】B。
3. Visual Basic集成的主窗口中不包括A)属性窗口B)标题栏C)菜单栏D)工具栏【答】A。
4. 下列操作可以打开立即窗口的是A)Ctrl+D B)Ctrl+F C)Ctrl+G D)Ctrl+E【答】C。
二、填空题1. 与传统的程序设计语言相比,Visual Basic最突出的特点是____。
【答】事件驱动编程机制。
2. 如果不使用鼠标,用键盘打开菜单和执行菜单命令,第一步应按____键。
【答】功能键F10或Alt键。
3. 建立一个新的标准模块,应该选择____菜单下的“添加模块”命令。
【答】“工程”菜单。
三、思考题1. 简述Visual Basic的特点。
【答】与一般的程序设计语言相比,VB具有以下特点:(1) 可视化的设计平台;(2) 面向对象的设计方法;(3) 事件驱动的编程机制;(4) 结构化的设计语言;(5) 充分利用Windows资源;(6) 开放的数据库功能与网络支持。
2. 简述Visual Basic集成开发环境的组成。
【答】VB 6.0集成开发环境除了具有标准Windows环境的标题栏、菜单栏、工具栏外,还有工具箱、属性窗口、工程管理器窗口、窗体设计器、立即窗口、窗体布局窗口等有用的开发工具。
(1) 标题栏和菜单栏:标题栏中显示的有窗体控制菜单图标、当前激活的工程名称、当前工作模式以及最小化、最大化∕还原、关闭按钮。
菜单栏中显示了“文件”、“编辑”、“视图”、“工程”、“格式”等菜单项,其中包含了VB编程的常用命令。
VB期末复习资料及答案2007年01月17日梁朝湘VB期末复习资料及答案(区电大提供,2006-12-17)一、单项选择题1、VB提供控件的窗口是()。
A.工具栏 B.文本框 C.工具箱 D.属性窗2、窗体的Load事件的触发时机是()A.用户单击窗体时 B、窗体被加载时 C、窗体显示之后 D、窗体被卸载时3、能够改变标签(Label)控件显示标题的属性是()。
A.Caption B.Name C.Click D.Text4、在Visual Basic中,程序执行的顺序是()。
A.由Visual Basic开发系统决定 B.由事件驱动C.由代码行的顺序决定 D.随意执行5、无论何种控件,共同具有的属性是()。
A.Text属性 B.Caption属性 C.Name属性 D.Autosize属性6、如果对象的名称为Mytext,而且对象有一个属性Text,那么在代码中引用该属性的正确格A、Text.MytextB、Mytext.TextC、Mytext.(Text)D、 Mytext*Text7、按照变量的作用域可将变量划分为()A、公有、私有、系统B、全局变量、模块级变量、过程级变量C、动态、常数、静态D、Public、 Private、 Protected8、在VB中,变量的默认类型是()。
A、IntegerB、DoubleC、VariantD、Currency9、把数值型转换为字符串型需要使用的函数是()。
A、ValB、StrC、AscD、Chr10、设置对象的边框类型的属性是()A、DrawstyleB、BorderstyleC、DrawWidthD、ScaleMode11、若要再窗体代码编辑器的“通用”部分定义私有Sub过程,则正确的语句是()。
A.Public Sub B.Public Function C.Private Sub D.Private Fun12、要绘制不同形状的图形,需要设置Shape控件的()属性A、ShapeB、BorderstyleC、FillStyleD、Style13、如果准备读文件,打开顺序文件”text.dat”的正确语句是()A、open "text.dat" For Write As # 1B、open "text.dat" For Binary As # 1C、open "text.dat" For Input As # 1D、open "text.dat" For Random As # 114、以下哪些变量名是合法的:A.Len B.Test@qw C.6cost_1 D.count2s15、什么关键字声明的局部变量在整个程序运行中一直存在?()A.StaticB.PrivateC.DimD.Public16、计时器控件响应的事件是()A.TimerB.IntervalC.ClickD.Enabled17、窗体的BackColor属性用于设置窗体的____。
VB名词解释1. 对象:动作体的逻辑模型称为对象。
2.属性:属性是用来描述对象的特性3. 方法:指对象可以进行的动作或行为。
4.事件:是指使某个对象进入活动状态(激活)的一种操作或动作。
5. 事件驱动:Windows环境下程序的运行没有固定的顺序,完全取决于操作者所做的操作,这种工作模式称为事件驱动或消息驱动方式。
6. 过程:是指具有特定书写格式、包含若干可被作为一个整体执行的代码行的组合。
7. 通用过程:可被多个窗体或事件过程共享的代码构成的过程称为通用过程。
8. 变量:程序运行过程中其值可以改变的量称为变量。
9. 数组:是具有相同数据类型的元素所组成的有序集合,可用于存储成组的有序数据。
10.控件数组:是具有相同名称、类型以及事件过程的一组控件。
11.语法错误: 是指由于违反了语言有关语句形式或使用规则而产生的错误。
12.运行错误:是由于试图执行一个不可进行的操作而引起的错误。
13. 逻辑错误:是由于编写的程序代码不能实现预定的处理功能要求而产生的错误。
14. 文件:是存储在外部介质(如磁盘)上的有特定标识的数据的集合。
15.顺序文件:以顺序存取的方式保存数据的文件叫作顺序存取文件,简称顺序文件。
16.随机文件:以随机存取方式存取数据的文件称为随机存取文件,简称随机文件。
17.二进制文件:这种文件中的数据均以二进制的方式存储,存储单位是字节18. 局部变量:是只能在一个函数或过程中访问的变量,其他过程或函数不能访问此变量的数据。
19.形参:Sub过程和Function函数过程中的<参数列表>中的参数称为形式参数(简称形参);20. 实参:在程序中调用Sub过程和Function函数过程时<参数列表>中的参数称为实际参数(简称实参);。
VB综合练习一.选择题1.要改变控件的宽度,应修改该控件的(B)属性。
A、TOPB、widthC、LeftD、Height2.将命令按钮Command1设置为不可见,应修改该命令按钮的(A)属性。
A、VisibleB、ValueC、CaptionD、Enabled3.VB程序设计的完整步骤是( C )。
(A)可视化程序设计(B)代码程序设计(C)可视化程序设计和代码程序设计(D)界面设计4.(D )对象具有clear方法。
A、图片框B、窗体C、复选框D、列表框5.要求改变窗体的标题时,应当在属性窗口中改变( A )的属性。
(A)Caption ( B )Name ( C )Text ( D )Label6.窗体能响应的事件是( C )。
(A)ActiveForm ( B )Drive ( C )Load ( D )Change7.下列变量命名正确的是( B )。
(A)basic+1 ( B )myfile ( C )p1age@2 ( D )cmd..18.由Fo r K=10 TO 0 step 3:next K循环语句控件的循环次数是(B )A、12B、0C、-11D、-109.下列数据类型中,占用内存最大值是(D )A、Boolean 2B、Byte1C、integer2D、Single410.在事件中,Private 表示( B )。
(A)此过程可以被其它的过程调用(B)此过程只可以被本窗体模块中的其它过程调用(C)此过程不可以被任何其它的过程调用(D)此过程只可以被本工程的其它过程调用11.当执行以下的过程时,Lb1Result 的标签框内将显示()。
Private Sub cmdIt_Click( )Dim I,RR=0For I=1 to 5 Step 1R=R+INext iLb1Result.Caption=Str$(R)End Sub( A )字符串15 (B)整数15 (C )字符串5 (D)整数512.若要求从文本框中输入密码时在文本框中只显示$号,则应在此文本框的属性窗口中设置( A )。
霆塑:笠凰
Ⅶ程序设计中的逻辑错误
钱锦
(常州广播电视大学,江苏常州213000)
∥脯要】、;B中擞值型奇以与其毛菜同类型相互转换,但处理不当就有可能导致逻辑错误。
选择结构控帝j中都是条件设置也是经常出现建77
’辑错误的地方。
:.拱键词]逻辑错误;分支结构;程粕受计
‰}!
f?
V B cvi sual B a si c)是—种可视化面向对象高级结构化程序设计语言,可用于开发各类应用程序。
它简单易学、功能强大,很适合初学者
学习程序设计,所以它是程序设计中常用的编程语言之一。
一般常用V B60腻
在使用V B编程时经常出现的三种错误是语法错误、实时错误和逻辑错误。
语法错误表现在拼写错误、标点符号遗漏或是使用的语法格式不正确,这种错误在书写程序时,最迟试运行时系统都会提示错误,我们可以根据系统的提示很快找到错误并改正过来。
实时错误是指应用程序运行期间,一条语句试图执行一条不可能执行的操作而产生的错误,比如:除数为零、数组下标越界等,运行时系统会提示错误。
而逻辑错误主要表现在程序运行后,得到的结果与预期设想的不一致,这就有可能是出现了逻辑错误。
通常出现逻辑错误的程序都能正常运行,系统不会给出提示信息,所有很难发现。
要发现和改正逻辑错误需要仔细阅读和分析程序。
以下几个问题是经常出现逻辑错民并较难发现的地方。
1逻辑表达式写错
例1:5<x<10
数学上表示变量X的取值在5到10之间。
该表达式在V B中也能被执行,但不管X的取值为多少,表达式的结果永远为T r ue o 原因是V B中的数据类型主要有数值型、字符型、逻辑型、日期型、变体型、对象型等。
其中数值型又可以分为整型、长整型、单精度和双精度等。
当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功能。
比如,逻辑常量T rue转换为数值型的值为一1,Fal s e为0;反之数值型非0转换为逻辑型的值为T r ue,0为Fal s e=同样数字字符与数值运算,转换为数值型。
例2:P r i nt True+3‘显示的结果是2
P r i nt。
123。
十1oo’显示的结果是223
根据以上原因,表达式5<x<10中,先根据x的值判断5<x,结果为T r ue或是Fal s e,然后,T r ue或Fa l s e转换成数值一1或O再与10比较,最后结果为True,所以无论X的取值为多少,结果永远为Tr ueo正确的V B表达式为:5<x A nd X<10
2同时给多个变量赋值
在C语言中,可以实现同时对多个变量赋值,而在V B中规定一句赋值语句内只能给—个变量赋值,但下面的程序在V B中是可以正常运行的。
例3:D i m a,bA sInt e ger,cA sInt e ge r
a=b=c=l
Pr i nt a,b,C
例3中变量a为变体型,b和C为整型。
在赋值语句“a=b=c=l‘中,从左边起,第—个“=。
是赋值符号,后两个“=。
是关系运算符,该句的功能是首先判断b和C是否相等,由于b,C的初始值都是O,所以结果为Tr ue,然后把Tr ue转换为数值一1,再与数值1进行比较,最后结果为逻辑值F a l se赋值给变量a。
该程序执行后的显示为
F a l se00
V B中给a,b,C赋值正确的写法为:a=l:b=l:c=1
3选择结构中条件的设置
在结构化程序设计过程中,选择结构中或是循环程序中的条件如果设置不当很容易产生逻辑错误。
例4:已知百分制成绩s cor e,显示对应的等级:
20l O年4月(日
一I|14.
,≯。
h?j口l。
j I~…,?一…-j{、|“L‰,^?锄。
二乙Ⅲ…㈧。
m?qjf j:k】{|{Ⅲ吣|妯黪Sel ec t Cas es core
C a se l s>=60
Pr i n t“及格”
C as el s>=70
Pr.nt。
中等。
C ase I s>=80
Pr i n t“良好”
C a se I S>--90
Pr i n t“优秀”
C ase E l s e
Pr i n t。
不及格。
E ndSel e ct
例5:I f chec kl.v al ue=l t he n
T ext l=。
我的爱好是体育”
E I sel f check2.va I ue=1t hen
T ext l=“我的爱好是音乐。
E l sel f checkl.va l ue=l an dche ck2.va l ue=l t he n
T ext l=“我的爱好是体育音乐。
E nd i f
上面的两例子在语法上都没有错误,但由于多分支结构中,当满足其中一个条件时就不再判断是否满足其他条件,所以例4中不管是100分还是60分,输出的结果都是及格。
例5中第3各分支永远都执行不到,当c hec kl和c hec l<2都选中的话,输出结果为“我的爱好是体育。
这种错误隐蔽得较深,较难发现,对于多分支程序在测试的时候一定要保证每—个分支都能被测试到。
4数值型数据的逻辑运算问题
在V B中不仅有逻辑类型的数据;并且逻辑运算的与(and)运算和或(or)运算不仅能对逻辑量进行运算,也能对数值型的量进行逻辑运算,因为逻辑值可以与数值进行相互转换。
例6:D i m aas B ool ean
a=San d8
pr i n t a
结果为Fal s e,V B中对数值型数据进行逻辑运算时,它是按位运算的。
上例中5的二进制为00000101而8的二进制为00001000,按1andl为1,其余为零的运算规则,结果为数值00000∞0,转换为逻辑型Fal seo如果操作数为负数,进行逻辑运算时要将负数转换为补码再运算,一5转换为补码1””O”与8进行and运算,结果为00001000,转换为逻辑型T r ueo对数值型数据进行逻辑运算并非V B 编程的主流,请注意即可。
对于逻辑错误,可以利用V B提供的调试工具来发现和改正错误。
比如:断点设置、单步执行..显示变量和属性的值等。
如果怀疑程序的
错误是由于执行路径或是变量的值不正确等原因造成的,除了采用设置断点的方式进行调试外,还可以借助于M sgbox语句。
}j_“1j j?b}j t÷|’1l11j-j,j{{一?a'/11”’…¨㈦j||u”‘一?j3/?,/。
11;?[参考文献】一‘1。
:It]刘世峰.vin砧m斑程序设计肆j央广播电视大学出版社.2004.
?【2】赵光峰,崔瑞海.V弧mB商c程J葶没计教程【M】.高等教育出版社0000._H。