vb课后练习答案习题解答6Word格式文档下载.docx
- 文档编号:22599257
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:15
- 大小:38.75KB
vb课后练习答案习题解答6Word格式文档下载.docx
《vb课后练习答案习题解答6Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《vb课后练习答案习题解答6Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
c
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
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
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(,),g(,)和g(,)的值。
解答:
(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
y=Val
="
g("
&
Str(x)&
"
Str(y)&
)="
=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()
"
:
(3)运行情况
运行程序后,屏幕出现用户界面。
把鼠标移到Text1文本框并单击,然后输入x(例如,。
再把鼠标移到Text2文本框并单击,然后输入y(例如,。
x和y输入后,单击标题为“计算”的命令按钮,系统执行相应的Click事件过程。
执行结果如图3.7.3所示。
求g(,)和g(,)的操作方法类似。
单击标题为“结束”的命令按钮,结束程序的执行。
图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的元素值
=&
Str(a(i))
b=Array(3,4,8,8,9,10,12,12)
Fori=1To8'
显示数组b的元素值
Str(b(i))
c=Array(1,5,5,6,8)
显示数组c的元素值
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的元素值
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执行结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 课后 练习 答案 习题 解答