过程及文件练习.docx
《过程及文件练习.docx》由会员分享,可在线阅读,更多相关《过程及文件练习.docx(13页珍藏版)》请在冰豆网上搜索。
![过程及文件练习.docx](https://file1.bdocx.com/fileroot1/2022-10/25/792916cb-5d9e-4916-b7a3-df86714ef9fa/792916cb-5d9e-4916-b7a3-df86714ef9fa1.gif)
过程及文件练习
过程及文件练习
一、单选题
1.要定义一个过程为局部过程,应使用的关键字为(C)
A)StaticB)PublicC)PrivateD)Sub
2.为了通过传值方式来传送过程参数,应使用的关键字为(B)
A)ValueB)ByValC)ByRefD)Reference
3.如有以下程序代码:
Functionfunc(ByValxAsInteger,yAsInteger)
y=x*y
Ify>0Then
func=x
Else
func=y
EndIf
EndFunction
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=3
b=4
c=func(a,b)
Print"a=";a
Print"b=";b
Print"c=";c
EndSub
运行程序后,在窗体上输出的内容为(A)
A)a=3B)a=3C)a=3D)a=3
b=12b=4b=4b=12
c=3c=3c=12c=12
4.如有以下程序代码:
OptionBase1
Subsubp(b()AsInteger)
Fori=1To3
b(i)=3*i
Nexti
EndSub
PrivateSubCommand1_Click()
Dima(3)AsInteger
arr=Array(8,4,3)
Fori=1To3
a(i)=arr(i)
Nexti
subpa()
Fori=1To3
Printa(i)
Nexti
EndSub
运行程序后,在窗体上输出的内容为(A)
A)369B)843C)963D)348
5.如有以下程序代码:
Subs1(ByValxAsInteger,ByValyAsInteger)
DimtAsInteger
t=x
x=y
y=t
EndSub
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=10
b=30
s1a,b
Print"a=";a;"b=";b
EndSub
运行程序后,在窗体上输出的内容为(C)
A)a=30b=10B)a=30b=30
C)a=10b=30D)a=10b=10
6.如有以下程序代码:
PrivateSubCommand1_Click()
Dimx,y,zAsInteger
x=5
y=7
z=0
Text1.Text=""
Callp1(x,y,z)
Text1.Text=Str(z)
EndSub
Subp1(ByValaAsInteger,ByValbAsInteger,cAsInteger)
c=a+b
EndSub
运行程序后,在窗体上输出的内容为(B)
A)0B)12C)Str(z)D)没有显示
7.如有以下程序代码:
PrivateSubCommand1_Click()
Callsub1(-15.1,2.54)
EndSub
PublicFunctionsub1(aAsInteger,ByValbAsString)AsInteger
a=Val(b)
sub1=a
Printsub1
EndFunction
运行程序后,在窗体上输出的内容为(A)
A)3B)2C)-15D)提示错误
8.如有以下程序代码:
PublicFunctionfun(xstrAsString)AsString
tstr=""
strl=Len(xstr)
i=1
DoWhilei<=strl/2
tstr=tstr&Mid(xstr,i,1)&Mid(xstr,strl-i+1,1)
i=i+1
Loop
fun=tstr
EndFunction
PrivateSubCommand1_Click()
Dims1AsString
s1="abcdef"
PrintUCase(fun(s1))
EndSub
运行程序后,在窗体上输出的内容为(C)
A)ABCDEFB)abcdefC)AFBECDD)DEFABC
9.如有以下程序代码:
DimxAsInteger,yAsInteger
PrivateSubCommand1_Click()
x=5
y=5
z=3
sub1
Printz;
sub2
Printz;
EndSub
Subsub1()
z=x*y
EndSub
Subsub2()
z=x+y
EndSub
运行程序后,在窗体上输出的内容为(C)
A)315B)2510C)33D)310
10.如有以下程序代码:
PrivateSubForm_click()
a=3
b=4
Fori=1To1
y=cacl(a,b)
Nexti
Printy
EndSub
PublicStaticFunctioncacl(x,y)
a=a+1
cacl=x*y*a
EndFunction
运行程序后,在窗体上输出的内容为(C)
A)10B)11C)12D)13
11.如有以下程序代码:
PrivateSubForm_click()
DimnAsInteger
n=5
Printp1(n)
EndSub
PrivateFunctionp1(nAsInteger)AsInteger
Ifn<1Then
p1=0
Else
p1=p1(n-1)+n
EndIf
EndFunction
运行程序后,在窗体上输出的内容为(C)
A)120B)25C)15D)10
12.如有以下程序代码:
Dimx,y
PrivateSubForm_click()
x=1
y=1
z=1
abc5
Printx;y;z
EndSub
PrivateSubabc(m)
x=m
y=m
z=m
EndSub
运行程序后,在窗体上输出的内容为(B)
A)111B)551
C)115D)555
13.如有以下程序代码:
PrivateSubCommand1_Click()
L1:
DimiAsInteger
DimisumAsInteger
Fori=1To5
isum=sum(i)
Nexti
Print"isum=";isum
EndSub
PrivateFunctionsum(nAsInteger)
L2:
DimjAsInteger
j=j+n
n=n+2
sum=j
EndFunction
(1)运行程序时,第一次单击窗体产生的结果是(B)
A)isum=3B)isum=4
C)isum=5D)isum=15
(2)如果将L2语句改为StaticjAsInteger,则程序运行程序时第一次单击窗体产生的结果是(C)
A)isum=3B)isum=4
C)isum=5D)isum=15
(3)如果在原程序基础上只将L1语句改为PubliciAsInteger,则程序运行程序时第一次单击窗体产生的结果是(C)
A)结果同
(1)B)结果同
(2)
C)结果与
(1)
(2)都不相同D)程序出错,不能运行
二、简答题
1.Functionm(xAsInteger,yAsInteger)AsInteger
m=IIf(x>y,x,y)
EndFunction
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=1
b=2
Printm(a,b)
EndSub
程序运行后的输出结果为[2]
2.PrivateSubForm_click()
DimaAsInteger,bAsInteger
a=20
b=50
p1a,b
p2a,b
p3a,b
Print"a=";a,"b=";b
EndSub
Subp1(xAsInteger,ByValyAsInteger)
x=x+10
y=y+20
EndSub
Subp2(ByValxAsInteger,yAsInteger)
x=x+10
y=y+20
EndSub
Subp3(ByValxAsInteger,ByValyAsInteger)
x=x+10
y=y+20
EndSub
程序运行后显示的内容a=[30]b=[70]
3.PrivateSubCommand1_Click()
DimiAsInteger
Sum=0
n=InputBox("enteranumber")
n=Val(n)
Fori=1Ton
[Sum=Sum+fun(i)]
Nexti
PrintSum
EndSub
Functionfun(tAsInteger)AsLong
p=1
Fori=1Tot
p=p*i
Nexti
[fun=p]
EndFunction
以上程序功能是计算1!
+2!
+3!
+…+n!
,其中n从键盘上输入,请填空。
4.OptionBase1
PrivateSubCommand1_Click()
Dima(10)AsInteger
Fori=1To10
a(i)=i
Next
Callswap([a()])
Fori=1To10
Printa(i);
Nexti
EndSub
Subswap(b()AsInteger)
n=[UBound(b)]
Fori=1Ton/2
t=b(i)
b(i)=b(n)
b(n)=t
[n=n–1]
Nexti
EndSub
上述功能程序,是通过调用过程swap,调换数组中数值的存放位置,即a
(1)与a(10)的值互换,a
(2)与a(9)的值互换。
5.P