2.下列语句正确的是【】。
(A)IfA≥BThenT=AA=BB=T(B)IfA≥BThenT=A;A=B;B=T
(C)IfA>=BThenT=AA=BB=T(D)IfA>=BThenT=A:
A=B:
B=T
3.下列语句正确的是【】。
(A)IfX<3*YAndX>YThenY=X^3(B)IfX<3*YAndX>YThenY=X3
(C)IfX<3*Y:
X>YThenY=X^3(D)IfX<3*YAndX>YThenY=X**3
4.关于语句Ifx=lTheny=1,下列说法正确的是【】。
(A)x=1和y=1均为赋值语句(B)x=1和y=1均为关系表达式
(C)x=1为关系表达式,y=1为赋值语句(D)x=1为赋值语句,y=1为关系表达式
5.执行以下语句后显示结果为【】。
DimxAsInteger
IfxThenPrintxElsePrintx-1
(A)1(B)O(C)一1(D)不确定
6.如果X的值小于或等于Y的平方,则打印"OK",表示这个条件的单行格式If语句是【】。
(A)Ifx<=y2ThenPrint"OK"(B)Ifx<=y^2Print"OK"
(C)Ifx<=y^2Then"OK"(D)Ifx<=y^2ThenPrint"OK"
7.如果A为整数且|A|=100,则打印"OK",否则打印"Error",表示这个条件的单行格式If语句是【】。
(A)IfInt(A)=AAndSqr(A)>=1OThenPrint"OK"ElsePrint"Error"
(B)IfFix(A)=AAndAbs(A)>=100ThenPrint"OK"ElsePrint"Error"
(C)IfInt(A)=AAnd(A>=100,A<=-100)ThenPrint"OK"ElsePrint"Error"
(D)IfFix(A)=AAndA>=100AndA<=-100ThenPrint"OK"ElsePrint"Error"
8.下列程序段【】能够正确实现条件:
如果X(A)IfXPrintA
A=-15A=-15
PrintAPrintA
(C)IfXA=15:
PrintAElseA=-15
ElsePrintA
A=-15:
PrintAEndIf
EndIf
9.能够实现以下分段函数的程序段是【】。
(多选)
f(x)=1+XX≥O
1-XX(A)IfX>=OThenY=1+X(B)IfX≥OThenY=1+X
Y=1-XElseY=1-X
EndIf
(C)IfX>=OThenY=1+X(D)IfXIfXElse:
Y=1+X
EndIf
10.下列【】程序段不能实现以下分段函数。
(多选)
f(x)=sqr(x+1)x≥1
x2+3x<1
(A)x=Val(B)x=Val
f=x*x+3Ifx>=1Thenf=Sqr(x+1)
Ifx>=1Thenf=Sqr(x+1)Ifx<1Thenf=x*x+3
PrintfPrintf
(C)x=Val(D)x=Val
Ifx<1ThenIfx>=1Thenf=Sqr(X+1)
f(x)=x*x*+3f=x*x*+3
ElsePrintf
F(x)=Sqr(X+1)
EndIf
Printf
11.计算分段函数:
0x<0
10≤x<1
f(x)=21≤x<2
3x≥2
下面程序段中正确的是【】。
(A)Ifx<0Theny=0(B)Ifx>=2Theny=3
Ifx<1Theny=1Ifx>=1Theny=2
Ifx<2Theny=2Ifx>=0Theny=1
Ifx>=2Theny=3Ifx<0Theny=0
(C)Ifx<0Then(D)Ifx>=2Then
y=0y=3
ElseIfx>=0ThenElseIfx>=1Then
y=1y=2
ElseIfx>=1ThenElseIfx>=0Then
y=2y=1
ElseElse
y=2y=0
EndIfEndIf
12.计算分段函数:
0x<0
10≤x<1
f(x)=21≤x<2
3x≥2
下面程序段中正确的是【】。
(A)SelectCasex(B)SelectCasex
Casexy=0y=0
Casex>=OAndx<1Casex<1
y=1y=1
Casex>=1Andx<2Casex<2
y=2y=2
CaseElseCaseElse
y=3y=3
EndSelectEndSelect
(C)SelectCasex(D)SelectCasex
CaseIsy=0y=0
CaseIs<1CaseIs>=0,Is<1
y=1y=1
CaseIs<2CaseIs>=1,Is<2
y=2y=2
CaseElseCaseIs>=2
y=3y=3
EndSelectEndSelect
二、判断程序或程序段的执行结果
1.下列程序段的执行结果为【】。
X=2
Y=1
IfX*Y<1ThenY=Y-1ElseY=-1
PrintY-X>O
(A)True(B)False(C)-1(D)1
2.下列程序段的执行结果为【】。
J1=10
J2=30
IfJ1PrintJ1
(A)10(B)30(C)1030(D)3010
3.下列程序段的执行结果为【】。
X=5
Y=-20
IfNotX>OThenX=Y-3ElseY=X+3
PrintX-Y;Y-X
(A)-33(B)5-8(C)3–3(D)25-25
4.下列程序段的执行结果为【】。
A="1"
B="2"
A=Val(A)+Val(B)
B=Val("12")
IfA<>BThenPrintA-BElsePrintB-A
(A)-9(B)9(C)12-12(D)0
5.下列程序段的执行结果为【】。
A=75
IfA>6OThenI=1
IfA>70ThenI=2
IfA>80ThenI=3
IfA>90ThenI=4
Print"I=";I
(A)I=1(B)I=2(C)I=3(D)I=4
6.下列程序段的执行结果为【】。
A="abed"
B="bcde"
E=Right(A,3)
F=Mid(B,2,3)
IfE(A)cdebcd(B)cdd(C)cdcd(D)bcdcde
7.下列程序段的执行结果为【】。
A=75
IfA>60Then
I=1
ElseIfA>70Then
I=2
ElseIfA>80Then
I=3
ElseIfA>9Othen
I=4
EndIf
Print"I=";I
(A)I=1(B)I=2(C)I=3(D)I=4
8.下列程序段的执行结果为【】
A=1:
B=O
SelectCaseA
Case1
SelectCaseB
CaseO
Print"**O**"
Casel
Print"**1**"
EndSelect
Case2
Print"**2**"
EndSelect
(A)**O**(B)**1**(C)**2**(D)O
9.下列程序段的执行结果为【】。
x=Int(Rnd+4)
SelectCasex
Case5
Print"优秀"
Case4
Print"良好"
Case3
Print"通过"
CaseElse
Print"不通过"
EndSelect
(A)优秀(B)良好(C)通过(D)不通过
三、程序填空
1.以下程序用于判断输入的年份是否是闰年。
如果年份能被4整除但不能被100整除,或者年份能被400整除,则该年为闰年;否则不是闰年。
PrivateSubCommand1_Click()
y=InputBox("请输入年份")
If
(1)Then
Printy&"年为闰年"
Else
Printy&"年不是闰年"L
EndIf
EndSub
2.下面的程序用于求三个数中的最大数、最小数。
PrivateSubCommand1_Click()
a=Val(InputBox("请输入第一个数"))
b=Val(InputBox("请输入第二个数"))
C=Val(InputBox("请输入第三个数"))
Max=a
Min=a
Ifb>
(1)ThenMax=b
Ifb<
(2)ThenMin=b
If(3)ThenMax=c
If(4)ThenMin=c
Print"最大数为";Max
Print"最小数为";Min
EndSub
3.以下程序判断从文本框Text1中输入的数据,如果该数据满足条件:
除以3余2,除以5余3,除以7余4,则输出;否则将焦点定位在文本框Text1中,选中其中的确文本。
PrivateSubCommand1_Click()
x=Val
If
(1)Then
Printx
Else
(2)
(3)
(4)
EndIf
EndSub
4.下面的程序用于根据文本框A中输入的内容进行以下处理:
当A<时,打印"A<";当A=时,打印"A=";当A>时,打印"A>"。
PrivateSubCommand1_Click()
If
(1)Then
Print"A<"
(2)Val=Then
Print"A="
Else
Print"A>"
(3)
EndSub
5.下面的程序用于根据文本框X中输入的内容进行以下处理:
若X为2、4、6,则打印"X的值为2、4、6";若X为3、5,则打印"X的值为3、5";若X为7、8,则打印"X的值为7、8";否则,打印"X不在范围内"。
PrivateSubCommand1_click()
SelectCaseVal
Case
(1)
Print"X的值为2、4、6"
Case
(2)
Print"X的值为3、5"
Case(3)
Print"X的值为7、8"
(4)
Print"X不在范围内"
EndSelect
EndSub
6.下面程序用来计算:
A+B(A>5)
N=B/A(A=5)
0(A<5)
PrivateSubCommand1_C1ick()
A=Val
B=val
SelectCaseA
Case
(1)
N=A+B
Case
(2)
N=B/A
Case(3)
N=O
EndSelect
=N
EndSub
第六章循环结构程序设计
一、判断程序或程序段的执行结果
1.下列程序段的执行结果为【】。
I=0
ForG=10To19Step3
I=I+1
NextG
PrintI
(A)4(B)5(C)3(D)6
2.下列程序段的执行结果为【】。
X=0
ForK=1To10Step2
X=X+K
NextK
PrintK;X
(A)-16(B)-116(C)16(D)1131
3.下列程序段的执行结果为【】。
K=0
ForI=1To3
A=I^I^K
PrintA
NextI
(A)111(B)149(C)000(D)123
4.下列程序段的执行结果为【】。
N=10
ForK=NTo1Step-1
X=Sqr(K)
X=X-2
NextK
PrintX-2
(A)-3(B)-1(C)1(D)1.
5.下列程序段的执行结果为【】。
X=1
Y=1
ForI=1To3
F=X+Y
X=Y
Y=F
PrintF
NextI
(A)236(B)222(C)234(D)235
6.下列程序段的执行结果为【】。
A="ABBACDDCBA"
ForI=6To2Step-2
X=Mid(A,I,I)
Y=Left(A,I)
Z=Right(A,I)
Z=X&Y&Z
NextI
PrintZ
(A)ABA(B)AABAAB(C)BBABBA(D)ABBABA
7.给出下面程序段的输出结果【】。
ForX=To5Step
PrintX
NextX
8.给出下面程序段的输出结果【】。
ForI=-5To–LoStep-1
X=X+I
PrintX
NextI
9.给出下面程序段的输出结果【】。
Z="ABCDEFGABCDEFG"
ForI=6To2Step-3
U=String(I,Z)
V=Left(Z,I)
W=Mid(Z,I,I)
X=Right(Z,I)
Y=X+W+V+U
NextI
PrintU,V,W,X,Y
10.给出下面程序段的输出结果【】。
ForI=OTo3
PrintTab(4*I+1);I;"2"&I
NextI
11.给出下面程序段的输出结果【】。
其中,Trim函数用于去除字符串前后的空格。
ForI=1To7
PrintTab(8-I);String(I,Trim(Str(I)))
NextI
12.下列程序段的执行结果为【】。
A=0:
B=1
Do
A=A+B
B=B+1
LoopWhileA<10
PrintA;B
(A)105(B)AB(C)01(D)1030
13.下列程序段的执行结果为【】。
I=4
A=5
Do
I=I+1
A=A+2
LoopUntilI>=7
Print"I=";I
Print"A=";A
(A)I=4(B)I=7(C)I=8(D)I=7
A=5A=13A=7A=11
14.下列程序段的执行结果为【】。
N=O
J=1
DoUntilN>2
N=N+1
J=J+N*(N+1)
Loop
PrintN;J
(A)01(B)37(C)321(D)313
15.给出下面程序段的输出结果【】。
P=O
S=0
Do
P=P+2
S=S+P
LoopWhileP<11
Print"S=";S
16.给出下面程序段的输出结果【】。
M1=1
M2=1
DoWhileM2<>6
M1=M1*M2
M2=M2+1
Loop
Print"M1=";M1,"M2=";M2
17.下列程序段的执行结果为【】。
N=0
ForI=1To3
ForJ=5To1Step-1
N=N+1
NextJ
NextI
PrintN;J;I
(A)1204(B)1504(C)1231(D)1531
18.下列程序段的执行结果为【】。
A=0
B=0
ForI=-1To–2Step-1
ForJ=1To2
B=B+1
NextJ
A=A+1
NextI
PrintA;B
(A)24(B)-22(C)42(D)23
19.下列程序段的执行结果为【】。
K=0
ForJ=1To2
ForI=1To3
K=I+1
NextI
ForI=1To7
K=I+1
NextI
NextJ
PrintK
(A)10(B)6(C)11(D)16
20.下列程序段的执行结果为【】。
ForX=5To1Step-1
ForY=1To6-X
PrintTab(Y+5);"*";
Nexty
Print
NextX
(A)*****(B)*****(C)*(D)*
*************
**************
***************
****************
21.下列程序段的执行结果为【】。
S=0:
T=0:
U=O
ForX=1To3
ForY=1ToX
ForZ=YT03
S=S+1
NextZ
T=T+1
NextY
U=U+1
NextX
PrintS;T;U
(A)3614(B)1463(C)1436(D)1643
22.给出下面程序段的输出结果【】。
Fora=1To6
PrintTab(7-a);
Forb=1To2*a-1
Print"*";
Nextb
Nexta
23.给出下面程序段的输出结果【】。
N=1
Do
Fork=NTo5
Print"*";
Nextk
Print
N=N+1
LoopUntilN>5
24.给出下面程序段的输出结果【】。
ForA=OTo1
ForB=1To2
ForC=2To3
Print(A=OOrB=1)And(C=2AndA=B)OrNot(C=3);
NextC
NextB
NextA
25.给出下面程序段的输出结果【】。
DimiAsInteger,jAsInteger,kAsInteger
k=0
Fori=OTo10Step3
Forj=1To10
Ifj>5Thenk=k+4:
ExitFor
k=k+1
Nextj
PrintI,k
Ifi>8ThenExitFor
Nexti
Printi,k
二、程序填空
1.以下程序用来产生20个(0,99)之间的随机整数,并将其中的偶数打印出来。
PrivateSubCommand1_Click()
Randomize
ForI=1To20
X=Int(Rnd*
(1))
IfX/2=
(2)ThenPrintX
NextI
EndSu
b
2.以下程序用来计算由键盘输入的N个数中正数之和,负数之和,正数的个数,负数的个数。
其中用C累加负数之和,IC累加负数的个数,D累加正数之和,ID累明加正数的个数。
PrivateSubCommand1_Click()
N=lO
C=0:
IC=0:
D=0:
ID=O
Fork=IToN
A=Val(InputBox("请输入A"))
IfA(1):
(2)
IfA>OThenD=(3):
(4)
Nextk
Print"负数的个数为:
",IC
Print"负数的和为:
",C
Print"正数的个数为:
",ID
Print"正数的和为:
",D
EndSub
3.下面是一个体操评分程序。
20位评委,除去一个最高分和一个最低分,计算平均分(设满分为100分)。
PrivateSubCommand1_Click()
Max=0
Min=10
ForI=1To20
N=Val(InputBox("请输入分数"))
If
(1)ThenMax=N
If
(2)ThenMin=N
S=S+N
NextI
S=(3)
P=S/18
Print"最高分";Max,"最低分";Min
Print"最后得分:
";P
EndSub
4.搬砖问题:
36块砖,36人搬,男的搬4块,女的搬3块,2个小儿抬1块,要求1次全部搬完,问需男、女、小儿各多少人。
PrivateSubCommand1_click()
ForMale=1To9
ForFemale=1To12
ForBoy=2To36Step2
IfBoy+Female+Male=36And
(1)Then
PrintMale,Female,Boy
EndIf
NextBoy
NextFemale
NextMale
EndSub
5.以下程序用于计算N=1+(1+3)+(1+3+5)+…+(1+3+5+…+39)。
PrivateSubCommand1_Click()
T=O
M=1
Sum=0
Do
T=T+
(1)
Sum=Sum+
(2)
M=M+2
LoopWhile(3)
Print"Sum=";Sum
EndSub
6.以下程序用于计算