vb编程题目,如图第五和第七题

大一VB编程期末考试试题题库_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
大一VB编程期末考试试题题库
&&大一VB编程期末考试试题题库
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩4页未读,
定制HR最喜欢的简历
你可能喜欢当前位置: >>
计算机二级VB第7章选择题及答案
第七章理论复习题1、阅读下列程序: Private Sub Form_Click() Dim m As Integer Static n As Integer For i = 1 To 3 n=n+i m=m+i^2 Next Print m, n End Sub 运行时两次单击窗体结果为() 。 A、14 6 C、 14 6 14 6 28 6 B、 14 6 D、14 6 14 12 28 12 2、窗体上的命令按钮编写如下事件过程: Private Sub Command1_Click() Dim array1(10, 10) As Integer Dim i, j As Integer For i = 2 To 4 For j = 3 To 5 array1(i, j) = i * j Next j Next i Print array1(2, 4) + array1(3, 4) End Sub 运行时,单击命令按钮后输出的结果是() 。 A、9 C、 程序出错 B、 13 D、20 5、以下数组声明语句中数组 a 包含的元素个数为() 。 Dim a(3,-2 to 1,5) A、96 C、 60 B、 75 D、13 6、有声明 Dim a(-3 to 1,3) As Integer,则下列叙述中正确的是() 。 A、数组 a 是二维动态数组 C、 a(0,0)不是该数组的元素 B、 数组 a 共有 20 个元素 D、a(1,1)是该数组的第十个元素 7、下列叙述中错误的是() 。 A、控件数组的每一个元素共享同样的事件过程 B、 控件数组的每一个元素都有与之相关联的下标值 C、 控件数组的每一个元素都有不同的 name 属性作为标识 D、可在运行过程中删除控件数组的某个元素 8、能使一维数组 arr(6)元素个数加 1,但保留数组中原有元素的语句是() 。 A、ReDim arr(7) B、 ReDim Preserve arr(7) C、 Public arr(1 to 7) D、Static arr(7) 9、运行下列程序,单击窗体时在窗体上显示的结果是() 。 Private Sub Form_Click() Dim a Dim s As Integer, i As Integer a = Array(1, 2, 3) For i = 2 To 0 Step -1 s = s + a(i) * a(i) Next i Print s End Sub A、13 C、 14 B、 不确定 D、程序出错 10、 运行下列程序,单击窗体后输出的结果是() 。 Option Base 0 Private Sub Form_Click() Dim a Dim I as integer A=Array(1,2,3,4,5,6,7,8,9) For I=1 to 3 Print a(5-I); Next I End Sub A、3 2 1 C、 5 4 3 B、 4 3 2 D、6 5 4 11、 要将字符串数组 a 中所有学生姓名按数组下标顺序追加到列表框 list1 中, 可以使用的程序段为() 。 A、For i = 0 To UBound(a) - 1 C、 List1.AddItem a List1.AddItem a(i), 0 D、For i = 0 To UBound(a) - 1 Next i List1.List(i) = a(i) B、 For i = 0 To UBound(a) - 1 Next I List1.AddItem a(i) Next i 12、 如下程序段中包含一个错误。 X=4 Dim a(X) For m=4 to 0 step -1 a(m)=m +1 Next m 出错的原因是() 。 A、第四行,数组元素 a(m)下标越界 C、 第二行,不能用变量定义数组下标 B、 第四行,不能用循环变量 m 进行运算 D、 第三行,循环语句格式不对 13、 下列语句错误的是() 。 A、Private a(-10 to 5) D、Dim a%(10,-10 to -10) B、 Dim a(N)‘N 为变量 C、 Dim a() As Integer 14、 能刚好存放如下方阵数据的数组声明语句是(不能浪费空间) ( ) 。 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 A、Dim A(9) as Single C、 Dim A(-1 to 1,-5 to -3) as Single B、 Dim A(3,3) as Single D、Dim A(-3 to -1,5 to 7) as Integer 15、 以下定义数组或给数组元素赋值的语句中,正确的是( ) 。 A、Dim a As Variant C、 Dim %A(10) a=Array(1,2,3,4,5,6) a(1)=&ABCD& B、 Dim a(10) As Integer D、Dim a(3),b(3)As Integer a=Array(1,2,3,4,5,6) a(0)=0:a(1)=1:a(2)=2: b=a 16、 在窗体上画三个单选按钮,组成一个名称为 ChkOption 的控件数组。用于 标识各个控件数组元素的属性是() 。 A、Tag C、 Index B、 Name D、Value 17、 下列关于控件数组的说法中,正确的是() 。 A、控件数组可以由不同类型的控件组成 B、 同一个控件数组中各元素的 Name 属性值不同 C、 同一个控件数组中,每个元素的属性设置值都相同 D、控件数组必须由同类型的控件组成 18、 阅读如下程序: Private Sub Command1_Click() Dim a(1 To 10) As Integer, p(1 To 3) As Integer, i%, k% k=5 For i = 1 To 10 a(i) = i Next i For i = 1 To 3 p(i) = a(i * i) Next i For i = 1 To 3 k = k + p(i) * 2 Next i Print k End Sub 运行上面的程序,单击命令按钮 Command1,窗体显示的内容为() 。 A、22 C、 44 B、 33 D、55 19、 以下程序段执行的结果是() 。 Private Sub Command1_Click() Dim a Dim i As Integer, j As Integer a = Array(1, 3, 5, 7, 9, 11) For i = 1 To a(4) j=j+1 Next i Print j End Sub A、7 B、 5 C、 9 D、11 20、 如下数组声明语句中数组 a 包含的元素个数为() 。 Dim a(3,-1 to 1,6) A、 84 C、 72 B、 54 D、 18 21、 窗体上有命令按钮 Command1,编写下列事件过程: Private Sub Command1_Click() Dim a(10) As Integer Dim p(3) As Integer k=1 For i = 1 To 10 a(i) = i Next i For i = 1 To 3 p(i) = a(i * 3) Next i For i = 1 To 3 k = k + p(i) * 2 Next i Print k End Sub 运行时单击命令按钮,窗体将显示() 。 A、 15 C、 30 B、 13 D、 37 22、 以下程序段中有( )处错误。 ReDim a As Integer n+3=n a=0;b=1 Print n + 3 = n A、1 C、 3 B、 2 D、4 23、 在通用声明中给出 Option Base 1 语句,则数组 a 包含( Dim a(3, -2 To 1, 5) A、120 C、 60 B、 75 D、13 24、 运行下列程序,单击窗体后输出的结果是( ) 。 Private Sub Form_Click() Dim a Dim s As Integer, i As Integer a = Array(1, 2, 3, 4, 5, 6) s=1 For i = 5 To 1 Step -2 s = s * a(i) Next i Print s End Sub A、15 C、 120 B、 48 D、720)个元素。 25、 对窗体上的命令按钮编写如下事件过程: Private Sub Command1_Click() Dim arr(10, 10) As Integer Dim i As Integer, j As Integer For i = 1 To 10 For j = 1 To 10 arr(i, j) = i + 2 * j Next j Next i Print arr(0, 1) + arr(2, 3) End Sub 运行时,单击命令按钮后输出的结果是( ) 。 A、8 D、下标越界 B、 10 C、 20 26、 窗体上有一个命令按钮 Command1,编写如下事件过程: Private Sub Command1_Click() Dim s%, i%, j% Dim a(3, 3) As Integer For i = 1 To 3 For j = 1 To i a(i, j) = j s = s + a(i, j) Next j, i Print s End Sub 运行时,单击按钮,则窗体上显示的内容是( ) 。 A、6 C、 10 B、 9 D、18 27、 运行下列程序,单击窗体后输出结果是( ) 。 Private Sub Form_Click() Dim a Dim i As Integer, j As Integer a = Array(1, 2, 3, 4, 5, 6) For i = 1 To a(5) j=j+1 Next i Print j End Sub A、0 C、5 B、 6 D、程序出错 28、 设 arr 是一个上界为 K 的一维动态数组。能使 arr 元素个数增加 1,但保留 数组中原有数据的语句是( ) 。 A、ReDim arr(K + 1) C、 Public arr(1 To K + 1) B、 ReDim Static arr(K + 1) D、ReDim Preserve arr(K + 1) 29、 能使一维数组 arr(6)元素个数加 1,但不保留数组中原有元素的语句是() 。 A、ReDim Preserve arr(7) B、 Public arr(1 to 7) C、 Static arr(7) D、ReDim arr(7) 30、 以下关于控件数组的描述中,正确的是() 。 A、同一控件数组中的控件所有属性值都相同 B、 同一控件数组中的控件其 Index 属性值不同 C、 同一控件数组中的控件类型可以不同 D、同一控件数组中的控件名称不同 31、 以下有关数组的说明中,正确的是() 。 A、用 ReDim 语句重新定义维数时,不得改变该数组的数据类型 B、 无论是动态数组还是静态数组,数组一旦定义,其维数是不能重新定义的 C、 用 ReDim 语句重新定义维数后,原有的数组元素内容将不予保留 D、在过程中可以用 Private 语句定义数组1/4/5 BDA 6-1011-15 BCBCA 21-25 DCCBA CBDDB BCBCC 16-20 CDBCA 26-31 C
全国计算机等级考试二级VB第七章节练习题目全国计算机等级考试二级VB第七章节练习题目隐藏&& 全国计算机等级考试二级 VB 第七章节练习题目 1.填空题 以下程序找出 50...全国计算机二级VB上机题库(题+答案) - 一、基本操作题 下面出现的“考生文件夹”均为 c:\wexam\。 请根据以下各小题的要求设计 Visual Basic 应用程序...2016 年计算机二级《VB》基础练习题及答案(2) 1[简答题]在名称为 Forml 的窗体上添加两个名称分别为 Textl 和 Text2 的文本框,它们的 高、宽分别为 300、...2017计算机二级VB模拟试题与答案(二) - 2014 计算机二级 VB 模拟试题与答案(三) 一、选择题 1、以下关于 MsgBox 的叙述中,错误的是( )。 A.MsgBox 函数返回...2016计算机二级vb考试题及答案_资格考试/认证_教育...右击窗体,在弹出的菜单中选择&添加窗体&命令 D.右...A.3 B.2 C.1 D.0 7、 下列关于窗体的描述中...2017计算机二级VB模拟试题与答案(一) - 2014 年计算机二级 VB 模拟试题及答案(一) 一、选择题 (1)下面叙述正确的是(C) A.算法的执行效率与数据的存储结构无...21计​算​机​二​级​V​B​选​择​题​及​答​案​.​d​o​c1、窗体上有一个通用对话框 comdlg1,语...全国计算机二级VB上机题库(题+答案)word版_IT认证_...List1.AddItem &Item4& End Sub (7)调试并运行...请选择 参考代码: Private Sub Op1_Click(Index As...计算机二级VB选择题_其它考试_资格考试/认证_教育专区...VB知识点/简单控件设计 7、在程序运行时,若要获得...False 答案:B 等级:2 难度:2 知识点:VB知识点/...计算机二级VB填空题与选择题7_电脑基础知识_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 计算机二级VB填空题与选择题7_电脑基础知识_IT/计算机_专业...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。【图片】有大佬能解答一下第七题吗【vb吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:108,536贴子:
有大佬能解答一下第七题吗收藏
有大佬能解答一下第七题吗
通用软件不合适,定做软件太昂贵,自己用vb.net开发太难,何不试试FoxTable?
草民在此等候大佬出现
大佬在哪里@_@
图片清晰度不足,勉强能看清题目要求,感觉可以用很简单的代码完成啊,根据数学规律,3个连续整数之和一定是3的倍数然而下面的代码好多……居然还用了函数?而且有3个参数?……看来首先不能用数学规律取巧,需要正面上其次,那这个函数是用来干嘛的……用来判断一个数是否能分解成3个连续自然数?那只需要1个参数就够了啊;计算3个数之和?好像太低级了点,而且这个函数调用貌似是出现在If条件的位置……(不过至少知道了函数应该是Boolean型的第一空填As Boolean)总之,我脑子不够用了,按照题目给的代码格式没有思路……所以麻烦LZ发个清晰的图片,我看看这题目到底是什么样的脑洞
为什么上传之后会变得这么糊
哇? 怎么发高清的。。。等等我手抄一份拍给你
电脑截图就没这事,手机有大小问题
这样看得清吗
其实我觉得有写下来拍照的工夫在手机上完全可以把代码打出来了……话说这代码脑洞确实够大的,这个自定义函数居然除了正常的返回值本身外,还用两个参数返回了数值,也就是说传入的参数只有一个(这是跟某些API学的么)函数功能:对于给定的【参数1】,判断其是否能够表示为3个连续自然数之和(还真是这样),如果能,则通过【参数2】返回这3个数的最小值,【参数3】返回这3个数的最大值(我算服了这脑洞了,有这必要么,既然是3个连续自然数,返回其中一个不就行了么,或者干脆把3个数全都返回了也行啊,为什么偏要返回2个……)答案:1. As Boolean '这个确实没错,看来我眼神还不错2. Sum = L '如果有连续3个数相加(K=3),并且和等于要判断的数(Sum=L),3. Fun = True '则令函数返回True4. I = 1 To 100 '注意开头是字母i的大写(这个其实应该不用说吧)5. List1.AddItem S 'S表示生成的算式,把算式添加到列表框中
登录百度帐号当前位置: >>
vb程序设计同步学习指导习题
第一章 Visual Basic 概述1.1 知识点归纳1.VB 的特点 (1)面向对象的可视化编程。? 把程序和数据“封装”起来成为一个对象;每个对象都是可视的;从 VB 工具箱中选用 控件(即现成部件,如文本框、命令按钮等),构成应用程序的用户界面。 (2)事件驱动的编程机制。 传统的程序设计语言面向过程,VB 语言面向对象通过事件来触发执行相应的事件过 程(“事件驱动”) ,从而执行对象的操作,达到运算、处理的目的。 (3)结构化的设计语言。? (4)友好的 VB 集成开发环境。 2.VB 中对象的基本概念 (1)类和对象? 类:一组用来定义对象的相关属性和数据的集合。类是创建对象的模型,对象则是按模 型生产出来的成品。 例如,人可以称之为类,而每一个人,却只能看做是对象。对象是 VB 系统中的基本运行实体,是一组程序代码和数据的集合。 (2)对象的三要素 对象的三要素包括:属性、方法和事件。 ① 属性:对象的外部特征,即用来描述和反映对象特征的参数。不同的对象有不同的 属性。 每一个对象都有一组特定的属性, 可以通过属性窗口或代码窗口对对象的属性进行设 置。 ②方法:是对象能够执行的动作。它是对象本身内含的一些特殊函数或过程,用于完成 某种特定的功能,供用户直接调用。 ③事件:由系统预先设置好的、能被对象识别的动作。一个对象可以识别响应多个不同 的事件。 3.事件、事件过程及事件驱动 ① 事件:由系统预先设置好的、能被对象识别的动作。发生在用户与应用程序交互时。 如单击控件、鼠标移动、键盘按下等。 ② 事件过程:指附在对象上的用户编写的程序代码,是事件的处理程序。由事件控制 整个程序的执行流程,当某个事件(一般由用户操作来触发) 发生时,系统就会自动执行此 事件的事件过程。 ③ 事件驱动方式:是图形用户界面的本质,由用户控制而代码作出响应。 即事件过程 要经过事件的触发才能被执行,这种工作模式称为事件驱动方式。 4.设计 VB 应用程序的步骤? VB 应用程序的开发,大致分为两大部分的工作:设计用户界面和编写程序代码。即先 要确定对象,然后针对这些对象编写代码。基本步骤如下: (1) 建立工程;? (2) 设计用户界面;? (3) 设置对象的属性值;? (4) 编写程序代码,建立事件过程; (5)保存应用程序; (6)运行和调试应用程序; (7)生成可执行文件。? 5.控件 控件是建立 VB 应用程序的基本元素, VB 中预先定义好的、 是 编程能直接使用的对象, 可视化设计就是通过控件实现的。利用控件创建对象是 VB 编程的一项重要工作。VB 中的 控件一般可分为三大类:内部控件、ActiveX 控件和可插入的对象控件(也叫插件) : (1)内部控件(也称标准控件) :包含在 VB 系统中,默认状态下在工具箱中以图形的 形式显示,这些控件既不能添加,也不能删除。如:文本框、标签、命令按钮等。 (2)ActiveX 控件:存放于扩展名为.ocx 的独立文件中,其中包括 VB 各种版本提供的 控件和仅在专业版和企业版中提供的控件,另外还有许多第三方提供的 ActiveX 控件。 (3)可插入的对象控件:是指能够添加到工具箱中的对象,添加的方法是选择“工程| 部件”菜单选项打开部件窗口,在“可插入对象”选项卡选择相应文件,添加到工具箱中。 每个控件都有自己的属性、方法和能够识别响应的事件。 6.VB 的工作模式 VB 是一个集成编辑、编译与运行于一起的集成开发系统。在程序设计过程中其工作状 态可分为 3 中模式:设计模式、运行模式和中断模式。为了调试程序,用户必须知道系统当 前所处的工作模式及其能实施的相关操作。 (1)设计模式:用于用户基本界面的设计、相关控件的属性设置和程序代码编制。 (2)运行模式:用于在编辑代码过程中编译执行应用程序,以观察运行效果或进行代码 调试。在该模式下,不能对程序界面及代码进行编辑。 (3)中断模式:用于程序运行过程中的暂时中断,这时可以编辑程序代码,并可在“立 即窗口”中显示变量值、中间结果或运行其他命令,但不可编辑界面。该模式主要用作程序 代码的调试和中间结果的检查。在此模式下,选择“运行”菜单下的“继续”选项可以继续 运行程序,选择“结束”选项可以中止程序的运行。 7.VB 常见的错误类型 (1)编辑错误:在编辑代码时,VB 会对键入的代码直接进行语法检查。当发现代码存 在打字错误,遗漏关键字或标点符等语法错误,VB 在 Form 窗口中弹出一个子窗口,提示 出错信息,出错的那一行变成红色。这时,用户必须单击“确定”按钮,关闭出错提示窗, 然后对出错行进行修改。 (2)编译错误:指按了“启动”按钮,VB 开始运行程序前,先编译执行的程序段时, 产生的错误。此类错误由于用户未定义变量、遗漏关键字等原因产生。这时,Visual Basic 也弹出一个子窗口,提示出错信息,出错的那一行被高亮度显示。 (3) 运行错误:指 VB 在编译通过后,运行代码时发生的错误。这类错误往往是指令 代码执行了一非法操作引起的。例如类型不匹配、试图打开一个不存在的文件等。 (4) 逻辑错误:程序运行后,得不到所期望的结果,这说明程序存在逻辑错误。这类 错误往往是程序存在逻辑上的缺陷所引起。例如,运算符使用不正确、语句的次序不对、循 环语句的起始、终值不正确等。通常,逻辑错误不会产生错误提示信息,故错误较难排除, 需要程序员仔细地阅读分析程序以及设置断点进行调试。 8.VB 程序的调试 测试、调试程序的过程是查找、排除和修改程序中错误的过程。VB 中可通过如下方式 调试程序: (1)进入中断模式 通常系统在中断模式下,用户可查看各变量及属性的当前值,观察界面状况,从而了解 程序执行是否正常,并且可以修改程序代码、修改变量及属性值等。 在程序调试时,使系统进入中断模式的方法有以下几种: ①程序运行时发生错误,被系统检测到而中断。 ②程序运行中,按组合键“Ctrl+Break” ,也可以单击调试工具栏中“中断”按钮,或选 择“运行/中断”菜单项,就会产生中断。 ③在程序代码中设置断点,当程序运行到断点处就会产生中断。 ④采用逐语句或逐过程运行,每执行一行语句或一个过程就会产生中断。 ⑤在程序代码中使用 Stop 语句,每执行到 Stop 语句时,也会产生中断。 在中断模式下, 最便捷的查看程序中变量或属性的方法是将鼠标指针停留在要查看的变 量上,系统就会在随后弹出的一个小方框中显示指针所指的变量或属性的当前值。 当在中断模式下调试完毕后,退出中断模式的方法有: ①如果要退出并继续运行程序,则可选择“运行/继续”菜单项,或单击调试工具栏中 “继续”按钮。 ②如要结束运行,则可选择“运行/结束”菜单项,或单击调试工具栏中的“结束”按 钮。 (2)控制程序的运行。 ①逐语句运行。即单击运行,每次只执行一条语句,之后运行中断,按 F8 快捷键或选 择“调试/逐语句”菜单项执行下一条语句。这样可逐个语句地检查每条语句的执行情况。 ②逐过程运行。 当程序运行到调用过程时, 逐过程运行可将整个被调用过程作为整体来 执行。按 Shift+F8 快捷键或选择“调试/逐过程”菜单项均可实现逐过程运行。 (3)设置断点调试。找出程序代码中能反映程序执行状况的关键代码行,单击其左边的边 框位置,设置断点。程序运行到断点设置的代码行自动停止执行,并进入中断模式,观察运 行情况。 (4)立即窗口。立即窗口用于显示在程序运行过程中与当前过程有关的信息,可以显示某 个变量或属性值,或执行单个过程或表达式。在立即窗口中可以实现以下功能: ① 用 Debug.Print 方法输出信息。 调试程序时可在程序代码中添加 Debug.Print n 等语句, 将变量或表达式的值输出到立即窗口中。程序调试完成后,应将 Debug.Print 语句删除。 ② 在设计时用来测试表达式。 在设计模式下,可以在立即窗口中使用 Print 方法或?直 接输出一些表达式的结果。例如:在立即窗口中输入:?Int(Rnd*5) ,按 Enter 键立即显示 一个随机产生的整数。 ③ 直接从立即窗口打印。 在中断模式下,通过使用 Print 方法或?可在立即窗口中检查 变量或表达式的值。例如:在立即窗口中输入:?i,j,i*j ④ 从“立即”窗口编辑变量或属性值。在中断模式下,可在立即窗口中设置变量或属性 的值。例如:当程序中断时,在立即窗口中给属性重新赋值:Text1.ForeColor=vbRed,当程 序继续运行时,文本框中字体的颜色就可变成红色。 ⑤ 从立即窗口中测试过程。 从立即窗口可以通过指定参数值来调用过程, 以测试程序程 序的正确性。例如:使用新参数来计算调用函数 fac()的结果:n=5:?fac(n) 9.VB 应用程序的结构 在 VB 中,一个 VB 应用程序就是一个工程,以*.vbp 工程文件的形式保存,一个工程 通常包含多种类型的文件模块,其中最常见的有: ① 窗体模块(*.frm) :是创建应用程序的基础。在窗体模块中包含窗体及其控件的属 性设置值,同时还包含在该窗体的代码窗口中编写的对常量、变量、类型和外部过程的声明 以及 sub 和 function 过程。 ② 标准模块(*.bas) :存放与窗口或控件无关的代码,通常是其他模块共同使用的声 明和过程代码。 ③ 类模块文件(*.cls) :用来定义类,并可用它创建能被应用程序中的过程所调用的对 象。 ④ *.frx 二进制文件:系统自动产生,包含属性窗口装入的图片等信息。 ⑤ 资源文件(.res) :是指将在程序运行时用到的资源集中在一起的一个文件。一个资 源文件可以包括文字(TEXT) 、位图(BITMAP) 、图标(ICON)等。并且在程序中调用时 不用指明路径,这就简化了程序的编写并减少了发生错误的可能。1.2 常见错误和难点分析1. 对象名称(Name)属性输入错误 在窗体上创建的每个控件对象都有一个唯一标识它的默认名称。 用户也可以在属性列表 窗口中修改对象名。 在编写代码时引用该对象的属性或方法时需要指明对象名。 当程序中的 对象名错误时,系统会显示“要求对象”的信息。 2.对象的属性名、方法名输入错误 当对象的属性名或方法名输入出错,编译时系统会显示“方法或数据成员未找到”的提 示信息。编写代码时尽量使用自动列出成员功能。即当用户在输入控件对象名和句点后,系 统自动列出该控件对象在运行模式下允许使用的属性和方法, 用户可通过按空格键或双击鼠 标左键选择,以防止此类错误的出现。正确的系统按规定的大小写表示。 3.混淆控件的 Name 属性和 Caption 属性 Name 属性的值用于在程序中唯一的标识该控件对象,在窗体上不可见;而 Caption 属 性的值是在窗体上显示的内容。 4. 混淆使用文本框的 text 属性和标签的 Caption 属性 文本框的 Text 属性和 Caption 属性都可以用于表示控件在窗体上显示的内容的, 但两个 属性属于不同的控件,文本框除了用于显示信息以外,还可以用于输入信息。 5.在编译程序时出现“无效字符”错误提示,对应行以红色字显示。 在 VB 中要注意英文环境下的半角符号和中文环境下全角符号的使用。VB 只允许使用 英文环境下的半角符号。最常见的如:逗号 , 与 ,双引号 D ‖与“” 句号 . 与 。的区别。 6. 字母和数字形状相似 输入代码时注意小写字母“l”和数字“1”形式相同、小写字母“o”与数字“0” 。 7. 添加多个相同类型的控件时,无意形成控件数组 在添加多个相同类型的控件时,可在窗体上先添加一个控件,然后“复制”-“粘贴” , 此时会出现对话框询问是否创建控件数组,单击“否”按钮,在窗体上添加同类型不同名称 的控件。如果单击“是”则形成控件数组。 8.语句书写位置错误。 在 VB 中,除了在“通用声明”段使用 Dim 等变量声明、Option 语句外,任何其他语 句都应放在事件过程中,否则程序运行时会显示“无效外部过程”的提示信息。 9. 打开工程时找不到对应的文件 一个最简单的 VB 应用程序至少也应包括一个工程文件.vbp 和一个窗体文件.frm 组成。 工程文件记录该工程内所有文件包括窗体文件.frm、标准模块文件.bas、类模块文件.cls 等的 名称和存放路径。若用户在上机结束后,把文件保存到磁盘上,而又遗漏了某个文件,下次 打开工程时就会显示“文件未找到”的提示信息。或者在磁盘上对某个文件进行重命名,这 样也会造成打开工程时显示“文件未找到”的提示信息。建议用户在编保存一个工程时,将 该工程包含的所有文件保存在同一个文件夹中,通常将该工程作为一个整体复制或移动。 10.误用“文件”菜单中的“添加工程”选项,形成工程组。 用户误选“文件|添加工程”菜单选项,无意形成一个工程组。 “文件”菜单中的“工程 另存为”选项,现在变成“工程组另存为”选项。解决的办法:在工程资源管理器窗口,选 中不需要的工程,单击鼠标右键打开快捷菜单,选“移除工程”选项,删除工程文件夹下的 工程组文件*.vbg,再重新打开工程就可以了。1.3 习题一、选择题 1.VB 是一种面向对象的程序设计语言,构成对象的三要素是________。 (A)属性、控件和方法 (B)属性、事件和方法 (C)窗体、控件和过程 (D) 控件、过程和模块 2.窗体编辑器的主要功能是________。 (A)设计窗体的外观 (B)编写源程序代码 (C)建立用户界面 (D) 设置对象属性 3.在代码窗口中,当从对象列表框中选定了某一对象后,在________中会列出适用该 对象的事件。 (A)过程框 (B)属性窗口 (C)事件列表框 (D 工具栏 4.要设置窗体上个控件的属性,可在_______中进行。 (A)窗体布局窗口 (B)工程资源管理器窗口 (C)属性窗口 (D) 窗体窗口 5.某一窗体的 name 属性为 myForm,它的 Load 事件过程名称为________。 (A)MyForm_Load (B)Me_Load (C)Form_Load (D) Form1_load 6.要在窗体 Form1 内显示字符串”MyForm” ,可以使用的语句是________。 (A)Form.Caption=”MyForm” (B)Form1. Caption=”MyForm” (C)Form1.Print ”MyForm” (D) Form.Print ”MyForm” 7.以下不能在&工程资源管理器&窗口中列出的文件类型是 ________。 (A).bas (B).res (C).frm ( D).ocx 8.设窗体上有一个文本框,名称为 text1,程序运行后,要求该文本框只能显示信息, 不能接受输入的信息,以下能实现该操作的语句是________。 (A) Text1.MaxLength=0 (B) Text1.Enabled=Flase (C) Text1.Visible=Flase (D) Text1.Width=0 9.以下能在窗体 Form1 的标题栏中显示“VisualBasic 窗体&的语句是 ________。 (A) Form1.Name=&VisualBasic 窗体& (B) Form1.Title=&VisualBasic 窗体& (C) Form1.Caption=&VisualBasic 窗体& (D) Form1.Text=&VisualBasic 窗体” 10.添加一个命令按钮“开始” 。若要为命令按钮设置快捷键键,即按下 Alt 及字母 S 时,能够执行&开始&命令按钮的事件过程,方法是:________。 (A) 把 Caption 属性设置为&Start (B) 把 Caption 属性设置为 S& Start (C) 把 Name 属性设置为&Start (D) 把 Name 属性设置为 S& tart 11.以下叙述中错误的是 ________。 (A) 事件过程是响应特定事件的一段程序 (B) 不同的对象可以具有相同名称的方 法 (C) 对象的方法是执行指定操作的过程 (D) 对象事件的名称可以由编程者指定 12.下列关于 Visual Basic 6.0 的控件的叙述中,正确的是________。 (A) Visual Basic 6.0 的控件分为 3 类:内部控件、标准控件和 ActivateX 控件 (B) 标准控件可以添加,但不能删除 (C) 启动 Visual Basic 6.0 后,ActivateX 控件就出现在工具箱 (D) ActivateX 控件是扩展名为.ocx 的独立文件 13.下列说法错误的是________。 (A) 窗体文件的扩展名为.frm (B) 一个窗体对应一个窗体文件 (C) Visual Basic 中一个工程只包含一个窗体文件 (D) Visual Basic 中的一个工程最多可包含 255 个窗体 14.以下关于 Visual Basic 特点的叙述中,错误的是( ) (A) Visual Basic 是采用事件驱动编程机制的语言 (B) Visual Basic 程序既可以编译运行,也可以解释运行 (C) 构成 Visual Basic 程序的多个过程没有固定的执行顺序 (D) Visual Basic 程序不是结构化程序,不具备结构化程序的三种基本结构 15.VB6.0 集成开发环境中不能完成的功能是________。 (A) 编辑源程序 (B)编译生成可执行文件 (C) 调试运行程序 (D) 自动查找并改正程序中的语法错误 16. 确定一个控件在窗体上的位置的属性是________。 (A) Width 和 Height (B)Width 或 Height (C)Top 和 Left (D)Top 或 Left 17.若要使标签空间显示时不覆盖其背景内容,要进行设置的属性是________。 (A) BackColor (B) BackStyle (C) ForeColor (D) BordStyle 18. 若要使某一文本框控件在程序运行过程中能用鼠标单击获得输入焦点, 但不能用按 下 Tab 键的方式获得输入焦点,则应________。 (A) 将其 Enabled 属性设置为 False,且其 TabStop 属性设置为 False (B) 将其 Enabled 属性设置为 True,且其 TabStop 属性设置为 False (C) 将其 Enabled 属性设置为 False,且其 TabStop 属性设置为 True (D) 将其 Enabled 属性设置为 True,且其 TabStop 属性设置为 True 19.以下可以产生工程组文件(.vbg)的情况是________。 (A) 当一个程序中包含了两个以上的窗体时 (B) 当一个程序中包含了两个以上的标准模块时 (C) 当一个程序中包含了两个以上的工程时 (D) 当一个程序中包含了两个以上的类模块时。 20.当窗体上的文字或图形被覆盖或窗体最小化后能恢复原貌,需要将窗体的______ 属性设置为 True。 (A)Visible (B)AutoRedraw (C)Paint (D) Resize 二、填空题 1.与传统的程序设计语言相比,VB 最突出的特点是采用____________编程机制。 2. 提供两种控制程序运行的方式, VB 一种是____________方式, 另一种是__________ 方式。 3.Visual Basic 6.0 有 3 中工作模式,即_________,__________和__________。 4.如果要在单击命令按钮 Command1 时执行一段程序代码,则应将这段代码写在 ____________事件过程中。 5.在窗体上已经建立了多个控件如 label1、Label2、Text1 和 Command1,要使程序一 运行时焦点就定位在 Command1 控件上,应对 Command1 控件设置_________属性的值为 ________。 6 . 要 清 除 一 个 文 本 框 Text1 中 的 文 字 , 则 在 程 序 代 码 中 应 书 写 的 语 句 是 _______________。 三、编程题 1.编写一个简单的程序,在窗体上有两个命令按钮( “显示”与“隐藏” )和一个标签 (标题为“欢迎使用”,单击“显示”按钮时,将标签显示出来,单击“隐藏”按钮时,将 ) 标签隐藏起来。 2. 窗体上含有两个标签、 两个文本框和两个命令按钮, 两个标签分别用于显示文字 “边 长”和“面积” ,两个文本框用于输入数据和显示计算结果。运行时,用户在“边长”文本 框中输入某一个正整数,当单击“计算”按钮时,则在“面积”文本框中显示该数的平方数。 单击“结束”按钮,则结束程序的运行。1.4 参考答案一、选择题 1 B 11 D 二、填空题 1.事件驱动 2.逐语句 , 逐过程 3.设计模式 , 运行模式 , 中断模式 4.Command1_Click 5.TabIndex ,0 6.Text1.Text=‖‖ 三、编程题 1. Private Sub Command1_Click() Label1.Visible = True End Sub Private Sub Command2_Click() Label1.Visible = False End Sub 2. Private Sub Command1_Click() Dim x As Single x = Val(Text1.Text) Text2.Text = x * x End Sub Private Sub Command2_Click() End End Sub 2 C 12 D 3 A 13 C 4 C 14 D 5 C 15 D 6 C 16 C 7 D 17 B 8 B 18 B 9 C 19 C 10 A 20 B 第二章 顺序结构的程序设计2.1 知识点归纳1.VB 提供的数据类型 数据是程序处理的对象。为了更好地处理各种各样的数据,VB 定义了多种数据类型, 不同类型的数据,所占的存储空间不一样。VB 提供的数据类型主要分为: ①标准数据类型:整型(Integer)、长整型(Long)、字节型(Byte)、单精度型(Single)、双精 度型(Double)、货币型(Currency)、字符串型(String)、逻辑型(Boolean)、日期型(Date)和变体 型(Variant) 。 ②用户自定义类型:可以用 Type?End Typy 语句创建用户定义的类型。 ③枚举类型:可以用 Enum?End Enum 语句来定义相关的命名常数集合。 2.变量和常量 (1) 变量的定义和作用域 ① 用类型说明符来标识,常用类型说明符有:单精度浮点数! 、双精度浮点数#、整型 数据%、长整型数据&、货币型数据@、字符串型数据$。 ② 在定义变量时指定类型,其格式如下: [Public|Private|Static] Dim 变量名 As 数据类型 ③ 变量的作用域指的是变量的有效范围。 根据定义位置和使用的变量定义语句的不同, 分为 3 种: ? 局部变量:是在过程(事件过程或通用过程)内定义的变量,其作用域是其所在的过 程。局部变量在过程内用 Dim 或 Static 声明。 ? 模块变量:包括窗体变量和标准模块变量,其作用于窗体内的所有过程。模块变量用 Private 或 Dim 声明。 ? 全局变量:作用域最大,在工程中的每一模块和窗体都能访问的变量。全局变量用 Public 或 Global 声明。 当局部变量和全部变量同名时, 在局部变量所在过程中该变量为局部 变量,离开此过程为全局变量。 变量名必须以字母或汉字开头, 由字母、 数字或下划线组成, 长度小于等于 255 个字符; 不能使用 VB 中的关键字、过程名、符号常量名和函数名;在为变量命名时应见名知义,尽 可能简单明了,尽量采用 Visual Basic 建议的变量名前缀或后缀的约定来命名,以便区分变 量的类型,在同一个范围内变量名必须是唯一的。 (2)在 VB 中,常量分三类,分别为: ①一般常量:在程序代码中直接给出的数据。包括字符串常量(用双引号括起来的一系 列字符) 数值常量 、 (包括整型常量、 长整型常量、 单精度常量、 双精度常量) 布尔常量 、 (只 有 True 和 False 两个值) 、日期常量(用一对# #括起来) 。 ② 用户自定义常量――声明常量的语法为: [Public|Private] Const 常量名 [As 数据类型]=&表达式& 通常,为区分明显,用户定义的常量名用大写字母;常量名在程序中智能引用,不能重 新赋值。 ③ VB 提供的系统常量――系统定义好的常量位于对象库中,在“对象浏览器”中的 Visual Basic(VB) 、Visual Basic for Applications(VBA)等对象库中列举了 VB 的系统常量。 如:VbOkonly、VbYesno 3.运算符与表达式 ①算术运算符:^(乘方) 、*、/(除法) 、\(整除) 、mod(求余)+、-, 优先级从 左到右依次降低。 ②字符串运算符有两个:&和+,区别是“ + ”两边必须是字符串, “& ”不一定。 ③关系运算符:=、&、&=、&、&=、&&,运算结果为逻辑值。 ④逻辑运算符:Not、And、Or、Xor、Eqv(相等)和 Imp(蕴含) ,其运算结果为逻辑 值。 ⑤日期运算符:+、-。注意:两个日期可以相减,但不能相加。日期运算的结果可能 是日期,也可能是相隔的天数。 ⑥优先级:当一个表达式中存在多种运算符是时,按如下优先级的先后顺序进行运算: 函数―&算术运算(乘方-&取负-&乘法/除法-&整除-&求余-&加/减)―&字符串运 算符-&关系运算符-&逻辑运算符(Not―&And―&Or) ,同级从左到右,有括号时括号内优 先。 4. 常用内部函数 VB 提供了大量的内部函数供用户在编程时调用。 内部函数按其功能可分为: 数学函数、 转换函数、字符串函数、日期函数和格式输出函数等。 函数的一般调用格式: &函数名&([&参数表&]) 说明:参数表可以是一个参数或用逗号分隔开的多个参数;参数可以是变量、常量、表 达式,也可以是函数。 5.赋值语句 格式: [Let] &变量&=&表达式& 或: [Let] [对象名.]&属性名&=&表达式& 功能:将等号右边表达式的值,赋值给等号左边的变量或属性。 说明: (1)关键字 Let 可以省略。 (2)向对象赋值时,应指明对象名和属性名,系统默认的对象是当前窗口。 (3)等号在这里称为赋值号。 (4)变量和对象一旦被赋值,新值将代替旧值。 (5)赋值语句具有计算和赋值的双重功能。 (6)等号右边的变量(对象)必须和等号右边的数据类型一致。 注意:在代码中区分赋值语句“=”与关系运算符“=” 。 6.程序的基本构成。 程序通常由若干条语句共同协作完成一个完整的功能, 一般情况下, 一个完整的程序应 该包含 4 个部分: ①说明部分:说明程序中使用的变量的类型、初始值、特性等。 ②输入部分:输入程序中需要处理的原始数据。 ③加工部分:对程序中的数据按需要进行加工和处理。 ④输出部分:将结果以某种形式进行输出。 7.VB 程序的书写规则 在编写程序代码时,要遵守一定的规则。不能超越其规定来自由发挥。 (1) 一行可写多条语句,语句间用冒号 “:” 分隔,一行最多可有 255 个字符。? (2) 一条语句可分成多行书写。在 VB 中一般是一行写一条语句,但若单行语句太长, 也可以分若干行书写,但在行末须加入续行符(一个空格紧跟一个下划线 “_”)。 (3) VB 代码中不区分大小写字母,自动将关键字的首字母转换成大写。 (4) 各关键字之间,关键字和变量名、常量名、过程名之间一定要有空格分隔。 (5)使用缩进格式。为了便于阅读,编写程序代码时,可以使用缩进来反映代码的逻辑 结构和嵌套关系。 (6)严格按照 VB 规定的格式和符号编写程序。与其他高级语言一样, VB 中使用的分 在 号、引号、括号等符号都是英文状态下的半角符号,而不能使用中文状态下的全角符号。 (7)程序中可使用注释,注释以 Rem 开头或用撇号“`”引导注释内容,用撇号“`” 引导的注释内容,可直接出现在语句的后面。 8.数据的输入输出 一个完整的 VB 应用程序,应包括数据输入、数据处理和数据输出 3 个部分。通过数据 输入和数据输出实现应用程序与用户交互的功能。 ① 数据输入除了利用赋值语句“=”为变量和对象属性设置新值(在程序运行前的编 码阶段输入数据) ,或利用文本框控件供用户在程序运行过程中输入数据外,还可以使用 InputBox()函数在程序运行过程中从键盘输入数据。 &变量名&=InputBox(&提示信息&[,标题][,默认内容]) 说明:运行 InputBox()函数可以屏幕上产生一个对话框供用户输入数据,并将其输入的 内容作为函数返回值向变量赋值。 ② 数据输出除了可以在窗体、标签等标准控件上显示信息以外,还可以使用 MsgBox 过程或 MsgBox()函数弹出对话框显示信息。 MsgBox &提示信息&[,按钮图标][,标题] 说明:弹出一个 MsgBox 对话框,显示提示信息,只有一个按钮,无返回值。 或 &变量名&=MsgBox (&提示信息&[,按钮图标][,标题]) 说明:弹出 MsgBox 对话框,提示用户选择按钮,将用户选择按钮的结果返回,控制程 序的流向。 9.Print 方法 Print 方法可以在窗体上或其它图形对象上以及打印机上输出信息,而信息输出的位置 非常关键。 (1)Print 方法的格式 [ 对象名. ]Print [表达式列表][,| ;] 表达式表可以是一个或多个表达式,可以是数值表达式,也可以是字符串。对于数值表 达式,打印表达式的值(即:Print 语句具有计算和输出双重功能,先计算后打印) ;而字符 串则原样输出。当输出多个表达式或字符串时,各表达式之间要用分隔符隔开(,或 ;: ) ①若用 ,分隔,则按标准格式显示数据项(以 14 个字符为一区段) ; ②若用 ;分隔,则按紧凑格式输出数据项(字符之间无空格) ; ③若表达式结尾无标点符号,则执行完该语句后,自动换行; ④若 Print 语句中无表达式列表,则输出空行。 (2)用 Tab()和 Spc()函数定位 ① Tab()函数 格式:Tab(&n&) 功能:使用在 Print 语句中,把光标移动到由参数 n 指定的位置,并从该位置开始输出 数据。 说明:要输出的内容放在 Tab 函数后,并用 ;号隔开。在一个 Print 方法中有多个 Tab 函数时,每一个 Tab 函数对应一个输出项,之间用 ;号分隔。参数 n 可以是数值表达式, 但其值是一整数。 ②Spc()函数 格式:Spc(&n&) 功能:在 Print 输出中,用 Spc()函数可以跳过 n 个空格。 说明:Spc 函数和输出项之间用 ;号分隔,其作用和 Tab 函数类似,可以相互替代。 但 Tab 函数是从对象的左端开始记数,而 Spc()函数只是表示两输出项之间的间隔。2.2 常见错误和难点分析1. 变量名使用系统关键字、系统常量、函数名等。 如:Dim date As Integer 这里 Date 是日期函数名。 2.无意声明了变体型的变量。 如:Dim a,b,c As Integer 这里声明的 a 和 b 为变体型变量,正确的应该是: Dim a As Integer,b As Integer , c As Integer 3.赋值号“=”两边的表达式数据类型不匹配 如:a 为整型变量,文本框 Text1 中输入的内容是 welcome,代码 a=Text1.Text 运行过 程中提示“类型不匹配” 。 4.同时给多个变量赋值,造成逻辑错误。 要给多个变量 a、b、c 赋值,有的用户写成 a=b=c=5,这条语句在 C 语言中是正确的, 但在 VB 中由于赋值号与逻辑等号书写相同,所以此语句中 b 和 c 之间、c 和 5 之间的“=” 系统会认为是逻辑等号,所以不会出现语法错误,而形成逻辑错误。 5.漏掉乘法运算符* 在 VB 中书写 S=ab 数学表达式时,习惯性的省略了乘法运算符,系统会认为是 ab 是一 个变量,不会认为是求 a 乘以 b ,导致逻辑错误。 6.算术运算符 / 和 \ 的使用混淆。 在 VB 中,/ 是除法运算符,\ 是整除运算符,有的用户混淆了这两个运算符,在求 3 除以 2 的结果时,写成 s=3\2,结果只有商的整数部分。 7.字符串连接运算出错。 字符串的连接运算赋有&和+两种,在编写代码过程中,有的用户会写出这样的代码: Dim s as String , n as Integer s=”计算的结果为: n ”+ 系统提示错误信息“类型不匹配” 。在进行字符串连接运算时,如果使用+进行连接运 算,连接符两边应全为字符型,在使用&连接运算符进行运算时,可以不全是字符型,系统 会自动转换。所以这里换用&运算符或用 str(n)进行数据类型转换。 8. 逻辑表达式书写错误,编译时没有造成语法错而形成逻辑错。 要在 VB 中表示数学表达式 0&=x&1,有的用户写成:0&=x&1,编译时没有造成语法错 误而形成逻辑错。因为这里 x 的值不管是多少,这个逻辑表达式的结果都是 True。 在 VB 中,当两个不同类型的变量或常量参加运算时,有自动向精度高的类型转换的功 能。如逻辑常量 True 转换为数值型的值为-1,False 为 0;反之数值非 0 转换为逻辑型的值 为 True, 为 False。 0 表达式 0&=x&1 的计算过程为: 先计算 0&=x, 结果为 true(-1)或 False(0); 不管是哪个结果,始终是&1 的,表达式结果永远都是 True。正确的书写应该是:x&=0 And x&1 。 9.数据溢出错误。 有的用户在编写代码求解 s=10! 时, 定义一个整型变量 s (Dim s As Integer) 来表示 10! 的结果,编译提示错误信息“溢出” 。在 VB 定义了多种数据类型,不同类型的数据,所占 的存储空间不一样。整型变量 2 个字节的存储空间无法满足 10!结果的需要,发生溢出。解 决的办法是:Dim s as Long,长整型数据有 4 个字节的存储空间。另外对于浮点型数据也要 根据实际的数据值来决定声明为单精度型(Single)还是双精度型(Double) 。 10.标准函数名输入错误 VB 提供了很多事先定义好具有特定功能的内部函数,供用户使用。当函数名写错时, 运行程序,系统显示错误提示信息“子程序或函数未定义” ,单击“确定”按钮,在指示位 置检查函数名是否输入正确。 11.声明局部变量和窗体级变量的问题。 在 VB 程序中,需要用变量用来暂时存放一些中间结果,这些变量在使用前需要声明。 变量一般在过程内部声明使用,称为局部变量。但当多个过程需要用到同一个变量的值时, 该变量必须放在所有代码的最前面即“通用声明”段声明,称为窗体级变量。 12.在 Form_Load 事件过程中 print 和 set_focus 方法不起作用 Form_Load 过程即系统在窗体装入内存时无法同步地用 Print、SetFocus 方法显示或定 位控件的焦点。解决方法: ①Print 显示信息: 方法一、在属性窗口将窗体 AutoRedraw 属性设置为 True。 方法二、在 Form_Load 事件过程第一行添加 Show 语句 ②SetFocus 方法定位焦点:在属性窗口中对要定位焦点的控件的 TabIndex 属性值设置 为 0。 13.在使用计时器控件实现简单的动画时,计时器不工作。 一个计时器两个属性(Enabled 和 Interval)一个事件(Timer):只有在保证给计时器的 Enabled 属性赋值 True,Interval 属性值非 0,timer 事件过程编写正确的情况下,计时器正 常工作。2.3 习题一、选择题 1.在一个语句行内写多条语句,语句之间应该用______来分隔。 (A)逗号 (B) 分号 (C) 顿号 (D) 冒号 2.以下可以作为 Visual Basic 变量名的是_______。 (A)F1.1 (B)Int (C)F2A (D)2FA 3.当标签的标题内容太长,需要根据题目自动调整标签的大小时,应设置标签的_____属性 为 True。 (A)AutoSize (B)WordWrap (C) Enabled (D) Visible 4.在窗体上已经建立了多个控件,如 Text1,Label1,Command1。若要程序开始运行时焦 点定位在 Text1 上,应将 Text1 的 TabIndex 属性设置为_______。 (A)0 (B)1 (C) 2 (D) 3 5.在程序中将变量 i,t,s,d 分别定义为 Integer 类型,Boolean 类型,String 类型和 Date 类型, 下来赋值语句正确的是_______。 (A)s=5+‖abc‖ (B)t=#True# (C) i=‖354‖+‖613‖ (D) d=#10/05/04# 6.下列语句中错误的是 _______。 (A)A$=‖abc‖ (B)x=5+6 (C)print Dabc‖ (D) print x=a+b 7.Visual Basic 认为下面_______组变量是同一个变量。 (A) A1 和 a1 (B) Sum 和 Summary (C).Aver 和 Average (D) A1 和 A_1 8.表达式 5 Mod 3+3\5*2 的值是 ________。 (A) 0 (B) 2 (C) 4 (D) 6 9. 设 x=4,y=8,z=7,以下表达式 x&z Or z&y 的值是 ________。 (A) 1 (B) -1 (C) True (D) False 10.\、/、Mod、*、四个算术运算符中,优先级最低的是________。 (A)\ (B)/ (C)Mod (D)* 11.设 A、B、C 表示三角形的三条边,表示条件“任意两边之和大于第三边”的布尔表达 式正确的是________。 (A)A+B&=C OR A+C&=B OR B+C&=A (B)Not(A+B&=C AND A+C&=B AND B+C&=A) (C)A+B&C OR A+C&B OR B+C&A (D)A+B&C AND A+C&B AND B+C&A 12.表达式(7\3+1)*(18\5-1)的值是 ________。 (A)8.67 (B)7.8 (C) 6 (D)6.67 13.代数式 x 1 - a +ln10+sin(x 2 +2 ? )/cos(57°) 对应的 Visual Basic 表达式是________。 (A) X1 CAbs(A) +Log(10)+Sin(X2+2*3.14)/Cos(57*3.14/180) (B) X1 CAbs(A) +Log(10)+Sin(X2+2* ? )/Cos(57*3.14/180) (C) X1 CAbs(A) +Log(10)+Sin(X2+2*3.14)/Cos(57) (D) X1 CAbs(A) +Log(10)+Sin(X2+2* ? )/Cos(57) 14.求一个三位正整数 N 的十位数的正确方法是 ________。 (A) Int(N/10)-Int(N/100)*10 (B) Int(N/10)-Int(N/100) (C) N-Int(N/100)*100 (D) Int(N-Int(N/100)*100) 15. 表达式Left(“asdf”,2)+UCase(“as”)的值为 ________。 (A) asas (B) ASAS (C) dfas (D) asAS 16.下列日期型常量表达正确的是 ________。 (A)”2/1/02” (B)2/1/02 (C)#2/1/02# (D){2/1/02} 17.设 A=‖‖,则表达式 Val(Left(A,4)+Mid(A,4,2))的值为________。 (A)123456 (B)123445 (C)8 (D)6 18.代数式a c b? d对应的 Visual Basic 表达式是 ________。(A)a/b+c/d (B)a/(b+c)/d (C) (a/b+c)/d (D)a/(b+c/d) 19.函数 Len(Str(Val(D123.4‖)))的值为 ________。 (A)11 (B)5 (C)6 (D)8 20.下列表达式计算的结果不是‖1234‖的是________。 (A)‖12‖+‖34‖ (B)‖12‖&‖34‖ (C)12+34 (D)12&34 21.Int(100*Rnd())+1 产生的随机整数的闭区间是________。 (A) [0,99 ] (B)[1,100] (C) [0,100] (D)[1,99] 22.如果 X 是一个正的实数,将千分位四舍五入,保留两位小数的表达式是________。 (A)0.01*Int(X+0.05) (B)0.01*Int(100(X+0.005)) (C)0.01*Int(100*(X+0.05)) (D) 0.01*Int(X+0.005) 23.执行如下两条语句,窗体上显示的是________。 a=9.8596 Print Format(a,&$0,000.00&) (A)0,009.86 (B) $9.86 (C) 9.86 (D) $0,009.86 24.在窗体中添加一个命令按钮(名称为 Command1)和一个文本框(名称为 Text1) ,并编 写如下程序代码:Private Sub Command1_Click() Dim x As Integer, y As Integer z As Integer x=1:y=2:z=3 x=y: y=z: z=x Text1.Text=CStr(z) End Sub程序运行过程中,用户单击命令按钮 Command1 后,文本框 Text1 中显示________。 (A)0 (B)1 (C)2 (D)3 25.以下关系表达式中,其值为 False 的是__________。 (A) ‖ABC‖&‖AbC‖ (B) Dthe‖&&‖they‖ (C) DVISUAL‖=UCase(DVisual‖) (D) DInteger‖&‖Int‖ 二、填空题 1.产生[10,40]之间的随机整数的 VB 表达式是________________ 2.利用文本框 1 输入数值,将其作为一个圆半径,分别用文本框 2 及文本框 3 输出显示圆 周长、圆面积。 Private Sub Command1_Click() Dim r As Single, l As Single, s As Single Const PI As Single = 3.14159 ________________ l = 2 * PI * r s = PI * r ^ 2 Text2.Text = l Text3.Text = s End Sub 3.利用 InputBox()输入框函数从键盘上输入一个单词,用标准格式在一个输出行内重复显 示 3 遍。 Private Sub Command1_Click() Dim a As String, msg As String msg = &请输入一个单词& s = _______________________ Print _____________________ End Sub 4.用消息框语句显示变量 a 和 b 之和。 Private Sub Command1_Click() Dim a As Single, b As Single a = InputBox(&请输入 a 的值&) b = InputBox(&请输入 b 的值&) _____________________________ End Sub 5.请完善下面程序,程序运行,用户通过输入框输入姓名,然后弹出消息框中显示“×× 先生:祝您马到成功!” ? Private Sub Form_Load() Dim x As String x = InputBox(&输入您的姓名&, &您叫什么名?&) ____________________________________________ End Sub 6.写出下列函数的值: (1)Int(-3.14159)=________________ (2)sqr(sqr(64))=______________________ (3)fix(-3.1415926)=______________ (4)int(abs(99-100)/2) =_________________ (5)sgn(7*3+2)=__________________ (6)Lcase(DHello‖)=_____________________ (7) Left(DHello‖,2)=________________ (8) val(D16year‖)=_______________________ (9) str(-459.65)=___________________ (10) Len(DHello‖)=______________________ 7.写出代数式对应的 Visual Basic 表达式。 ( 1 ) 代 数 式( x ? y ) 3 ? (t ? u ) 2 t ( x ? y)对 应 的VisualBasic表 达 式 为_____________________________ ( 2 ) 代 数 式a 2 ? b 2 ? 2ab cos a 对 应 的VisualBasic表 达 式 为__________________________ ( 3 ) 代 数 式a b? d? c e f对 应 的VisualBasic表 达 式 为__________________________________ (4)代数式 (e3x? ln 5 x) y(注:e 为自然对数的底) 对应的 Visual Basic 表达式为________________________________________? a2 (5)代数式 对应的 Visual Basic 表达式为___________________ a?b(6)代数式 x 2 +3 xy 对应的 Visual Basic 表达式为___________________________ 2? y8.写出下列表达式的值: (1)(2+8*3)/2=__________________ (2)3^2+8=________________________ (3) #11/22/99# -10 =_______________ (4) ‖zyx‖&123&‖ABC‖=_______________ (5)1 + 2 * 14 Mod 17 \ 6 / 2 = ______ 9.写出下面 Format 函数的值: (1) Format(5459.4, ‖##,##0.00‖) 值为:_____________________ (2) Format(334.9, ‖#### ‖) 值为:_____________________ (3)Format(0.6725, ‖0.00 ‖) 值为:_____________________ (4)Format(0.6725, D#.00‖) 值为:_____________________ (5)Format(DHELLO‖, ‖&‖) 值为:_____________________ (6)Format(DThis is it‖, ‖&‖) 值为:_____________________ 10.根据所给条件,列出逻辑表达式。 (1)闰年的条件是:年号(year)能被 4 整除,但不能被 100 整除;或者能被 400 整除, 其 逻 辑 表 达 式 为 : _________________________________________________________________。 (2)一元二次方程 ax 2 +bx+c=0 有实根的条件为 a≠0 ,并且 b 2 -4ac≥0 其逻辑表达式为: ______________________________________________________________________________ 。 (3)征兵的条件是:男性(sex) , 年龄(age) 在 18~20 岁之间,身高(size) 在 1.65 米以 上;或者女性(sex) , 年龄(age) 在 16~18 岁之间,身高(size) 在 1.60 米以上,其逻辑表 达式为: ______________________________________________________________________________ 。 (4)分房的条件为:已婚(marrigerat) ,年龄(age) 在 26 岁以上,工作年限(workingage) 在 5 年 以 上 , 其 逻 辑 表 达 式 为 : _________________________________________________________。 三、读程序写结果 1.下列事件过程 Private Sub Command1_Click() MsgBox Str(123 + 456) End Sub 运行时,在输出对话框中显示的提示信息是_____________________ 2.下列事件过程 Private Sub Command1_Click() Dim a As single a = 1732.56 Print Format(a, &+##,##0.0&) End Sub 运行时,在窗体上输出的结果是:________________________________ 3. 下列事件过程 Private Sub Form_Click() a$=&BeijingShanghai& b$=Mid(a$,InStr(a$,&g&)+1) Print b$ End Sub 该程序的输出结果为__________________ 4.下列事件过程 Private Sub Form_Click() x = &123&: y = 123 a = Chr(Asc(x) + 5) b = Str(Val(x) + 5) c = Val(Str(y) + &5&) Print a,b, c End Sub 运行程序后单击窗体,输出结果是_____________。 5.下列事件过程 Private Sub Command1_Click() '“计算”按钮 Dim a As Integer, b As Integer, c As Integer a = Val(Text1.Text) b = 3 c = 2 * a Mod b / 3 + 1 a = a + 1 b = 2 * b - 1 c = c + a + b Text2.Text = c End Sub 运行该程序,在文本框 Text1 中输入 5,单击“计算”按钮后,在文本框 Text2 显示的结果 是_____________ 6.下列事件过程 Private Sub Form_Click() a = 3: b = 4 Print a, b, 4 + a, Print 2 * b Print a, , b Print &a=&; a, &b=&; b End Sub 写出程序运行的结果__________________________________________ 7.在窗体上已经建立了两个文本框 Text1 和 Text2,并编写如下三个事件过程: Private Sub Form_Click() Text2.Text = &P& Text1.Text = &P& + Text1.Text End Sub Private Sub Text1_Change() Text2.Text = Text2.Text + &N& End Sub Private Sub Form_Load() Text2.Text = &M& Text1.Text = &M& End Sub 运行程序后单击窗体,则在文本框 Text2 中显示的内容是__________________ 8.下列事件程代码 Private Sub Form_Click() Dim a As String, b As String, c As String, n As Integer a = &Visual└┘Basic& '└┘表示空格 n = InStr(a, &└┘&) '查找空格位置 b = Left(a, n - 1) '取左边部分 c = Mid(a, n + 1) '取右边部分 Print b '显示左边部分 Print c '显示右边部分 End Sub 程序运行后单击窗体,输出结果是:___________________ 四、编程题 1.在窗体上添加三个命令按钮(“显示”、 “清除”与“结束”),当单击“显示”按钮 时,在窗体上显示唐诗“静夜思”,如图所示,单击“清除”按钮用于清除所显示的内容, 单击“结束”按钮时,结束程序的运行。2.在窗体上添加 5 个标签、4 个文本框和 2 个命令按钮。程序运行,通过文本框输入一个 总秒数,单击“计算”按钮,总秒数化成小时、分钟和秒数在文本框输出。运行界面如图示。3.在窗体上添加 3 个标签,3 个文本框和 2 个 命令按钮。程序运行,在第一个文本框中输 入文字时,在另外两个文本框中显示同样相同的内容,但显示的字号和字体不同。单击“清 除”按钮时则清除三个文本框中的内容。运行界面如图所示。 4.设计计算语文、数学、英语这三门课程总成绩和平均分的程序,利用文本框做数据的输 入和输出。运行界面如图所示。5.单击窗体,弹出一个输入框,用户输入一个两位数,(如 36),交换个位数和十位数的位 置,把处理后的数(63)用消息框显示给用户。 6.在窗体上添加两个文本框(它们的初始值均为 0)、四个命令按钮(标题分别为“+” “-” “*”“/”)和一个标签(初始标题为空)。要求在两个文本框内输入两个数字,单击“+” (“-”、“*”、“/”)按钮时,标签显示两数相加(减、乘、除)的结果。 7.某门课程的考试成绩分为笔试和机试成绩,其中笔试占 60%,机试占 40%,利用输入框 分别输入该课程的笔试和机试成绩,用消息框输出其总成绩。 8.设计一个电子计时器,以秒为单位计时,单击“计时开始”按钮,计时开始,“计时开 始”按钮变灰, “停止计时”按钮可用,在标签内显示经过的秒数,单击“停止计时”按钮, 计时结束, 弹出消息框提示“您的记录是?秒”(这里的?代表标签最后显示的秒数值)。2.4 参考答案一、选择题 1 D 2 C 3 A 4 A 5 D 6 D 7 A 8 B 9 C 10 C 11 D 21 B 二、填空题12 C 22 B13 A 23 D14 A 24 C15 D 25 A16 C17 B18 D19 C20 CInt(Rnd*31)+10 r = Text1.Text MsgBox msg Print s,s,s 4. MsgBox &a 和 b 之和为& & a + b 5. 参考答案 MsgBox (x & &先生:祝您马到功成!&) 6. 函数的值为: (1)-4 (2)2.)-3 (4)0 (5)1 (6)Dhello‖ (7)DHe‖ (8)16 (9)“-459.65“ (10) 5 7. (1) (X+Y)^3*(T+U)^2/(T*(X-Y)) (2)Sqr(A*A+B*B-2*A*B*COS(A)) (3)a/(b+c/(d+e/Sqr(f))) (4)(Exp(3*X)+Log(5*X))*Y (5)-a*a/(a+b) (6)x^2+3*x*y/(2-y) 8. (1)13 (2)17 (3) #11/12/99# (4)‖zyx123ABC‖ (5)4 9.(1)5,459.40 (2)335 (3)0.67 (4).67 (5)hello (6)THIS IS IT 10. (1) (year Mod 4=0 And year Mod 100&&0) Or (year Mod 400=0) 或(Int(year /4)=year/4 And Int(year/100)&&year/100) Or (Int(year/ 400)=year/400) (2) a&&0 And b^2-4*a*c&=0 (3) 设性别 sex 值 Ture 代表男,sex 值 False 代表女 (sex And age&=18 And age&=20 And size&=1.65) Or (Not sex And age &=16 And age&=18 And size&=1.60) (4) 设婚否 marrigerat 值 为 Ture 代表已婚,False 代表未婚。 marrigerat And age &=26 And workingage&=5 三、读程序题 1. 579 2. 参考答案:+1,732.6 3.&Shanghai& 4. 6 128 1235 5. 12 6. 3 4 3 a=3 b=4 7. PN1. 2. 3.7 48 8. Visual Basic 四、编程题 1.编写的三个按钮的 Click 事件过程代码如下: Private Sub Command1_Click() BackColor = RGB(255, 255, 255) ForeColor = RGB(0, 0, 255) FontName = &楷体_GB2312& FontSize = 20 CurrentX = 1200 CurrentY = 350 Print &静夜思(唐诗)& FontName = &幼圆& Print FontSize = 13 Print Spc(6); &床前明月光,疑是地上霜& Print Print Spc(6); &举头望明月,低头思故乡& End Sub Private Sub Command2_Click() Cls End Sub Private Sub Command3_Click() End End Sub 2.编写的命令按钮单击事件过程代码如下: Private Sub Command1_Click() Dim h As Integer, m As Integer, s As Integer, t As Integer t = Val(Text1.Text) h = t \ 3600 t = t - h * 3600 m = t \ 60 s = t - m * 60 Text2.Text = h Text3.Text = m Text4.Text = s End Sub Private Sub Command1_Click() End End Sub 3.参考答案 Private Sub Form_Load() Text2.FontName = &隶书& Text2.FontSize = 16 Text3.FontName = &楷体_GB2312& Text3.FontSize = 20 End Sub Private Sub Text1_Change() Text2.Text = Text1.Text Text3.Text = Text1.Text End Sub Private Sub Command1_Click() Text1.Text = && Text2.Text = && Text3.Text = && Text1.SetFocus End Sub Private Sub Command2_Click() End End Sub 4.参考答案 Private Sub Command1_Click() Dim s As Single, ave As Single Dim sx As Single, yw As Single, wy As Single sx = Val(Text1.Text) yw = Val(Text2.Text) wy = Val(Text3.Text) s = sx + yw + wy ave = s / 3 Text4.Text = &总成绩为& & s Text5.Text = ave End Sub Private Sub Command2_Click() End End Sub 5.编写的窗体单击事件过程代码如下: Private Sub Form_Click() Dim x As Integer, a As Integer Dim b As Integer, c As Integer x=Val(InputBox(“请输入一个两位数”)) a = Int(x / 10) b = x Mod 10 c = b * 10 + a MsgBox(“处理后的数为”& c ) End Sub'“清除”按钮 '清除文本框 Text1 的内容 '清除文本框 Text2 的内容 '清除文本框 Text3 的内容 '设置焦点'求十位数 '求个位数 '生成新的数 6.参考答案 Private Sub Command1_Click() Dim a as integer,b as integer,c as integer a= Text1.Text b= Text2.Text c=a+b Label1.Caption = c End Sub Private Sub Command2_Click() Dim a as integer,b as integer,c as integer a= Text1.Text b= Text2.Text c=a-b Label1.Caption = c End Sub Private Sub Command3_Click() Dim a as integer,b as integer,c as integer a= Text1.Text b= Text2.Text c=a*b Label1.Caption = c End Sub Private Sub Command4_Click() Dim a as integer,b as integer,c as single a= Text1.Text b= Text2.Text c=a/b Label1.Caption = c End Sub 7.参考答案 Private Sub Form_Click() Dim s1 As Single, s2 As Single, s As Single s1 = Val(InputBox(&请输入笔试成绩&)) s2 = Val(InputBox(&请输入机试成绩&)) s = s1 * 0.6 + s2 * 0.4 MsgBox (&您的成绩为& & s) End Sub 8.参考答案 Private Sub Form_Load() Label1.Caption = 0 Timer1.Enabled = False End Sub Private Sub Command1_Click() Command1.Enabled = False Command2.Enabled = True Timer1.Enabled = True End Sub Private Sub Command2_Click() Command1.Enabled = True Command2.Enabled = False Timer1.Enabled = False MsgBox (&您的记录为& & Label1.Caption & &秒&) End Sub Private Sub Timer1_Timer() Label1.Caption = Label1.Caption + 1 End Sub 第三章 选择结构3.1 知识点归纳1.逻辑运算符与表达式 逻辑运算:将操作数进行逻辑运算,结果是逻辑值,参见表 3-1。表 3-1 逻辑运算符运算符 Not And Or Xor Imp运算结果说明 操作数为 False 时结果为 True;操作数 为 True 是结果为 False 两个操作数均为 True 结果才为 True, 否 则为 False。 两个操作数中有一个为 True,结果就为 True,否则为 False。 两 个 操 作 数 一 个 为 True , 另 一 个 为 False,结果为 True,否则为 False。 第一个操作数为真,第二个为假,结果 为假,否则为真。举例 Not F Not T T And T T And F T Or F F Or F F Xor T T Xor T T Imp F结果 T F T F T F T F F说明: (1)逻辑表达式的优先级顺序是: 算术运算或字符串运算&关系运算&逻辑运算。括号优先,同级运算从左到右执行 (2)Not 运算&And 运算后进&Or 运算 示例:3&&2 And Not 4&6 Or &12& = &123& 为:真 And 假 Or 假,结果为假(False) 2.IF 语句 (1) If?Then 语句(单分支结构) 格式 1:If &表达式& Then 语句块 End If 格式 2:If &表达式& Then &语句& 语句功能:当“表达式”的值为真时执行语句(或语句块) ,否则执行后继操作。 语句说明: A. “表达式”为关系表达式、逻辑表达式或算术表达式。若为算术表达式,其值是非 零为真,零为假。 B. “语句”为一条语句或多条,若为多条时语句间用冒号分隔,并必须写在一行上。 C. “语句块”是一条或多条语句。 “Then”不能与其后的语句写在同一行上,否则必须 加上分隔符。 (2)If?Then?Else 语句(双分支结构) 格式 1: If &表达式& Then &语句块 1& Else &语句块 2& End If 格式 2: If &表达式& Then &语句 1& Else &语句 2& 语句功能: 当表达式的值为真时,执行 Then 后的“语句块 1” (或“语句 1”,否则执行 Else 后面 ) 的“语句块 2” (或“语句 2”。 ) (3)3. If?Then?ElseIf 语句(多分支结构) 格式:If &表达式 1& Then &语句块 1& ElseIf &表达式 2&Then &语句块 2& ? [Else 语句块 n+1 ] End If 语句功能:&表达式 i&为真时,执行&语句块 i& 说明:不管有几个分支,依次判断,当某条件满足,执行相应的语句块,其余分支不再 执行;若条件都不满足,且有 Else 子句,则执行该语句块,否则什么也不执行。 (4)If 语句的嵌套 If 语句的嵌套是指 If 或 Else 后面的语句块中又包含 If 语句。 形式如下: If &表达式 1& Then If &表达式 11& Then … End If … End If If 语句的嵌套注意事项:书写锯齿型; If 与 End If 配对(End If 与离它位置最近的没有 配对的 If 是一对) 。 3.情况语句 Select Case Select Case 语句用来实现多分支结构,其形式比 If?Then?ElseIf 语句更直观。 格式: Select Case 变量或表达式 Case 表达式列表 1 语句块 1 Case 表达式列表 2 语句块 2 ? [Case Else 语句块 n+1] End Select 语句功能: 根据“ 变量或表达式”中的结果与各 Case 子句中的值比较决定执行哪一组语句块。如 果有多个 Case 短语中的值与“变量或表达式”中的结果匹配,则执行第一个与之匹配的语 句块。若都不匹配,且有 Case Else 子句,则执行该语句块,否则什么也不执行。 语句说明: &表达式列表&可以是下面四种形式之一: 表达式 例: “A” 一组枚举表达式(用逗号分隔) 2,4,6,8 表达式 1 To 表达式 2 60 To 100 Is 关系运算符表达式 Is & 60 4.条件函数? (1)IIf 函数形式是: IIf(表达式,当表达式为 True 时的值,当表达式为 False 时的值) 例如,求 x,y 中大的数,放入 Tmax 变量中,语句如下: Tmax=IIf(x & y,x,y) (2)Choose 函数形式是: Choose(数字类型变量,值为 1 的返回值,值为 2 的返回值??) 例如,Nop 是 1-4 的值,转换成 + 、-、×、÷运算符的语句如下: Op= Choose(Nop,&+&,&-&,&×&,&÷&) 当 Nop 是 1-4 的非整数,系统自动取 Nop 的整数办法在判断; 若 Nop 不在 1-4 之间,函数返回 Null 值。 (3) Switch 函数形式是: Switch(条件表达式 1,条件表达式 1 为 True 时的值[,条件表达式 2,条件表达式 2 为 True 时的值??]) 5.变量的使用范围 (1) 事件过程中的内部变量: 在过程内定义的变量,只在本过程中有效;每次执行,该变量都被重新赋值。 (2) 窗体级变量 在窗体代码的通用-声明中定义, 在该窗体的所有事件过程中都有效; 整个运行过程中, 该变量都有效。 (3) 全局变量 在模块中定义,在所有窗体的过程都有效;整个运行过程中,该变量都有效。3.2 常见错误和难点分析1. 在选择结构中缺少配对的结束语句 对多行式的 If 块语句中,应有配对的 End If 语句结束。否则,在运行时系统会显示“块 If 没有 End If”的编译错误。 同样对 Select case 语句也应有与其相对应的 End Select 语句。 2.多边选择 ElseIf 关键字的书写和条件表达式的表示 多边选择 ElseIf 子句的关键字 ElseIf 之间的不能写有空格,即不能写成 Else If。 在多个条件表达式的表示时,应从最小或最大的条件依次表示,以避免条件的过滤。例 如,己知输入某课程的百分制成绩 mark,要求显示对应五级制的评定,评定条件如下: 优 mark&=90 良 80 &= mark & 90 等级= 中 70 &= mark & 80 及格 60 &= mark & 70 不及格 mark & 60 有以下几种表示方式、 语法上都没有错, 但执行后结果有所不同, 请读者分析哪些正确? 哪些错误? 下面给出的答案中,方法一、二、五正确,共余错误,请读者分析各自的原因。 方法―: 方法二: 方法三: If mark&=90 then If mark&60 then If mark&=60 then print &优& print &不及格& print &及格& ElseIf mark&=80 then ElseIf mark&70 then ElseIf mark&=70 then print &良& print &及格& print &中& ElseIf mark&=70 then ElseIf mark&80 then ElseIf mark&=80 then print &中& print &中& print &良& ElseIf mark&=60 then ElseIf mark&90 then ElseIf mark&=90 then print &及格& print &良& print &优& Else Else Else print &不及格& print &优& print &不及格& End if End if End if 方法四: If mark&=90 then print &优& ElseIf 80&=mark&90 then print &良& ElseIf 70&=mark&80 then print &中& ElseIf 60&=mark&70 then print &及格& Else print &不及格& End if 方法五: If mark&=90 then print &优& ElseIf 80&=mark and mark&90 then print &良& ElseIf 70&=mark and mark&80 then print &中& ElseIf 60&=mark and mark&70 then print &及格& Else print &不及格& End if3.Select Case 语句的使用 (1) “变量或测试表达式值 i”中不能使用“变量或测试表达式”中出现的变量。例如, 上 述多边选择的例子改为 Select Case 语句实现,方法一 Case 子句中出现变量 mark,运行时不 管 mark 的值多少,始终执行 Case Else 子句,运行结果不正确;方法二、方法三正确。 方法一: 方法二: 方法三: Select Case mark Select Case mark Select Case mark Case mark&=90 Case Is&=90 Case Is&=90 print &优& print &优& print &优& Case mark&=80 Case Is&=80 Case 80 To 89 print &良& print &良& print &良& Case mark&=70 Case Is&=70 Case 70 To 79 print &中& print &中& print &中& Case mark&=60 Case Is&=60 Case 60 To 69 print &及格& print &及格& print &及格& Case Else Case Else Case Else print &不及格& print &不及格& print &不及格& End Select End Select End Select (2)在“变量或测试表达式”中不能出现多个变量。 如: Select Case 语文成绩,数学成绩,物理成绩 (错误原因:出现三个变量)3.3 习题一、单选题 1、 下列程序运行后,如输入为 5,则输出结果为( ) x = InputBox(&请输入数据&) If x ^ 2 = 25 Then y = x If x ^ 2 & 20 Then y = 1 / x If x ^ 2 & 20 Then y = x ^ 2 + 1 Print y A . 25 B.0.2 C.26 D.5 2、 下面程序的执行结果是( ) x = Sqr(2) \ 2 + Sgn(2) \ 2 + Rnd(2) \ 2 y = Sqr(3) \ 3 + Sgn(3) \ 3 + Rnd(3) \ 3 If x & y Then Print &x&y& ElseIf x = y Then Print &x=y& Else Print &x&y& End If A.x>y B.x=y C.x<y D.以上都不对 3、 假设 x 的值是 5,则执行以下语句时,可得到打印结果“ABCDEF”的 Select Case 语句 是( ) A. Select Case x B. Select Case x Case 10 To 1 Case is &15, is&5 print &ABCDEF& print &ABCDEF& End Select End Select C. Select Case x Case is & 5, 2, 4 To 10 print &ABCDEF& End Select 4、 下面程序的执行结果是( ) x=2 y=1 If x * y & 1 Then y = y - 1 Else y = -1 Print y - x & 0 A .-1 B.False C.True 5、 下面程序的执行结果是( ) D. Select Case x Case 1, 3, is &5 print &ABCDEF& End SelectD.1 x=Int(-Rnd + 2) Select Case x Case -1 Print &x 的值是-1& Case 1 Print &x 的值是 1& Case 2 Print &x 的值是 2& Case 3 Print &x 的值是 3& End Select A .x 的值是-1 B.x 的值是 1 6、 与下面三条语句等效的语句组是( If x = 1 Then y = 4 If x = 2 Then y = 5 If x = 3 Then y = 6 A.If x = 1 Then y=4 ElseIf x = 2 Then y=5 Else: y = 6 End If C. If x = 1 Then y=4 ElseIf x = 2 Then y = 5 End If y=6 )C.x 的值是 2D.x 的值是 3B. If x = 1 Then y=4 ElseIf x = 2 Then Y=5 Else y=6 End IfD. If x = 1 Then y=4 ElseIf x = 2 Then y=5 ElseIf x = 3 Then y=6 End If7、 下面程序的执行结果是( ) i = 10 j = 20 If i & j Then P Print i A .10 B.20 C.20 10 D.10 208、 设 x=10,则执行 y=IIf(x>5,0,1)后,y 的值为( ) A.5 B.10 C.0 D .1 9、 下面程序的执行结果是( ) x = 80 Select Case x Case Is &= 60 Print &及格& Case Is &= 70 Print &中& Case Is &= 80 Print &良好& Case Is &= 90 Print &优秀& Case Else Print &不及格& End Select A.及格 B.中 C.良好 D .不及格 10、下面程序的执行结果是( ) a = &1& b = &2& a = Val(a) + Val(b) b = Val(&12&) If a && b Then Print a - b Else Print b - a A.0 B.12-12 C.9 D .-9 11、 以下正确的语句是() (A) If a&b Then t=a; a=b; b=t (B) If a&b Then t=a: a=b: b=t (C) If a&b Then t=a a=b b=t (D) If a&b Then t=a, a=b, b=t 12、语句 Print IIf(2,3,4)的输出结果为() (A) 0 (B) 2 (C) 3 (D) 4 13、以下是窗体的 Click 事件过程及其程序代码: Private Sub Form_Click() Dim x As Integer x=1 If x&=1 Then Print 1; If x&=2 Then Print 2 If x&=3 Then Print 3; Print End Sub 在程序运行过程中,单击窗体时,程序的输出结果为() (A) 1 (B) 2 (C) 3 (D) 1 2 3 14、以下是窗体的 Click 事件过程及程序代码: Private Sub Form_Click() Dim a As Single, b As Single, c As Single, m As Single a=Val(InputBox(D输入第 1 个数:‖,‖输入数据‖) b=Val(InputBox(D输入第 2 个数:‖,‖输入数据‖) c=Val(InputBox(D输入第 3 个数:‖,‖输入数据‖) m=a if b&m Then m=b if c&m Then m=c Print m End Sub 在程序运行过程中,单击窗体时,在 3 次出现的输入对话框中分别输入-10,20,-30 后,程 序的输出结果为() (A) C10 (B) 20 (C) C30 (D) 0 15、 以下是窗体的 Click 事件过程及其程序代码:Private Sub Form_Click() Dim x As Integer, a As Integer , b As Integer, c As Integer Dim b1 As Boolean, b2 As Boolean x=10:a=1:b=2:b1=-5:b2=0 If a&b Then If b&&3 Then If Not b1 Then X=-10 Else If b2 Then x=-30 x=-50 End if End if End if Print x End Sub在程序运行过程中,单击窗体时,程序的输出结果是() (A) C50 (B) C30 (C) C10 (D) 10 16、以下是窗体的 Click 事件过程及其程序代码:Private Sub Form_Click() Dim score As Integer Score=Int(Rnd*10+80) Select Case score Case Is&60 Print “Fail” Case 60 To 79 Print “Pass” Case 80,Is&90 Print “Good” Case Is&=90 Print “Excellent” End Select End Sub在程序运行过程中,单击窗体时,程序的输出结果为() (A) Excellent (B) Good (C) Pass (D) Fail 17、以下是窗体的 Click 事件过程及其程序代码:Private Sub Fot_Click() Dim y As Integer,l As Integer,s As String s=”Between 2050 And 3000” s=Val(Mid(s,InStr(s,”2”),4)) If y Mod 400=0 Or (y Mod 100=0 And y Mod 4&&0) Then L=1 Else l=-1 End If Print l End Sub在程序运行过程中,单击窗体时,程序的输出结果是() (A) C1 (B) 1 (C) 0 (D) Null 18、 以下窗体的 Click 事件过程及其程序代码:Private Sub Form_Click() Dim a As String, b As String, c As Integer c=0 a=InputBox(“输入第 1 个数据:”) b=InputBox(“输入第 2 个数据:”) if a&b Then c=Fix(-11.99)+Int(-100 Mod 7)*Sgn(Rnd*100) else c=3^3\3*3/3 Mod 3&3 End If Print c End Sub在程序运行过程中,单击窗体时,分别在两次出项的输入对话框中输入-3 和-4 后,程序的 输出结果为() (A) 0 (B) 1 (C) C1 (D) C13 19、以下程序段等价的语句是()if x=1 Then y=2 Else If x=2 Then y=3 Else y=4 End If End if(A) If x=1 Then y=2 Else if x=2 Then y=3 Else y=4 (B) If x=1 Then y=2 ElseIf x=2 Then y=3 Else y=4 (C) If x=1 Then y=2 Else If x=2 Then y=3 Else y=4 End if (D) If x=1 Then y=2 Else if x=2: Then y=3 Else y=4 20、下列说法正确的是() (A) If 语句中的 Then 和 Else 子句都可省略 (B) 在块结构条件语句中,End If 可省略 (C) Else 子句和 Then 子句可以单独作为一条语句存在 (D) 块结构条件语句可以嵌套,但每个块结构条件语句都必须以 End If 结束、 21、 以下是命令按钮 Command1 的 Click 事件过程:Private Sub Command1_Click() Dim a As Integer, b As Integer, c As integer a=2:b=1:c=0 If a Then Print a&c Else Print a&c End If End Sub在程序运行过程中,单击命令按钮 Command1 时,在出现的输入对话框中输入-5,按 Enter 键后,程序的输出结果是() (A) 出错 (B)-1 (C) True (D) False 22、在以下各 Case 子句中,正确的是() (A) Case C1 To C5 (B) Case a Is &10 (C) Case 1,2,‖a‖ (D) Case Is&5,10 To 20 23、 以下程序段的输出结果是() Dim a As Integer, b As Integer, c As Integer a=2:b=1 If a Then if b Then if c Then Print 1 Else Print 2 Else Print 3 (A) 出错 (B) 2 (C) 3 (D) 1二、填空题 1、 下列程序完成求三个数中的最大值和最小值,请在横线处填入适当的内容。 x = Val(InputBox(&请输入第一个数&)) y = Val(InputBox(&请输入第二个数&)) z = Val(InputBox(&请输入第三个数&)) m=x n=x If y & ① Then m = y If y & ② Then n = y If ③ Then m = z If ④ Then n = z Print &最大数为:&; m Print &最小数为:&; n 2、 下列程序的功能是利用随机函数模拟投币, 方法是每次随机产生一个 0 或 1 的整数, 相当于一次投币的结果,1 代表正面,0 代表反面,在窗体上有三个文本框,名称 分别是 Text1、Text2、Text3,用于显示用户输入的投币次数、出现正面的次数和 出现反面的次数,如图 3-7 所示,程序运行后,在文本框 Text1 中输入投币次数, 然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面和反面的次 数,并显示结果,以下是实现上述功能的程序,请在横线处填入适当的内容。 Private Sub Command1_Click() Randomize n = Int(Val(Text1.Text)) n1 = 0 n2 = 0 For i = 1 To ① r = Int(Rnd * 2) If ② Then n1 = n1 + 1 Else n2 = n2 + 1 End If Next i Text2.Text = n1 Text3.Text = n2 End Sub三、编程题 1. (10 分)文本框 txtin 输入一个十进制整数将其转化为二进制数。 程序运行界面如下图所示。 单击“转换”按钮,标签 lblre 中输出二进制数。 (要求 while??wend 循环实现)2. (10 分) 单击“打印”按钮 command1 在图片框 picture1 中输出如图下所示的图形。 (涉及 的循环要求用 for 循环) 3. (10 分) 数组元素值逆置。单击“产生字母”按钮 Command1,产生 10 个随机大写字母存 放到数组中,并显示在标签中 lblr。单击“逆置”按钮 Command2,将数组中的字母按相反 顺序存放,然后输出到标签 lblre。运行界面如下图所示。 (要求 for 循环实现)4. (10 分)字母由小到大排序。窗体运行如下图。单击D产生随机字母‖ 按钮 Command1,产 生 10 个大写的随机字母放入数组,并显示在图示的标签 lblu 上;单击D排序‖ 按钮 Command2,将排序后的字母输出到图示的标签 lblsort。 (涉及的循环要求用 for 循环) 3.4 参考答案 一、单选题1234567891011121314151617181920212223CBCDBDCCADBCDBABACADCDB二、编程题1. Private Sub Command1_Click() Dim n As Long lblre.Caption = && n = Val(txtin.Text) While n && 0 r = n Mod 2 lblre.Caption = r & lblre.Caption n=n\2 Wend End Sub 2. Private Sub command1_Click() For i = 1 To 5 picture1.Print Tab(10 + i); &$&; For j = 1 To 11 - i * 2 picture1.Print &*&; Next j picture1.Print &$&; picture1.Print Next i picture1.Print Tab(10 + i); &*&; End Sub3、 Dim s(1 To 10) As String Private Sub Command2_Click() lblre.Caption = && For i = 1 To 5 temp = s(i) s(i) = s(11 - i) s(11 - i) = temp Next i For i = 1 To 10 lblre.Caption = lblre.Caption & s(i) Next i End Sub Private Sub Command1_Click() lblr.Caption = && For i = 1 To 10 s(i) = Chr$(Int(Rnd * 26) + 65) lblr.Caption = lblr.Caption & s(i) Next i End Sub 4、 Dim s(1 To 10) As String Private Sub Command1_Click() lblu.Caption = && For i = 1 To 10 s(i) = Chr(Int(Rnd * 26) + 65) lblu.Caption = lblu.Caption & s(i) Next i End Sub Private Sub Command2_Click() lblsort.Caption = && For i = 1 To 9 Min = i For j = i + 1 To 10 If s(j) & s(Min) Then Min = j Next j t = s(Min): s(Min) = s(i): s(i) = t Next i For i = 1 To 10 lblsort.Caption = lblsort.Caption & s(i) Next i End Sub 第四章 循环结构4.1 知识点归纳1.循环结构的基本概念 程序设计中需要按照某种规律反复不断执行某一段程序; 能够完成此功能的程序结构成为 “循环结构” ,被反复执行的“程序段”成为“循环体语句” 。 2.循环结构的三要素: A. 构成循环的基本条件是什么? B. 循环体要完成的功能是什么? C. 在什么情况下结束循环过程? 3. For ?? Next 循环语句 格式: For & 循环变量 & = & 初值 & To & 终值 & [ Step & 步长& ] 语句块 [Exit For] 语句块 Next & 循环变量 & 说明: (1) 常用于已知循环次数的场合。步长可正可负,可为整数,也可为实数,步长=1 时, 可省略。 (2) 循环次数: n ? int ?? 终值-初值 ? +1? ,当循环变量(步长}

我要回帖

更多关于 vb编程题及答案 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信