内容正文:
《Visual Basic程序设计(第6版)》电子工业出版社
项目六 选择结构
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1.以下关于 VB 单行 If 语句的说法,正确的是( )
A. 单行 If 语句必须以 End If 结束
B. 单行 If 语句中多个执行语句需用逗号分隔
C. 单行 If 语句格式为:If 条件 Then 执行语句
D. 单行 If 语句不能包含 Else 分支
【答案】 C
【解析】多行 If 需 End If,单行 If 无需,单行 If 多个执行语句用冒号(:)分隔,而非逗号,单行 If 可写 Else。
2.关于 VB 中 If 嵌套的规则,错误的是( )
A. 内层 If 必须完全包含在外部 If 的一个分支内
B. 嵌套的 If 语句中,每层 If 都需对应一个 End If
C. 内层 If 的 Else 可以匹配外部 If 的 Then
D. If 嵌套可在 Then 分支或 Else 分支内编写内层 If
【答案】C
【解析】If 的 Then/Else/End If 必须 “就近匹配”,内层 Else 只能匹配内层 If,无法跨层匹配外部 If。
3.当条件为5<x<10时,则x=x+1 ,则以下语句正确的是( )。
A. if 5<x<10 then x=x+1
B. if 5<x or x<10 then x=x+1
C. if 5<x and x<10 then x=x+1
D. if 5<x xor x<10 then x=x+1
【答案】C
【解析】VB 不支持5<x<10的连续比较写法,需拆分为5<x And x<10,And表示 “同时满足”,是区间比较的核心逻辑运算符。
4.设a=6,则执行语句:x=IIF(a>5,-1,0)后,x的值为( )
A. 5
B. 6
C. 0
D. -1
【答案】D
【解析】IIF语句的格式为:IIF(条件表达式, 条件为True时返回的值, 条件为False时返回的值)。
5.下列程序段的执行结果为( )
Dim x As Integer
If x Then Print x Else Print x-1
A. 1
B. 0
C. -1
D.不确定
【答案】C
【解析】VB 中未赋值的 Integer 变量默认值为0;数值 0 在 If 条件中等价于 False,非 0 等价于 True。
6、设a=5,b=6,c=7,d=8,则执行以下语句后,x的值为( ) 。
x=IIF((a>b) and (c>d),10,20)
A.10
B.20
C.30
D.300
【答案】B
【解析】IIf(条件表达式, 条件为真时返回的值, 条件为假时返回的值)。先判断 “条件表达式” 的真假,再返回对应的值;本题中:条件为真则返回 10,条件为假则返回 20。
7、在Select Case x结构中,描述判断条件3≤X≤7的测试项应该写成( )。
A.Case 3<=X<=7
B.Case 3<=X,X<=7
C.Case Is<=7,Is>=3
D.Case 3 To 7
【答案】D
【解析】在 VB 的 Select Case 结构中,表示范围应使用 To 关键字。
8、下列程序段的执行结果为( )
X=2
Y=1
If x*y<1 Then y=y-1 Else y=-1
Print y-x>0
A. True
B. False
C. -1
D.1
【答案】B
【解析】x*y = 2*1 = 2;判断 2 < 1 → 结果为 False;y-x,再判断是否大于 0:y=-1,x=2,因此 y-x = -1 - 2 = -3;判断 -3 > 0 → 结果为 False。
9、以下代码实现 “若 x 是 1~5 的奇数则输出 OK,否则输出 NO”,正确的是( )
A. If x >=1 And x <=5 And x Mod 2 = 1 Then
Print "OK"
Else
Print "NO"
End If
B. Select Case x
Case 1,3,5
Print "OK"
Case Else
Print "NO"
End Select
C. If x = 1 Or x = 3 Or x = 5 Then
Print "OK"
Else
Print "NO"
End If
D. 以上都正确
【答案】D
【解析】x >=1 And x <=5:限定 x 的范围在 1~5 之间;x Mod 2 = 1:判断 x 是奇数;Select Case 直接匹配 x 的具体值,Case 1,3,5表示 x 等于 1、3、5 中的任意一个。
10、以下Case语句含有错误的是( )。
A.Case 0 To 10
B.Case Is > 10
C.Case Is > 10 And Is < 50
D.Case 3,5,Is > 10
【答案】C
【解析】在 VB 的 Select Case 语句中,Case 子句不能使用逻辑运算符(如 And)来组合多个条件。
11、对于语句If x=1 Then y=1,下列说法正确的是( )。
A.x=1 和 y=1 均为赋值语句
B.x=1 和 y=1 均为关系表达式
C.x=1 为关系表达式, y=1 为赋值语句
D.x=1 为赋值语句, y=1 为关系表达式
【答案】C
【解析】If条件中的=是 “比较”(关系表达式),执行语句中的=是 “赋值”(赋值语句)。
12、列程序段的执行结果为( )
X=5
Y=-20
If Not x>0 Then
x=y-3
Else
Y=x+3
End If
Print x-y;y-x
A. -3 3
B. 5 -8
C. 3 -3
D. 25 -25
【答案】A
【解析】Not是 “非” 逻辑运算符,会反转布尔值;B 中Print语句里的分号;表示 “连续输出,无间隔”。
13、下面程序段求两个数中的大数,不正确的是( )。
A.Max=IIf(x>y,x,y)
B.If x>y Then Max=x Else Max=y
C.Max=x:If y>=x Then Max=y
D.If y>x Then Max=y :Max=x
【答案】D
【解析】单行 If 语句中,冒号:分隔的是无论条件是否成立都会执行的语句。
14、多分支选择结构的Case语句,下列写法错误的是( )。
A. Case 1,5,7,9
B. Case 8 to 10
C. Case 10 to 2
D. Case Is<"man"
【答案】C
【解析】To必须满足下限 ≤ 上限,若下限 > 上限,该区间是 “无效区间”。
15、编写如下事件过程:
Private Sub Form_MouseDown(Button As Integer ,Shift As Integer,X As Single,Y As Single)
If Shift=6 And Button=2 Then
Print "Hello"
End If
End Sub
程序运行后,为了在窗体上输出"Hello",应在窗体上执行以下( )操作。
A.同时按下 Shift 键和鼠标左键
B.同时按下 Shift 键和鼠标右键
C.同时按下Ctrl、Alt 键和鼠标左键
D.同时按下 Ctrl、Alt 键和鼠标右键
【答案】D
【解析】Button=2明确要求按下的是鼠标右键;分析Shift=6;Shift参数的组合值是各按键对应值的和:6 = 2(Ctrl 键) + 4(Alt 键),说明需要同时按下 Ctrl 键和 Alt 键。
16、若整型变量a的值为2、b的值为3,则下列程序段执行后整型变量c的值为( )。
If a>5 then
if b<4 then
c=a-b
else
c=b-a
End if
elseif b>3 then c=a*b
else
c=a mod b
End if
A.2
B.-1
C.1
D.6
【答案】A
【解析】If 语句按 “从上到下” 匹配条件,只有第一个成立的分支会被执行,Mod是 VB 的取模运算符,作用是计算两个数相除后的余数。
17、以下程序段的执行结果是( )。
X=2:y=1
If x*y<1 Then
y=y-1
Else
y=-1
Print y-x>0
End If
A.True
B.False
C.-1
D.1
【答案】B
【解析】先执行 If…Else 更新y为 - 1;计算y-x=-3,判断-3>0为 False.
18、已知x=7,执行以下条件判断后结果为 True 的是( )
A. If x Mod 2 = 0 And x > 5 Then
B. If x Mod 2 <> 0 Or x < 5 Then
C. If Not x < 10 Then
D. If x > 8 And x < 6 Then
【答案】B
【解析】Mod是取模运算符,返回两数相除的余数;And:两个条件同时为 True,整体才为 True;Or:两个条件任意一个为 True,整体就为 True;Not:反转布尔值。
19、执行下面的程序段后,变量c的值为( )。
a=14
b=30
Select Case b\10
Case 0
c=a * 10 + b
Case 1 To 9
c=a * 100 + b
Case 10 To 99
c=a * 1000 + b
End Select
Print c
A.363
B.2548
C.1430
D.9875
【答案】C
【解析】已知 a=14,b=30,首先计算Select Case的测试表达式 b\10。\ 是 VB 中的整数除法运算符,Select Case 按 “从上到下” 匹配首个符合条件的分支。
20、在窗体上画一个名称为Command1的命令按钮和两个名称分别为Text1和Text2的文本框,然后编写如下事件过程:
Private Sub Command1_Click()
n=Text1.text
Select Case n
Case 1 To 10
X=10
Case 2,4,6
X=20
Case Is<10
X=30
Case 10
X=10
End Select
Text2.text=x
End Sub
程序运行后,如果在文本框Text1中输入10,然后单击命令按钮,则在Text2中显示的内容是( )
A. 10
B. 20
C. 30
D.40
【答案】A
【解析】Select Case核心规则:从上到下匹配首个符合条件的 Case 分支,匹配成功后立即执行该分支,不再判断后续分支。
2、 填空题(本题共10小题,每题2分,共20分)
1.标准 IF…Else 结构必须以______结束。
【答案】End If
【解析】标准(多行)IF…Else 结构必须以End If结束,不可省略。
2、若要在一个 If 块内再使用 If,称为______结构。
【答案】IF 嵌套
【解析】IF 嵌套的核心是 “一个 IF 块内包含另一个 IF 语句”。
3、单行IF语句中,若执行语句包含多个操作,需用________分隔。
【答案】冒号
【解析】若 “执行语句” 需要包含多个操作,需用英文冒号(:) 将多个操作分隔开。
4、 在Select case结构中应至少包含一个______子句。
【答案】 case
【解析】Select Case 是 VB 的多分支选择结构,其语法的核心是通过Case子句定义匹配条件,因此至少需要包含一个 Case 子句。
5、Select Case 语句的“表达式列表”中,多个值之间用________分隔。
【答案】逗号
【解析】在 Select Case 的Case子句(即 “表达式列表”)中,当需要列出多个离散的、不连续的值时,必须用英文逗号(,) 分隔。
6、Select Case 语句里表示“范围”的关键字是________。
【答案】to
【解析】在 Select Case 语句中,To是专门用于描述连续、闭合的数值 / 字符串范围的关键字。
7、Case Else的作用是________,通常放在所有 Case 的最后。
【答案】匹配所有未被前面 Case 覆盖的情况
【解析】Case Else是 “兜底” 分支,覆盖剩余所有情况,匹配所有未被前面 Case 匹配的剩余情况,执行对应的代码块。
8、Select Case 的测试变量为数值型时,Case 80 To 89与Case Is >=80 And Is <=89的匹配效果________(填 “相同” 或 “不同”)。
【答案】相同
【解析】对数值型测试变量,Case 数值1 To 数值2 等价于 Case Is >=数值1 And Is <=数值2。
9、Select Case 语句里关键字________经常与比较运算符结合使用。
【答案】Is
【解析】在 Select Case 语句中,Is是专门用于配合比较运算符。
10、若要判断变量 x 是否等于 1 或 3 或 5,Select Case 中应写________。
【答案】Case 1, 3, 5
【解析】Select Case 中,当需要匹配多个离散的、不连续的值时,直接在Case后列出这些值,并用逗号(,) 分隔。
3、 程序填空题(本题共2小题,每题10分,共20分)
1、下列VB程序实现的功能是:在文本框中输入一个字符串,比如:A$m4Ch&*F13iy%p41H,请分别统计出大写字母、小写字母、数字字符和其他字符的个数。
Private Sub Command1_Click()
Dim n As Integer ,i As Integer ,c As String
Dim n1 As Integer ,n2 As Integer ,n3 As Integer ,n4 As Integer
n=Len(Text1.Text )
For i = 1 To n
_______(1)________
Select Case c
Case "A" To "Z"
n1 = n1 + 1
Case _______(2)________
n2 = n2 + 1
Case "0" To "9"
n3 = n3 + 1
Case Else
n4 = n4 + 1
End Select
Next i
Print "大写字母个数:";n1;"小写字母个数:";n2;"数字字符个数:";n3;"其他字符个数:";n4
End Sub
【答案】
(1)c=Mid(Text1.Text,i,1)
(2)"a" To "z"
【解析】Mid(字符串, 起始位置, 提取长度) 是 VB 中提取子字符串的核心函数,从文本框的字符串中,提取第i个字符并赋值给变量c,Select Case 中"a" To "z"表示字符c的 ASCII 码在小写字母 a(97)到 z(122)之间,即所有小写字母。
2、 下列VB程序实现的功能是:验证用户名和密码:用户名 =“admin” 且密码 =“123456”,则显示登录成功;若用户名错误,则显示用户名不存在;若用户名正确但密码错误,则显示密码错误。
Private Sub Command1_Click()
Dim uname As String, pwd As String
uname = InputBox("请输入用户名")
pwd = InputBox("请输入密码")
If uname = "admin" Then
If ____(1)_____ Then
Print "登录成功"
Else
Print "密码错误"
End If
______(2)_____
Print "用户名不存在"
End If
End Sub
【答案】
(1)pwd = "123456"
(2)Else
【解析】先验证用户名(外层 If),再在用户名正确的分支内验证密码(内层 If),分层判断更清晰。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《Visual Basic程序设计(第6版)》电子工业出版社
项目六 选择结构
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题3分,共60分)
1.以下关于 VB 单行 If 语句的说法,正确的是( )
A. 单行 If 语句必须以 End If 结束
B. 单行 If 语句中多个执行语句需用逗号分隔
C. 单行 If 语句格式为:If 条件 Then 执行语句
D. 单行 If 语句不能包含 Else 分支
2.关于 VB 中 If 嵌套的规则,错误的是( )
A. 内层 If 必须完全包含在外部 If 的一个分支内
B. 嵌套的 If 语句中,每层 If 都需对应一个 End If
C. 内层 If 的 Else 可以匹配外部 If 的 Then
D. If 嵌套可在 Then 分支或 Else 分支内编写内层 If
3.当条件为5<x<10时,则x=x+1 ,则以下语句正确的是( )。
A. if 5<x<10 then x=x+1
B. if 5<x or x<10 then x=x+1
C. if 5<x and x<10 then x=x+1
D. if 5<x xor x<10 then x=x+1
4.设a=6,则执行语句:x=IIF(a>5,-1,0)后,x的值为( )
A. 5
B. 6
C. 0
D. -1
5.下列程序段的执行结果为( )
Dim x As Integer
If x Then Print x Else Print x-1
A. 1
B. 0
C. -1
D.不确定
6、设a=5,b=6,c=7,d=8,则执行以下语句后,x的值为( ) 。
x=IIF((a>b) and (c>d),10,20)
A.10
B.20
C.30
D.300
7、在Select Case x结构中,描述判断条件3≤X≤7的测试项应该写成( )。
A.Case 3<=X<=7
B.Case 3<=X,X<=7
C.Case Is<=7,Is>=3
D.Case 3 To 7
8、下列程序段的执行结果为( )
X=2
Y=1
If x*y<1 Then y=y-1 Else y=-1
Print y-x>0
A. True
B. False
C. -1
D.1
9、以下代码实现 “若 x 是 1~5 的奇数则输出 OK,否则输出 NO”,正确的是( )
A. If x >=1 And x <=5 And x Mod 2 = 1 Then
Print "OK"
Else
Print "NO"
End If
B. Select Case x
Case 1,3,5
Print "OK"
Case Else
Print "NO"
End Select
C. If x = 1 Or x = 3 Or x = 5 Then
Print "OK"
Else
Print "NO"
End If
D. 以上都正确
10、以下Case语句含有错误的是( )。
A.Case 0 To 10
B.Case Is > 10
C.Case Is > 10 And Is < 50
D.Case 3,5,Is > 10
11、对于语句If x=1 Then y=1,下列说法正确的是( )。
A.x=1 和 y=1 均为赋值语句
B.x=1 和 y=1 均为关系表达式
C.x=1 为关系表达式, y=1 为赋值语句
D.x=1 为赋值语句, y=1 为关系表达式
12、列程序段的执行结果为( )
X=5
Y=-20
If Not x>0 Then
x=y-3
Else
Y=x+3
End If
Print x-y;y-x
A. -3 3
B. 5 -8
C. 3 -3
D. 25 -25
13、下面程序段求两个数中的大数,不正确的是( )。
A.Max=IIf(x>y,x,y)
B.If x>y Then Max=x Else Max=y
C.Max=x:If y>=x Then Max=y
D.If y>x Then Max=y :Max=x
14、多分支选择结构的Case语句,下列写法错误的是( )。
A. Case 1,5,7,9
B. Case 8 to 10
C. Case 10 to 2
D. Case Is<"man"
15、编写如下事件过程:
Private Sub Form_MouseDown(Button As Integer ,Shift As Integer,X As Single,Y As Single)
If Shift=6 And Button=2 Then
Print "Hello"
End If
End Sub
程序运行后,为了在窗体上输出"Hello",应在窗体上执行以下( )操作。
A.同时按下 Shift 键和鼠标左键
B.同时按下 Shift 键和鼠标右键
C.同时按下Ctrl、Alt 键和鼠标左键
D.同时按下 Ctrl、Alt 键和鼠标右键
16、若整型变量a的值为2、b的值为3,则下列程序段执行后整型变量c的值为( )。
If a>5 then
if b<4 then
c=a-b
else
c=b-a
End if
elseif b>3 then c=a*b
else
c=a mod b
End if
A.2
B.-1
C.1
D.6
17、以下程序段的执行结果是( )。
X=2:y=1
If x*y<1 Then
y=y-1
Else
y=-1
Print y-x>0
End If
A.True
B.False
C.-1
D.1
18、已知x=7,执行以下条件判断后结果为 True 的是( )
A. If x Mod 2 = 0 And x > 5 Then
B. If x Mod 2 <> 0 Or x < 5 Then
C. If Not x < 10 Then
D. If x > 8 And x < 6 Then
19、执行下面的程序段后,变量c的值为( )。
a=14
b=30
Select Case b\10
Case 0
c=a * 10 + b
Case 1 To 9
c=a * 100 + b
Case 10 To 99
c=a * 1000 + b
End Select
Print c
A.363
B.2548
C.1430
D.9875
20、在窗体上画一个名称为Command1的命令按钮和两个名称分别为Text1和Text2的文本框,然后编写如下事件过程:
Private Sub Command1_Click()
n=Text1.text
Select Case n
Case 1 To 10
X=10
Case 2,4,6
X=20
Case Is<10
X=30
Case 10
X=10
End Select
Text2.text=x
End Sub
程序运行后,如果在文本框Text1中输入10,然后单击命令按钮,则在Text2中显示的内容是( )
A. 10
B. 20
C. 30
D.40
2、 填空题(本题共10小题,每题2分,共20分)
1.标准 IF…Else 结构必须以______结束。
2、若要在一个 If 块内再使用 If,称为______结构。
3、单行IF语句中,若执行语句包含多个操作,需用________分隔。
4、在Select case结构中应至少包含一个______子句。
5、Select Case 语句的“表达式列表”中,多个值之间用________分隔。
6、Select Case 语句里表示“范围”的关键字是________。
7、Case Else的作用是________,通常放在所有 Case 的最后。
8、Select Case 的测试变量为数值型时,Case 80 To 89与Case Is >=80 And Is <=89的匹配效果________(填 “相同” 或 “不同”)。
9、Select Case 语句里关键字________经常与比较运算符结合使用。
10、若要判断变量 x 是否等于 1 或 3 或 5,Select Case 中应写________。
3、 程序填空题(本题共2小题,每题10分,共20分)
1、下列VB程序实现的功能是:在文本框中输入一个字符串,比如:A$m4Ch&*F13iy%p41H,请分别统计出大写字母、小写字母、数字字符和其他字符的个数。
Private Sub Command1_Click()
Dim n As Integer ,i As Integer ,c As String
Dim n1 As Integer ,n2 As Integer ,n3 As Integer ,n4 As Integer
n=Len(Text1.Text )
For i = 1 To n
_______(1)________
Select Case c
Case "A" To "Z"
n1 = n1 + 1
Case _______(2)________
n2 = n2 + 1
Case "0" To "9"
n3 = n3 + 1
Case Else
n4 = n4 + 1
End Select
Next i
Print "大写字母个数:";n1;"小写字母个数:";n2;"数字字符个数:";n3;"其他字符个数:";n4
End Sub
2、 下列VB程序实现的功能是:验证用户名和密码:用户名 =“admin” 且密码 =“123456”,则显示登录成功;若用户名错误,则显示用户名不存在;若用户名正确但密码错误,则显示密码错误。
Private Sub Command1_Click()
Dim uname As String, pwd As String
uname = InputBox("请输入用户名")
pwd = InputBox("请输入密码")
If uname = "admin" Then
If ____(1)_____ Then
Print "登录成功"
Else
Print "密码错误"
End If
______(2)_____
Print "用户名不存在"
End If
End Sub
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$