1、12.3循环语句1.了解程序框图转化为程序语句的过程2.理解循环语句的概念及作用3掌握循环语句的格式及程序框图的画法、程序的编写, 学生用书P16)循环语句的概念及一般格式(1)循环语句用来实现算法中的循环结构(2)循环语句主要有两种类型:for循环和while循环(3)for循环的一般格式为(4)while循环的一般格式为1判断正误(对的打“”,错的打“”)(1)算法中的循环结构只能由while语句来实现()(2)算法中的循环结构由循环语句来实现()答案:(1)(2)2关于下列程序段的说法正确的是()A循环体执行8次B循环体无限循环C循环体一次也不执行D循环体只执行1次解析:选C.对于whi
2、le语句,条件为真,则执行循环体而本题k8,不符合条件k0,所以循环体一次也不执行3写出下面程序中求T的算法表达式(只写式子)N2;T1;whileN5TN*T;NN1;enddisp(T);该程序中T的表达式为_解析:分析循环体的循环过程可得结果答案:T12345for循环语句的应用学生用书P17编写程序求的值【解】程序为:S0;fori2:2:100SS1/i;endprint (%io(2),S);用for循环语句描述某一类问题的程序,其关键是根据问题确定循环变量的初值、步长和终值 编写一个程序,求132333439931003的值解:程序如下:S0;fori1:1:100SSi3;en
3、dprint(%io(2),S);while循环语句的应用学生用书P17写出求满足123n2 016的最小的自然数n的程序,并画出其程序框图【解】程序框图为:程序为:S0;n1;whileS2016SSn;nn1;endnn1;n将本例条件改为“求满足123n2 016的最大自然数n的程序”解:程序如下:S0;n1;whileS2016 SSn; nn1;endnn2;n用while语句编写程序的一般过程(1)对变量进行初始赋值;(2)确定执行循环体的条件; (3)确定循环体;(4)输出结果. 写出计算123252992的程序解:S0;i1;whilei 99SSi2;ii2;endprint
4、(%io(2),S);程序与程序框图的对译学生用书P18 根据以下给出的程序,画出其相应的程序框图,并指明该算法的功能n1;S1;whileS5000SS*n;nn1;endnn1;print(%io(2),n);【解】该算法的程序框图如图所示该算法的功能是求使12n5 000的最小自然数由程序语言可知此程序是循环语句,根据程序语言中的循环结构,按顺序画出程序框图 根据下面的程序,画出其算法的程序框图i1;whilei1xi;yx*x*x;ii0.2;print(%io(2),y);end解:该算法的程序框图如图所示1循环语句主要有两种形式,即for语句与while语句,for语句主要适用于预
5、知循环次数的循环结构;而循环次数不确定时,则要用while循环语句2理解for循环的关键是理解计算机如何执行程序语句中第三步“ssi”,这个执行过程实际上是每次循环赋给s的值都比上一步增加一个“步长”,如此循环直至结束而while循环则是每次执行循环体之前,都要判断表达式是否为真,这样重复执行,直至表达式为假时跳过循环体部分而结束循环应注意跳出循环时对边界数值的检查用for循环时,要注意设定好循环变量的初值和终值,避免出现多一次循环或少一次循环的情况;用while循环时,一定要注意表达式的写法,当表达式为真时执行循环体,表达式为假时结束循环,不要出现表达式正好相反的错误1下列需用循环语句编写程
6、序的是()A输入x的值,输出yx23x的值By输入x的值,输出对应的函数值C求x的立方根D求1232 017的值解析:选D.D项中是求多项数值的和,且个数多,具有规律性,需用到循环语句2下列问题可以运用循环语句设计的个数为()求133239的和;比较a,b两个数的大小;对于分段函数,要求输入自变量,输出函数值;求平方值小于100的最大整数A0B1C2 D3解析:选C.和用到循环语句,和用到条件语句3以下程序表示的是求1的值其中处应填_S0;forSS1/i;endprint(%io(2),S);解析:由已知条件知for循环的初值为1,步长为2,终值为99.答案:i1:2:99, 学生用书P87
7、(单独成册)A基础达标1阅读下列程序,该程序执行循环体的次数为()A30次B31次C29次 D32次解析:选D.for循环中,变量初值为5,步长为5,终值为150,所以共执行循环体32次2下面程序的运行结果为()i0;S0;whileS20SSi;ii1;endiA6 B7C8 D9答案:B3以下程序的功能是()A计算310的值B计算355的值C计算310的值D计算12310的值解析:选B.程序的功能是计算3132333103 55.4已知如下程序,则其运行结果是()j1;while j*j100jj1;endjj1;jAjj1 Bj100Cj10 Dj9解析:选D.此程序是求使j2100的最
8、大正整数j.又102100,故输出结果为j9.5下面的程序运行后输出的结果是()A3 B7C15 D17解析:选C.当i1时,s0211;当i2时,s1213;当i3时,s3217;当i4时,s72115.6运行下面的程序输出的S值是_答案:157给定程序:I0;s0;whiles20,终止循环,此时输出I7.答案:78下面程序表达式为S_i1;S0;whilei10SS1/(2*i1);ii1;enddisp(S);解析:由循环体的循环过程可得结果答案:9编写一个程序,求132333439931003的值解:程序如下:S0;j1;fori1:1:100SSi3*j;j(1)*j;endpri
9、nt(%io(2),S);10执行如图所示的程序框图,输出的S值为多少?并由程序框图写出程序解:由程序框图,依次可得,i04,i1,S;i14,i2,S;i24,i3,S3;i34,i4,S2;i44,否,输出S2.即最后输出S的值为2.程序为:i0;S2;while i4ii1;S;endprint(%io(2),S);B能力提升11下列程序,若输入a3,b1,n5,则输出的结果为()ainput(“a”);binput(“b”);cinput(“c”);i1;while in2cab;ab;bc;ii1;endcA2 B3C4 D5解析:选B.当i1时,c3(1)2,a1,b2;当i2时,
10、c121,a2,b1;当i3时,c213,a1,b3;当i4时,因为43,所以此时循环结束,输出c3.12读程序回答下列问题:ninput(“n”);i1;S0;while inSS1/(i*(i1);ii1;endS(1)若输入n3,则输出的结果为_;(2)此程序对应的计算式子是_解析:(1)输入n3,当i1时,S0;当i2时,S;当i3时,S,结束循环,此时输出S.(2)此程序是用于计算的值答案:(1)(2)13给出30个数,1,2,4,7,11,其规律是第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,以此类推,要求计算这30个数的和,先将如图所给出的
11、程序框图补充完整,再依据程序框图写出程序(1)把程序框图补充完整:()_;()_(2)写出程序解:(1)()为i30;()为PPi.给出的是30个数相加,故i30,P表示后一个加数,比前一个多i.故PPi.填()i30()PPi.(2)程序:i1;P1;S0;whilei30SSP;PPi;ii1;endprint(%io(2);S)14(选做题)给出以下10个数:4,10,70,33,95,74,29,17,60,40.要求将其中大于40的数找出来,画出求解该问题算法的程序框图,并写出程序解:程序如下:for循环语句: for i1:10xinput(“x”);ifx40print(%io(2),x);endendwhile循环语句:i1;while i10xinput(“x”);ifx40print(%io(2),x);endii1;end