算法问题错误盘点

来源 :中学生数理化·高一版 | 被引量 : 0次 | 上传用户:hbffff
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  一、程序框图中的错解剖析
  1.循环结构的循环体出现错误
  剖析:当输出(或输入)在循环体内部时,每次循环时都要输出(或输入)变量的值,我们称这种循环输出(或输入)为批量输出(或输入)。本题输出在循环体内部,每执行一次循环体,都要输出对应的s的值,并非是输出最后的s的值。
  正解:输出的结果是2,5,10。
  二、基本算法语句中的错解剖析
  1.赋值语句的变量传递出现错误
  例4 执行如图5所示的算法,若输入的a,b的值分别为2和3,则输出的a,b的值分别为 。
  错解:由该程序可知:a=2,b=3;a=2+3=5,6=2=3=-1。故输出的a,b的值分别为5,-1。
  剖析:当一个变量被另一个变量或表达式赋值时,此变量的原有值已被删除,而具有了新值,所以在执行下一语句时,应将新值代人运算。本题的算法执行赋值a=a+b之后,a的值已变成了5,所以执行赋值b=a-b时,a的值是5,而不是2。
  正解:输出的a,b的值分别为5,2。
  2.条件语句嵌套格式出现错误
  剖析:在运用条件语句中的嵌套格式时了出现错误,一般的格式是IF-ELSE-(IF-FLSE-ENDIF)-END IF。要注意IF和END IF的一一对应关系。
  3.循环语句变量取值和语句顺序关系把握不好出现错误
  例6 图8和图9的两个程序均表示求满足1×3×5×7×…×n<5000的最大的正整数n的算法程序,请将①②处补充完整。
  错解:图8的程序输出的结果为满足1×3×5×7×…×n<5000的最大正整数n,①处填i。图9的程序输出的结果为满足1×3×5×7×…×n<5000的最大正整数n,②处填i-2。
  剖析:错解错在对程序各语句的顺序把握不好,且对输出变量的含义理解不透彻。正确解答本题的关键是要判断循环结束的条件、变量i的值与最大正整数n的关系。图8和图9中循环体内的两个语句的顺序恰好相反,运行两程序可知,循环结束时,图8中i的值比所求的n的值大2,而图9中的i的值比所求的n的值大4。
  正解:①处应填i-2,②处应填i-4。
其他文献