《VBNET程序设计》作业二.docx
《《VBNET程序设计》作业二.docx》由会员分享,可在线阅读,更多相关《《VBNET程序设计》作业二.docx(51页珍藏版)》请在冰豆网上搜索。
《VBNET程序设计》作业二
《VB.NET程序设计》作业二
一、单项选择题
1.在
VisualStudio.NET
的集成开发环境中,下面不属于该环境编程语言的是
。
A.VB
B.C++
C.Pascal
D.J#
2.在
VB.NET
中,在窗体上显示控件的文本,用
属性设置。
A.Text
B.Name
C.Caption
D.Image
3.对于窗体,可改变窗体的边框性质的属性是
。
A.MaxButton
B.FormBorderStyle
C.Name
D.Left
4.若要使标签控件显示时不覆盖窗体的背景图案,要对
属性进行设置。
A.BackColor
B.BorderStyle
C.ForeColor
D.BackStyle
5.当运行程序时,系统自动执行启动窗体的
事件过程。
A.Load
B.Click
C.Unload
D.GotFocus
6.当文本框的
ScrollBars
属性设置了非
None
值,却没有效果,原因是
。
A.文本框中没有内容
B.文本框的
MultiLine
属性为
False
C.文本框的
MultiLine
属性为
True
D.文本框的
Locked
属性为
True
7.要判断在文本框中是否按了
Enter
键,应在文本框的
事件中判断。
A.Change
B.KeyDown
C.Click
D.KeyPress
8.在
VB.NET
集成环境中创建
VB.NET
应用程序时,除了工具箱窗口、窗体窗口、属性窗
口外,必不可少的窗口是
。
A.窗体布局窗口
B.立即窗口
C.代码窗口
D.监视窗口
9.当创建一个项目名为“引例”
的项目时,该项目的所有代码文件将保存在
文件夹下。
A.MyDocuments
B.VB.NET
C.引例
D.Windows
10.将调试通过后生成的
.exe可执行文件到其他机器上不能运行的主要原因是
。
A.运行的机器上无
VB.NET
系统
B.缺少
.frm
窗体文件
C.该可执行文件有病毒
11.对初学者而言,调试程序方便、有效的手段是
A.在可疑的代码处设置断点点,逐语句跟踪
C.通过“立即”窗口显示变量的值
12.当需要上下文帮助时,选择要帮助的“难题”
D.以上原因都不对
。
B.查看资料
D.找老师问原因
,然后按键,就可出现
MSDN
窗口
及显示所需“难题”的帮助信息。
A.HelpB.F10C.EscD.F1
13.__________属性用来设置窗体的背景图案。
A.BackgroundImage
B.GroundImage
C.Image
D.Icon
14.能够获得一个文本框中被选取文本的内容的属性是
__________。
A.Text
B.SelectionLength
C.SelectedText
D.
SelectionStart
15.关于数组的声明,正确的是
__________。
A.Dima(5)AsInteger={1,2,3,4,5,6}C.Dima()AsInteger={1,2,3,4,5,6}
B.Dima(1,6)AsInteger={1,2,3,4,5,6}D.Dima(1to6)AsInteger={1,2,3,4,5,6}
16.如下数组声明语句中正确的是
__________。
A.Dima[3,4]
C.Dima{3,4}
AsInteger
AsInteger
B.Dima(3,4)
D.Dima(34)
AsInteger
AsInteger
17.数组声明语句
A.12
Dima(4,0To2)B.15
中的数组a包含了
C.16
_________个数组元素。
D.20
18.下面语句说明不合法的是
_________。
A.Functionf1%(ByValn%)
C.Subs1(ByValn%(10))
B.Subs1(ByValnAsInteger)
D.Functionf1%()
19.下列子过程最合理的是
。
A.Subf1(ByValC.Functionf1%
n%())(ByRef
f1%)
B.Subf1(ByRefn%)AsIntegerD.Functionf1(ByValn%)
20.下列过程的定义正确的是
__________。
A.PublicFunctiona(ByValb!
)AsDouble
C.PublicFunctiona(ByRefa!
)AsDouble
D.PublicFunctiona(ByRefb!
(5))AsDouble
B.PublicSuba(ByValb!
)AsDouble
21.设有如下说明
PublicSubF1(ByRefn%)
n=3*n+4
EedSub
SubButton1_Click()HandlesButton1.Click
Dimn%,m%
n=3
m=4
‘调用F1的语句
EedSub
则在Button1_Click
事件中有效的调用语句是
。
A.F1(n+m)
B.F1(m)
C.F1(5)
D.F1(m,n)
22.如下程序输出的结果是
。
DimiAsInteger
Dima()AsInteger={1,2,3,4,5,6,7}
Fori=0ToUBound(a)
a(i)=a(i)*a(i)
Nexti
MsgBox(a(i))
A.49
B.0
C.不确定
D.程序出错
23.如下程序输出的结果是
。
PrivateSubButton1_Click(
⋯⋯
)HandlesButton1.Click
Dimi%,j%
Dima()AsInteger={0,1,2,3,4,5,6,7,8,9},b(3,3)AsInteger
Label1.Text=""
Fori=1To3
Label1.Text&=Space(i*3)
Forj=iTo3
b(i,j)=a(i*j)
Label1.Text&=Space(6-Len(b(i,j)))&b(i,j)
Next
Label1.Text&=vbCrLf
Next
EndSub
A.123
B.1
C.147
D.123
4
5
6
4
5
2
4
6
4
6
7
8
9
7
8
9
3
6
9
9
24.在过程中定义的变量,若希望在离开该过程后还能保存过程中局部变量的值,则应使用
关键字在过程中定义过程级变量。
A.DimB.PrivateC.PublicD.Static
25.如下程序输出的结果是。
PrivateSubButton1_Click(⋯⋯)HandlesButton1.Click
MsgBox(p1(3.0,7))
EndSub
PublicFunctionp1!
(ByValx!
ByValn%)
Ifn=0Then
p1=1
Else
IfnMod2=1Then
p1=x*p1(x,n\2)
Else
p1=p1(x,n\2)\x
EndIf
EndIf
EndFunction
A.18B.7C.14D.27
26.如下程序,运行后各变量的值依次为。
PublicSubProc(ByRefa%())
Statici%
Do
a(i)=a(i)+a(i+1)
i=i+1
LoopWhilei<2
EndSub
SubButton_Click(⋯⋯)HandlesButton1.click
Dimm%,i%,x%(10)
Fori=0to4:
x(i)=i+1:
Nexti
Fori=1to2:
Callproc(x):
Nexti
Fori=0to4:
MsgBox(x(i)):
Nexti
Endsub
A34756B35745C23445D45678
二.填空题
1.当进入VB.NET集成环境,发现没有显示“工具箱”窗口,应选择菜单的选
项,使“工具箱”窗口显示,并最好将其窗口的属性设置为。
2.对象的属性是指;对象的方法是指。
3.当对命令按钮的Image属性装入.bmp图形文件后,按钮上并没有显示所需的图形,原因
是对属性设置为。
4.若已建立了Form1、Form2两个窗体,默认启动窗体为Form1。
通过菜单
的的选项卡,可将启动对象设置为Form2。
5.对于正在使用的数组A,要再增加一个单元,但要保留原数组各元素的值,则应使用:
ReDim______________A(Ubound(A)+1)语句。
6..在模块的开头通过ImportsSystem.__________语句限定,x的平方根可以写为sqrt(x)。
7.在过程体中,用__________关键字声明的局部(过程级)变量,其值可以保留至下次过
程被调用。
三.上机题
1.输入一个数到文本框,然后对其求平方根,结果通过信息框输出。
2.调试下列程序,实现对数组s由大到小排序;并将排序结果显示在标签中。
PrivateSubButton1_Click(,)HandlesButton1.Click
Dims()AsInteger
Dimk%,j%,n%,t%
s=Array(77,67,89,65,85,53,94,74,79,90)
n=UBound(s)
Forj=0Ton-1
Fork=____
(1)_____Ton
Ifs(j)
t=s(j)
s(j)=
(2)
___(3)____=t
EndIf
Nextk
Nextj
Label1.Text=""
Forj=0Ton
Label1.Text&=(4)&""
Nextj
EndSub
完整程序:
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
HandlesButton1.Click
Dims()AsInteger={77,67,89,65,85,53,94,74,79,90}'删除了原题中的s=Array(77,67,89,65,85,53,94,74,79,90)
Dimk%,j%,n%,t%
n=UBound(s)
'显示原数据
Label1.Text="待排序数组的元素是:
"&vbCrLf
Forj=0Ton
Label1.Text&=s(j)&""
Next
Label1.Text&=vbCrLf&vbCrLf
'排序
Forj=0Ton-1
Fork=j+1Ton
Ifs(j)
t=s(j)
s(j)=s(k)
s(k)=t
EndIf
Nextk
Nextj
'结果
Label1.Text&="排序后的元素为:
"&vbCrLf
Forj=0Ton
Label1.Text&=s(j)&""
Nextj
EndSub
3.调试下列程序,实现对数组a中的10个整数用冒泡法按升序排列,并将排序结果显
示在Label1标签框中。
PrivateSubButton1_Click(,)HandlesButton1.Click
Dima()={678,45,324,528,439,387,87,875,273,82}
Dimi%,j%,n%,t%
n=UBound(a)
Label1.Text="待排序的数组元素为:
Fori=0Ton
Label1.Text&=a(i)&""
Nexti
Label1.Text&=vbCrLf&vbCrLf
Fori=0Ton
Forj=0Ton-i-1
Ifa(j)>a(j+1)Then
t=a(j)
a(j)=a(j+1)
a(j+1)=t
EndIf
Nextj
Nexti
"&vbCrLf
Label1.Text&="排序后的数组元素为:
Forj=0Ton
Label1.Text&=a(j)&""
Nextj
EndSub
"&vbCrLf
完整程序:
PrivateSubButton1_Click(ByVal
sender
As
System.Object,
ByVal
eAs
System.EventArgs)HandlesButton1.Click
Dima()={678,45,324,528,439,387,87,875,273,82}'删除了a=Array(678,45,324,528,439,387,87,875,273,823)
Dimi%,j%,n%,t%
n=UBound(a)
'显示原数据
Label1.Text="待排序的数组元素为:
"&vbCrLf
Fori=0Ton
Label1.Text&=a(i)&""
Nexti
Label1.Text&=vbCrLf&vbCrLf
'冒泡排序,相邻对比,大的数沉底
Fori=0Ton
Forj=0Ton-i-1
Ifa(j)>a(j+1)Then
t=a(j)
a(j)=a(j+1)
a(j+1)=t
EndIf
Nextj
Nexti
'排序结果
Label1.Text&="排序后的数组元素为:
"&vbCrLf
Forj=0Ton
Label1.Text&=a(j)&""
Nextj
EndSub
4.将一个有序数组中重复出现的数删除,删得只剩一个。
(!
)主调程序运行后的结果如图所示。
解题思想:
从数组最右边往左两两比较,若相
同,右边的数依次左移,数组元素减1。
(程序中红色代码为应填入的内容)
PrivateSubButton1_Click()HandlesButton1.Click
Dimb()AsInteger={23,45,45,60,70,70,70,90,99,100,100,120,120,
120},i%,n%
Label1.Text=""
Callp(b,n)
Fori=0Ton
Label1.Text&=b(i)&""
Next
EndSub
Subp(
(1))ByVala()
Dimm%,k%
n=UBound(a)
m=n
DoWhile
(2)m>0
Ifa(m)=a(m-1)Then
Fork=(3)
a(k-1)=a(k)
Nextk
n=(4)n-1
EndIf
m=(5)m-1
Loop
AsInteger,ByRefnAsInteger
mTon
ReDimPreservea(n)
EndSub
5.在一维数组中利用移位的方法显示如图所示的结果。
(程序中红色代码为应填入的内容)
PrivateSubButton1_Click(......)HandlesButton1.Click
Dima(7)AsInteger,i%,j%,t%
Label1.Text=""
Fori=1To7
a(i)=i
Label1.Text&=a(i)&""
Nexti
Label1.Text&=vbCrLf
Fori=1To7
t=
(1)a(7)
Forj=6To1Step-1
(2)a(j+1)=a(j)
Nextj
a
(1)=(3)t
Forj=1To7
Label1.Text&=a(j)&""
Nextj
Label1.Text&=(4)
vbCrLf
Next
EndSub
6.回文素数的判断和应用。
(1)编写一函数
hws(n),对于已知正整数
n,判断该数是否是回文素数,函数的返回
值为布尔类型。
所谓回文素数是指构成的字符左右对称的素数。
例如:
11、101、313等。
(2)编写主调程序,调用函数
hws,并显示回文素数。
下面的程序求
10~1000以内的
所有回文素数。
程序设计思想:
选取正整数
N,若
N是素数,调用子过程
hws
判断该素数是否为回文
数(判断左右对称),若是,在文本框内显示所求结果,如图所示。
PrivateSubButton1_Click(,)HandlesButton1.Click
DimflgAsBoolean,i%,j%,m%
Fori=
m=Int(Sqr(i))
Forj=2Tom'判断是否为素数
IfiModj=0Then
Nextj
Ifj>mThen
Call
IfflgThenText1=Text1&i&vbCrLf
EndIf
Nexti
EndSub
PrivateSubhws(nAsInteger,bzAsBoolean)
Dimj%,k%,m$
bz=True
m=CStr(n)'将数值转为字符
k='求字符m的长度
Forj=1Tok\2'判断回文数
IfMid<>Mid(m,k-j+1,1)Then
bz=False
ExitFor
EndIf
Nextj
EndSub
7.编程求
1000
以内满足如下条件的正整数
N:
它的各个因子(包括
1和N)之和
sum
是一个素数。
例如:
25
的因子为
1、5、25,其和
1+5+25=31
是素数。
程序设计思想:
选取正整数
N,分解其因子,并累加,子过程
Prime
用于判断累加和
是否是素数,若是素数,在文本框内显示所求结果,如图所示。
PrivateSubButton1_Click(,)HandlesButton1.Click
DimflgAsBoolean,i%,sum%,n%,t$
Forn=2To1000
sum=1
t="1"
'存放各个因子之和表达式
i=2
DoWhilei<=
'
求给定正整数的所有因子
IfnModi=0Then
sum=
t&="+"&i
EndIf
i+=1
Loop
t=t&"="&sum
Call
IfflgThen
TextBox1.text&=Str(n)&":
"&&