VB程序设计第三版习题答案(1-4)

更新时间:2024-01-26 00:29:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《VB程序设计基础》(第三版)习题标准答案

参考答案:

1、简述Visual Basic的特点。 答: ⑴基于对象的可视化设计工具

⑵事件驱动的编程机制

⑶提供易学易用的应用程序集成开发环境 ⑷结构化的程序设计语言

⑸强大的网络、数据库、多媒体功能 ⑹完备的联机帮助功能

3、Visual Basic 6.0有学习版、专业版和企业版,怎样知道所安装的是哪个版本?

答:在启动VB 6.0的启动封面上,能显示对应的版本,见教材例1.1 4、Visual Basic 6.0有多种类型的窗口,若想在设计时看到代码窗口,怎样操作?

答:选择“视图∣代码窗口”命令或“工程资源管理器”窗口的“查看代码”按钮。

5. 叙述建立一个完整的应用程序的过程。 答:

a) 建立用户界面的控件对象。 b) 控件属性的设置。 c) 控件事件过程及编程。 d) 运行和调试程序。

e) 保存程序。

6. 当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。试问该工程涉及多少个要保存的文件?若要保存该工程中的所有文件,应先保存什么文件,再保存什么文件?若不这样做,系统会出现什么信息?

答:涉及两个文件要保存。先保存窗体文件(.frm),再保存工程文件(.vbp)。若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。

7. 保存文件时,若不改变目录名,则系统默认的目录是什么? 答:系统的默认目录是VB98。

习题二 参考答案:

2、属性与方法的区别是什么?

答:对象中的数据保存在属性中,VB程序中的对象都有许多属性,它们是用来描述和反映对象特征的参数。可以通过两种方法来设置属性:(1)在设计阶段利用属性窗口直接设置对象的属性值;(2)在程序运行阶段通过赋值语句实现。

方法是附属于对象的行为和动作,也可以理解为指使对象动作的命令。面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程,称为方法供用户直接调用,这给用户的编程带来了很大的方便。因为方法是面向对象的,所以在调用时一定要指明对象,如果

省略指当前对象,一般指窗体。

5、如果文本框要显示多行文字,应对什么属性设置为何值? 答:将该文本框的Multiline属性设置为True. 6、标签和文本框的区别是什么?

答:标签和文本框共同点都可以在窗体上显示文字。不同点在于:标签的内容在Caption属性内,在窗体上只能显示文字,不能编辑;文本框内容在Text属性内,在窗体上可直接对内容进行编辑。 7、要让文本框获得焦点的方法是什么? 答:SetFocus

9、当某文本框输入数据后(按了回车键),经判断后认为是数据输入错,应怎样删除原来文本框中的数据? 答:[文本框.]text=””

10. 在程序运行前,对某些控件设置属性值,除了在窗体中直接设置外,还可以通过代码设置,这些代码一般存放在什么事件中?如果要将命令按钮定位在窗体的中央,试写出事件过程代码。 答:这些代码一般放在Form_Load( ) 事件过程中。 要将按钮定位在窗体的中央,事件过程如下: Private Sub Form_Load()

Command1.Left = Form1.ScaleWidth \\ 2 - Command1.Width \\ 2 Command1.Top = Form1.ScaleHeight \\ 2 - Command1.Height \\ 2 End Sub

其中,ScaleWidth、ScaleHeight表示窗体的相对宽度和高度。

习题三

1. 下列哪些是VB的合法常量,分别指出其类型。

(1)100.0 单精度型 (2)0 非法 (3)1E1 单精度型 (4)123D3 双精度型 (5)123,456 非法 (6)0100 整型

(7)”ASDF” 字符型 (8)“1234” 非法 (9)#2000/10/7# 日期型

(10)100# 双精度型 (11)? 非法 (12)&O100 八进制整型

(13)&O78 非法 (14)&H123 十六进制整型 (15)True 逻辑型

(16)T 非法 (17) &H12ag 非法 (18)-1123! 单精度型

2. 下列符号中,哪些是VB的合法变量名?

(1)a123 合法 (2)a12_3 合法 (3)123_a 非法 (4)a 123 非法

(5)Integer 非法 (6)XYZ 合法 (7)False 非法 (8)sin(x) 非法

(9)sinx 合法 (10)变量名 合法 (11)abcdefg 合法 (12)? 非法

3. 把下列算术表达式写成VB表达式。 (1) |x?y|?z5 答:Abs(x+y)+z^5 (2) (1?xy)6 答: (1+x*y)^6 (3)

10x?3y xy答:(10*x+Sqr(3*y))/x/y

?b?b2?4ac(4)

2a答:(–b+sqr(b^2-4*a*c))/(2*a) (5)

1

111??r1r2r3答:1/(1/r1+1/r2+1/r3)

e10?ln10(6) sin45?

x?y?1?答: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),表示其位于第

一或第三象限内。

答: x*y>0

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

答:x Mod 5=0 or x Mod 7=0

(5)将任意一个两位数x的个位数与十位数对换。例如,x=78,则表达式的值应为87.

答:(x Mod 10)*10+x\\10

(6) 将变量x的值按四舍五入保留小数点后两位。例如,x的值为123.2389,则表达式的值应为123.24。

答:Round(x*100)/100 (或Round(x,2))

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

答:Ucase(c)>=”A” And Ucase(c)<=”Z” 或 Lcase(c)>=”a” And Lcase(c)<=”z” (8) 取字符型变量S中从第5个字符起的6个字符。

答:Mid(S,5,6)

(9)表示关系表达式10?x?20。

答:x>=10 And x<20 (10) x, y之一小于z。

答:x=z Or y=z (11)x 和 y都大于z。

答:x>z And y>z

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

(1)123+23 mod 10 \\ 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

7. Visual Basic提供了哪些标准数据类型?声明类型时,其类型关键字分别是什么?其类型符又是什么? 答: 见课本39页表3.1

9. 将数字字符串转换成数值,使用什么函数?判断是否是数字字符串,使用什么函数?取字符串中的某几个字符,使用什么函数?实现大小写字母间的转换,使用什么函数?

答:数字字符串转换成数值,用Val( )函数;IsNumeric( )函数判断是否是数字字符串;Mid( )函数用于取字符串中的某几个字符;Ucase( )函数用于将小写字母转换成大写字母;Lcase( )函数用于将大写字母转换成小写字母。

1.结构化程序设计的三种基本结构是什么? 答:顺序结构、选择结构和循环结构。 2.

指出下列赋值语句中的错误(包括运行时要产生的错误)。

⑴ 10x=sin(x)+y 答:10x错误变量名

⑵ c=3+sqr(-3) 答:sqr(x) 中自变量要求>=零 ⑶ c+x+y=c*y 答:赋值符号的左边是表达式 ⑷ x=sin(x)/(20 mod 2) 答:分母不能为零

3.Msgbox函数和InputBox函数之间有什么区别?各自获得什么值? 答:两个函数的共同之处是均显示对话框。区别:InputBox函数等待用户在文本框中输入数据,获得的是输入的字符串数据;Msgbox函数等待用户按一按钮,获得的是表示按钮的整数值,以决定程序的流向。

4.要使单精度变量x,y,z分别保留1位、2位、3位小数,并在窗体上显示,应使用什么函数?如何编写对应的Print方法?

答: Print Format(x, \

Print Format(y, \Print Format(z, \5.

语句

if 表达式 then …

中的表达式可以是算术、字符、关系、逻辑表达式中的哪些? 答:可以是算术、关系、逻辑表达式。

按照一般语言的规定,if后应该是关系表达式、逻辑表达式,根据其结果逻辑量是True或False决定是否执行Then后面的句子。而在VB中还可以是算术表达式,因为VB逻辑判断中,对于非0值就作为True,而0值作为False,因此分段函数 可用VB语句表示为:

If x Then y = sin (x) / x Else y = 0 而不必写成If x < >0 Then y = sin (x) / x

6 指出下列语句中的错误。 ⑴ If x ≥ y Then print x 答:“≥”应写成“>=” ⑵ If 10 < x < 20 then x = x + 20

答:VB中表示x的范围“10 < x < 20”应写成“10 < x and x < 20”

sinx/xx?0,x?0 y?{0x?0⑶ If c >= 〝A〞 and c <= 〝Z〞 then Print 〝大写字母〞

Else If c >= 〝a〞 and c <= 〝z〞then Print 〝小写字母〞 End if

答:“Else If”之间不能有空格,即应写成“ElseIf”

7.按照下列条件,写出相应的条件语句:

(1) 当字符型变量中第三个字符是”C”时,利用Msgbox显示“Yes”,否则显示”No”。

答:If Mid(c,3,1)=”C” Then MsgBox”Yes” Else MsgBox”No”

(2) 利用if语句、Select Case 语句两种方法计算分段函数:

?2?x?3x?2 , x?20? y??3x?2 , 10?x?20

?1??|x| , 0?x?10?x

If语句 Private Sub Command2_Click() 答: x=Text1.Text If x>20 Then y=x*x+3*x+2 Else y=Sqr(3*x)-2 End If Print y End Sub

Select语句 Private Sub Command1_Click() x=Text1.Text Select Case x Case Is>20 y=x*x+3*x+2 Case Is<10 y=1/x+Abs(x) Case Else Y=Sqr(3*x)-2 End Select Print y End Sub

(3)利用if语句和IIf函数两种方法求三个数x,y,z中的最大值并存入变量Max中。 答:If语句

If x>y Then Max=x Else Max=y If z>Max Then Max=z

IIf函数:

Max = IIf(x > y, x, y) Max = IIf(Max > z, Max, z)

8 在多分支结构的实现中,可以用if …Then… ElseIf …End if 形式的语句,也可以用Select Case … End Select 形式的语句,由于后者的条件书写更灵活、简洁,是否可以完全取代前者?

答:不可以。虽然select case….End select语句在条件的书写上更简洁和灵活,但是却不可以完全取代If…then…elseif…end if形式的语句。因为select case….End select语句在使用上是有一些限制的。 首先,看该语句的形式: Select Case <变量或表达式> Case <表达式列表1>

<语句块1> Case <表达式列表2> <语句块2> … [Case Else

<语句块n+1> ] End Select

其中<变量或表达式>只能含有一个变量,任何含有多个变量的形式都是错误的。例如,要判断x,y是否在第一、第三象限内,若输入如下语句:Select Case x,y,VB程序会显示“缺少:语句结束”。

其次,在后面的Case“表达式列表”中不能出现Select Case变量或表达式中使用的变量,也不能出现主教材上列出的四种形式以外的符号或关键字(符号是:逗号;关键字是:Is、To)。

例如,上述象限的判断,若语句表示如下: Select Case x,y

Case x>0 And y>0

Print “第一象限” Case x<0 And y<0 Print “第三象限” End Select

则程序有多处错误:Select Case x,y中出现了多个变量;在Case x>0 And y>0中出现了变量和And逻辑运算符。上述例子只能用If的多分支结构来实现。

由此可见,虽然Select Case结构清晰,但使用受到限制,凡是对多个变量的条件判断只能用If的多分支结构来实现。

9.计算下列循环语句的次数 ⑴ For I =- -3 To 20 Step 4 答:循环次数为6次。

⑵ For I = -3.5 To 5.5 Step 0.5 答:循环次数为19次。

⑶ For I= -3.5 To 5.5 Step -0.5 答:不循环。步长<0, 循环初值<终值。 ⑷ For I= -3 To 20 Step 0 答:无数次。

10.下列 30-90 为语句标号,分别标记该语句,第40 句执行了几

次?,第50 句执行了几次?,第90 句显示的结果是多少? 30 For j = 1 To 12 Step 3 40 For k = 6 To 2 Step -2 50 mk = k 60 Print j, k 70 Next k 80 Next j 90 Print j, k, mk

答:第40 句执行了4次。第50 句执行了12次。第90 句显示的结果是13 0 2。

11.如果事先不知道循环次数,如何用 For …… Next 结构来实现?

答:只要将循环的终值设置为一个非常大的值,然后在循环体内增加 If 语句,判断是否达到循环结束条件。形式如下: For 循环变量=1 To 非常大的数 …….

If 达到循环结束条件 Then Exit For ……. Next 循环变量

12.利用循环结构,实现如下功能:

⑴ s??(i?1)(2i?1)

i?110答: S=0

For i = 1 To 10

S = S +(i + 1)*(2* i + 1) Next i

⑵ 分别统计 1 ~ 100中,满足3的倍数、7的倍数的数个为多少? 答:S3 = 0

S7 = 0 For i = 1 To 100

If i Mod 3 = 0 Then S3 = S3 + 1 If i Mod 7 = 0 Then S7 = S7 + 1

Next i

⑶ 将输入的字符串以反序显示。如输入“ASDFGHJKL”,显示“LKJHGFDSA”。 答:

s = InputBox(\输入字符串\For i = Len(s) To 1 Step -1

Print Mid(s, i, 1);

Next i

13.下面程序运行后的结果是什么?该程序的功能是什么? Private Sub Command1_Click() Dim x$, n% n = 20 x = \

Do While n <> 0 a = n Mod 2 n = n \\ 2

x = Chr(48 + a) & x Loop Print x End Sub

答:运行后结果为 10100,该程序的功能是将十进制数转换成二进制字符串。

14.下面程序运行后的结果是什么?该程序的功能是什么? Private Sub Command1_Click() Dim x%, y%, z% x = 242: y = 44 z = x * y Do Until x = y

If x > y Then x = x - y Else y = y - x

Loop Print x, z / x End Sub

答:运行后结果为 22 和 484,该程序的功能是用相减法求 x ,y 的最大公约数和最小公倍数。

15.利用随机函数产生20 个 50 们的最大值、最小值和平均值。 答:

Private Sub Command1_Click() Dim i%, t%, Max%, Min%, Avr! Form1.FontSize = 12 Avr = 0

Print \随机数为:\ Randomize

t = Int(Rnd() * 51 + 50) Print t; Avr = Avr + t Max = t Min = t For i = 1 To 19

t = Int(Rnd() * 51 + 50)

100范围内的随机数,显示它 ~ Print t; Avr = Avr + t

If t > Max Then Max = t If t < Min Then Min = t Next i Print Avr = Avr / 20

Print \最大值为: Print End Sub

最小值为:平均值为:\\\

本文来源:https://www.bwwdw.com/article/au9w.html

Top