VisualBasic-程序设计基础(川版)-习题答案.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateVisualBasic-程序设计基础(川版)-习题答案VB答案(1-5)VB习题答案(1-4)习题1一、选择题1. 以下叙述中,错误的是_。(A)一个Visual Basic 应用程序可以含有多个标准模块文件(B)一个visual Basic 工程可以含有多个窗体文件(C)标准模块文件可以属于某个指定的窗体文件(D)标准模块文件的扩展名是.bas标准模块文件(.bas)不属于任何一个窗体文件。参考答案为C。2. 以下叙述中错误的是_。(A)一个工程可以包括多种类型的文件(B)Visual Basic应用程序既能以编译方式执行,也能以解释方式执行(C)程序运行后,在内存中只能驻留一个窗体(D)对于事件驱动型应用程序,每次运行时的执行顺序可以不一样内存中可以驻留多个窗体,当前窗体只能有一个。参考答案为C。3. Visual Basic的窗体设计器主要是用来_。(A)建立用户界面 (B)添加图形、图像、数据等控件(C)编写程序源代码 (D)设计窗体的布局参考答案为A。4. Visual Basic是一种结构化高级程序设计语言,它采用的是_驱动方式。(A)键盘 (B)鼠标 (C)事件 (D)函数参考答案为C。5. Visual Basic程序设计语言属于_。(A)面向过程的语言 (B)机器语言 (C)面向对象的语言 (D)汇编语言参考答案为C。6. Visual Basic一共有设计、运行和中断三种模式,要使用调试工具应该_。(A)进入设计模式 (B)进入运行模式 (C)进入中断模式 (D)不用进入任何模式VB中三种模式分别为:设计模式下可以进行界面设计和代码的编写;运行模式下执行代码,接受用户的操作;中断模式下可以修改代码,但不能改变界面,这个模式下通常进行代码调试,当运行出错时,默认转到该模式下进行调试。参考答案为C。7. 假定一个Visual Basic应用程序由一个窗体模块和一个标准模块构成。为了保存该应用程序,以下正确的操作是_。(A)只保存窗体模块文件(B)分别保存窗体模块、标准模块和工程文件(C)只保存窗体模块和标准模块文件(D)只保存工程文件一个工程中可包含多个文件,当打开一个工程文件时会自动加载工程内所有文件。对程序保存需分别保存工程文件及窗体文件。参考答案为B。二、填空题1. Visual Basic 6.0分为3种版本,这3种版本是_、_和_。参考答案:学习版、专业版、企业版2. 应用程序最终面向用户的窗口是_,它对应于应用程序的运行结果。参考答案:窗体设计器3. 如果打开了不需要的菜单或对话框,可以用_键关闭。参考答案:ESC三、简答题1. 简述Visual Basic语言的特点。参考答案:Visual Basic是Windows操作平台下的可视化编程语言,它继承和发展了BASIC语言的基本功能,具有简单易学、功能强大等特点。Visual Basic提供了可视化设计工具,以图形用户界面(GUI)为PC机用户提供了一个直观的工作环境。支持面向对象的程序设计(OOP),采用事件驱动方式,提供对象的链接与嵌入(OLE)和访问数据库等功能。2. Visual Basic 6.0的集成开发环境由哪些部分组成,各部分的主要功能是什么。参考答案:1. 标题栏:用来显示打开的工程名称和系统的工作状态。2. 菜单栏:菜单栏中包括“文件”、“编辑”、“视图”、“工程”、“格式”、“调试”、“运行”、“查询”、“图表”、“工具”、“外接程序”、“窗口”和“帮助”共有13个菜单项。这是一组下拉式菜单,提供了设计、编辑、编译和调试应用程序所需要的绝大部分功能和命令。3. 工具栏: Visual Basic 6.0提供了“编辑”、“标准”、“窗体编辑器”和“调试”4种工具栏。工具栏上形象直观的排列着一些最常用的命令按钮,对应特定的常用操作命令。4. 控件箱:控件箱提供了一组控件。设计界面时,用户可以用鼠标双击控件箱中的控件,在窗体中画出该控件,或用鼠标单击控件箱中的控件,然后在窗体中拖动鼠标画出所需的控件。5. 窗体设计器:窗体设计器是应用程序最终面向用户的窗口。各种控件、图形、数据以及程序的运行结果都在窗体设计器窗体中显示出来。6. 工程资源管理器:在工程资源管理器窗口中(图1-2),列出了应用程序的工程以及工程中的窗体和模块。7. 属性窗口:属性窗口主要用来设置Visual Basic窗体及各控件的属性特征,属性窗口的主体部分分为左右两列,左边是控件的属性名列表,右边是控件的属性值列表。8. 窗体布局窗口:窗体布局窗口用于观察应用程序中各窗体在屏幕上的位置。可以在窗体布局窗口用鼠标拖动窗体小图像的方法来改变窗体布局。3. 什么是对象的属性、事件和方法。参考答案:属性是一个对象的数据,用来表示对象的状态。属性具有属性值,改变对象的属性值就可以改变对象的状态。对象常见的属性有标题(Caption)、名称(Name)、颜色(Color)、字体大小(Fontsize)、是否可见(Visible)等。事件(Event)是能被对象识别的动作,例如Click(单击),DblClick(双击),Load(装入),MouseMove(移动鼠标),Change(改变)等。Visual Basic编程的核心就是为每一个要处理的事件编写响应事件的程序代码。方法(Method)即是具有完成某种功能的过程和函数,它决定了对象要执行的动作。4. 简述编写并运行Visual Basic程序的一般步骤。参考答案:(1)创建应用程序界面。(2)设置界面上各个对象的属性(3)编写事件驱动代码(4)单击工具栏上的启动按钮,运行该程序。四、编程题编写程序,在窗体上显示“第一个Visual Basic程序”。参考答案:(1)创建应用程序界面。(2)设置界面上各个对象的属性(3)编写事件驱动代码Private Sub Command1_Click() Text1.Text = "第一个Visual Basic程序"End SubPrivate Sub Command2_Click() EndEnd Sub(4)单击工具栏上的启动按钮,运行该程序。单击“开始”按钮。习题2一、选择题1. 下面可以正确定义2个整形变量和1个字符串变量的语句的是_。(A)Dim n , m AS Interger , s AS String(B)Dim a% , b$ , c AS String(C)Dim a AS Integer , b , c AS String(D)Dim x% , y AS Integer , z AS String变量定义未指明数据类型,则为变体类型变量。A选项定义n为变体类型变量;B答案定义了1个整型变量和2个字符串变量;C选项的b变量也为变体类型变量,D选项满足要求。参考答案为D。2. 设有如下语句:Dim a , b As Integer c = "Visual Basic" d = #7/20/2005 # 以下关于这段代码的叙述中,错误的是_。(A)a 被定义为Integer 类型变量 (B)b 被定义为Integer 类型变量(C)c 中的数据是字符串 (D)d 中的数据是日期类型VB中变体类型变量有三种情况,一是直接使用未经定义的变量;第二是显式的将变量定义为变体类型,例 Dim m As Variant;第三种情况是定义变量但未指明该变量的数据类型,程序中对a变量的定义就属第三种情况,故A选项错误。变量c,d均是未定义的变量为变体类型,但分别存放的数据为字符串型和日期型。参考答案为A。3. 执行以下程序后输出的是_。Private Sub Command1_Click()Ch$=”AABCDEFGH”Print Mid(Right(ch$,6),Len(left(ch$,4),2)End Sub(A)CDEFGH (B)ABCD (C)FG (D)AB程序中有4个函数调用,其中Mid 的三个参数分别是Righ(ch$,6)、Len(left(ch$,4)和2,而left(ch$,4)又是函数Len的参数,由这几个字符串函数的功能知:函数Righ(ch$,6)的结果值为”CDEFGH”, left(ch$,4)值为”AABC”, Len(left(ch$,4)结果为4,所以输出Mid(Right(ch$,6),Len(left(ch$,4),2)结果值为“FG”,C选项正确。参考答案为C。4. 设a = 4 , b = 3 , c = 2 , d = l,表达式 a > b+1 Or c < d And b Mod c 的值是_。(A)True (B)l (C)-l (D)0表达式计算按优先级由高到低顺序计算,其中运算符优先级高低为“算术运算符>字符运算符>关系运算符>逻辑运算符”,逻辑运算符中“Not>And>Or”,同时关系运算结果值为逻辑值;逻辑运算分两种情况,(1)逻辑值参与逻辑运算结果为逻辑值,(2)数值数据参与逻辑运算则按二进制位进行逻辑运算。照此规则,本题先算数运算b Mod c(值为1)、b+1(值为4),再做关系运算a > b+1(值为False)、c < d(值为False)最后做逻辑运算c < d And b Mod c(值为0)及a > b+1 Or c < d And b Mod c(值为0),即整个表达式值为0。参考答案为D。5. 以下可以作为Visual Basic变量名的是_。(A)A#A (B)counstA (C)3A (D)?AA参考答案为B。6. 以下能从字符串”VisualBasic”中直接取出子字符串”Basi”的函数是_。(A)Left (B)Mid (C)String (D)Instr参考答案为B。7. 表达式32*2+3 MOD 104的值是_。(A)18 (B)1 (C)19 (D)0参考答案为C。8. 下面的变量名合法的是_。(A)k_name (B)k ame (C)name (D)k-name参考答案为A。9. 设有如下变量声明Dim time1 As Date,为变量time1正确赋值的表达式是_。(A)time1 = #11:34:04# (B)time1 = Format(Time,"yy:mm:dd")(C)time1 = #"11:34:04"# (D)time1 = Format("hh:mm:ss",Time)参考答案为A。10. 表达式12000 + "129" & 200的值是_。(A)12329 (B)"12129200" (C)"12000129200" (D)"12329"参考答案为B11. 在窗体上画两个文本框,其名称分别为Text1和Text2,然后编写如下程序:Private Sub Form_Load() Text1.Text = "" Text2.Text = "" Text1.SetFocusEnd SubPrivate Sub Text1_Change() Text2.Text = Mid(Text1.Text , 8)End Sub程序运行后,如果在文本框Text1中输入BeijingChina,则在文本框Text2中显示的内容是_。(A)BeijingChina (B)China (C)Beijing (D)BeijingC参考答案为B12. 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click() a$ = "VisualBasic" Print String(3, a$)End Sub程序运行后,单击命令按钮,在窗体上显示的内容是_。(A)VVV (B)Vis (C)sic (D)11参考答案为A13. 执行语句s = Len(Mid("VisualBasic", 1, 6)后,s的值是_。(A)"Visual" (B)"Basic" (C)6 (D)1114. 在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为Text1、Label1和Command1,然后编写如下事件过程:Private Sub Text1_Change() Label1.Caption = Right(Trim(Text1.Text), 3)End Sub程序运行后,在文本框中输入“abcdef”,单击命令按钮,则在标签中显示的内容是_。(A)空 (B)abcdef (C)abc (D)def参考答案为D15. 设a=2,b=3,c=4,表达式Not a<=c Or 4*a=b2 And b<>a+c的值是_。(A)-1 (B)1 (C)True (D)False参考答案为D16. 执行以下程序段后,变量c$的值为_。 a$ = "Visual Basic Programming" b$ = "Quick" c$ = b$ & UCase(Mid$(a$, 7, 6) & Right$(a$, 12)(A)Visual BASIC Programming (B)Quick Basic Programming(C)QUICK Basic Programming (D)Quick BASIC Programming参考答案为D二、填空题1. 描述“X是小于100的非负整数”的Visual Basic表达式是_。要描述该语句,X必须满足大于等于零,同时小于100,另还需体现整数特点,参考答案:X%<100 AND X%>=02. 窗体上有一个命令按钮,事件代码如下:Private Sub Command1_Click()A = "1"B = "2"A = Val(A) + Val(B)B = Val("12")If A <> B Then Print A - B Else Print B - AEnd Sub程序运行后,单击命令按钮,输出_。参考答案:-93. 以下语句的输出结果是_。a% = 3.1425926Print a%参考答案:34. a$ = LCase("Hello"),a$的值是_,b$ = UCase("Hello"),b$的值是_。参考答案:hello、HELLO5. 表达式"12" + "34"的值是_,表达式"12" & "34"的值是_,表达式12 & 34的值是_,表达式12 + 34的值是_。参考答案:1234、1234、1234、466. 整形变量M中存放了一个两位数,要将两位数交换位置,例如24变成42,实现的表达式为_。参考答案:(M mod 10)*10 + M10)7. 代数式|y| + e-3xln3x的Visual Basic表达式为_。参考答案:abs(y) + exp(-3 * x) * log(3 * x)三、简答题1. Visual Basic定义了几种数据类型,变量有哪几种数据类型,常量有哪几种数据类型。参考答案:Visual Basic基本数据类型:1. 字符串型(String):字符串分为变长字符串和定长字符串两种。2. 数值型:数值型数据分为整型数和浮点数两类。3. 货币型(Currency)4. 变体型(Variant)5. 字节型(Byte)6. 布尔型(Boolean)7. 日期型(Date)8. 对象型(Object)Visual Basic中包含两种常量,即文字常量和符号常量。变量的基本数据类型:Byte(字节型),Boolean(布尔型),Integer(整型),Long(长整型),Single(单精度型),Double(双精度型),Currency(货币型),Date(日期型),Object(对象型),String(变长字符串),String(定长字符串),Variant(变体型、数字),Variant(变体型、字符)2. 符号常量和变量有什么不同点?参考答案:符号常量一经定义,就不能在程序中的其他位置改变其值。变量的值在程序中可以改变。3. 指出下列正确的变量名:g(1-k) 6adhs *sss kL2.1 Printx+1 ahi .ex3 j5h参考答案:正确的变量名:ahi,j5h4. 指出下列正确的Basic数字形式:-1.25 ±3.88 45.2468E-6 77.876D-5 5.6D0.123 89E D2585 10(2.7) 35参考答案:正确的数字形式:-1.25,45.2468E-6,77.876D-5,0.1235. 下列Basic表达式若有错误,请说明错误原因,并改正错误: (1) ts+cos(300) (2) (x+y)(25÷s)(3) (X1+X2)*(X1-3)-6*7 (4) (X÷-2)+sin(1.2+)参考答案:改正:(1) ts+cos(30*3.141593/180)(2) (x+y)(25/s)(3) (X1+X2)*(X1-3)-6)*7(4) (X/(-2)+sin(1.2+3.141593)6. 写出下列数学式的Visual Basic表达式: (1) sin(a)cos(b)+1.5 (2) (X1+4)5(e2-a) (3) 36(X1+)(X1÷3.3)-B (4) X-2+5.8sin(3.5)参考答案:Visual Basic表达式:(1) sin(a)*(cos(b)+1.5)(2) (X1+4)5*(exp(2)-a)(3) 36*(X1+3.141593)*(X1/3.3)-B)(4) X2+5.8*sin(3.5*3.141593)习题3一、选择题1. 设在名称为Myform的窗体上只有1个名称为C1的命令按钮,下面叙述中正确的是_。(A)窗体的Click事件过程的过程名是Myform_Click(B)命令按钮的Click事件过程名是C1_Click(C)命令按钮的Click事件过程的过程名是Command1_Click(D)上述3种过程名称都是错误的窗体事件过程名为“Form_事件名”,其他对象事件过程名为“对象名_事件名”,故窗体的Click事件过程名为Form_Click,命令按钮的Click事件过程名为C1_Click。选项B正确。参考答案为B2. 在Visual Basic工程中,可以作为启动对象的程序是_。(A)任何窗体或标准模块(B)任何窗体或过程(C)Sub Main过程或其他任何模块(D)Sub Main过程或任何窗体参考答案为D3. 新建一个工程将其窗体的Name属性设置为Myfrm,则默认的窗体文件名为_。(A)Form1.frm (B)Myfrm.frm (C)Form1.vbp (D)工程1.frm参考答案为B4. 将窗体的_属性设置为False后,运行时窗体上的按钮、文本框就不会对用户的操作做出响应。(A)ControlBox (B)Visible (C)Enabled (D)BorderStyle参考答案为C5. 以下说法正确的是_。(A)窗体文件的扩展名为 .vbp(B)一个窗体对应一个窗体文件(C)Visual Basic中的一个工程只包括一个窗体(D)Visual Basic中一个工程最多可以包含256个窗体文件参考答案为B6. 当运行程序时,系统自动执行启动窗体的某个事件过程。这个事件过程是_。(A)Load (B)Click (C)Unload (D)GotFocus参考答案为A7. 无论何控件,都具有一个共同属性。这个属性是_。(A)Text (B)Font (C)Name (D)Caption参考答案为C8. Print方法可以在_对象上输出数据(A)桌面 (B)窗体 (C)状态栏 (D)标题栏参考答案为B9. 以下能在窗体Form1的标题栏中显示“VisualBasic窗体”的语句是_。(A)Form1.Name="VisualBasic窗体"(B)Form1.Title="VisualBasic窗体"(C)Form1.Caption="VisualBasic窗体"(C)Form1.Text="VisualBasic窗体”参考答案为C10. 语句Print Format$(12345,"0000,00.00")输出结果为_。(A)12345.00 (B)12345 (C)012,345.00 (D)123,4511. 对用MsgBox显示的消息框,下面_是错的。(A)可以有一个按钮 (B)可以有两个按钮(C)可以有三个按钮 (D)可以有四个按钮参考答案为D12. 语句a=InputBox("Today","Tomorrow","Yesterday","Day before yesterday",5)将显示一个对话框,在对话框的输入区中显示的信息是_。(A)Today (B)Tomorrow (C)Yesterday (D)Day before yesterday参考答案为C13. 设窗体上有一个文本框,名称为text1,程序运行后,要求该文本框不能接受键盘输入,但能输出信息,以下属性设置正确的是_。(A)text1.maxlength = 0 (B)text1.Enabled = False (C)text1.visible = False (D)text1.Width = 0参考答案为B14. 在窗体上画一个名称为Timer1的计时器控件,要求每隔0.5秒发生一次计时器事件,则以下正确的属性设置语句是_。(A)Timer1.InterVal=0.5 (B)Timer1.Interval=5(C)Timer1.Interval=50 (D)Timer1.Interval=500参考答案为D15. 将文本框的_属性设置为True时,文本框可以输入或显示多行文本,且会在输入的内容超出文本框的宽度时自动换行。(A)Multiline (B)Scrollbars (C)Text (D)Enabled参考答案为A16. 当窗体得到焦点时触发_。(A)Active (B)OnFocus (C)GotFocus (D)Initilize参考答案为C17. 在窗体上画一个文本框,其名称为Text1。为了在程序运行后Text1中的文本不可编辑,应当使用的语句_。(A)Text1.Clear (B)Text1.Locked=True(C)Text1.Visible=False (D)Text1.Enabled=False参考答案为B二、填空题1. Visual Basic是一种面向对象的程序设计语言,构成对象的三要素是_、_、_。参考答案:属性、事件、方法2. 在刚建立工程时,使窗体上的所有控件具有区别于默认值的相同的字体格式,应对_的_属性进行设置。参考答案:Form窗体、Font3. 下述程序段在运行时的显示结果是_。Dim x As SingleClsx=1.344+8Print Len(x)参考答案:44. 以下语句Print Int(12345.6789*100+0.5)/100的输出结果是_。参考答案:12345.685. 当文本框的SelStart属性设置为0时,表示_,SelStart属性设置为1时表示_。6. 当文本框得到焦点时触发_事件,当文本框失去焦点时触发_事件。参考答案:GotFocus、LostFocus三、简答题下列语句是否有错?若有,请说明错误原因,并改正错误: 1. Let = 17 2. T1$ = XYZ3. L*2 = K + E 4. 1A = 34 , 2A = 66参考答案:改正:1. Let x = 17 2. T1$ = “XYZ”3. L = (K + E)/2 4. A1 = 34 : A2 = 66四、编程题1. 设计一个窗体,在窗体上用标签控件显示商品的名称和单价,用文本框控件接收输入的购买数量,当单击“购买”按扭时,计算购买商品的总价格,并在弹出的消息框中显示出购买明细和总价格。假定有以下三种商品: 铅笔:每只1.50元 笔记本:每本5.20元计算器:每件80.00元参考答案:设计界面如图: 程序代码如下:Private Sub Command1_Click() Sum = 1.5 * Text1.Text + 5.2 * Text2.Text + 80 * Text3.Text Msg$ = "铅笔" & Text1.Text & "只;" & "笔记本" & Text2.Text & "本;" & "计算器" & Text3.Text & "件。" & "金额:" & Sum MsgBox (Msg$)End Sub2. 编应用程序,在窗体上显示由如下“*”号构成的三角形图案。 * * * * * * * * * * * * * * * * * * * * * * * * * 参考答案:设计界面如图,程序代码如下:Private Sub Form_Click() Form1.Print Tab(15); "*" Form1.Print Tab(14); "*" Form1.Print Tab(13); "*" Form1.Print Tab(12); "*" Form1.Print Tab(11); "*"End SubPrivate Sub Form_Load() Form1.AutoRedraw = True Form1.Print "显示星号三角形,单击窗体开始"End Sub3. 编写程序,将摄氏温度转换为华氏温度。二者之间的关系是:F = 32 + 1.8C其中F是华氏温度,C是摄氏温度。程序运行后,弹出一个对话框用于接收输入的摄氏温度值,确定输入后在弹出的消息框中显示转换后的华氏温度值。参考答案:设计界面如图:程序代码如下:Private Sub Command1_Click() C = Text1.Text Text2.Text = 32 + 1.8 * CEnd Sub4. 编写程序,在文本框中输入英文字符,单击“大写”按钮把英文字符转换为大写,单击“小写”按钮把英文字符转换为小写。参考答案:设计界面如图程序代码如下Private Sub Command1_Click() Text1.Text = UCase$(Text1.Text)End SubPrivate Sub Command2_Click() Text1.Text = LCase$(Text1.Text)End Sub习题4一、选择题1. 以下循环语句中在任何情况下都至少执行一次循环体的是_。(A)Do While <条件> (B)While <条件> 循环体 循环体 Loop Wend(C)Do (D)Do Until <条件> 循环体 循环体 Loop Until <条件> Loop参考答案为C2. 某人设计了如下程序用来计算并输出7!(7的阶乘)Private Sub Command1_Click()t=0For k=7 To 2 Step -1t=t*kNextPrint tEnd Sub执行程序时,发现结果是错误的,下面的修改方案中能够得到正确结构的是_。(A)把t=0改为t=1(B)把For k = 7 To 2 Step -1改为For k =7 To 1 Step -1(C)把For k = 7 To 2 Stip-1改为Fork=1 To 7(D)把Next改为Next k参考答案为A3. 以下程序段的输出结果是_。num =0While num<=2 num = num+1WendPrint num(A)2 (B)3 (C)4 (D)程序出错参考答案为B4. 设a="a",b="b",c="c",d="d",执行语句x=IIf (a<b Or c>d),"A","B")后,x的值为_。(A)"a" (B)"b" (C)"B" (D)"A"参考答案为D5. 以下Case语句中错误的是_。(A)Case 0 To 10 (B)Case Is>10(C)Case Is>10 And Is<50 (D)Case 3,5,Is>10参考答案为C6. 设有以下循环结构:Do 循环体Loop While <条件>则下列叙述中错误的是_。(A)若“条件”是一个为0的常数,则一次也不执行循环体 (B)“条件”可以是关系表达式,逻辑表达式或常数 (C)循环体中可以使用Exit Do语句 (D)如果“条件”总是为True,则不停地执行循环体参考答案为A7. 设组合框Combo1中有3个项目,则以下能删除最后一项的语句是_。(A)Combo1.RemoveItem Text (B)Combo1.RemoveItem 2(C)Combo1.RemoveItem 3 (D)Combo1.RemoveItem Combo1.Listcount参考答案为B8. 在窗体上画一个列表框和一个命令按钮,其名称分别为List1和Command1,然后编写如下事件过程:Private Sub Form_Load() List1.AddItem "Item 1" List1.AddItem "Item 2"