Label1.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,2#,0.000001)
Print"f1=";f1,"f2=";f2
EndSub
3、用输入对话框输入x,根据如图公式计算对应的y,在窗体上输出y的值。
OptionExplict
PrivateSubCommand1_Click()
DimxAsSingle
【①】
x=Val(【②】("Pleaseinputx:
","输入X的值"))
Ifx=10Then
【③】
ElseIfx>10Then
y=【④】
Else
y=2*x^3+6
EndIf
Printy
EndSub
4、以下程序段实现的功能是:
查找一数列中是否存在某数字x,若数列中存在该数字,则输出其出现的次数,否则输出不存在信息。
PrivateFunctionSearch(a()AsInteger,ByValkey,n%)AsBoolean
Dimi%
Search=False
Fori=LBound(a)To【①】
Ifkey=a(i)Then
Search=True
【②】
EndIf
Nexti
EndFunction
PrivateSubForm_Click()
DimxAsInteger,kAsInteger,numAsInteger
Dimb()AsInteger
num=Int(Rnd*10)+1
ReDimb(num)
Fori=0Tonum
b(i)=Int(Rnd*70)+20
Printb(i);
Nexti
Print
x=Val(InputBox("输入待查找数据"))
IfSearch(【③】,x,k)Then
Printx;"在数列中出现";k;"次"
Else
Printx;"未在数列中出现"
EndIf
EndSub
5、在文本框内输入一串字符后,统计并显示各字母出现的次数(不区分大小写字母)。
PrivateSubCommand1_Click()
Dima(1To26)AsInteger,cAsString*1
【①】=Len(Text1)
ForI=1Tok
c=【②】(Mid(Text1,I,1))
Ifc>="a"Andc<="z"Then
j=Asc(c)-【③】+1
a(j)=a(j)+1
EndIf
NextI
Picture1.Cls
Forj=1To26
Ifa(j)>0Then
Picture1.Print"";Chr(j+96);"=";a(j);
EndIf
Nextj
EndSub
四、程序改错题(每个错误点3分,共15分)
有一程序其功能为:
单击“生成”按钮后,利用随机函数产生10个(1~100)之间的随机整数并输出在LIST1中,单击“计算”按钮,在窗体上打印其中能被5整除的数并求它们的和。
程序中有5个错误,在不删除整条语句的前提下,可修改或补充语句,添加的语句不能超过两条。
错误源代码:
OptionBase1
Dimx(10)AsInteger
PrivateSubCommand1_Click()
List1.Remove
Fori=1To10
x(i)=
List1.AddItemx(i);
Nexti
EndSub
PrivateSubCommand2_Click()
DimsumAsInteger
sum=0
Fori=1To10
IfThen
Printx(i)
sum=sum+x(i)
Nexti
Print"sum=";sum
EndSub
一、单项选择题(1分/小题,共10分)
1、D
2、D
3、C
4、C
5、D
6、C
7、A
8、C
9、B
10、A
二、程序阅读(3分/题,共45分)
26、D
27、D
28、B
29、A
30、B
31、B
32、B
33、D
34、C
35、B
36、C
37、C
38、C
39、C
40、C
三、程序填空(2分/空,30分)
1、
(1)sum=0、
(2)a(i,k)*b(k,j)、(3)sum
2、
(1)jishu1=s、
(2)call
3、
(1)y、
(2)InputBox、(3)y=0、(4)+Sin(x)
4、
(1)UBound(a)、
(2)n=n+1、(3)b()
5、
(1)k、
(2)Lcase、(3)97
四、程序改错题(每个错误点3分,共15分)
OptionBase1
Dimx(10)AsInteger
PrivateSubCommand1_Click()
List1.Remove (1)修改为:
list1.clear
Fori=1To10
x(i)=(2) 修改为:
x(i)=Int(Rnd*100+1)
List1.AddItemx(i); (3)修改为:
List1.AddItemx(i)
Nexti
EndSub
PrivateSubCommand2_Click()
DimsumAsInteger
sum=0
Fori=1To10
IfThen (4)修改为:
Ifx(i)Mod5=0Then
Printx(i)
sum=sum+x(i)
(5)修改为:
EndIf
Nexti
Print"sum=";sum
EndSub
09级期末考试(B)
一、单项选择题(1分/小题,共10分)
1、标签的()属性设置为True时,标签控件的大小随标题文字自动调整.
(A)AutoSize(B)Caption(C)Alignment(D)BackStyle
2、CLS可清除窗体或图形框中的内容是()
(A)Picture属性设置的背景图案(B)在设计时放置的控件
(C)程序运行时产生的图形和文字(D)以上A~C全部
3、RGB函数通过红.绿.蓝三基色混合产生某种颜色,某语法为RGB(红.绿.蓝),括号中红、绿、蓝三基色的成分使用0~255之间的整数.若使用三个滚动条分别输入三种基色,为保证输入数值有效,则应设置()属性.
(A)Max和Min(B)Smallchange和LargeChange
(C)Scroll和Change(D)Value
4、要定义一个变量为全局变量,应使用()关键字.
(A)Static(B)Public(C)Private(D)Sub
5、下列程序段的运行结果()
PrivateSubForm_Click()
DimMsg
Hide
Msg="选择'确定'按钮"
MsgBoxMsg
Show
EndSub
(A)隐藏窗体,按'确定'按钮使窗体重现
(B)隐藏窗体
(C)显示窗体,按'确定'按钮使窗体隐藏
(D)显示窗体
6、在窗体上添加一个命令按钮,编写如下代码:
PrivateSubCommand1_Click
DimArr1(10)asInteger,Arr2(10)AsInteger
N=3
Fori=1to5
Arr1(i)=i
Arr2(n)=2*n+i
Nexti
PrintArr2(n),Arr1(n)
EndSub
程序运行后,单击命令按钮,输出结果是()
(A)113(B)311(C)133(D)313
7、假设变量BOOLVAR是一个布尔型变量,则下面正确的赋值语句是().
(A)BOOLVAR='TRUE'(B)BOOLVAR=.TRUE.
(C)BOOLVAR=#TRUE#(D)BOOLVAR=3<4
8、执行下面程序段后,变量a的值为().
ForI=1To3
Forj=1ToI
Fork=jTo3
a=a+1
Nextk
Nextj
NextI
(A)3(B)9(C)14(D)21
9、下面选项中()是算术运算符.
(A)%(B)And(C)&&(D)Mod
10、以下正确的描述是:
在VisualBasic应用程序中()
(A)过程的定义可以嵌套,但过程的调用不能嵌套
(B)过程的定义不可以嵌套,但过程的调用能嵌套
(C)过程的定义过程的调用均可以嵌套
(D)过程的定义过程的调用均不可以嵌套
三、程序填空(2分/空,30分)
1、下面的程序用"冒泡"法将数组a中的10个整数按从小到大排列,请将程序补充完整。
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(-2,5,24,58,43,-10,87,75,27,83)
Fori=10To2Step-1
For【①】
If【②】Then
a1=a(j+1)
a(j+1)=a(j)
a(j)=a1
EndIf
Nextj
【③】
Fori=1To10
Printa(i)
Nexti
EndSub
2、程序运行结果如图所示,请将程序补充完整。
PrivateSubForm_Click()
DimIAsInteger,jAsInteger
DimstarAsString
star="★"
ForI=1To6
Form1.PrintTab(14-I*2);
Forj=1To【①】
Form1.Printstar;
Nextj
Form1.Print
NextI
ForI=1To5
Form1.PrintTab(【②】);
Forj=1To(6-I)*2【③】
Form1.Printstar;
Nextj
Form1.Print
NextI
EndSub
3、本程序功能为,单击窗体,Form1的输出结果为
A1=10B1=20
A2=20B2=10
PublicSubSwap1【①】xAsInteger,ByValyAsInteger)
DimtAsInteger
t=x
x=y
y=t
EndSub
PublicSubSwap2(xAsInteger,yAsInteger)
DimtAsInteger
t=x
x=y
y=t
EndSub
PrivateSubForm_Click()
DimaAsInteger,bAsInteger
a=10
b=20
【②】a,b
Form1.Print"A1=";