资源描述
第5章 选择结构程序设计
-、选择题
1. 下列语句正确的是【 】。(多选)
(A)If X≠Y Then Print "X不等于Y" (B)If X<>Y Then Print "X不等于Y"
(C)If X><Y Then Print "X不等于Y" (D)If X=Y Print "X不等于Y"
2. 下列语句正确的是【 】。
(A)If A≥B Then T=A A=B B=T (B)If A≥B Then T=A;A=B;B=T
(C)If A>=B Then T=A A=B B=T (D)If A>=B Then T=A:A=B:B=T
3. 下列语句正确的是【 】。
(A)If X<3*Y And X>Y Then Y=X^3 (B)If X<3*Y And X>Y Then Y=X3
(C)If X<3*Y:X>Y Then Y=X^3 (D)If X<3*Y And X>Y Then Y=X**3
4. 关于语句If x=l Then y=1,下列说法正确的是【 】。
(A)x=1和y=1均为赋值语句 (B)x=1和y=1均为关系表达式
(C)x=1为关系表达式,y=1为赋值语句 (D)x=1为赋值语句,y=1为关系表达式
5. 执行以下语句后显示结果为【 】。
Dim x As Integer
If x Then Print x Else Print x-1
(A)1 (B)O (C)一1 (D)不确定
6. 如果X的值小于或等于Y的平方,则打印"OK",表示这个条件的单行格式If语句是【 】。
(A)If x<=y2 Then Print "OK" (B)If x<=y^2 Print "OK"
(C)If x<=y^2 Then "OK" (D)If x<=y^2 Then Print "OK"
7. 如果A为整数且|A|=100,则打印"OK",否则打印"Error",表示这个条件的单行格式If语句是【 】。
(A)If Int(A)=A And Sqr(A)>=1O Then Print "OK" Else Print "Error"
(B)If Fix(A)=A And Abs(A)>=100 Then Print "OK" Else Print "Error"
(C)If Int(A)=A And (A>=100,A<=-100) Then Print "OK" Else Print "Error"
(D)If Fix(A)=A And A>=100 And A<=-100 Then Print "OK" Else Print "Error"
8. 下列程序段【 】能够正确实现条件:如果X<Y, 则A=15,否则A=-15。
(A)If X<Y Then A=15 (B)If X<Y Then A=15:Print A
A=-15 A=-15
Print A Print A
(C)If X<Y Then (D)If X<Y Then A=15
A=15:Print A Else A=-15
Else Print A
A=-15:Print A End If
End If
9. 能够实现以下分段函数的程序段是【 】。(多选)
f(x)= 1+X X≥O
1-X X<O
(A) If X>=O Then Y=1+X (B) If X≥O Then Y=1+X
Y=1-X Else Y=1-X
End If
(C) If X>=O Then Y=1+X (D) If X<O Then Y=1-X
If X<O Then Y=1-X Y=1-X
Else: Y=1+X
End If
10. 下列【 】程序段不能实现以下分段函数。(多选)
f(x)= sqr(x+1) x≥1
x2+3 x<1
(A) x=Val(Text1.Text) (B) x=Val(Text1.Text)
f=x*x+3 If x>=1Then f=Sqr(x+1)
If x>=1 Then f=Sqr(x+1) If x<1 Then f=x*x+3
Print f Print f
(C) x=Val(Text1.Text) (D) x=Val(Text1.Text)
If x<1 Then If x>=1Then f=Sqr(X+1)
f(x)=x*x*+3 f=x*x*+3
Else Print f
F(x)=Sqr(X+1)
End If
Print f
11. 计算分段函数:
0 x<0
1 0≤x<1
f(x)= 2 1≤x<2
3 x≥2
下面程序段中正确的是【 】。
(A) If x<0 Then y=0 (B) If x>=2 Then y=3
If x<1 Then y=1 If x>=1 Then y=2
If x<2 Then y=2 If x>=0 Then y=1
If x>=2 Then y=3 If x<0 Then y=0
(C) If x<0 Then (D) If x>=2 Then
y=0 y=3
ElseIf x>=0 Then ElseIf x>=1 Then
y=1 y=2
ElseIf x>=1 Then ElseIf x>=0 Then
y=2 y=1
Else Else
y=2 y=0
End If End If
12. 计算分段函数:
0 x<0
1 0≤x<1
f(x)= 2 1≤x<2
3 x≥2
下面程序段中正确的是【 】。
(A) Select Case x (B) Select Case x
Case x<O Case x<O
y=0 y=0
Case x>=O And x<1 Case x<1
y=1 y=1
Case x>=1 And x<2 Case x<2
y=2 y=2
Case Else Case Else
y=3 y=3
End Select End Select
(C) Select Case x (D) Select Case x
Case Is <O Case Is<O
y=0 y=0
Case Is<1 Case Is>=0,Is<1
y=1 y=1
Case Is<2 Case Is>=1,Is<2
y=2 y=2
Case Else Case Is>=2
y=3 y=3
End Select End Select
二、判断程序或程序段的执行结果
1.下列程序段的执行结果为【 】。
X=2
Y=1
If X*Y<1 Then Y=Y-1 Else Y=-1
Print Y-X>O
(A)True (B)False (C)-1 (D)1
2.下列程序段的执行结果为【 】。
J1=10
J2=30
If J1<J2 Then Print J2;
Print J1
(A)10 (B)30 (C)10 30 (D)30 10
3.下列程序段的执行结果为【 】。
X=5
Y=-20
If Not X>O Then X=Y-3 Else Y=X+3
Print X-Y;Y-X
(A)-3 3 (B)5 -8 (C)3 –3 (D)25 -25
4.下列程序段的执行结果为【 】。
A="1"
B="2"
A=Val(A)+Val(B)
B=Val("12")
If A<>B Then Print A-B Else Print B-A
(A)-9 (B)9 (C)12-12 (D)0
5.下列程序段的执行结果为【 】。
A=75
If A>6O Then I=1
If A>70 Then I=2
If A>80 Then I=3
If A>90 Then I=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)
If E<F Then Print E+F Else Print F+E
(A)cdebcd (B)cdd (C)cdcd (D)bcdcde
7.下列程序段的执行结果为【 】。
A=75
If A>60 Then
I=1
ElseIf A>70 Then
I=2
ElseIf A>80 Then
I=3
ElseIf A>9Othen
I=4
EndIf
Print "I=";I
(A)I=1 (B)I=2 (C)I=3 (D)I=4
8.下列程序段的执行结果为【 】
A=1:B=O
Select Case A
Case 1
Select Case B
Case O
Print "**O**"
Case l
Print "**1**"
End Select
Case 2
Print "**2**"
End Select
(A)**O** (B)**1** (C)**2** (D)O
9.下列程序段的执行结果为【 】。
x=Int(Rnd+4)
Select Case x
Case 5
Print "优秀"
Case 4
Print "良好"
Case 3
Print "通过"
Case Else
Print "不通过"
End Select
(A)优秀 (B)良好 (C)通过 (D)不通过
三、程序填空
1. 以下程序用于判断输入的年份是否是闰年。如果年份能被4整除但不能被100整除,或者年份能被400整除,则该年为闰年;否则不是闰年。
Private Sub Command1_Click()
y=InputBox("请输入年份")
If (1) Then
Print y &"年为闰年"
Else
Print y &"年不是闰年"L
End If
End Sub
2. 下面的程序用于求三个数中的最大数、最小数。
Private Sub Command1_Click()
a=Val(InputBox("请输入第一个数"))
b=Val(InputBox("请输入第二个数"))
C=Val(InputBox("请输入第三个数"))
Max=a
Min =a
If b> (1) Then Max=b
If b< (2) Then Min=b
If (3) Then Max=c
If (4) Then Min=c
Print "最大数为";Max
Print "最小数为";Min
End Sub
3. 以下程序判断从文本框Text1中输入的数据,如果该数据满足条件:除以3余2,除以5余3,除以7余4, 则输出;否则将焦点定位在文本框Text1中,选中其中的确文本。
Private Sub Command1_Click()
x=Val(Text1.Text)
If (1) Then
Print x
Else
(2)
(3)
(4)
End If
End Sub
4. 下面的程序用于根据文本框A中输入的内容进行以下处理:当A<6.6时,打印"A<6.6";当A=6.6时,打印"A=6.6";当A>6.6时,打印"A>6.6"。
Private Sub Command1_Click()
If (1) Then
Print "A<6.6"
(2) Val(A.Text)=6.6 Then
Print "A=6.6"
Else
Print "A>6.6"
(3)
End Sub
5. 下面的程序用于根据文本框X中输入的内容进行以下处理:若X为2、4、6,则打印"X的值为2、4、6";若X为3、5,则打印"X的值为3、5";若X为7、8,则打印"X的值为7、8";否则,打印"X不在范围内"。
Private Sub Command1_click()
Select Case Val(X.Text)
Case (1)
Print "X的值为2、4、6"
Case (2)
Print "X的值为3、5"
Case (3)
Print "X的值为7、8"
(4)
Print "X不在范围内"
End Select
End Sub
6. 下面程序用来计算:
A+B (A>5)
N= B/A (A=5)
0 (A<5)
Private Sub Command1_C1ick()
A=Val(Text1.Text)
B=val(Text2.Text)
Select Case A
Case (1)
N=A+B
Case (2)
N=B/A
Case (3)
N=O
End Select
Text3.Text=N
End Sub
第六章 循环结构程序设计
一、判断程序或程序段的执行结果
1. 下列程序段的执行结果为【 】。
I=0
For G=10 To 19 Step 3
I=I+1
Next G
Print I
(A)4 (B)5 (C)3 (D)6
2. 下列程序段的执行结果为【 】。
X=0
For K=1 To 10 Step 2
X=X+K
Next K
Print K;X
(A)-1 6 (B)-1 16 (C)1 6 (D)11 31
3. 下列程序段的执行结果为【 】。
K=0
For I=1 To 3
A=I^I^K
Print A
Next I
(A)1 1 1 (B)1 4 9 (C)0 0 0 (D)1 2 3
4. 下列程序段的执行结果为【 】。
N=10
For K=N To 1 Step -1
X=Sqr(K)
X=X-2
Next K
Print X-2
(A)-3 (B)-1 (C)1 (D)1.16227765
5. 下列程序段的执行结果为【 】。
X=1
Y=1
For I=1 To 3
F=X+Y
X=Y
Y=F
Print F
Next I
(A)2 3 6 (B)2 2 2 (C)2 3 4 (D)2 3 5
6. 下列程序段的执行结果为【 】。
A="ABBACDDCBA"
For I=6 To 2 Step -2
X=Mid(A,I,I)
Y=Left(A,I)
Z=Right(A,I)
Z=X & Y & Z
Next I
Print Z
(A)ABA (B)AABAAB (C)BBABBA (D)ABBABA
7. 给出下面程序段的输出结果【 】。
For X=1.5 To 5 Step 1.5
Print X
Next X
8. 给出下面程序段的输出结果【 】。
For I=-5 To –Lo Step -1
X=X+I
Print X
Next I
9. 给出下面程序段的输出结果【 】。
Z="ABCDEFGABCDEFG"
For I=6 To 2 Step -3
U=String(I,Z)
V=Left(Z,I)
W=Mid(Z,I,I)
X=Right(Z,I)
Y=X+W+V+U
Next I
Print U,V,W,X,Y
10. 给出下面程序段的输出结果【 】。
For I=O To 3
Print Tab(4*I+1);I;"2" & I
Next I
11. 给出下面程序段的输出结果【 】。其中,Trim函数用于去除字符串前后的空格。
For I=1 To 7
Print Tab(8-I);String(I,Trim(Str(I)))
Next I
12. 下列程序段的执行结果为【 】。
A=0:B=1
Do
A=A+B
B=B+1
Loop While A<10
Print A;B
(A)10 5 (B)A B (C)0 1 (D)10 30
13. 下列程序段的执行结果为【 】。
I=4
A=5
Do
I=I+1
A=A+2
Loop Until I>=7
Print "I=";I
Print "A=";A
(A) I=4 (B)I=7 (C)I=8 (D)I=7
A=5 A=13 A=7 A=11
14. 下列程序段的执行结果为【 】。
N=O
J=1
Do Until N>2
N=N+1
J=J+N*(N+1)
Loop
Print N;J
(A) 0 1 (B)3 7 (C)3 21 (D)3 13
15. 给出下面程序段的输出结果【 】。
P=O
S=0
Do
P=P+2
S=S+P
Loop While P<11
Print "S=";S
16. 给出下面程序段的输出结果【 】。
M1=1
M2=1
Do While M2<>6
M1=M1*M2
M2=M2+1
Loop
Print "M1=";M1, "M2=";M2
17. 下列程序段的执行结果为【 】。
N=0
For I=1 To 3
For J=5 To 1 Step -1
N=N+1
Next J
Next I
Print N;J;I
(A) 12 0 4 (B)15 0 4 (C)12 3 1 (D)15 3 1
18. 下列程序段的执行结果为【 】。
A=0
B=0
For I=-1 To –2 Step -1
For J=1 To 2
B=B+1
Next J
A=A+1
Next I
Print A;B
(A) 2 4 (B)-2 2 (C)4 2 (D)2 3
19. 下列程序段的执行结果为【 】。
K=0
For J=1 To 2
For I=1 To 3
K=I+1
Next I
For I=1 To 7
K=I+1
Next I
Next J
Print K
(A)10 (B)6 (C)11 (D)16
20. 下列程序段的执行结果为【 】。
For X=5 To 1 Step -1
For Y=1 To 6-X
Print Tab(Y+5); "*";
Next y
Print
Next X
(A)***** (B)***** (C)* (D) *
**** **** ** ***
*** *** *** *****
** ** **** *******
* * ***** *********
21. 下列程序段的执行结果为【 】。
S=0:T=0:U=O
For X=1 To 3
For Y=1 To X
For Z=Y T0 3
S=S+1
Next Z
T=T+1
Next Y
U=U+1
Next X
Print S;T;U
(A)3 6 14 (B)14 6 3 (C)14 3 6 (D)16 4 3
22. 给出下面程序段的输出结果【 】。
For a=1 To 6
Print Tab(7-a);
For b=1 To 2*a-1
Print "*";
Next b
Next a
23. 给出下面程序段的输出结果【 】。
N=1
Do
For k=N To 5
Print "*";
Next k
Print
N=N+1
Loop Until N>5
24. 给出下面程序段的输出结果【 】。
For A=O To 1
For B=1 To 2
For C=2 To 3
Print (A=O Or B=1) And (C=2 And A=B) Or Not (C=3);
Next C
Next B
Next A
25. 给出下面程序段的输出结果【 】。
Dim i As Integer,j As Integer,k As Integer
k=0
For i=O To 10 Step 3
For j=1 To 10
If j>5 Then k=k+4:Exit For
k=k+1
Next j
Print I,k
If i>8 Then Exit For
Next i
Print i,k
二、程序填空
1. 以下程序用来产生20个(0,99)之间的随机整数,并将其中的偶数打印出来。
Private Sub Command1_Click()
Randomize
For I=1 To 20
X=Int(Rnd* (1) )
If X/2= (2) Then Print X
Next I
End Su
b
2. 以下程序用来计算由键盘输入的N个数中正数之和,负数之和,正数的个数,负数的个数。其中用C累加负数之和,IC累加负数的个数,D累加正数之和, ID累明加正数的个数。
Private Sub Command1_Click()
N=lO
C=0:IC=0:D=0:ID=O
For k=I To N
A=Val(InputBox("请输入A"))
If A<O Then C= (1) : (2)
If A>O Then D= (3) : (4)
Next k
Print "负数的个数为:",IC
Print "负数的和为:",C
Print "正数的个数为: ",ID
Print "正数的和为:",D
End Sub
3. 下面是一个体操评分程序。20位评委,除去一个最高分和一个最低分,计算平均分(设满分为100分)。
Private Sub Command1_Click()
Max=0
Min=10
For I=1 To 20
N=Val(InputBox("请输入分数"))
If (1) Then Max=N
If (2) Then Min=N
S=S+N
Next I
S= (3)
P=S/18
Print "最高分";Max,"最低分";Min
Print "最后得分:";P
End Sub
4. 搬砖问题:36块砖,36人搬,男的搬4块,女的搬3块,2个小儿抬1块,要求1次全部搬完,问需男、女、小儿各多少人。
Private Sub Command1_click()
For Male =1 To 9
For Female =1 To 12
For Boy =2 To 36 Step 2
If Boy + Female + Male =36 And (1) Then
Print Male,Female,Boy
End If
Next Boy
Next Female
Next Male
End Sub
5. 以下程序用于计算N=1+(1+3)+(1+3+5)+…+(1+3+5+…+39)。
Private Sub Command1_Click()
T=O
M=1
Sum =0
Do
T=T + (1)
Sum = Sum + (2)
M=M + 2
Loop While (3)
Print "Sum=";Sum
End Sub
6. 以下程序用于计算数学表达式1^2-2^2+3^2-4^2+...+(N-1)^2-N^2。
Private Sub Command1_Click()
N=val(InputBox("请输入大于零的偶数N:"))
S=0
I=1
C=1
Do
S=S+C*I*I
C= (1)
I= (2)
Loop While (3)
Print "S=";S
End Sub
7. 以下程序用于求S=1+3+3^2+3^3+…+3^10的值。
Private Sub Command1_Click()
S= (1)
T=1
For I=1 To 10
T= (2)
S=S + T
Next I
Print "S=";S
End Sub
8. 以下程序输入N个书名,并将书名中含有连续3个字母COM的所有书名显示出来。
Private Sub Command1_Click()
n=InputBox("请输入数量:")
For i=1 To n
bookname=InputBox("请输入书名:")
l=Len (1)
If l>=3 Then
If (2) Then Print bookname
End If
Next i
End Sub
9. 以下程序用于在带垂直滚动条的文本框Textl中输出3到100之间的全部素数。
Private Sub Command1_Click()
Text1.Text ="
For N=3 To lOO
K=Int(sqr(N))
I=2
Flag =O
DO While I<= (1) And Flag =0
If N Mod I=O Then Flag =1 Else I=I+1
Loop
If (2) Then
Text1.Text=Text1.Text & Str(N) & Chr(13) & Chr(10)
End If
Next N
End Sub
10. 以下程序用来输出20个在开区间(10,87)中的随机整数R,每行输出4个整数。
Private Sub Command1_Click()
For I=1 To 20
R= (1)
Print R;
If (2) Then Print
Next I
End Sub
11. 以下程序在文本框Text1中输入任一字符串,并按相反的次序显示在文本框Text2中。
Private Sub Command1_Click()
Dim N As String,C AS String,DAS String
N=Text1.Text
M= (1)
For I=M To 1 Step –1
C=Mid(N,I,1)
D=D & (2)
Next I
(3) =D
End Sub
12. 以下程序用于在单击图片框Picture1时显示图6_1所示的结果。
Private Sub Picture1_Click()
Picture1.Print Tab(5); "*"
For I=1 To 4
Picture1.Print (1)
Next I
For I=3 To 1 Step –1
Picture1.Print (2)
Next I
Picture1.Print Tab(5);"*"
End Sub
13. 以下程序在窗体上打印出如图6_2示的数据。
Private Sub Fonm_Click()
For N=1 To 6
Print Tab(20-3*N);
For M=1 To 2*N-1
If M<=N Then (1) Else (2)
Print A
Next M
Print
Next N
End Sub
14. 单击窗体时输出"斐波那契数列"的前20项。该数列第一项为0,第二项为1,其后每一项的值都是前两项之和。即:0,1,1,2,3,5,8,13,… 从题后供选择的答案中选出正确答案,填入以下程序中相应处,构成完整程序。
Private Sub Fonm_Click()
X1=0
X2=1
N=0
Do While (1)
Print X1,X2
X1= (2)
X2= (3)
N=N+1
Loop
End Sub
供选择的答案:
(1)(A)N<10 (B)N<9 (C)N<10 (D)N<20
(2)(A)X1+X2 (B)X2 (C)X1+N (D)X2+N
(3)(A)X1+X2 (B)X2 (C)X1+N (D)X2+N
15. 单击窗体时输出图6_3所示的图形。从题后供选择的答案中选出正确答案,填入以下程序中相应处,构成完整程序。
Private Sub Form_Click()
For N=1 To 6
Print (1)
For M=1 To 6
Print "*";
Next M
Print (2)
For M=1 To 6
Print "*";
Next M
Print
Next N
End Sub
供选择的答案:
(1)(A)Tab(6-N); (B)Tab(6+N); (C)Tab(7-N); (D)Tab(7+N);
(2)(A)Tab(12+N); (B)Tab(11+N); (C)Tab(11-N); (D)Tab(12-N);
16. 单击命令按钮Command1时利用台劳级数展开式求sin x 的近似值。展开式为:
x-x^3/3!+x^5/5!-…+(-1)^i*x^(2i+1)/(2i+1)!+… (i=0,1,2,...,n) 从题后供选择的答案中选出正确答案,填入以下程序中相应处,构成完整程序。(设在文本框Text1中输入的是角度,以上公式中的x为弧度)
Private Sub Command1_Click()
X1=Val(Text1.Text)
X=X1*3.1415926/180
N=Val(Text2.Text)
Y= (1)
F=1
For I=1 To N
(2)
S=1
For k=1 To (3)
T=T*K
S= (4)
Next k
F=(-1)*F
Y=Y+F* (5)
Next I
Print "sin(";X1;")=";Y
End Sub
供选择的答案:
(1)(A)O (B)X (C)1 (D)N
(2)(A)T=X (B)T=0 (C)T=N (D)T=1
(3)(A)2*I+1 (B)I+1 (C)2*I (D)I
(4)(A)S*K (B)S*X (C)X*N (D)S*N
(5)(A)T/S (B)S*F (C)S/T (D)S/F
17. 单击命令按钮Command1时利用梯形法求sinx的定积分,区间为[0,2]。从题后供选择的答案中选出正确答案,填入以下程序中相应处,构成完整程序。
Private Sub Command1_Click()
A=0
B=2
N=30
S=0
H=(B-A)/N
For k= (1) To N
T=(Sin(A+(K-1)*H)+Sin(A+K*H))*H/2
S= (2)
Next k
Print (3)
End Sub
供选择的答案:
(1)(A)0 (B)1 (C)N (D)A
(2)(A)S+1 (B)T (C)T+T (D)S+T
(3)(A)"Area=";S (B)T (C)S=S (D)K
18. 单击命令按钮Command1时利用矩形法求(1+e^x)的定积分,区间为[0,1]。从题后供选择的答案中选出正确答案,填入以下程序中相应处,构成完整程序。
Private Sub Command1_Click()
A=0
B=1
N=100
X=A:H=(B-A)/N
F0= (1)
S=0
For I=1 To N
S1=F0*H
S= (2)
X= (3)
F0=1+Exp(X)
Next I
Print S
End Sub
供选择的答案:E
(1)(A)0 (B)1+Exp(H) (C) 1+Exp(X) (D)H
(2)(A)S+1 (B)S+S1 (C) S+F0 (D)S1
(3)(A)X+H (B)X+1 (C) 1+Exp(X) (D)S
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文