资源简介 第2节 选择结构考试内容考试要求行IF语句c块IF语句c选择结构选择结构也称为分支结构。VB选择语句能使程序在执行过程中,根据不同的判断结果,选择执行不同的处理。一、行If语句格式1:条件成立时执行语句,否则不执行格式2:条件成立时执行语句1,否则执行语句2二、块If语句格式1:If 条件表达式 Then语句块End If条件成立时执行语句块,否则不执行格式2If 条件表达式 Then 语句块1Else 语句块2End If条件成立时执行语句块1,否则执行语句块2:格式3:If 条件表达式1 Then 语句1ElseIf 条件表达式2 Then 语句2End If条件1成立时执行语句1,条件1不成立时才判断条件2,条件2成立执行语句2格式4:If 条件表达式1 Then 语句1ElseIf 条件表达式2 Then 语句2……Else 语句0End If条件1成立时执行语句1,条件1不成立时才判断条件2,条件2成立执行语句2……以上条件都不成立,则执行语句0一、行If语句【典例1】 Dim x As Integer, y As Integerx = 1: y = 2If x = y Then x = x + 2 Else y = y + 2该程序段运行后x,y的值为( )A.1,2 B.3,2 C.1,4 D.3,4解析 本题主要考查行If语句。x=1,y=2,不满足If后面的判断表达式,执行Else后面的语句,y=2+2=4,x的值不变。答案 C【变式训练】 有如下VB程序段:Private Sub Command1_Click() Dim x As Integer, y As Integer Dim s As String s = “China” x = Len(s) y = Int(Sqr(x)) If x < > y Then x = x + y Else y = x + y y = x + y Label1.Caption = Str(y)End Sub该程序执行后,标签Label1上显示的内容是( )A.4 B.5 C.7 D.9解析 本题主要考查行If语句。x=5,y = 2。If语句条件x < > y成立执行x = x + y 后x值变为7。执行语句y = x + y后y的值为9。答案 D【方法总结】 在行If语句中,所有的语句都在同一行。二、块If语句【典例2】 有如下VB程序段:Dim x As String, y As Stringx= “Boy-or-Girl?”y=Len(x)If y<11 Then Label1.Caption= “I am ”+Mid(x,1,3)Else Label1.Caption= “I am ”+Mid(x,8,4)End If该程序段运行之后,标签Label中显示的内容为( )A.Boy or Girl B. I am BoyC. I am Girl D. I am Boy or Girl?解析 本题主要考查块IF语句。因为y=11,因此执行Else后面的语句。答案 C【变式训练】 有如下VB程序段:Private Sub Command1_Click() Dim ans As Integer, res As Integer Dim mystr As String mystr= “Visual” ans = 2 res = Len(mystr) If ans > res Then ans = ans + res Else res = ans + res EndIf Label1.Caption = Str(res)End Sub程序执行后,在标签Label1上显示的内容是( )A.4 B.5 C.7 D.8解析 本题主要考查行IF语句。ans=2,res = 3。语句ans > res 不成立,执行res = ans + res后res值变为8。答案 D【方法总结】 块If语句中,If和ElseIf后面有判断语句,Else后面没有判断语句。注意块If语句要以End If结束。1.有如下VB程序:a = 2: b = 5If b >= a Then a = a + 2:b = b + 2Text1.Text = Str(b)程序运行后文本框Text1显示的内容为______。解析 本题主要考查行If语句。a = 2,b = 5。满足If后面的判断语句,执行Then后面的语句 a = a + 2=4,b = b + 2=7。答案 72.有如下VB程序:a = 2: b = 5If b >= a Then a = a + 2:b = a + bEnd Ifb = b * 2Text1.Text = Str(b)程序运行后文本框Text1显示的内容为______。解析 本题主要考查块If语句。a = 2,b = 5。满足If后面的判断语句,执行Then后面的语句 a = a + 2=4,b = a + b=9。再执行b = b * 2=18。答案 183.有如下VB程序:a = 1: b = 2If a > 0 Then a = a + 1a = a + 1If a < > b Then a = a + 1 b = b + 1End Ifa = a + bLabel1.Caption = Str(a)程序运行后标签Label1显示的内容为________。解析 本题主要考查If语句。a = 1: b = 2,满足行If语句后面的判断语句,执行Then后面的语句a=a+1=2,然后执行a=a+1=3,且满足块If语句后面的判断语句,执行Then后面的语句 a = a + 1=4,b = b + 1=3,最后执行a=a+b=7。答案 74.有如下VB程序:x = 5: y = 2If x > y Then y = y + 6 If y>9 Then y = x*y Else y = y + 2 y = x + yEnd IfText1.Text = Str(y)程序运行后文本框Text1显示的内容为______。解析 本题主要考查If语句。x = 5: y = 2。满足If后面的判断语句,执行Then后面的语句 y=y+6=8.但不满足y>9,不执行then后面的语句。答案 8基础巩固1.有如下VB程序段:Dim a As Integer, b As Integera = 5: b = 3If a Mod b = 2 Then a = a ^ 2 Else a = b ^ 2该程序段运行后a的值为( )A.3 B.5 C.9 D.25解析 本题主要考查行If语句。a=5,b=3,满足If后面的判断语句,执行Then后面的语句 a = a ^ 2=25。答案 D2.有如下VB程序段: Private Sub Command1_Click()Dim a As Integer, b As Integera = Len(“abcd”):b = 5If a >= 0 And b < 5 Thena = 3 * b + 1ElseIf a > b Thena = 3 * b - 1Elsea = 3 * a + bEnd IfLabel1.Caption = Str(a) End Sub该程序段运行后,y的值为( )A.0 B.14 C.16 D.17解析 本题主要考查块IF语句。由于a=4,b=5,条件a >= 0 And b < 5和a > b都不成立,因此执行Else部分的代码a = 3 * a + b=17,答案为D。答案 D3.有如下VB程序段:Dim px As Integer, py As Integer,t As Stringt = “2020年”px = Val(Mid(t, 3, 2))py = Int(Sqr(px)) + Len(t)If px > py Then px = px Mod 2ElseIf px < py Then py = py Mod 2Else px = 1End Ifpx = px + pyLabel1.Caption = Str(px) 该程序段运行后标签上显示的内容是( )A.9 B.10 C.20 D.30解析 本题主要考查块IF语句。px = Val(Mid(t, 3, 2))=20,py = Int(Sqr(x)) + Len(t)=9。块IF语句第一个条件成立,执行px = px Mod 2后px值变为0,块IF语句结束。执行px = px + py 语句后,px的值变为9。答案 A能力提升4.模拟一个简易计算器,其功能是: 输入两个数和一个运算符(+、-、*、/),进行算术运算,并输出运算结果, 程序设计界面和运行界面分别如图1和图2所示。 图1 图2在文本框 Text1 中输入第一个数 a,在文本框 Text2 中输入运算符 ch,在文本框 Text3中输入第二个数 b,在文本框 Text4 中输出运算结果。当输入的运算符不是“+、-、*、/”四种运算符时,则输出“运算符不正确”;当进行 “/”运算时,如果除数为0,输出“除数不能为零”。为实现上述功能,请在①和②划线处,填入合适的代码,把程序补充完整。Private Sub Command1_Click() Dim a As Single, b As Single,ch as String a = Val(Text1.Text) ____①____ b = Val(Text3.Text) If ch = “+” ThenText4.Text = Str(a +b) ElseIf ch = “*” ThenText4.Text = Str(a*b) ElseIf ch = “-” ThenText4.Text = Str(a-b) ElseIf ch = “/” ThenIf ____②____Then Text4.Text = Str(a / b) Else Text4.Text = “除数不能为零” ElseText4.Text = “运算符不正确” End IfEnd Sub解析 本题是考查多分支结构。①将文本框Text2中的内容取出并赋值给ch。②行If语句用来判断除数是否为0,不等于0,输出运算结果,否则输出“除数不能为0”,因此,答案为b< >0。答案 ①ch = Text2.Text ②b< >0课件13张PPT。第2节 选择结构选择结构也称为分支结构。VB选择语句能使程序在执行过程中,根据不同的判断结果,选择执行不同的处理。选择结构二、块If语句一、行If语句【典例1】 Dim x As Integer, y As Integerx = 1: y = 2If x = y Then x = x + 2 Else y = y + 2该程序段运行后x,y的值为( )A.1,2 B.3,2 C.1,4 D.3,4解析 本题主要考查行If语句。x=1,y=2,不满足If后面的判断表达式,执行Else后面的语句,y=2+2=4,x的值不变。答案 C【变式训练】 有如下VB程序段:Private Sub Command1_Click() Dim x As Integer, y As Integer Dim s As String s = “China” x = Len(s) y = Int(Sqr(x)) If x < > y Then x = x + y Else y = x + y y = x + y Label1.Caption = Str(y)End Sub该程序执行后,标签Label1上显示的内容是( )A.4 B.5 C.7 D.9解析 本题主要考查行If语句。x=5,y = 2。If语句条件x < > y成立执行x = x + y 后x值变为7。执行语句y = x + y后y的值为9。答案 D【方法总结】 在行If语句中,所有的语句都在同一行。二、块If语句【典例2】 有如下VB程序段:Dim x As String, y As Stringx= “Boy-or-Girl?”y=Len(x)If y<11 Then Label1.Caption= “I am ”+Mid(x,1,3)Else Label1.Caption= “I am ”+Mid(x,8,4)End If该程序段运行之后,标签Label中显示的内容为( )A.Boy or Girl B. I am BoyC. I am Girl D. I am Boy or Girl?解析 本题主要考查块IF语句。因为y=11,因此执行Else后面的语句。答案 C【变式训练】 有如下VB程序段:Private Sub Command1_Click() Dim ans As Integer, res As Integer Dim mystr As String mystr= “Visual” ans = 2 res = Len(mystr) If ans > res Then ans = ans + res Else res = ans + res EndIf Label1.Caption = Str(res)End Sub程序执行后,在标签Label1上显示的内容是( )A.4 B.5 C.7 D.8解析 本题主要考查行IF语句。ans=2,res = 3。语句ans > res 不成立,执行res = ans + res后res值变为8。答案 D【方法总结】 块If语句中,If和ElseIf后面有判断语句,Else后面没有判断语句。注意块If语句要以End If结束。 展开更多...... 收起↑ 资源列表 第2节 选择结构.doc 第三单元第2节 选择结构.pptx