1、第11节选择结构学习目标知识条目考试要求考试属性考试形式表达式应用学考加试主观选择结构和语句应用学考加试客观主观1表达式表达式一般出现在判断语句中,结果只有两个:True和False,以关系运算符(、等)和逻辑类运算符(Not、And、Or)隔开两侧。表达式举例:73的结果为True。21的两侧计算结果均为True,And取值后最终为True。0的结果为False,就一个数值,若为0,结果为False,非零值,则为True。2选择结构选择控制结构是算法三种基本控制结构之一,根据判断结果选择执行其中一部分语句或不执行所属语句。在高中学习中,仅要求掌握IF语句的形式。3IF语句If语句有很多形式,
2、主要分为行结构和块结构,任何If语句必须要有If和Then两个保留字。(1)行结构行结构要求整个If语句所有代码写在一行上形式1:If表达式Then语句1形式2:If表达式Then语句1 Else语句2(2)块结构块结构以If语句开头,以End If结束形式1:If表达式Then语句1End If形式2:If表达式Then Then之后必须换行语句1Else语句2 Else必须另起一行,语句2可以与Else同行或另起一行End If End If要单独一行(3)嵌套块结构在一个嵌套结构中,每个单独的If必须有一个End If对应形式1:If表达式1 Then语句1ElseIf表达式2 Then
3、 ElseIf连写不需要End If语句2End If形式2:If表达式1 ThenIf表达式2 Then 本行的If需要End If结束语句1Else语句2EndIf End If对应上方离它最近未被结束的IfElse语句3End If例1运行如下代码后,a_。例2运行如下程序后,a_。一、基础巩固1选择结构是算法三种基本结构之一,在VB中,If语句的关键字有If、_、_、_等。2如下If语句,划线处应填的代码是()If ab_aab Else bbaAElseIf BThenCEnd If Dba3以下不能作为条件表达式的是()AabB(25)Len(”abc”)Dabc4如下一段VB程序
4、,运行后x()x5:y7If xy2 Thenx=x-2Else y=xEnd IfA.5B.7C3 D125如下程序要比较a,b,c三个数的大小,并输出最大的数,划线处的代码应选()a,b,c从外部读入,代码略,各种定义略Ifa bAnda cThenmax aElse If_Thenmax bElsemax cEnd IfText1.Text Str(max)Aac BbcCac Db5 Thenyx210ElseIf x0 ThenyAbs(x)10End IfA100 B1050C1541 D15307如果a,b,c中至少有一个为0,则x(ab)2c,以下VB语句与此句意义相同的是()
5、AIf a0 And a0 And c0 Then x(ab)2cBIf abc0 Then x(ab)2cCIf a*b*c0 Then x(ab)2cDIf a0 Or b0 Or c0 Thenx(ab)2c二、能力提升8超市搞促销活动进行打折,VB程序如下:Dim x As Integer,y As IntegerxVal(Text1.Text )If x 100 Then yxElseIf x 300 Then y0.9 * xElseIf x bThenbb1Elsebb1End If则输出b的值为()A3 B5 C4 D210如下VB程序段a1:b10If ab Then Pri
6、nt ”Y” Else Print ”N”关于程序段IF语句中”ab”的说法,正确的是A把变量b的值赋给变量aB把变量a的值赋给变量bC判断变量a和变量b的值是否相等D交换变量a与变量b的值11有如下VB程序段:Private Sub Command1_Click()Dim x As IntegerDim y As Integerx Val(Text1.Text)If x85 Theny”满意”ElseIf x 60 Theny ”基本满意”Else y ”仍需努力”End IfText2.Text y如果文本框1中输入65,单击命令按钮Command1后,在文本框2中显示()A运行出错 B满
7、意C基本满意 D仍需努力12运行如下代码后,s_。a8:b6:c10If ab And bc ThensabElsesabcEnd If13如果x4,执行语句If x4 ThenLabel1.Caption ”True”ElseLabel1.Caption”False”End If如果在文本框Text1中输入88,执行该程序后标签Label1显示的内容是_。16运行如下程序后,x_。Dim a As String,b As String,x As Integera”Birth”:b”Day”If ab thenxLen(a)ElsexLen(b)End If17有如下VB程序:Function
8、 s(n As Integer) As IntegerIf n 1 Thens1Elsess(n1) nEnd IfEnd FunctionPrivate Sub Form_Click()Dim x As Integerxs(2)Print xEnd Sub程序运行时,单击窗体后,变量x_。A1 B3C4 D36答案精析典例精析例113解析此If语句是典型的行结构,表示式ab的计算结果为True,故执行 aab。例26解析此If语句是块结构,aBG) c带入化简为23 ,结果为False,执行Else分支aab。达标检测1ThenEnd IfElse2B3D一个变量两侧都是关系运算符不符合运算
9、规则。4C关系表达式xy5Bab And a c不成立,意味着b、c至少一个大于a,结合下一句maxb,选B。6C条件中x的分支为x5, x0,剩下一段是0x5。7C用a*b*c0表示a,b,c中至少有一个为0。8A根据代码,应付款x满足300x500时,实际付款y打8折。9B10.C11.C12.2413.214.No15.False163解析字符串”Birth”与”Day”比较,实质是比较”B”和”D”的ASCII码,”D”大,执行xLen(b)。17B本题较难,引入了递归算法和自定义函数;引用时,n2,执行s s(n 1) n,即s s(1) 2,s(1)再次调用函数s本身,结果为1,返回计算,s12。