vb控制结构综合练习.docx
《vb控制结构综合练习.docx》由会员分享,可在线阅读,更多相关《vb控制结构综合练习.docx(25页珍藏版)》请在冰点文库上搜索。
vb控制结构综合练习
控制结构
一、选择题
1.VB的3种结构化程序设计的3种基本结构是________。
A)选择结构、过程结构、顺序结构
B)递归结构、选择结构、顺序结构
C)过程结构、转向结构、递归结构
D)选择结构、顺序结构、循环结构
2.用If语句表示分段函数
,以下________表示方法不正确。
A)f=x^3+1
Ifx>=1Thenf=s^3-1
B)Ifx>=1Thenf=x^3-1
Ifx<1Thenf=x^3+1
C)Ifx>=1Thenf=x^3-1
f=x^3+1
D)Ifx<1Thenf=x^3+1Else
F=x^3-1
3.执行下面的程序段后显示结果是________。
PrivateSubForm_Click()
Dimm
IfmThenPrintmElsePrintm+1
EndSub
A)0B)1C)””D)False
4.设a=6,则执行x=IIf(a>5,-1,0)后,x的值为________。
A)5B)6C)0D)–1
5.下面程序段的运行结果是________。
cj=85
Ifcj>90Thendj="A"
Ifcj>80Thendj="B"
Ifcj>70Thendj="C"
Ifcj>60Thendj="D"
Ifcj<60Thendj="E"
Print"dj=";dj
A)dj=BB)dj=CC)dj=DD)dj=E
6.下列语句正确的是________。
A)IfK<3*NAndk>NThenN=k^3
B)IfK<3*NAndk>NThenN=k3
C)IfK<3*N:
k>NThenN=k^3
D)IfK<3*NAndk>NThenN=k**3
7.设X=2.0,y=8.0,z=6.0,L=True,则下列VisualBasic表达式中值为True的是________。
A)X+Z>YANDL
B)NOT(YNOTL
C)NOTLOR(L=Y+X=Z)
D)Y+X>=Z+XAND(LANDFALSE)
8.要判断”月收入在2000元以上(含2000元)且5000元以下(不含5000元)”的职工,应使用的逻辑表达式是________。
A)M>=2000ANDM<=5000
B)M>=2000ORM<=5000
C)M>=2000ANDM<5000
D)M>=2000ORM<5000
9.下列程序段的执行结果为________。
x=Int((69-60)*Rnd+60)
SelectCasex
CaseIs>90
Print"优秀"
Case80To89
Print"良好"
Case60To79
Print"合格"
CaseElse
Print"不合格"
EndSelect
A)优秀B)良好C)合格D)不合格
10.在窗体上画一个命令按钮,名称为Command1。
然后编写如下程序:
运行结果________。
PrivateSubCommand1_Click()
ForI=1To4
ForJ=0ToI
PrintChr(65+I);
NextJ
Print
NextI
EndSub
单击命令按钮后,运行结果________。
A)BBB)A
CCCBB
DDDDCCC
EEEEEDDDD
C)BD)AA
CCBBB
DDDCCCC
EEEEDDDDD
11.在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
DimiAsInteger,nAsInteger
Fori=0To50
i=i+3
n=n+1
Ifi>10ThenExitFor
Next
Text1.Text=Str(n)
EndSub
程序运行后,单击命令按钮,在文本框中显示的值是________。
A)2B)3C)4D)5
12.在窗体上画一个命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
Fori=1To4
x=4
Forj=1To3
x=3
Fork=1To2
x=x+6
Nextk
Nextj
Nexti
Printx
EndSub
程序运行后,单击命令按钮,输出结果是________。
A)7B)15C)157D)538
13.阅读下面的程序段:
Fori=1To3
Forj=1Toi
Fork=jTo3
a=a+1
Nextk
Nextj
Nexti
执行上面的三重循环后,a的值为________。
A)3B)9C)14D)21
14.在窗体上画一个文本框(其Name属性为Text1),然后编写如下事件过程:
PrivateSubForm_Load()
Text1.Text=""
Text1.SetFocus
Fori=1To10
Sum=Sum+i
Nexti
Text1.Text=Sum
EndSub
上述程序的运行结果是________。
A)在文本框Text1中输出55
B)在文本框Text1中输出0
C)出错
D)在文本框Text1中输出不定值
15.有如下程序:
a=10
b=4
Forj=1To20Step-2
a=a+5
b=b+4
Nextj
Printa;b
运行后,输出的结果是________。
A)104B)6024C)11044D)5540
16.有如下程序:
d$=""
a$="abcde"
Fori=Len(a)To1Step-1
d=d+Mid(a,i,1)
Nexti
Printd$
运行后,输出的结果是________。
A)abcdeB)edcbaC)acebdD)ecadb
17.在Command1_Click事件程序的功能是:
按顺序读入10名学生4门课程的成绩。
计算出每位学生的平均分并输出,程序如下:
DimnAsInteger,kAsInteger
DimscoreAsSingle,sunAsSingle,aveAsSingle
sum=0#
Forn=1To10
Fork=1To4
score=InputBox("请输入一门课的成绩")
sum=sum+score
Nextk
ave=sum/4
print"第";n;"个人的平均成绩为:
";ave
Nextn
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是________。
A)sum=0#B)sum=sum+score
C)ave=sum/4D)print"第";n;"人的均分:
";ave
18.下列程序的输出结果是________。
DimyAsInteger
y=10
Whiley<>0
y=y-1
Wend
Print"y=";y
A)y=0B)y=1C)y=随机值D)y=-1
19.以下程序的输出结果是________。
DimmAsInteger
m=1
Whilem<=3
m=m+1
Printm;
Wend
A)2B)23C)234D)2345
20.下面的程序运行结果是________。
PrivateSubForm_Click()
m=0
DoUntil0
m=m+1
Ifm>10ThenExitDo
Loop
Printm
EndSub
A)0B)10C)11D)出错
21.下面程序运行语句Printm执行的次数是________。
PrivateSubForm_Click()
DimmAsInteger,nAsInteger
m=0
Do
m=m+1
Forn=10To1Step-3
m=m+n
Printm
Nextn
LoopWhilem<50
EndSub
A)4B)8C)12D)16
22.在窗体上画两个名称分别为Text1、Text2的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
DimxAsInteger,nAsInteger
x=1
n=0
DoWhilex<20
x=x*3
n=n+1
Loop
Text1.Text=Str(x)
Text2.Text=Str(n)
EndSub
程序运行后,单击命令按钮,在两个文本框中显示的值分别是________。
A)15和1B)27和3C)195和3D)600和4
23.在窗体上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(其Name属性为Command1),然后编写如下事件过程:
PrivateSubCommand1_Click()
x=0
DoWhilex<50
x=(x+2)*(x+3)
n=n+1
Loop
Text1.Text=Str(n)
Text2.Text=Str(x)
EndSub
程序运行后,单击命令按钮,在两个文本框中显示的值分别为________。
A)1和0B)2和72C)3和50D)4和168
24.在窗体上画一个命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
x=0
DoUntilx=-1
a=InputBox("请输入A的值")
a=Val(a)
b=InputBox("请输入B的值")
b=Val(b)
x=InputBox("请输入x的值")
x=Val(x)
a=a+b+x
Loop
Printa
EndSub
程序运行后,单击命令按钮,依次在输入对话框中输入5、4、3、2、1、-1,则输出结果为________。
A)2B)3C)14D)15
二、填空题
1.执行下面的程序,当输入的值为5时输出为________。
PrivateSubForm_Click()
DimxAsSingle
x=InputBox("X")
Ifx<0Then'
y=1:
Printy
ElseIfx>=0Then
y=2:
Printy
ElseIfx>=1Then
y=3:
Printy
Else
y=4:
printy
EndIf
EndSub
2.下面的程序将从InputBox输入对话框得到的3个数按从大到小输出。
阅读程序并填空。
如果程序运行时分别输入12.3、35.8和25.7三个数,则输出为________。
PrivateSubForm_Click()
DimaAsInteger,bAsInteger,cAsInteger
a=InputBox("输入一个数")
b=InputBox("输入一个数")
c=InputBox("输入一个数")
Ifb>aThen
d=a:
a=b:
b=d
EndIf
Ifc>aThen
d=a:
a=c:
c=d
EndIf
Ifc>bThen
EndIf
Printa;b;c
EndSub
3.下列程序运行时,单击窗体,执行结果为______________________________。
说明:
在窗体上有一个Label控件,名为lblDate。
DimYAsInteger,DAsInteger,W1AsInteger
DimRqAsDate
DimW2AsString
PrivateSubForm_Click()
Rq=Date
Y=Year(Rq):
m=Month(Rq):
d=Day(Rq)
W1=Weekday(x)
SelectCaseW1
Case1
W2="日"
Case2
W2="一"
Case3
W2="二"
Case4
W2="三"
Case5
W2="四"
Case6
W2="五"
Case7
W2="六"
EndSelect
lbldate.Caption="今天是"&Y&"年"&M&"月"&D&"日"&W2
EndSub
4.执行下面的程序段后,s的值为____________。
a=5
Fori=2.6To4.9Step0.6
s=s+1
Nexti
5.下面是一个体操评分程序。
20位评委,除去一个最高分和一个最低分,计算平均分(设满分为10分)。
Max=0
Min=10
Fori=1To20
n=Val(InputBox"请输入分数")
If______________ThenMax=n
If______________ThenMin=n
s=s+n
Nexti
s=______________
p=s/18
Print"最高分";Max,"最低分";Min
Print"最后得分:
";p
6.下面程序的功能是求1到100的平方和,如果平方和超过了1000则跳出循环,输出此时的和S。
ForI=1To100
s=s+i*i
Ifs>1000Then
______________
EndIf
nexti
abc:
Prints
7.以下程序段的输出结果是____________。
num=0
Whilenum<=2
num=num+1
Printnum
Wend
8.以下程序段的输出结果是____________。
DimjAsInteger,sAsInteger
Do
s=s+j
j=j+1
LoopUntilj=5
Print"s=";s
9.以下程序段,程序运行后,要求执行4次循环。
x=1
Do
x=x+1
print15
loopUntil___________
10.下列程序运行后,内层循环的循环总次数___________。
Forx=1to4
Fory=1tox
Printy
Nexty
Nextx
四、程序阅读题
1.写出下面程序的运行结果。
PrivateSubForm_Click()
DimsAsInteger,kAsInteger,mAsInteger,nAsInteger
s=1
Form=1To3
Forn=mTo3
Fork=nTomStep-1
s=s*k
Nextk,n,m
Prints
EndSub
2.写出下面程序的运行结果。
PrivateSubForm_Click()
Fori=3To1Step-1
PrintSpc(10-i);
Forj=1To2*i-1
Print"*";
Nextj
Print
Nexti
EndSub
3.写出下面程序的运行结果。
PrivateSubForm_Click()
Fori=1To4
x=4
Forj=1To3
x=3
Fork=1To2
x=x+6
Nextk
Nextj
Nexti
printx
EndSub
4.写出下面程序的运行结果。
PrivateSubForm_Click()
m=0
Do
m=m+1
Ifm>10ThenExitDo
LoopUntilm<10
Printm
EndSub
5.写出下面程序的运行结果。
PrivateSubForm_Click()
DimmAsInteger,nAsInteger
m=10
Do
m=m+n
Forn=10Tomstep-1
m=m+n
Nextn
LoopWhilem<50
Printm;n
EndSub
6.写出下面程序的运行结果。
PrivateSubForm_Click()
DimmAsInteger,nAsInteger,kAsInteger
m=1:
n=a:
k=5
DoWhilem<=k*n
m=m*n
n=n+1
Printm;n
Loop
Printm;n
EndSub
7.写出下面程序的运行结果。
DimiAsInteger,aAsInteger
DoWhilei<20
DoWhileTrue
IfiMod10=0Then
ExitDo
Else
i=i-1
EndIf
Loop
i=i+11:
a=a+i
Loop
Printa
五、程序填空题
1.下面的程序段是检查输入的文字段中大括号是否配对,并显示相应的结果。
本程序在文本框中边输入,边统计大括号的个数,以输入回车符作为输入结束标志,然后显示结果。
Dimcount1%,strAsString
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
str=
Ifstr="{"Then
count1=count1+1
ElseIfstr="}"Then
EndIf
IfKeyAscii=13Then
IfThen
Print"左右大括号配对"
ElseIfThen
Print"左大括号多";count1;"个"
Else
Print"右大括号多";-count1;"个"
EndIf
EndIf
EndSub
2.阅读下面分段函数及其程序,请填空:
DimxAsSingle,yAsSingle
x=inputBox("请输入x")
If(x<-10)Then
y=0#
ElseIf(x<0)Then
y=2*x+20
ElseIf()Then
y=20
ElseIf(x<40)Then
ElseIf(x<50)Then
y=50-x
y=0
EndIf
Print"X=";x;"Y=";y
3.随机产生0~100的整数作为某门功课的分数,按0~59、60~69、70~89、90~100划分为不及格、及格、良好、优秀4个层次,阅读程序并填空。
PrivateSubForm_Click()
Dimm
m=Int(101*Rnd)
Printm
Printm
SelectCasem
Case(此空不能超过5个字符)
Print"不及格"
Case6
Print"良好"
Case7,8
Print"良好"
CaseElse
Print"优秀"
EndSelect
EndSub
4.下面的程序输入X的值,按以下公式求Y值。
PrivateSubCommand1_Click()
X=Val(Text1.Text)
SelectCaseX
Case
Print"X<-100ORX>200"
Case
Y=100-X
Case
Y=100+X
Case
Y=400
EndSelect
Text2.Text=Y
EndSub
5.以下程序是利用公式
来计算
的值。
其中,变量k表示当前符号项,t表示当前项,n表示当前项的序号,要求精度控制在0.00001内。
试分析程序,完成空格处填的内容。
DimpiAsSingle,tAsSingle
DimnAsSingle,kAsSingle
pi=0:
n=1
k=1:
t=1
DoWhile()
pi=pi+t
k=-k
t=
n=n+1
Loop
pi=
Print"pi=";pi
6.下列程序的功能是输出的前20项,按每行5个数的形式输出。
Fibonacci数列:
F1=1,F2=1,Fn=Fn-1+Fn-2(n>=2)
DimaAsInteger,bAsInteger
DimcAsInteger,iAsInteger
a=1:
b=1:
i=3
Printa,b,
DoWhile(i<=20)
c=a+b
a=b
b=c
IfThen
Print
EndIf
Loop
7.以下程序用于计算N=1+(1+3)+(1+3+5)…(1+3+..+39)
PrivateSubCommand1_Click()
T=0:
M=1:
Sum=0
Do
T=T+
Sum=Sum+
M=M+2
LoopWhile
Print“Sum=";Sum
EndSub
8.36块砖,36人搬,男搬4,女搬3,2个小儿抬1砖,要求1次全搬完,问需男、女、小儿各多少人?
ForMale=1To9
ForFemale=1To12
ForBoy=2To36Step2
IfBoy+Female+Male=36_
And