vb课后练习答案习题解答Word文件下载.docx

上传人:b****6 文档编号:16518099 上传时间:2022-11-24 格式:DOCX 页数:13 大小:41.01KB
下载 相关 举报
vb课后练习答案习题解答Word文件下载.docx_第1页
第1页 / 共13页
vb课后练习答案习题解答Word文件下载.docx_第2页
第2页 / 共13页
vb课后练习答案习题解答Word文件下载.docx_第3页
第3页 / 共13页
vb课后练习答案习题解答Word文件下载.docx_第4页
第4页 / 共13页
vb课后练习答案习题解答Word文件下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

vb课后练习答案习题解答Word文件下载.docx

《vb课后练习答案习题解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《vb课后练习答案习题解答Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。

vb课后练习答案习题解答Word文件下载.docx

4. 设已定义函数过程f,它有三个实型传值参数;

设a,b和c为实型变量,则调用该函数的正确语句为()。

a)fb)f(a+b,b+c)

c)f(a+b,b+c,c+a)d)fa+b,b+c,c+a

5.在过程体中退出子过程的语句是()。

a)ExitDob)ExitFor

c)ExitSubd)ExitFunction

6.在过程的形式参数的前面加上关键字(),则该参数说明为传值参数。

a)Valb)refc)Byrefd)ByVal

d

7.关于过程作用域,错误的描述是()。

a)全局级过程的作用域为整个工程。

b)在某一窗体模块中定义的全局级过程,若被该模块外的模块所调用,必须在该过程名前加上窗体名称。

c)在不同模块中定义的模块级过程可以同名。

d)模块级过程与工程级过程不能同名。

8.关于变量的作用域,正确的描述是()。

a)在模块定义的变量,其作用域必定为所在模块。

b)同一模块中不同级的变量不能同名。

c)同一模块中所有在过程之外用Dim定义的变量为全局变量。

d)不同模块中定义的变量名字可以相同。

9.当鼠标在窗体上移动时,会发生()事件。

a)MouseDownb)MouseUp

c)MouseMoved)DragDown

10.当某个对象具有焦点时,在键盘上按下某一键时就会发生()事件。

a)KeyPressb)KeyUp

c)KeyDownd)DragDown

a、c

11.当用户()时,会引发焦点所在对象的KeyPress事件。

a)在键盘上按下有ASC码的键b)释放键盘上有ASC码的键

c)单击鼠标左键d)单击鼠标右键

12.当用户在键盘上按下一个有ASC码的键时会发生()事件。

a)KeyPress和KeyDownb)KeyPress和KeyUp

c)KeyDown和KeyUpd)KeyPress和KeyMove

7.3解答题

1.过程的主要作用是什么?

VB有什么类型的自定义过程?

试举例说明。

答:

过程的主要作用有两个:

一是任务划分。

即把一个复杂的任务划分为若干个小任务,每个小任务可以用过程来完成,从而使任务更易于理解,易于实现和维护;

二是代码重用。

各种复杂的任务常常包含一些完全相同或非常相近的小任务。

把这些小任务独立地编成公用的过程,由各个任务调用,这样的做法可以避免重复的编程劳动。

在VB6中,有下列4种类型的自定义过程:

1)以关键字Sub开头的子过程;

2)以关键字Function开头的函数过程;

3)以关键字Property开头的属性过程;

4)以关键字Event开头的事件过程;

在教材中只介绍子过程和函数过程两种自定义过程。

例如,PrivateSubfact(ByvalnAsInteger,ByreffacAsLong)

DimtAsLong,iAsInteger

t=1

Fori=1Ton

t=t*i

Nexti

fac=t

EndSub

是一个求n的阶乘子过程。

又如,PrivateFunctionmax(ByValxAsInteger,ByValyAsInteger,ByValzAsInteger)

Ifx>

yThenmax=xElsemax=y

Ifz>

maxThenmax=z

EndFunction

是一个求三个数x、y和z最大值的函数过程。

2.传值参数和传址参数的主要作用是什么?

在调用过程进行参数传递时,它们之间有什么区别?

答:

传值参数的主要作用是把需处理的原始数据传送给被调用过程的形式参数。

传址参数的主要作用是把调用过程后的结果传递回给调用程序。

对传值参数来说,在调用过程进行参数传递时,是把实际参数的值直接传送给相应的传值参数。

值传送完之后,传值参数与相应的实际参数之间毫无任何联系。

即在调用过程时,传值参数的改变不会引起相应实际参数的改变。

对传址参数来说,在调用过程进行参数传递时,是把实际参数的地址传送给相应的传址参数。

调用过程时,对传址参数的任何操作都是对相应的实际参数进行。

即在调用过程时,传址参数的改变会引起相应实际参数的改变。

7.4阅读程序,并写出程序的运行结果。

1.PrivateSubp(ByValiAsInteger)

Dimj%,k%

Forj=0To7-i

Print"

"

;

Nextj

Fork=0To2*i-1

*"

Nextk

Print

EndSub

Privatesubcommand1_Click()

Dimi%

Fori=1To2

P(i)

Fori=3To1Step-1

P(i)

**

****

******

2.PrivateSubCommand1_Click()

Dimm%

m=max(35,-21,480)

m=max(max(m,75,100),380,28)

Print"

max="

m

PrivateFunctionmax(ByValxAsInteger,ByValyAsInteger,ByValzAsInteger)

EndFunction

max=480

3.PrivateSubCommand1_Click()

  DimaAsInteger,bAsInteger,cAsInteger

Calls(10,5,a)

  Calls(7,a,b)

  Calls(a,b,c)

  Print"

a="

a,"

b="

b,"

c="

c

PrivateSubs(xAsInteger,yAsInteger,zAsInteger)

  z=y–x

a=-5b=-12c=-7

4.PrivateSubCommand1_Click()

Dimi%

Constn=10

Dima(1Ton)AsInteger

Randomize

Fori=1Ton

a(i)=Int(Rnd*100+1)

Printa(i),

IfiMod4=0ThenPrint

Nexti

Print

Calls(a,n)

PrivateSubs(a()AsInteger,ByValnAsInteger)

Dimi%,k%

Ifa(i)Mod3=2Then

IfkMod4=0ThenPrint

k=k+1

EndIf

输出10个1~100之间的随机整数,并把其中能被3除余2的数输出。

5.PublicxAsInteger

PrivateSubCommand1_Click()

x=10:

Printx

Calls1:

Calls2:

PrivateSubs1()

x=x+20:

PrivateSubs2()

DimxAsInteger

10

30

20

6.PrivateSubCommand1_Click()

s3

(1):

s3

(1):

s3

(1)

PrivateSubs3(ByValaAsInteger)

StaticyAsInteger

x=x+a:

y=y+a

Print"

x="

x,"

y="

y

x=1y=1

x=1y=2

x=1y=3

7.5编程题

3.

,其中f(t)=(1+e

)/(1+e

),求g(2.5,3.4),g(1.7,2.5)和g(3.8,2.9)的值。

解答:

(1)界面设计和属性设置

在窗体上建立三个标签、三个文本框和两个命令按钮。

窗体和窗体上控件的主要属性设置如表3.7.3所示。

表3.7.3属性设置

控件名称

属性名

属性值

Form1

Caption

计算函数值

Label1

x=

Label2

Caption

y=

Label3

Caption

空串

Text1

Text

Text2

Text3

Text

Command1

计算

Command2

结束

(2)程序代码

PrivateSubCommand1_Click()

Dimx!

y!

x=Val(Text1.Text)

y=Val(Text2.Text)

Label3.Caption="

g("

&

Str(x)&

"

Str(y)&

)="

Text3.Text=Str(g(x,y))

PrivateSubCommand2_Click()

End

PrivateFunctionf(ByValt!

)AsSingle

f=(1+Exp(-t))/(1+Exp(t))

EndFunction

PrivateFunctiong(ByValx!

ByValy!

Ifx<

=yThen

g=f(x+y)/(f(x)+f(y))

Else

g=f(x-y)/(f(x)+f(y))

PrivateSubText1_Click()

Text1.Text="

"

:

Text2.Text="

Text3.Text="

(3)运行情况

运行程序后,屏幕出现用户界面。

把鼠标移到Text1文本框并单击,然后输入x(例如,2.5)。

再把鼠标移到Text2文本框并单击,然后输入y(例如,3.4)。

x和y输入后,单击标题为“计算”的命令按钮,系统执行相应的Click事件过程。

执行结果如图3.7.3所示。

求g(1.7,2.5)和g(3.8,2.9)的操作方法类似。

单击标题为“结束”的命令按钮,结束程序的执行。

图3.7.3执行结果

4.给定三组已按升序排列好的整型数据,使用过程编写程序把它们合并为一组仍能按升序排列的数据。

在窗体上建立四个标签、四个文本框和两个命令按钮。

窗体和窗体上控件的主要属性设置如表3.7.4所示。

表3.7.4属性设置

属性名

属性值

把三组升序数据合并为一组升序数据

第一组:

第二组:

第三组:

Label4

合并后:

Text

Text4

MultiLine

ScrollBars

True

1

合并

OptionExplicit

OptionBase1

DimaAsVariant,bAsVariant,cAsVariant

PrivateSubForm_load()

a=Array(1,2,7,8,9)

Fori=1To5'

显示数组a的元素值

Text1.Text=Text1.Text&

Str(a(i))

b=Array(3,4,8,8,9,10,12,12)

Fori=1To8'

显示数组b的元素值

Text2.Text=Text2.Text&

Str(b(i))

c=Array(1,5,5,6,8)

显示数组c的元素值

Text3.Text=Text3.Text&

Str(c(i))

Dimi%,m%,n%,p%

m=UBound(a)

n=UBound(b)

p=UBound(c)

Dimd()

ReDimd(m+n)

Callgsort(a,b,d)

Dime()

ReDime(m+n+p)

Callgsort(c,d,e)

Fori=1Tom+n+p'

显示数组e的元素值

Text4.Text=Text4.Text&

Str(e(i))

PrivateSubgsort(xAsVariant,yAsVariant,zAsVariant)

Dimi%,j%,k%,n1%,n2%

i=1:

j=1:

k=1

n1=UBound(x):

n2=UBound(y)

Whilei<

=n1Andj<

=n2

Ifx(i)>

y(j)Then

z(k)=y(j):

k=k+1:

j=j+1'

比较x和y中的元素,把较大的元素移到

Else'

z中,直到其中一个数组搬空为止

z(k)=x(i):

i=i+1

Wend

=n1

i=i+1:

k=k+1'

把x中剩余的元素搬到z中

Whilej<

j=j+1:

把y中剩余的元素搬到z中

End

运行程序后,屏幕出现用户界面,并把需合并的三组数据分别在三个文本框中显示出来。

单击标题为“合并”的命令按钮,系统执行相应的Click事件过程。

执行结果如图3.7.4所示。

图3.7.4执行结果

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

当前位置:首页 > 高中教育 > 语文

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

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