VB书面习题答案18章.docx

上传人:b****7 文档编号:9267091 上传时间:2023-02-03 格式:DOCX 页数:28 大小:58.46KB
下载 相关 举报
VB书面习题答案18章.docx_第1页
第1页 / 共28页
VB书面习题答案18章.docx_第2页
第2页 / 共28页
VB书面习题答案18章.docx_第3页
第3页 / 共28页
VB书面习题答案18章.docx_第4页
第4页 / 共28页
VB书面习题答案18章.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

VB书面习题答案18章.docx

《VB书面习题答案18章.docx》由会员分享,可在线阅读,更多相关《VB书面习题答案18章.docx(28页珍藏版)》请在冰豆网上搜索。

VB书面习题答案18章.docx

VB书面习题答案18章

习题一P19

1.3.4.5.6.7

参考答案:

1、简述VisualBasic的特点。

答:

⑴基于对象的可视化设计工具

⑵事件驱动的编程机制

⑶提供易学易用的应用程序集成开发环境

⑷结构化的程序设计语言

⑸强大的网络、数据库、多媒体功能

⑹完备的联机帮助功能

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

答:

在启动VB6.0的启动封面上,能显示对应的版本,见教材例1.1

4、VisualBasic6.0有多种类型的窗口,若想在设计时看到代码窗口,怎样操作?

答:

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

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

答:

a)建立用户界面的控件对象。

b)控件属性的设置。

c)控件事件过程及编程。

d)运行和调试程序。

e)保存程序。

6.当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。

试问该工程涉及多少个要保存的文件?

若要保存该工程中的所有文件,应先保存什么文件,再保存什么文件?

若不这样做,系统会出现什么信息?

答:

涉及两个文件要保存。

先保存窗体文件(.frm),再保存工程文件(.vbp)。

若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。

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

答:

系统的默认目录是VB98。

习题二P37

2.5.6.7.9.10

参考答案:

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

答:

对象中的数据保存在属性中,VB程序中的对象都有许多属性,它们是用来描述和反映对象特征的参数。

可以通过两种方法来设置属性:

(1)在设计阶段利用属性窗口直接设置对象的属性值;

(2)在程序运行阶段通过赋值语句实现。

方法是附属于对象的行为和动作,也可以理解为指使对象动作的命令。

面向对象的程序设计语言,为程序设计人员提供了一种特殊的过程,称为方法供用户直接调用,这给用户的编程带来了很大的方便。

因为方法是面向对象的,所以在调用时一定要指明对象,如果省略指当前对象,一般指窗体。

 

5、如果文本框要显示多行文字,应对什么属性设置为何值?

答:

将该文本框的Multiline属性设置为True.

6、标签和文本框的区别是什么?

答:

标签和文本框共同点都可以在窗体上显示文字。

不同点在于:

标签的内容在Caption属性内,在窗体上只能显示文字,不能编辑;文本框内容在Text属性内,在窗体上可直接对内容进行编辑。

7、要让文本框获得焦点的方法是什么?

答:

SetFocus

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

答:

[文本框.]text=””

10.在程序运行前,对某些控件设置属性值,除了在窗体中直接设置外,还可以通过代码设置,这些代码一般存放在什么事件中?

如果要将命令按钮定位在窗体的中央,试写出事件过程代码。

答:

这些代码一般放在Form_Load()事件过程中。

要将按钮定位在窗体的中央,事件过程如下:

PrivateSubForm_Load()

Command1.Left=Form1.ScaleWidth\2-Command1.Width\2

Command1.Top=Form1.ScaleHeight\2-Command1.Height\2

EndSub

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

 

习题三P58

1,2,3,4,5,7,9

参考答案:

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

(1)100.0单精度型

(2)%100非法(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)a123非法

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

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

非法

3.把下列算术表达式写成VB表达式。

(1)

答:

Abs(x+y)+z^5

(2)

答:

(1+x*y)^6

(3)

答:

(10*x+Sqr(3*y))/x/y

(4)

答:

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

(5)

答:

1/(1/r1+1/r2+1/r3)

(6)

答:

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的倍数。

答:

xMod5=0orxMod7=0

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

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

答:

(xMod10)*10+x\10

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

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

答:

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

(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=zOry=z

(11)x和y都大于z。

答:

x>zAndy>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

7.VisualBasic提供了哪些标准数据类型?

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

其类型符又是什么?

答:

见课本39页表3.1

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

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

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

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

答:

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

P94

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

1.结构化程序设计的三种基本结构是什么?

答:

顺序结构、选择结构和循环结构。

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

⑴10x=sin(x)+y答:

10x错误变量名

⑵c=3+sqr(-3)答:

sqr(x)中自变量要求>=零

⑶c+x+y=c*y答:

赋值符号的左边是表达式

⑷x=sin(x)/(20mod2)答:

分母不能为零

3.Msgbox函数和InputBox函数之间有什么区别?

各自获得什么值?

答:

两个函数的共同之处是均显示对话框。

区别:

InputBox函数等待用户在文本框中输入数据,获得的是输入的字符串数据;Msgbox函数等待用户按一按钮,获得的是表示按钮的整数值,以决定程序的流向。

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

如何编写对应的Print方法?

答:

PrintFormat(x,"0.0")

PrintFormat(y,"0.00")

PrintFormat(z,"0.000")

5.语句

if表达式then…

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

答:

可以是算术、关系、逻辑表达式。

按照一般语言的规定,if后应该是关系表达式、逻辑表达式,根据其结果逻辑量是True或False决定是否执行Then后面的句子。

而在VB中还可以是算术表达式,因为VB逻辑判断中,对于非0值就作为True,而0值作为False,因此分段函数

可用VB语句表示为:

IfxTheny=sin(x)/xElsey=0

而不必写成Ifx<>0Theny=sin(x)/x

6指出下列语句中的错误。

⑴Ifx≥yThenprintx

答:

“≥”应写成“>=”

2If10

答:

VB中表示x的范围“10

3Ifc>=〝A〞andc<=〝Z〞then

Print〝大写字母〞

ElseIfc>=〝a〞andc<=〝z〞then

Print〝小写字母〞

Endif

答:

“ElseIf”之间不能有空格,即应写成“ElseIf”

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

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

答:

IfMid(c,3,1)=”C”ThenMsgBox”Yes”ElseMsgBox”No”

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

If语句

PrivateSubCommand2_Click()

x=Text1.Text

Ifx>20Then

y=x*x+3*x+2

Else

y=Sqr(3*x)-2

EndIf

Printy

EndSub

Select语句

PrivateSubCommand1_Click()

x=Text1.Text

SelectCasex

CaseIs>20

y=x*x+3*x+2

CaseIs<10

y=1/x+Abs(x)

CaseElse

Y=Sqr(3*x)-2

EndSelect

Printy

EndSub

答:

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

答:

If语句

Ifx>yThenMax=xElseMax=y

Ifz>MaxThenMax=z

IIf函数:

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

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

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

答:

不可以。

虽然selectcase….Endselect语句在条件的书写上更简洁和灵活,但是却不可以完全取代If…then…elseif…endif形式的语句。

因为selectcase….Endselect语句在使用上是有一些限制的。

首先,看该语句的形式:

SelectCase<变量或表达式>

Case<表达式列表1>

<语句块1>

Case<表达式列表2>

<语句块2>

[CaseElse

<语句块n+1>]

EndSelect

其中<变量或表达式>只能含有一个变量,任何含有多个变量的形式都是错误的。

例如,要判断x,y是否在第一、第三象限内,若输入如下语句:

SelectCasex,y,VB程序会显示“缺少:

语句结束”。

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

逗号;关键字是:

Is、To)。

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

SelectCasex,y

Casex>0Andy>0

Print“第一象限”

Casex<0Andy<0

Print“第三象限”

EndSelect

则程序有多处错误:

SelectCasex,y中出现了多个变量;在Casex>0Andy>0中出现了变量和And逻辑运算符。

上述例子只能用If的多分支结构来实现。

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

9.计算下列循环语句的次数

⑴ForI=--3To20Step4

答:

循环次数为6次。

⑵ForI=-3.5To5.5Step0.5

答:

循环次数为19次。

⑶ForI=-3.5To5.5Step-0.5

答:

不循环。

步长<0,循环初值<终值。

⑷ForI=-3To20Step0

答:

无数次。

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

,第50句执行了几次?

,第90句显示的结果是多少?

30Forj=1To12Step3

40Fork=6To2Step-2

50mk=k

60Printj,k

70Nextk

80Nextj

90Printj,k,mk

答:

第40句执行了4次。

第50句执行了12次。

第90句显示的结果是1302。

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

答:

只要将循环的终值设置为一个非常大的值,然后在循环体内增加If语句,判断是否达到循环结束条件。

形式如下:

For循环变量=1To非常大的数

…….

If达到循环结束条件ThenExitFor

…….

Next循环变量

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

答:

S=0

Fori=1To10

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

Nexti

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

答:

S3=0

S7=0

Fori=1To100

IfiMod3=0ThenS3=S3+1

IfiMod7=0ThenS7=S7+1

Nexti

⑶将输入的字符串以反序显示。

如输入“ASDFGHJKL”,显示“LKJHGFDSA”。

答:

s=InputBox("输入字符串")

Fori=Len(s)To1Step-1

PrintMid(s,i,1);

Nexti

13.下面程序运行后的结果是什么?

该程序的功能是什么?

PrivateSubCommand1_Click()

Dimx$,n%

n=20

x=""

DoWhilen<>0

a=nMod2

n=n\2

x=Chr(48+a)&x

Loop

Printx

EndSub

答:

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

14.下面程序运行后的结果是什么?

该程序的功能是什么?

PrivateSubCommand1_Click()

Dimx%,y%,z%

x=242:

y=44

z=x*y

DoUntilx=y

Ifx>yThenx=x-yElsey=y-x

Loop

Printx,z/x

EndSub

答:

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

15.利用随机函数产生20个50~100范围内的随机数,显示它们的最大值、最小值和平均值。

答:

PrivateSubCommand1_Click()

Dimi%,t%,Max%,Min%,Avr!

Form1.FontSize=12

Avr=0

Print"随机数为:

";

Randomize

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

Printt;

Avr=Avr+t

Max=t

Min=t

Fori=1To19

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

Printt;

Avr=Avr+t

Ift>MaxThenMax=t

Ift

Nexti

Print

Avr=Avr/20

Print"最大值为:

";Max,"最小值为:

";Min,"平均值为:

";Avr

Print

EndSub

习题5答案

1.在VB6.0中,数组的下界默认为0,用什么语句可以重新定义数组的默认下界?

答:

OptionBase语句,如:

OptionBasen

2.要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?

(1)n=12

Dima(1Ton)AsInteger

(2)Dima%()

n=11

ReDima(n)

(3)Dima%[2,3]

(4)Dima(1,1,2)AsInteger

(5)Dima%(10)

ReDima(1To12)

(6)Dima!

()

ReDima(3,2)AsInteger

(7)Dima%(2,3)

(8)Dima(1To3,1To4)AsInteger

答:

(2),(4),(7),(8)符合要求。

(1)静态数组在声明数组时的下标必须是常数,不能出现变量

(3)不能使用方括号

(5)已声明了的静态数组,不能再用重定义语句来重定义静态数组的大小

(6)可以反复地改变数组的元素以及维数的数目,但是不能将一个数组定义为某种数据类型之后,再使用ReDim将该数组改为其他数据类型。

3.程序运行时显示“下标越界”可能产生的错误有哪几种情况?

答:

引用了不存在的数组元素.

下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。

检查数组的声明以确认其上界和下界。

若使用的是重新指定范围的数组,应使用UBound和LBound函数来决定数组访问。

如果索引指定为变量,应检查变量名的拼写。

声明数组时没有指定元素的数目

例如:

Dima%()

a(8)=5

VisualBasic并不会将没有指定范围的数组自动设为0–8,相反必须使用Dim或ReDim来指定数组中元素的数目。

4.已知下面的数组声明,写出它的数组名、数组类型、维数、各维的上下界、数组的大小、并按行的顺序列出各元素。

Dima(-1To2,3)AsSingle

答:

数组名为a、数组类型为单精度、二维、各维的下界分别为-1和0、上界分别为2和3、数组的大小4x4共16个元素,各元素排列顺序见表:

a(-1,0)

a(-1,1)

a(-1,2)

a(-1,3)

a(0,0)

a(0,1)

a(0,2)

a(0,3)

a(1,0)

a(1,1,)

a(1,2)

a(1,3)

a(2,0)

a(2,1)

a(2,2,)

a(2,3)

5.利用随机数生成两个矩阵(数据不一定相同,前者30~70范围、后者101~135)。

要求:

(1)将两个矩阵相加结果放入C矩阵中。

(2)将A矩阵转置。

(3)统计C矩阵中最大值和下标。

(4)以下三角形式显示A矩阵、上三角形式显示B矩阵。

(5)将A矩阵的第一行与第三行对应元素交换位置,即第一行元素放到第三行;第三行元素放到第一行。

(6)求A矩阵两条对角线元素之和。

(7)将A矩阵按列的次序把各元素放入一维数组D中,显示结果。

答:

Dima(4,4)AsInteger,b(4,4)AsInteger,c(4,4)AsInteger

Randomize

Print"矩阵A为:

"

Fori=1To4

Forj=1To4

a(i,j)=Int(Rnd*41+30)

PrintTab(5*j);a(i,j);

Nextj

Print

Nexti

Print"矩阵B为:

"

Fori=1To4

Forj=1To4

b(i,j)=Int(Rnd*35+101)

PrintTab(5*j);b(i,j);

Nextj

Print

Nexti

(1)两个矩阵能相加的条件是他们的行数、列数相同,利用两重循环将他们相加即可。

Fori=1to4

Forj=1to4

c(i,j)=a(i,j)+b(i,j)

Nextj

Nexti

(2)矩阵转置是将矩阵的行变为列、列变为行。

Fori=1To4

Forj=i+1To4

t=a(i,j)

a(i,j)=a(j,i)

a(j,i)=t

Nextj

Nexti

(3)因为C是两维数组,所以最大值的下标也有两个,即行下标和列下标。

DimMax%,Maxi%,Maxj%

Max=c(1,1):

Maxi=1:

Maxj=1

Fori=1To4

Forj=1To4

Ifc(i,i)>MaxThen

Max=c(i,j):

Maxi=i:

Maxj=j

EndIf

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

当前位置:首页 > 法律文书 > 判决书

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

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