VB自我练习1.docx
《VB自我练习1.docx》由会员分享,可在线阅读,更多相关《VB自我练习1.docx(33页珍藏版)》请在冰豆网上搜索。
VB自我练习1
09级期末考试(A)
一、单项选择题(1分/小题,共10分)
1、语句PRINT"SGN(-26)=";SGN(-26)的输出结果为().
(A)SGN(-26)=26(B)SGN(-26)=-26(C)SGN(-26)=+1(D)SGN(-26)=-1
2、VB应用程序保存在磁盘上,至少会有以()为扩展名两个文件.
(A).DOC和.TXT(B).COM和.EXE(C).VBW和.BAS(D).VBP和.FRM
3、组合框有三种风格,它们由Style属性所决定,其中为下拉列表框时,Style属性值应为().
(A)0(B)1(C)2(D)3
4、Int(198.555*100+0.5)/100的值().
(A)198(B)199.6(C)198.56(D)200
5、若要访问组合框Comb1中被用户选中的表项,应使用()
(A)Comb1.Text(B)Comb1.List(C)Comb1.ListIndex(D)Comb1.ListCount
6、下列各项变量中,哪一项所占的内存空间最多().
(A)dimxascurrencyx=99(B)dimst1asstringst1='good'
(C)dimst2asstringst2='goodbye'(D)dimdasdatad='1898/09/12'
7、清除列表框的所有选项应选择下列哪种方法().
(A)Clear(B)Cls(C)ClearItem(D)RemoveItem
8、如果在窗体上已经创建了一个文本框对象Text1,可以通过()事件获得输入键值的ASCII码.
(A)Change(B)LostFocus(C)KeyPress(D)GotFocus
9、以下不属于VisualBasic系统的文件类型是().
(A).frm(B).bat(C).vbg(D).vbp
10、控件是().
(A)建立对象的工具(B)设置对象属性的工具
(C)编写程序的编辑器(D)建立图形界面的编辑窗口
二、程序阅读(3分/题,共45分)
1、在窗体上画一个名称为Label1、标题为"VisualBasic考试"的标签,两个名称分别为Command1和Command2、标题分别为"开始"和"停止"的命令按钮,然后画一个名称为Timer1的计时器控件,并把其Interval属性设置为500.编写如下程序:
PrivateSubForm_Load()
Timer1.Enabled=False
EndSub
PrivateSubCommand1_Click()
Timer1.Enabled=True
EndSub
PrivateSubCommand2_Click()
Timer1.Enabled=False
EndSub
PrivateSubTimer1_Timer()
IfLabel1.LeftLabel1.Left=Label1.Left+120
Else
Label1.Left=0
EndIf
EndSub
(1)程序运行后,单击"开始"按钮,标签在窗体中移动.对于这个程序,以下叙述中错误的是()
(A)标签的移动方向为自左向右
(B)单击"停止"按钮后再单击"开始"按钮,标签从停止的位置继续移动
(C)当标签全部移出窗体后,将从窗体的另一端出现并重新移动
(D)标签每隔1秒移动一次
(2)程序使用了几个控件()
(A)1(B)2(C)3(D)4
(3)Timer控件的Interval属性的单位是()
28(A)秒(B)毫秒(C)微秒(D)纳秒
2、程序如下
Functionf(mAsInteger)AsInteger
b=1
StaticcAsInteger
b=b+1
c=c+1
f=m*b*c
EndFunction
PrivateSubCommand1_Click()
DimaAsInteger
a=2
Sum=0
Fori=1To3
Sum=Sum+f(a)
Nexti
PrintSum
EndSub
(4)程序运行后,窗体上显示的值为()。
(A)24(B)12(C)28(D)32
(5)如果将StaticcAsInteger改为dimcAsInteger,则sum的值为()。
(A)24(B)12(C)28(D)32
(6)如果将语句b=1去掉,则sum的值又为()。
(A)24(B)12(C)28(D)32
3、程序如下
DimxAsInteger,yAsInteger,zAsInteger
Subs1(aAsInteger,bAsInteger)
DimcAsInteger
a=2*a
b=b+2
c=a+b
EndSub
Subs2(aAsInteger,ByValbAsInteger)
DimcAsInteger
a=2*a
b=b+2
c=a+b
EndSub
PrivateSubCommand1_Click()
x=4
y=4
z=6
Calls1(x,y)
Printx+y+z;
Calls2(x,y)
Printx+y+z
EndSub
(7)程序运行后,窗体上显示的结果为()。
(A)2428(B)2028(C)2018(D)2020
(8)将ByValbAsInteger改为bAsInteger后窗体上显示的结果为()。
(A)2428(B)2028(C)2018(D)2030
(9)修改后变量x和y的最后取值为().
(A)2428(B)2020(C)168(D)2030
4、程序如下
PrivateSubForm_Click()
DimnumAsInteger,dat1AsInteger,dat2AsInteger
DimswitAsBoolean
num=0
Open"d:
\prime.dat"ForOutputAs#1
Fordat1=2To10
swit=True
Fordat2=2ToSqr(dat1)
If(dat1Moddat2)=0Then
swit=False
ExitFor
EndIf
Nextdat2
IfswitThen
num=num+1
Write#1,"第";num;"个数";dat1
EndIf
Nextdat1
Close#1
EndSub
(10)程序中write语句的作用是().
(A) 读数据 (B)写数据
(C)修改数据 (D)追加数据
(11)执行程序后,prime.dat文件的内容是()。
(A)第1个数7 (B)第1个数2
第2个数5 第2个数3
第3个数9 第3个数5
(C)第1个数2(D)以上都不对
第2个数3
第3个数5
第4个数7
(12)该程序的功能是()。
(A)统计2到10之间的数据个数。
(B)统计2到10之间的素数个数。
(C)找出2到10之间所有的素数。
(D)找出2到10之间的第一个素数。
5、程序如下
Subs1(b()AsInteger)
Fori=1To4
b(i)=2*i
Nexti
EndSub
L1:
PrivateSubCommand1_Click()
Dima()AsInteger
Redima(1to4)
Fori=1To4
a(i)=i+5
Nexti
s1a()
Fori=1To4
Printa(i);
Nexti
EndSub
(13)程序运行的结果是()。
(A)6789(B)12141618(C)2468(D)1234
(14)程序中所定义的a()是()。
(A) 用户自定义类型 (B) 静态数组
(C)动态数组 (D)用户自定义类型数组
(15)在L1处添加语句optionbase1后,程序运行的结果()。
(A)有变化 (B)无变化
(C)出现语法错误 (D)以上都不是
三、程序填空(2分/空,30分)
1、下面的程序段用于求矩阵相乘C=A×B,设A、B、C分别为m×p、p×n、m×n的矩阵。
PrivateSubForm_Click()
Constm=4,p=3,n=2
Dima(1Tom,1Top)AsInteger
Dimb(1Top,1Ton)AsInteger
Dimc(1Tom,1Ton)AsInteger
DimiAsInteger,jAsInteger,kAsInteger,sumAsInteger
Fori=1Tom
Fork=1Top
a(i,k)=i
Nextk
Nexti
Fori=1Top
Fork=1Ton
b(i,k)=i
Nextk
Nexti
Fori=1Tom
Forj=1Ton
【①】
Fork=1Top
sum=sum+【②】
Nextk
c(i,j)=【③】
Nextj,i
Print"输出矩阵"
Fori=1Tom
Fork=1Ton
Printc(i,k),
Nextk
Print
Nexti
EndSub
2、以下程序段分别以子过程和函数来计算某级数部分和,级数公式如图1所示。
Functionjishu1(x!
eps#)AsDouble
Dimn%,s#,t#
n=1:
s=0:
t=1
DoWhile(Abs(t)>=eps)
s=s+t
t=t*x/n
n=n+1
Loop
【①】
EndFunction
Subjishu2(s#,x!
eps#)
Dimn%,t#
n=1:
s=0:
t=1
DoWhile(Abs(t)>=eps)
s=s+t
t=t*x/n
n=n+1
Loop
EndSub
PrivateSubCommand1_Click()
Dimf1#,f2#
f1=jishu1(2#,0.000001)
【②】jishu2(f2,