VB期末考试试题.docx
《VB期末考试试题.docx》由会员分享,可在线阅读,更多相关《VB期末考试试题.docx(11页珍藏版)》请在冰豆网上搜索。
VB期末考试试题
VB期末考试试题(A卷)
一、选择题
1.要改变控件的宽度,应修改该控件的( B )属性。
A、TOPB、widthC、LeftD、Height
2.将命令按钮Command1设置为不可见,应修改该命令按钮的(A)属性。
A、VisibleB、ValueC、CaptionD、Enabled
3.单机滚动条两端的任何一个滚动箭头,将触发该滚动条的(C)事件。
A、ScrollB、KeyDownC、changeD、Dragver
4.(D)对象具有clear方法。
A、图片框B、窗体C、复选框D、列表框
5.中心定义图片框控件的坐标系统,可采用该图片框的(A)
A、scaleB、ScaleXC、scaleYD、setFocus
6.将通过对话框CommdDialog1的类型设置成另存为对话框,可调用该控件的(B)方法。
A、ShowopenB、ShowsaveC、ShowColorD、ShowFont
7.形状控件所显示的图形不可能是(D)
A、圆B、椭圆C、圆角正方形D、等边三角形
8.由FroK=10TOoslept3:
nextK循环语句控件的循环次数是(B)
A、12B、0C、-11D、-10
9.下列数据类型中,占用内存最大值是(D)
A、BoolwanB、ByteC、LntegerD、Single
10.如果在图片框上使用绘图方法绘制一个实心圆,则图片框的(C)属性决定了该图片的颜色。
A、BackColroB、ForelklorC、FillcolorD、Dlawstyle
一、选择题
1.要在垂直位置上移动控件,应利用控件的(C)属性。
A、LeftB、WidthC、TopD、Height
2.要在文本框中的文本显示掩码(密码)符,在属性设置时,首先必须设置(D)属性为False。
A、TxetB、EnabledC、VisibleD、Multline
3.用键盘的光标键选中某一菜单项,并按回车触发菜单的(C)的事件。
A、KeyPressB、KeyDownC、ClickD、Keyllp
4.一下(D)对象不具有Clear方法。
A、列表框B、组合框C、剪贴框D、图片框
5.软件列表中设定“文件列表”显示文件类型应改该控件的(D)属性。
A、PathB、FileNameC、NameD、Patterw
6.组合框有三种风格,它们由Style属性所决定,其中为简单组合框时,Style属性值应为(B)
A、0B、1C、2D、3
7.下列可调整图片框的大小以适合图片的属性是(B)
A、StretchB、autosizeC、pictureD、oledropmode
8.要想清除文本框中的内容则可利用( A )进行。
A、CaptionB、TextC、ClearD、Cls
9.下列表达式中,其值为0的是(C)
A、7/9B、7mod15C、7\9D、15mod9
10.求以10为底X的常用对数的表达式为(A)
A、LoG(X)/LoG(10)B、LN(X)C、LoG(X)/LoG(E)D、LoG(X)
二、 填空题(每空2分,共20分)
1.代数式的VisualBasic表达式是sqr((x^3+exp(-6)*log(y))*atn(a*3.14159/180)/(x*x+y*y))
2.设x=2,y=4,a=4,b=6,表达式(a>xXorb3.a和b中有仅只有一个不为1,相应的VisualBasic逻辑表达式为a<>1xorb<>1。
4.把条件为1£x£5写成VB表达式为:
x>=1andx<=5。
5.语句Line(1000,1000)-Step(2000,1500),vbRed,BF的含义是:
在窗体上绘制以角点为(2000,2000)和(4000,3500)的红色实心的矩形。
6.用随机函数产生10个100~500的整数,其表达可为:
forI=1to10
a(i)=100+int(400*rnd)
nextI。
7.当x=2时,语句ifx=2thenPrintx=2的结果值是True。
8.StaticPrivateSubcmdSum_Click()
DimSumasinteger
Sum=2*Sum+1
EndSub
问:
第三次单击命令按钮cmdSum后,Sum的值为:
7。
9.声明单精度常量g(重力加速度)代表9.8可写成:
constg=9.8。
10.欲使在自己设计VB程序运行过程中,不中止本程序的运行,同时又可调用系统中已有的应用程序c:
\windows\notepad.exe,可在程序代码窗口必要的地方添加语句:
shell(“c:
\windows\notepad.exe”)。
三、编程题
1随机产生n个两位正整数(n由对话框输入,切n>0)。
求出其中的偶数之和,并在标签框Labol1上显示。
程序写在命令按钮Command1的click事件中。
PrivateSubCommand1_Click()
DimnAsInteger
DimiAsInteger,sumAsLong
n=Val(InputBox("Pleaseinputainteger","InputNvalue"))
Fori=1Ton
rnddat=(10+Int(90*Rnd))
IfrnddatMod2=0Then
sum=sum+rnddat
EndIf
Nexti
Label1.Caption=sum
EndSub
2由输入对话框中输入100个数值数据,放入数组a,将其中的整数放入数组b,然后运用选择分类将数组b中的数据按从大到小的顺序排列,并以每行5个数据在窗体上输出。
注:
程序写在窗体form的click事件上。
PrivateSubForm_Click()
Dima(1To100)
Dimb()asinteger
DimiAsInteger,jAsInteger,kAsInteger,posAsInteger,tempasinteger
Fori=1To100
a(i)=Val(InputBox("Pleaseinputdata"))
Ifa(i)=Int(a(i))Then
j=j+1
ReDimPreserveb(j)
b(j)=a(i)
EndIf
Nexti
Fork=1Toj-1
pos=k
Form=kToj
Ifb(m)
Nextm
Ifk<>posThen
temp=b(k)
b(k)=b(pos)
b(pos)=temp
EndIf
Nextk
Fork=1Toj
IfkMod5=0ThenPrintb(k)ElsePrintb(k);
Nextk
EndSub
四、 程序阅读题(每小题6分,共18分)
1.程序1:
DimYAsInteger
PrivateStubCommand_Click()
DimXAsInteger
X=1
Y=1
CallAA(Y+1)
Z=BB(X)
PrintX,Y,Z
EndSub
PrivateSubAA(ByValZAsInteger)
Y=Z+X
Z=X+Y
EndSub
PrivateFunctionBB(ByRefYAsInteger)
Y=Y+1
BB=X+Y
EndFunction 结果:
(222)
2.程序2:
privatesubForm_click()
N=3
DimA(3,3)AsInteger
ForI=IToN
ForJ=IToN
A(I, J)=(J–l)*N+I
NextJ
NextI
ForI=2ToN
ForJ=1ToI–1
TEMP=A(I, J)
A(I, J)=A(J, I)
A(J, I)=TEMP
NextJ
NextI
ForX=1ToN
PrintX,A(X,N+X-I),A(X,X)
NextX
EndSub 结果:
(1 0 4
2 7 8
31112)
3.程序3:
PrivateSubForm_click()
Dimf1AsInteger,f2AsInteger,f3AsInteger
Open"c:
\a1.dat"ForOutputAs#1
f1=2:
f2=3
Print #1,"NO.";3,f1
Print #1,"NO.";4,f2
ForI=5To7
f3=f1+f2
Print#1,"NO.";I,f3
f1=f2
f2=f3
NextI
Close#1
EndSub
写出文件a1.dat的最终结果。
(
NO.3 2
NO.4 3
NO.5 5
NO.6 8
NO.7 13)
五、 程序填空题(每小题9分,共18分)1.从计算机输入三个数,找出中间数
PrivateSubFindMidNum()
X=INPUTBOX(“PLEASEINPUTTHEFIRSTNUMBER”)
Y=INPUTBOX(“PLEASEINPUTTHESECONDNUMBER)
Z=INPUTBOX(“PLESSEINPUTTHETHIRDNUMBER)
IF(XA=X
X=Y
Y=A
ENDIF
IF(Y>=Z)THEN
PRINTY
ELSEIF(X>=Z)THEN
PRINTZ
ELSE
PRINTX
ENDIF
EndSub
2. 打印以下杨辉三角形 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
DimQ()AsInteger
N=InputBox("PLEASEINPUTN")
ReDimQ(N,N)
ForI=1ToN
ForJ=1ToN
Q(I,J)=(0)
NextJ
NextI
ForK=0To (N–1)
Q(K+1,1)=1
Print1;
ForI=1ToK
Q(K+1,I+1)= (Q(K,I+1))+Q(K,I)
Print (Q(K+1,I+1))
NextI
Print
NextK
VB期末考试试题(B卷)
1.下列代数式的VisualBasic表达式是()。
二、填空
2.设x为大于零的实数,则大于x的最小奇数的VisualBasic表达式是_IIF(int(x)mod2=0,int(x)+2,int(x)+1)。
3.a1和a2之中有且只有一个与a3的值相等,相应的VisualBasic逻辑表达式是:
__a1=a3xora2=a3。
若a1和a2之中没有一个与a3的值相等,则相应的表达式是:
__a1<>a3anda2<>a3___。
4.设init的初值为10,则由下列循环语句控制的循环次数是__6__。
DoWhile init>=5
init=init-1
Loop
5.在VisualBasic中,变量从它的作用范围来看,可分为 _全局变量___、_模块级变量_____和___过程级变量__三种。
6.语句Picture1.Circle(800,1000),500的含义是 _以圆心为(800,1000)半径为500的圆_。
7.声明定长为10个字符变量Sstr的语句为:
_DimSstrasString*10_。
三、程序阅读题,阅读下列程序书写结构。
程序1
PrivateStaticSubCommand1_Click()
DimxAsInteger,sAsInteger
x=Val(InputBox("请输入一个正整数="))
Ifx<5Then
s=s*x
Else
s=s+x
EndIf
Text1.Text="s="+Str(s)
EndSub
程序运行时连续三次单击Command1,且设输入的数是5,2和4时,分别写出文本框text1.text的值。
结果:
(s=5s=10s=40)
b) 程序2
PrivateSubForm_Click()
Form1.Cls
w=3
Fork=2To6Step2
Form1.Print"w=";w,"k=";k
w=w+1
Nextk
Form1.Print"w=";w,"k=";k
EndSub
写出程序运行时单击窗体后,Form1上输出结果。
结果为:
(w=3k=2
W=4k=4
W=5k=6
W=6k=8)
c) 程序3
Rem在窗体的通用声明区声明两个模块级变量a和y
DimaAsInteger,yAsInteger
PrivateSubForm_Load()
Open"c:
\a1.dat"ForOutputAs#1
Close#1
EndSub
PrivateSubCommand1_Click()
Open"c:
\a1.dat"ForAppendAs#1
Callaa(5)
y=y+a
Print#1,"y=";y,"a=";a:
Close#1
EndSub
Subaa(iAsInteger)
x=1
DoUntilx>i
a=a+x
x=x+3
Loop
EndSub
写出程序运行时连续三次单击Command1后,a1.dat文件的最终结果为:
(
y=5a=5
yy=15a=10
yy=30a=15)
五、 程序填空题(每小题9分,共18分)
a) 程序说明:
利用一个计时器、一个标签框和二个命令按钮制作一个动态秒表,如图1所示。
单击“开始“命令按钮,秒表开始计时,单击“结束“命令按钮,秒表结束计时,并在标签框显示运行时间,如“运行了0小时2分10秒“。
(假设对象的属性都在程序代码中设定)。
DimxAsLong
DimhAsInteger,mAsInteger,sAsInteger
PrivateSubForm_Load()
Form1.Caption="动态秒表(小时:
分:
秒)"
Command1.Caption="开始[&S]"
Command2.Caption="结束[&E]"
Label1.Alignment=2 '居中对齐
Label1.Caption="0:
0:
0"
timer1.Interval=__1000______
Timer1.Enabled=False
x=0
EndSub
PrivateSubCommand1_Click()
_timer1.enabled=True___
EndSub
PrivateSubCommand2_Click()
Timer1.Enabled=False
x=_0___
Label1.Caption="运行了"+Str(h)+"小时"+Str(m)+"分"+Str(s)+"秒"
EndSub
PrivateSubTimer1_Timer()
x=x+1
h=_x\3600______
m=(xMod3600)\60
s=_(xmod3600)mod60__
Label1.Caption=Str(h)+":
"+Str(m)+":
"+Str(s)
EndSub
b) 程序说明:
已知自然对数的底数e的级数表示如下:
e=1+1/1!
+1/2!
+1/3!
+......+1/n!
+.....
本程序利用函数过程fact()求e,其中绝对值小于1E-8的项被忽略。
程序代码如下:
PrivateFunctionfact(mAsInteger)AsSingle '求M!
的函数
DimxAsSingle,iAsInteger
x=1
fori=1tom:
x=_x*i__:
Nexti
fact=x
EndFunction
PrivateSubForm_Click()
DimeAsSingle,itemAsSingle
DimnAsInteger
e=1:
n=__0____
Do
n=n+1
item=__1/fact(n)____
e=e+item
Loop while_item>=1.OE-8_
Form1.Print"e=";e
EndSub