高中学习网-人民教育出版社人教版部编同步解析与测评答案-电子课本资料下载-知识点学习方法与技巧补课解题技巧学习计划表总结-人教网-高中试卷网题库网-中学学科网

首页 > 高中数学A版 > 解题技巧 >

错解剖析得真知(三十九)


    错解剖析得真知(三十九)
    §13.2基本算法语句
    一、知识导学
    1.  赋值语句用符号“←”表示,“”表示将 的值赋给,其中是一个变量,是一个与同类型的变量或表达式.
    2.  条件语句主要有两种形式:“行If 语句”和“块If语句”.
    “行If 语句”的一般形式为:
    If  A  Then  B  [Else C] .
    一个行If 语句必须在一行中写完,其中方括号中的Else部分可以缺省.
    “块If 语句”的一般格式为:
    If  A  Then
    B
    Else        
         C
    End  if
    Then 部分和 Else 部分是可选的,但块If语句的出口“End if”不能省.
    3.  循环语句主要有两种类型:For语句和While语句.
    当循环的次数已经确定,可用“For”语句表示.“For”语句的一般形式为:
    For I from“初值” to  step“步长”… End for 
    上面“For”和“End for”之间缩进的步骤称为循环体.
    当循环次数不能确定是,可用“While”语句来实现循环.“While”语句的一般形式为:
    While A
    …
    End while
    其中A表示判断执行循环的条件.
    上面“While”和“End While”之间缩进的步骤称为循环体.
    二、疑难知识导析
    1.       有的条件语句可以不带“Else”分支,即满足条件时执行B,否则不执行任何操作.条件语句也可以进行嵌套,在进行条件语句的嵌套时,书写要有层次.例如:
    If  A  Then 
    B
    Else if  C  Then
    D
    Else
    E
    End if
    2.“For”语句是在执行过程中先操作,后判断.而“While”语句的特点是“前测试”,即先判断,后执行.若初始条件不成立,则一次也不执行循环体中的内容.任何一种需要重复处理的问题都可以用这种前测试循环来实现.
    三、经典例题导讲
    [例1] 下列程序的运行结果是           .
    
    
    If >5 Then
    If >4 Then
    If >3 Then
    Print
    错解:8+7=15
    错因:误认为在一个程序中只执行一个条件语句,与在一个条件语句中只选择其中一个分支相混淆.If A Then B [Else C] 若满足条件A 则执行B,否则是执行C,B和C是这个条件语句的分支,而这个程序省略了Else部分.
    正解:这里是有三个条件语句,各个条件语句是独立的,三个条件均成立,所以按顺序依次执行,结果为8+7+6+6=27.
    [例2] 下面的伪代码的效果是            
    
    While <10
    
    End While
    End
    错解:执行10次循环
    错因:将For语句和While语句混淆. For语句中有步长使循环变量不断变化,而While语句则无.
    正解:无限循环下去,这是因为这里始终为0,总能满足条件“”,故是一个“死循环”.
    点评:“死循环”是设计循环结构的大忌,此题可改变的初始值或每一次循环都增加一个值.
    [3]下面的程序运行时输出的结果是(  )
        
    While
    
    
    
     End  while
    Print S
    End
    错解:第一次循环时,I被赋予2,S被赋予4;第二次循环时,I被赋予3,S被赋予4+=13;第三次循环时,I被赋予4,S被赋予13+=29;第四次循环时,I被赋予5,S被赋予.由于此时,故循环终止,输出S为54.
    正解:由于在循环内,每经过一次循环后S都被赋值0,因此,只要求满足条件的最后一次循环S的值,即当时,.
    [4]用语句描述求使成立的最大正整数的算法过程.
    解:
      
       While
          
     
    End while
          Print  
    点评:此题易错的是输出值,根据While循环语句的特征当时跳出循环体,此时的值是时的最小的整数,则使的最大整数应为的前一个奇数即.
    [例5]已知当时,,当时,,当时,,设计一算法求的值.
    解: Read x
    If  then
       
    Else if  Then
     
    Else
    
    End if
    End
    点评:嵌套If语句可用如上的紧凑形式书写,要注意的是如不是采取紧凑形式,则需注意一个块If语句对应一个End If,不可省略或缺少.
    [例6]设计一个算法,使得输入一个正整数,输出1!+2!+3!+…+!的值.写出伪代码.
    :思路一:利用单循环,循环体中必须包括一个求各项阶乘的语句以及一个求和语句.
    Read  n
      
     For  I  from  1  to  n
           
       End For
       Print  S
    思路二:运用内外双重循环,但尤其注意的是每一次外循环T的值都要从1开始.
       Read  n
      
       For  I  from  1  to  n  
          
           For  J  from  1  to  I
                  
    End For
         
    End For
       Print  S
    典型习题导练
    1. 下列的循环语句循环的次数为(    )
    For I from 1 to 7
    For J from 1 to 9
    Pint I+J
    End for
    End for
    End
    A.7次          B.9次          C.63次       D.16次
    2.运行下面的程序后输出的结果是         ,若将程序中的A语句与B语句的位置互换,再次执行程序后输出的结果为          .
    
    
    While
                                ′A语句
                                 ′B语句
    End While
    Print x,y
    End
    3.伪代码描述的求T的代数式是           ,求的代数式是                 .       
    Read  n
    
    
    For I  from 1 to  n
    
    
    End  for
    Print T,S
    4.运行下面程序后输出的结果为               
    For I from 10 to 1 step -2
      Print I
    End for
    End
    5. 将100名学生的一门功课的成绩依次输入并计算输出平均成绩.
     (责任编辑:admin)