PrivateFunctionfun(nAsInteger)AsLong
DimpAsLong:
p=1
Fork=n-1To2Step-1
p=p*k
Nextk
fun=p
EndFunction
调试时发现函数过程产生结果是错的,程序需要修改,下面修改方案中有3种正确,错误方案是()
A)把p=1改为p=n
B)把Fork=n-1To2Step-1改为Fork=1Ton-1
C)把Fork=n-1To2Step-1改为Fork=1Ton
D)把Fork=n-1To2Step-1改为Fork=2Ton
23.假定有以下函数过程
FunctionFun(SAsString)AsString
Dims1AsString
Fori=1ToLen(S)
s1=LCase(Mid(S,i,1))+s1
Nexti
Fun=s1
EndFunction
在窗体上画一个命令按钮,编写事件过程
PrivateSubCommand1_Click()
DimStr1AsString,Str2AsString
Str1=InputBox("请输入一个字符串"):
Str2=Fun(Str1):
PrintStr2
EndSub
程序运行后,单击命令按钮,若在输入对话框输入"abcdefg",单击"确定"按钮后,窗体输出结果()
A)ABCDEFGB)abcdefgC)GFEDCBAD)gfedcba
24.为计算an的值,某人编写函数power
PrivateFunctionpower(aAsInteger,nAsInteger)AsLong
DimpAsLong:
p=a
Fork=1Ton
p=p*a
Nextk
power=p
EndFunction
调试时发现是错的,例如Printpower(5,4)的输出应该是625,但实际输出是3125,程序需要修改,下面修改方案中有3个正确,错误的一个是()
A)把Fork=1Ton改为Fork=2TonB)把p=p*a改为p=p^n
C)把Fork=1Ton改为Fork=1Ton-1D)把p=a改为p=1
25.某人编写以下程序
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger:
a=InputBox("请输入整数"):
b=InputBox("请输入整数")
proa:
prob:
Callpro(a+b)
EndSub
PrivateSubpro(nAsInteger)
Whilen>0
PrintnMod10;n=n\10
Wend
Print
EndSub
此程序功能是:
输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字,例如:
若输入123和234,则应该输出
321
432
753
但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即2个数之和的反序),程序需要修改,下面修改方案中正确是()
A)把过程pro形参nAsInteger改为ByValnAsInteger
B)把Callpro(a+b)改为proa+b
C)把n=n\10改为n=n/10
D)在prob语句之后增加语句c%=a+b,再把Callpro(a+b)改为proc
二、填空题
1.在窗体上画一个文本框,一个标签和一个命令按钮,名称分别为Text1,Label1和Command1,编写两个事件过程
PrivateSubCommand1_Click()
S$=InputBox("请输入一个字符串"):
Text1.Text=S$
EndSub
PrivateSubText1_Change()
Label1.Caption=UCase(Mid(Text1.Text,7))
EndSub
程序运行后,单击命令按钮,如果在输入对话框中输入"VisualBasic",标签显示内容是【1】。
2.在窗体上画一个名为Command1命令按钮,编写程序并运行后,单击命令按钮,输出结果是【2】。
PrivateSubCommand1_Click()
a$="NationalComputerRankExamination":
n=Len(a$):
s=0
Fori=1Ton
b$=Mid(a$,i,1)
Ifb$="n"Thens=s+1
EndIf
Nexti
Prints
EndSub
3.为了在运行时把d:
\pic文件夹下图形文件a.jpg装入图片框Picture1,所使用语句是【3】。
4.设有如下程序,程序运行后,单击窗体,结果如右图所示。
PrivateSubForm_Click()G
a$="ABCDFG"FG
Fori=1To6DFG
PrintTab(12-i);【4】CDFG
NextiBCDFG
EndSubABCDFG
5.在窗体上画一个名为Command1命令按钮,编写代码
OptionBase1
PrivateSubCommand1_Click()
DimArr:
Arr=Array(43,68,-25,65,-78,12,-79,43,-94,72):
pos=0:
neg=0
Fork=1To10
IfArr(k)>0Then【5】
Else【6】
EndIf
Nextk
Printpos,neg
EndSub
以上程序功能是,计算并输出数组Arr中10个数中正数之和pos与负数之和neg。
6.在窗体上画一个名为Command1命令按钮,编写程序
PrivateSubCommand1_Click()
DimiAsInteger:
Sum=0:
n=InputBox("Enteranumber"):
n=Val(n)
Fori=1Ton
Sum=【7】
Nexti
PrintSum
EndSub
Functionfun(tAsInteger)AsLong
p=1
Fori=1Tot
p=p*i
Nexti
【8】
EndFunction
以上程序功能是,计算1!
+2!
+3!
+…+n!
其中n从键盘输入。
7.在窗体上画一个名为Text1文本框,编写程序
PrivateSubForm_Load()
Open"d:
\temp\dat.txt"ForOutputAs#1
Text1.Text=""
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
IfUCase(Text1.Text)=【9】ThenClose#1:
End
ElseWrite#1,【10】:
Text1.Text=""
EndIf
EndIf
EndSub
以上程序功能是在d盘temp文件夹下建立一个名为dat.txt文件,在文本框中输入字符,每次按回车键都把当前文本框中内容写入文件dat.txt,并清除文本框中的内容;如果输入"END",则不写入文件,直接结束程序。
2009年4月全国计算机等级考试二级VB语言
一、选择题
1.执行语句 Dim X, YAs Integer 后()
A)X 和Y 均被定义为整型变量B)X被定义为整型变量,Y被定义为变体类型变量
C)X和Y均被定义为变体类型变量D)X被定义为变体类型变量,Y被定义为整型变量
2.以下关系表达式中值为True的是()
A)"XYZ">"XYz"B)"the"="there"C)"Integer"<"Int"D)"VisualBasic"<>"visualbasic"
3.执行a$="Visual Basic Programming":
b$="C++":
c$=Ucase(left$(a$,7))&b$& Right$(a$,12)后
变量c$ 的值为()
A)Visual BASIC Programming B)VISUALC++ Programming
C)Visual C++ Programming D)VISUAL BASIC Programming
4.下列叙述中正确的是()
A)MsgBox语句返回值是一个整数
B)执行Msgbox语句并出现信息框后,不用关闭信息框即可执行其他操作
C)MsgBox语句第一个参数不能省略
D)如果省略MsgBox语句的第三个参数(Title),则信息框标题为空
5.在窗体上画一个名为Text1文本框和一个名为Label1标签,程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符个数,以下可实现上述操作的事件过程是()
A)Private Sub Text1_Change()B)Private Sub Text1_Click()
Label1.Caption=Str(Len(Text1.Text))Label1.Caption=Str(Len(Text1.Text))
End SubEnd Sub
C)Private Sub Text1_Change()D)Private Sub Label1_Change()
Label1.Caption=Text1.TextLabel1.Caption=Str(Len(Text1.Text))
End SubEnd Sub
6.在窗体上画两个单选按钮(名称分别为Option1,Option2,标题分别为"宋体"和"黑体"),1个复选框(名称为Check1,标题为"粗体")和1个文本框(名称为Text1,Text属性为"改变文字字体"),程序运行后,要求"宋体"单选按钮和"粗体"复选框被选中,则以下能够实现上述操作语句序列是()
A)Option1.Value=FalseB)Option1.Value=True
Check1.Value=True Check1.Value=0
C)Option1.Value=TrueD)Option1.Value=True
Check1.Value=2Check1.Value=1
7.在窗体上画一个名为Command1命令按钮,编写事件过程,程序运行后,单击命令按钮,要求在窗体上显示如右内容,则在下划线处应填入内容为()
Private Sub Command1_Click()1
c=1234:
c1=Trim(Str(c))12
For i=1 To 4123
Print____1234
Next
End Sub
A)Right(c1,i) B)Left(c1,i) C)Mid(c1,i,1) D)Mid(c1,i,i)
8.假定有以下程序段,则语句 Print i*j 执行次数是()
For i=1 To 3
For j=5 To 1Step -1
Print i*j
Next j
Next i
A)15 B)16 C)17 D)18
9.在窗体上画两个文本框(名称分别为Text1和Text2)和一个名为Command1命令按钮,编写程序
Private Sub Command1_Click()
x=0
Do While x<50
x=(x+2)*(x+3):
n=n+1
Loop
Text1.Text=Str(n):
Text2.Text=Str(x)
End Sub
程序运行后,单击命令按钮,两个文本框显示内容分别为()
A)1和0 B)2和72 C)3和50 D)4和168
10.以下程序运行后,单击窗体,输出结果是()
Private Sub Command1_Click()
a=0
For j=1 To 15
a=a+j Mod 3
Next j
Print a
End Sub
A)105 B)1 C)120 D)15
11.以下说法中正确的是()
A)当焦点在某个控件上时,按一个字母键,就会执行该控件Keypress事件过程
B)因为窗体不接受焦点,所以窗体不存在自己Keypress事件过程
C)若按键相同,Keypress事件过程中Keyascii参数与keydown事件过程中Keycode参数值也相同
D)在Keypress事件过程中,Keyascii参数可以省略
12.语句Dim a(-3 To 4,3 To 6)As I