错解剖析得真知(三十九)
http://www.newdu.com 2025/05/19 06:05:52 人民教育出版社 佚名 参加讨论
错解剖析得真知(三十九) §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 ![]() ![]() If ![]() ![]() If ![]() ![]() ![]() 错解:8+7=15 错因:误认为在一个程序中只执行一个条件语句,与在一个条件语句中只选择其中一个分支相混淆.If A Then B [Else C] 若满足条件A 则执行B,否则是执行C,B和C是这个条件语句的分支,而这个程序省略了Else部分. 正解:这里是有三个条件语句,各个条件语句是独立的,三个条件均成立,所以按顺序依次执行,结果为8+7+6+6=27. [例2] 下面的伪代码的效果是 ![]() While ![]() ![]() End While End 错解:执行10次循环 错因:将For语句和While语句混淆. For语句中有步长使循环变量不断变化,而While语句则无. 正解:无限循环下去,这是因为这里 ![]() ![]() 点评:“死循环”是设计循环结构的大忌,此题可改变 ![]() ![]() [例3]下面的程序运行时输出的结果是( ) ![]() While ![]() ![]() ![]() ![]() ![]() End while Print S End 错解:第一次循环时,I被赋予2,S被赋予4;第二次循环时,I被赋予3,S被赋予4+ ![]() ![]() ![]() ![]() 正解:由于 ![]() ![]() ![]() [例4]用语句描述求使 ![]() ![]() 解: ![]() ![]() While ![]() ![]() ![]() End while ![]() 点评:此题易错的是输出值,根据While循环语句的特征当 ![]() ![]() ![]() ![]() ![]() ![]() [例5]已知当 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 解: Read x If ![]() ![]() Else if ![]() ![]() Else ![]() ![]() End if End 点评:嵌套If语句可用如上的紧凑形式书写,要注意的是如不是采取紧凑形式,则需注意一个块If语句对应一个End If,不可省略或缺少. [例6]设计一个算法,使得输入一个正整数 ![]() ![]() 解:思路一:利用单循环,循环体中必须包括一个求各项阶乘的语句以及一个求和语句. 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 ![]() ![]() ![]() 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) |
- 上一篇:回归基本概念解三角函数周期问题
- 下一篇:活用导数的定义解题