2013级 1.2.3_基本算法语句--循环语句
- 格式:ppt
- 大小:530.50 KB
- 文档页数:25
c语言中的循环语句C语言中的循环语句是程序设计中非常重要的一部分,它可以让程序重复执行某些操作,从而提高程序的效率和灵活性。
下面是我总结的10个常用的循环语句,希望对大家有所帮助。
1. for循环语句for循环语句是C语言中最常用的循环语句之一,它的语法格式如下:for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}其中,初始化表达式只会在循环开始时执行一次,条件表达式会在每次循环开始前进行判断,如果为真则执行循环体语句,否则跳出循环。
更新表达式会在每次循环结束后执行一次,然后再次进行条件判断。
2. while循环语句while循环语句也是C语言中常用的循环语句之一,它的语法格式如下:while (条件表达式){循环体语句;}其中,条件表达式会在每次循环开始前进行判断,如果为真则执行循环体语句,否则跳出循环。
3. do-while循环语句do-while循环语句和while循环语句类似,但是它的循环体语句至少会执行一次,它的语法格式如下:do{循环体语句;} while (条件表达式);其中,循环体语句会在条件表达式判断之前至少执行一次,然后再根据条件表达式进行判断,如果为真则继续执行循环体语句,否则跳出循环。
4. break语句break语句可以用来跳出循环,它的语法格式如下:break;当程序执行到break语句时,会立即跳出当前循环,继续执行下面的语句。
5. continue语句continue语句可以用来跳过当前循环中的某些语句,继续执行下一次循环,它的语法格式如下:continue;当程序执行到continue语句时,会跳过当前循环中的剩余语句,然后继续执行下一次循环。
6. goto语句goto语句可以用来跳转到程序中的某个标签处,它的语法格式如下:goto 标签名;其中,标签名是程序中的一个标识符,用来标记某个位置。
7. switch语句switch语句可以用来根据不同的条件执行不同的语句,它的语法格式如下:switch (表达式){case 常量1:语句1;break;case 常量2:语句2;break;...default:语句n;break;}其中,表达式的值会和每个case后面的常量进行比较,如果相等则执行对应的语句,如果没有匹配的常量则执行default后面的语句。
C语言三种循环语句三种基本的循环语句: for语句、while语句和do-while语句。
一、循环语句(一)、for循环它的一般形式为:for(<初始化>;<条件表过式>;<增量>)语句;初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。
这三个部分之间用;分开。
例如:for(i=1;i<=10;i++)语句;上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。
再重新判断,直到条件为假,即i>10时,结束循环。
注意:(1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。
(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。
省略了初始化,表示不对循环控制变量赋初值。
省略了条件表达式,则不做其它处理时便成为死循环。
省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。
(3).for循环可以有多层嵌套。
例如:for(;;) 语句;for(i=1;;i+=2) 语句;for(j=5;;) 语句;这些for循环语句都是正确的。
main(){int i,j;printf(i j );for(i=0;i<2;i++)for(j=0;j<3;j++)printf(%d %d ,i,j);}输出结果为:i j0 00 10 21 01 11 2用for循环求1+2+……+100的'和:main(){int sn=0,i;for(i=1;i<=100;i++)sn+=i; /*1+2+……+100*/printf(%d ,sn);}从程序可以看出,使用循环语句可以大大简化代码。
(二)、while循环它的一般形式为:while(条件)语句;while循环表示当条件为真时,便执行语句。
张喜林制1.2.3 循环语句教材知识检索考点知识清单1.在算法程序语言中一般通过来处理算法中的循环结构.2.Scilab程序语言中提供了两种循环语句:.3.for循环的格式为:,while循环的格式为要点核心解读1.循环语句(1)循环语句的概念,在程序处理中,经常需要对一条或一组语句重复执行多次,最终完成某项任务,这就是循环的概念,例如统计所有考生的成绩的总分需要一个人一个人地计算;寻找一批数据中的某一个,需要逐个地鉴别……这类处理的一个特点是对不同的运算对象进行若干次的相同运算或处理,这种处理模式在程序设计中是用循环结构来实现的.在Scilab程序语言中提供了两种循环语句,for循环和while循环.(3)for循环的一般格式2.循环语句的应用循环语句主要用来处理算法中的循环结构,在处理一些需要有规律地重复计算问题,如累加求和、累乘求积及其他问题时常常用到循环语句编写程序,用for 循环编写程序时要注意设定好循环变量的初值、步长和终值,避免出现多一次循环或少一次循环的情况,用while 循环编写程序时,一定要注意表达式的写法,当表达式为真时执行循环体,表达式为假时结束循环,以防出现表达式正好相反的错误.循环结构在生活中有着广泛的应用,用循环语句描述循环结构的算法简洁、方便.[例] 猴子第1天摘下若干个桃子,当即吃一半,还不过瘾,又多吃了一个.第2天早上又将剩下的桃子吃掉一半又多吃了一个.以后每天早上都吃了前一天剩下的一半还多一个,到第10天早上想再吃时,见只剩下一个桃子.求第1天共摘多少个桃子?[解析] 第10天为,110=s 第9天为,42)11(9=⨯+=s 第8天则为,102)14(8=⨯+=S ……第1天则为,2)1(21⨯+=S S 得到递推公式为,2)1(,1110⨯+==+n n s S s.9,,2,1 =n[答案] 根据思路,程序框图如图1-2 -3 -2所示, 根据框图,程序为:;1=i ;1=S e whi 1 ;10<i;2*)1(+=S S ;1+=i iend);),2((%S io nt np [点拨] 本题算法称为递推法,由前项推后项,递推公式重复运用,因此可用循环语句处理.典例分类剖析考点1 for 循环语句的编写[例1]设计一个计算997531⨯⨯⨯⨯⨯ 值的算法,画出程序框图,写出程序. [答案] 这是一个有规律的累乘问题,第一个数为1,以后每个数均比前一个数大2,共50个数相乘,因此可用循环结构设计算法,用循环语句编写程序, 算法步骤如下:Sl 令;1=S S2 令;1=I S3 令;I S S ⨯= S4 令;2+=I IS5 若,991≤那么执行S3;否则执行S6; S6 输出S程序框图如图1-2 -3 -3所示,[点拨] (1)由于是一个累乘问题,我们设定S初始值为l,所以程序中的第二行语句也可改写为for i=3:2:99,最后程序的运行结果是一样的.知道循环次数,常用for语句.(2)本题中的程序也可用while循环语句编写如下:1.编写程序计算2005的值,考点2 while循环语句的编写[例2] 标有l,2,3,4,5,6六个号码球,有一个最重的,写出模拟挑出最重球的程序.[答案] 设第一个球是最重的,然后与其他几个球依次比较,如有比第一个球重的,就交换过来.=i;1whi1 i< = 6e)((“输入小球重量”);a=inputii=i;1+endi;2==a();max i61<=i ewhi )(max i a if < );(max i a = end;1+=i iendmax);),2((%io nt np [点拨] 本题中有两个循环体),(max 1i a hk i i =+=注意循环语句的嵌套,未知循环次数常用while语句,,10000_______531.2>⨯⨯⨯⨯ 那么如何寻找满足条件的最小正整数呢?试写出解决此问题的算法,并写出程序,考点3 同一问题的两种语句处理[例3] 用两种语句写出求22210021+++ 的值的算法.[答案] 若用while 语句,循环终止条件为,100≤i 用for 语句,其步长为1,终值为100. e whi 1语句: for 语句:;1=i ;0=sum ,0=sum 010:1:1.=i for 100.1<=i e whi ;*i i sum sum +=;*i i sum sum += end;1+=i i );),2((%sum io nt n p end);),2((%sum io nt np [点拨] (1)在描述循环条件的算法时,若循环次数是明确的,两种语句均可使用,若循环次数不明确,一般用while 语句.(2)若用while 语句,循环终止条件为,100≤i 用for 语句其步长为1,终值为100. 3.编写求解下列问题的程序:;100014131211)1(+++++.10099433221)2(⨯++⨯+⨯+⨯考点4 循环结构在生活中的应用[例4]高-(3)班共有54名同学参加了数学竞赛,现在已有了这54名同学的竞赛分数.请设计算法,要求计算出竞赛成绩优秀的同学的平均分并输出(规定90分以上为优秀),画出程序框图,写出程序. [答案] 我们可以用循环结构控制输入54名同学的分数,用条件结构来判断分数是否高于90分,同时统计累加高于90分的成绩的总和和人数,从而求出平均分, 程序框图如图1.2 -3 -4所示.程序如下:[点拨]设计算法,画出程序框图,条件语句与循环同时运用.用while 语句,循环终止条件为.54≤i 4.某服装厂2007年的产值为2000万元,如果年生产增长率为5%,计算最早哪一年生产总值超过3000万元,画出程序框图,并写出程序.优化分层测训学业水平测试1.下面算法语句中,输出的结果为( ).;0=Sdo to x for .7..3.= begin ;x S S +=输出S . end25.A 18.B 7,6,5,4,3.C 25,18,12,7,3.D2.循环语句中的步长( ).A .可以省略B .不能省略C .只有步长为1时才可省略D .以上全错 3.循环语句“while 表达式循环体end”中说法正确的是( ).A .总是执行循环B .执行一次循环C .表达式为真,则执行循环D .遇到end 就结束 4.读算法语句:do to fori 31= begindo to forj 51= begin输出i 十f end则输出i*j 语句执行次数为 5.阅读算法语句:,1=w ;2=i repeat,*i w w = ;1+=i i 20001>w unti 输出.1-i该算法语句的意义为: . 6.编写61514131211-+-+-的运算程序, 高考能力测试(测试时间:45分钟测试满分:100分)一、选择题(本大题共8小题,每小题5分,共40分,在每小题给出的四个选项中,只有一项是符合题目要求的)1.下列关于for 循环的说法中错误的是( ).A .在for 循环中,循环表达式也称为循环体B .在for 循环中,步长为l ,可以省略不写,若为其他值,则不可省略C .理解for 循环的关键是理解为循环变量设定的初值、步长、终值D .在for 循环中“end”控制结束一次循环,开始一次新的循环 2.下列说法中正确的是( ).A .while 循环和for 循环的结构相同B .while 循环结构首先要求对表达式进行判断,如果表达式为真,则执行循环体部分C .while 循环每次开始执行循环体前,都要判断表达式是否为假D .while 循环每次开始执行循环体前,都要判断表达式是否为假,这样重复执行,一直到表达式的值为真时,就跳过循环体部分,重新判断表达式的值,直到循环结束3.(2010年惠州模拟题)下面的程序运行后,输出的结果为( ).[注:5)(MOD j a +是j +5“除以5的余数”]50.A 5.B 25.C 0.D,190:10:100.4-=forx 该程序共执行循环( ).A.29次 B .30次 C .28次 D .19次 5.当2=x 时,下面程序的运行结果是( ).;1=i;0=S 4.<=i while;1*+=X S S ;1+=i iend S3.A 7.B 15.C 17.D6.如图1-2 -3 -6流程图中,语句1(语句1与i 无关)将被执行的次数是( ).23.A 24.B 25.C 26.D7.执行下列程序时,计算机能输出的结果仅是15的是( ).)(;;;5:1;0.s disp end X s s f s A orx +===).(;;8,5:1;0.s disp end X s forx s B +=== end s disp x s s forX s C );(;,5:1;0.+=== )(;;,5:1;0.s disp end X s s krX s D +===8.(2011年北京高考题)执行如图1-2 -3 -7所示的程序框图,若输入A 的值为2,则输出的P 值为( ).2.A3.B4.C5.D二、填空题(本大题共4小题,每小题5分,共20分.把答案填在题后的相应位置)9.(2011年山东高考题)执行如图1-2 -3 -8所示的程序框图,输入,5,3,2==⋅=n m l 则输出的y 的值是10.(2011年江西高考题)如图1-2 -3 -9所示是某算法的程序框图,则程序运行后输出的结果是 . 1l.程序:以上程序运行后的结果是12.以下给出求99531⨯⨯⨯⨯ 的值的四个程序,其中正确的有(1)(2)(3)三、解答题(本题共4小题,每小题10分,共40分,解答须写出文字说明、证明过程和演算步骤)13.现欲求12151311-++++n 的和(其中n 的值由键盘输入),已给出了其程序框图(如图1 -2 -3 -10),请将其补充完整并设计出程序.14.已知,)(2x x f =把区间[0,1]十等分,设计程序求该函数在各分点处和区间端点的函数值.15.设计程序求π的近似值可以用以下公式:++=22221116π⋅++22131n 用上述公式求,62π即逐项进行累加,直到00001.012<n 为止(该项不累加),然后求出π的近似值.16.画出求平方值小于2000的最大整数的程序框图,并编写程序.。
一、选择题1.对当型循环结构叙述不正确的是( )A .当给定的条件成立(真)时,反复执行循环体,直到条件不成立(假)时,才停止循环B .当型循环有时也称“前测试型”循环C .当型循环结构对应的循环语句是UNTIL 语句D .任何一种需要重复处理的问题都可以用当型循环来实现[答案] C2.下列说法正确的是( )A .当型(WHILE )循环结构不能转化为直到型(UNTIL )循环结构B .当型(WHILE )循环结构先执行循环体,后判断条件C .当型(WHILE )循环结构先判断条件,后执行循环体D .以上说法都不正确[答案] C[解析] 当型循环是先判断条件后再决定是否执行循环体,直到型循环是先执行循环体,后判断条件,它们之间可以进行转化,故选C .3.下列需用循环语句编写程序的是( )A .输入x 的值,输出y =x 2-3x 的值B .y =⎩⎪⎨⎪⎧x -4,x>0,-x +1,x ≤0,输入x 的值,输出对应的函数值 C .求x 的立方根D .求5+6+7+8+…+101的值[答案]D4.下列程序的功能是()S=1i=1WHILE S<=2012i=i+2S=S×iWENDPRINT iENDA.计算1+3+5+…+2012B.计算1×3×5×…×2012C.求方程1×3×5×…×i=2012中的i值D.求满足1×3×5×…×i>2012的最小整数i[答案]D[解析]执行该程序可知S=1×3×5×…×i,当S≤2012开始不成立,即S>2012开始成立时,输出i,则求满足1×3×5×…×i>2012的最小整数i.5.(2012~2013·山东济南模拟)已知如下程序,其运行结果是()j=1WHILE j*j<100j=j+1WENDj=j-1PRINT“j=”;jENDA.j=j-1 B.j=100C.j=10 D.j=9[答案]D[解析]此程序是求使j2<100的最大正整数.又102=100,故输出结果为j=9.6.读下列两段程序:甲:i=1S=0WHILE i<=1000S=S+ii=i+1WENDPRINT SEND乙:i=1000S=0DOS=S+ii=i-1LOOP UNTIL i<1PRINT SEND对甲、乙程序和输出结果判断正确的是()A.程序不同,结果不同B.程序不同,结果相同C.程序相同,结果不同D.程序相同,结果相同[答案]B[解析]程序甲是计数变量i从1开始逐步递增直到i=1000时终止,累加变量从0开始,这个程序计算的是1+2+3+ (1000)程序乙是计数变量从1000开始逐步递减到i=1时终止,累加变量0开始,这个程序计算的是1000+999+…+1.但这两个程序是不同的.两个程序的输出结果都是S=1+2+3+…+1000=500500.[点拨]同一个问题可以有不同的程序,解决这类试题的关键是看分析程序是用哪种算法语句编制的.7.下面程序运行后输出结果错误的是()A.i=1s=0WHILE s<=10s=s+iWENDPRINT sEND输出结果为14 B.i=1 sum=0WHILE i<=10sum=sum+ii=i+1WENDPRINT“sum=”;sum END输出结果为55C.i=1sum=0WHILE i<=10i=i+1sum=sum+iWENDPRINT“sum=”;sum END输出结果为65 D.i=1 s=0WHILE s<=10s=s+iWENDPRINT sEND输出结果为14[答案]D[解析]A中控制的循环条件是s≤10,但每次循环先将计数变量i赋值i=i+1,后给s赋值s=s+i.从而循环结束后,s=2+3+4+5=14,最后输出s=14.B中控制循环的变量i从1变到10,每次循环,循环变量sum=sum+i,循环结束sum=1+2+3+…+10=55,并将其输出.C中控制循环的计数变量i从1变到10,但在每次循环中先给i 赋值i=i+1,然后才赋值sum=sum+i,故循环结束时,sum=2+3+4+…+11=65,最后输出sum.D中控制循环的条件是s≤10,第一次(i=1)循环后,s=0+1=1,第二次(i=2)循环后,s=1+2=3,第三次(i=3)循环后,s=3+3=6,第四次(i=4)循环后,s=6+4=10仍满足条件s≤10,故再执行第五次(i=5)循环,s=10+5=15,最后输出s=15.故选D.8.下面是求1~1000内所有偶数的和的程序,把程序框图补充完整,则()A.①处为S=S+i,②处为i=i+1.B.①处为S=S+i,②处为i=i+2.C.①处为i=i+1,②处为S=S+i.D.①处为i=i+2,②处为S=S+i.[答案]B[解析]程序框图求的是1~1000内所有偶数的和,故i步长为2,应有i=i+2,排除A、C;i初值为2,S应加的第一个偶数为2,而不是4,故语句S=S+i应在i=i+2的前面,排除D.二、填空题9.在WHILE语句中,是当条件________时执行循环体,而在UNTIL语句中,是当条件________时执行循环体.[答案]满足不满足10.看这个程序,试问最后i的值等于________.i=1sum=0DOsum=sum+ii=i+1LOOP UNTIL i>10PRINT sumEND[答案]1111.写出下列程序的运行结果:(1)I=1K=6WHILE I<=6K=K-0.5PRINT KI=I+1WENDEND________(2)i=1s=0WHILE s<=10i=i+1s=s+iPRINT sWENDEND________[答案](1)5.5,5,4.5,4,3.5,3(2)2,5,9,14[解析]本题考查对当型循环程序的理解,要求据程序语句,写出运行的结果.(1)中控制循环的变量I从1每次增加1变到6,每次循环中变量K的值减小0.5并输出,故结果输出6个数5.5,5,4.5,4,3.5,3.(2)每次循环都要将s的值输出,故(2)的答案为:2,5,9,14.12.下面程序的功能是________.INPUT“n=”;nS=0i=1WHILE i<=nS=S+1/(i*(i+1))i=i+1WENDPRINT SEND[答案]从键盘输入n的值,输出11×2+12×3+13×4+…+1n(n+1)的值.[解析]控制循环的变量i初值1,步长1,终值n.累加变量S每次循环都加上1i(i+1),∴S=11×2+12×3+…+1n(n+1).三、解答题13.设计一个算法计算1×3×5×7×…×99值的算法,画上程序框图,写出程序.[分析]本题是一个累乘求积的问题,可采用循环语句编写程序.[解]算法步骤如下:第一步:S=1;第二步:i=3;第三步:S=S×i;第四步:i=i+2;第五步:判断i是否大于99,若是转到第六步;否则转到第三步,继续执行第三步,第四步,第五步;第六步:输出S;第七步:算法结束.相应的程序框图如图所示.相应的程序如下:S=1i=3DOS=S*ii=i+2LOOP UNTIL i>99PRINT SEND[点评](1)这是一个有规律的累乘问题,第一相数为1,以后每个数比前一个数大2,共50个数相乘,因此可用循环结构设计算法,用循环语句编写程序.(2)本题中算法程序也可用WHILE语句编写:S=1i=1WHILE i<=99S=S*ii=i+2WENDPRINT SEND14.下面程序的功能是输出1~100间的所有偶数.程序:i=1DOm=i MOD 2IF__①__ THENPRINT iEND IF②__LOOP UNTIL i>100END(1)试将上面的程序补充完整.(2)改写为WHILE型循环语句.[解析](1)①m=0②i=i+1(2)改写为WHILE型循环程序如下:i=1WHILE i<=100m=i MOD 2IF m=0THENPRINT iEND IFi=i+1WENDEND15.某高中男子体育小组的100m赛跑成绩(单位:s)为:12.1,13.2,12.7,12.8,12.5,12.4,12.7,11.5,11.6,11.7,从这些成绩中搜索出小于12.1 s的成绩,并画出程序框图,编写相应程序.[解析]程序框图如图所示:程序算法如下:i=1WHILE i<=10INPUT GiIF Gi<12.1THENPRINT GiEND IFi=i+1WENDEND16.某商场第一年销售计算机5000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到30000台?[分析]根据题意,每年销售量比上一年增加的百分率相同,设总和为S,n年达到30000台.第一年销售了5000台;第二年销售了5000+5000×10%=5000(1+10%)(台);第三年销售了5000(1+10%)+5000(1+10%)×10%=5000(1+10%)2(台)……第n 年销售了5000(1+10%)n -1(台)总和S =5000+5000(1+10%)+5000(1+10%)2+…+5000(1+10%)n -1.[解析] 程序框图如图所示.程序如下: m=5000S =0i =0WHILE S <30000S =S +m m =m *(1+0.1)i =i +1WENDPRINT iEND[点评] (1)循环控制条件是总和小于30000台.(2)本题中第n年的销售量为5000(1+10%)n-1.(3)S表示总销售量,即前n年销售量之和.(4)i从0开始计算,如果从1开始则最后多出一年,因为在循环体中,i=i+1后才判断条件.。
1.2.3循环语句基础巩固一、选择题1.有人编写了下列程序,则()A.输出结果是1B.能执行一次C.能执行10次D.是“死循环”,有语法错误[答案] D[解析]从循环语句的格式看,这个循环语句是直到型循环语句,当满足条件x>10时,终止循环.但是第一次执行循环体后x=1,由于x=1>10不成立,则再次执行循环体,执行完成后x=1,则这样无限循环下去,是一个“死循环”,有语法错误,循环终止的条件永远不能满足.2.(2015·山东济南模拟)已知如下程序,其运行结果是()j=1WHILE j*j<100j=j+1WENDj=j-1PRINT“j=”;jENDA.j=j-1 B.j=100C.j=10 D.j=9[答案]D[解析]此程序是求使j2<100的最大正整数.又102=100,故输出结果为j=9.3.下图所示的程序运行后,输出的i的值等于()i=0S=0DOS=S+ii=i+1LOOP WHILE S<=20PRINT iENDA.9 B.8C.7 D.6[答案] C[解析]第一次:S=0+0=0,i=0+1;第二次:S=0+1=1,i=1+1=2;第三次:S=1+2=3,i=2+1=3;第四次:S=3+3=6,i=3+1=4;第五次:S=6+4=10,i=4+1=5;第六次:S=10+5=15,i=5+1=6;第七次:S=15+6=21,i=6+1=7;因为S=21>20,所以输出i=7.4.下列程序的功能是()S=1i=1WHILE S<=2012i=i+2S=S×iWENDPRINT iENDA.计算1+3+5+…+2012B.计算1×3×5×…×2012C.求方程1×3×5×…×i=2012中的i值D.求满足1×3×5×…×i>2012的最小整数i[答案] D[解析]执行该程序可知S=1×3×5×…×i,当S≤2012开始不成立,即S>2012开始成立时,输出i,则求满足1×3×5×…×i>2012的最小整数i.5.(2015·吉林长春期末)设计一个计算1×3×5×7×9×11×13的算法.下面所给出的程序中,①处不能填入的数是()A.13 B.13.5C.14 D.14.5[答案] A[解析]当填i<13时,i值顺次执行的结果是5,7,9,11,当执行到i=11时,下次就是i =13,这时要结束循环,因此计算的结果是1×3×5×7×9×11,故不能填13,但填的数字只要超过13且不超过15均可保证最后一次循环时,得到的计算结果是1×3×5×7×9×11×13.6.读下列两段程序:甲:i=1S=0WHILE i<=1000S=S+ii=i+1WENDPRINT SEND乙:i=1000S=0DOS=S+ii=i-1LOOP UNTIL i<1PRINT SEND对甲、乙程序和输出结果判断正确的是()A.程序不同,结果不同B.程序不同,结果相同C.程序相同,结果不同D.程序相同,结果相同[答案] B[解析]程序甲是计数变量i从1开始逐步递增直到i=1000时终止,累加变量从0开始,这个程序计算的是1+2+3+…+1000;程序乙是计数变量从1000开始逐步递减到i=1时终止,累加变量0开始,这个程序计算的是1000+999+…+1.但这两个程序是不同的.两个程序的输出结果都是S=1+2+3+…+1000=500500.[点拨]同一个问题可以有不同的程序,解决这类试题的关键是看分析程序是用哪种算法语句编制的.二、填空题7.写出下列问题的程序时,需用循环语句的是________.①用二分法求x 2-2=0的近似根;②对任意给定的一个大于1的整数n ,判断n 是否为质数;③输入一个实数,输出它的相反数;④输入n 的值,输出1+12+13+ (1)的值. [答案] ①②④[解析] 本题考查循环语句的使用条件.对于③,输入一个实数x 后,只需要输出-x 即可,不需用循环语句.8.(2015·福建省厦门一中月考)如图程序中,要求从键盘输入n ,求1+2+3+…+n 的和,则横线上缺的程序项是①________,②________.[答案] n i <=n[解析] 本题综合考查程序的设计和功能,着重考查了循环语句中条件的使用.程序应先输入一个n 的值,确定要计算前多少项的和,②处应确定计数变量i 满足的条件,即确定终止条件.三、解答题9.设计一个算法计算1×3×5×7×…×99值的算法,画出程序框图,写出程序.[分析] 本题是一个累乘求积的问题,可采用循环语句编写程序.[解析] 算法步骤如下:第一步:S =1;第二步:i =3;第三步:S =S ×i ;第四步:i =i +2;第五步:判断i 是否大于99,若是转到第六步;否则转到第三步,继续执行第三步,第四步,第五步;第六步:输出S ;第七步:算法结束.相应的程序框图如图所示.相应的程序如下:S=1i=3DOS=S*ii=i+2LOOP UNTIL i>99PRINT SEND[点评](1)这是一个有规律的累乘问题,第一个数为1,以后每个数比前一个数大2,共50个数相乘,因此可用循环结构设计算法,用循环语句编写程序.(2)本题中算法程序也可用WHILE语句编写:S=1i=1WHILE i<=99S=S*ii=i+2WENDPRINT SEND10.下面程序的功能是输出1~100间的所有偶数.程序:i=1DOm=i MOD 2IF__①__ THENPRINT iEND IF②__LOOP UNTIL i>100END(1)试将上面的程序补充完整.(2)改写为WHILE型循环语句.[解析](1)①m=0②i=i+1(2)改写为WHILE型循环程序如下:i=1WHILE i<=100m=i MOD 2IF m=0THENPRINT iEND IFi=i+1WENDEND能力提升一、选择题1.下面的程序运行后,输出的结果为()A.13,7 B.7,4C.9,7 D.9,5[答案] C[解析]直接根据当型循环语句的执行情况进行求解即可.该程序是当型循环,根据程序可知最后一次循环时,s=2×5-1=9,i=5+2=7.故输出的结果为9,7.2.如果以下程序运行后输出的结果是132,那么在程序中UNTIL后面的条件应为()i =12S =1DO S =S*i i =i -1LOOP UNTIL 条件PRINT SENDA .i>11B .i>=11C .i<=11D .i<11[答案] D[解析] 程序执行的功能是S =12×11×10×…,输出结果是132,即循环体只执行了两次,即i =10时,就结束了循环.3.下面程序运行后输出结果错误的是( )[答案] D[解析] A 中控制的循环条件是s ≤10,但每次循环先将计数变量i 赋值i =i +1,后给s 赋值s =s +i .从而循环结束后,s =2+3+4+5=14,最后输出s =14.B 中控制循环的变量i 从1变到10,每次循环,循环变量sum =sum +i ,循环结束sum =1+2+3+…+10=55,并将其输出.C 中控制循环的计数变量i 从1变到10,但在每次循环中先给i 赋值i =i +1,然后才赋值sum =sum +i ,故循环结束时,sum =2+3+4+…+11=65,最后输出sum.D 中控制循环的条件是s ≤10,第一次(i =1)循环后,s =0+1=1,第二次(i =2)循环后,s =1+2=3,第三次(i =3)循环后,s =3+3=6,第四次(i =4)循环后,s =6+4=10仍满足条件s ≤10,故再执行第五次(i =5)循环,s =10+5=15,最后输出s =15.故选D.4.下面是求1~1000内所有偶数的和的程序,把程序框图补充完整,则()A .①处为S =S +i ,②处为i =i +1.B .①处为S =S +i ,②处为i =i +2.C .①处为i =i +1,②处为S =S +i .D .①处为i =i +2,②处为S =S +i .[答案] B[解析] 程序框图求的是1~1000内所有偶数的和,故i 步长为2,应有i =i +2,排除A 、C ;i 初值为2,S 应加的第一个偶数为2,而不是4,故语句S =S +i 应在i =i +2的前面,排除D.二、填空题5.下面程序的功能是________.INPUT “n =”;nS =0i =1WHILE i <=nS =S +i i + i =i +1WENDPRINT SEND[答案] 从键盘输入n 的值,输出11×2+12×3+13×4+…+1n n +的值.[解析] 控制循环的变量i 初值1,步长1,终值n .累加变量S 每次循环都加上1i i +, ∴S =11×2+12×3+…+1n n +.6.下面为一个求20的数的平均数的程序,在横线上应填充的语句为________.[答案]i>20[解析]题中循环语句是直到型.循环语句,其循环终止的条件是条件成立,由于是要输出20个数,所以填i>20.三、解答题7.(2015·黑龙江省哈尔滨三中月考)给出30个数:Array 1,2,4,7,11,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依次类推,要计算这30个数的和,现在已知该问题的算法的程序框图如图所示.(1)请在图中判断框和处理框内填上合适的语句,使之能实现该题的算法功能;(2)根据程序框图写出程序.[探究]本题的算法中涉及三个变量i,p,S,注意各个变量的作用;i为计数变量,另外也为p进行了递加;p表示了参与求和的各个数;S为累加变量,其作用是得到最终的结果.[解析](1)该算法使用了当型循环结构,因为是求30个数的和,故循环体应执行30次,其中i是计数变量,因此判断框内的条件就是限制计数变量i的,故应为i≤30.算法中的变量p实质是表示参与求和的数,由于它也是变化的,且满足第i个数比其前一个数大i-1,第i +1个数比其前一个数大i,故处理框内应为p=p+i.故①处应填i≤30?;②处应填p=p+i.(2)根据程序框图,可设计如下程序:p =1S =0WHILE i <=30S =S +p p =p +ii =i +1WENDPRINT SEND8.(2015·安徽马鞍山调研)用分期付款的方式购买价格为1150元的冰箱,如果购买时先付150元,以后每月付50元,加上欠款的利息,若一个月后付第一个月的分期付款,月利率为1%,那么购买冰箱的钱全部付清后,实际共付出多少元?画出程序框图,写出程序.[思路点拨] 本题实质上是求一系列有规律的数的和,故可用循环语句来实现,算法语句的实际应用就是将实际问题转化为函数问题,进而转化为算法问题,写出算法语句.[解析] 购买时付款150元,余款1000元分20次付清,每次付款数组成一个数列{a n }. a 1=50+(1150-150)×1%=60,a 2=50+(1150-150-50)×1%=59.5,…,a n =50+[1150-150-(n -1)×50]×1%=60-12(n -1)(n =1,2,…,20). ∴a 20=60-12×19=50.5. 总和S =150+60+59.5+…+50.5=1255(元).程序框图如图.程序:专业文档a=150m=60S=0S=S+ai=1WHILE i<=20S=S+mm=m-0.5i=i+1WENDPRINT S END珍贵文档。
循环语句c语言
循环语句是一种控制流语句,用于重复执行一系列语句。
在C语言中,常用的循环语句有for循环、while循环和do-while循环。
1. for循环:
for循环具有循环变量的初始化、循环条件的判断和循环变量的更新三个部分,形式如下:
```
for (初始化;循环条件;更新) {
//需要重复执行的代码
}
```
具体执行过程为:首先进行初始化,然后检查循环条件,如果条件为真,则执行循环体中的代码,然后更新循环变量,再次检查循环条件,重复上述步骤,直到循环条件为假时结束循环。
2. while循环:
while循环只有循环条件一部分,形式如下:
```
while (循环条件) {
//需要重复执行的代码
}
```
执行过程为:首先检查循环条件,如果为真,则执行循环体中的代码,然后再次检查循环条件,重复上述步骤,直到循环条件为假时结束循环。
3. do-while循环:
do-while循环和while循环相似,只是在循环体后面有一个循环条件的判断,形式如下:
```
do {
//需要重复执行的代码
} while (循环条件);
```
执行过程为:首先执行循环体中的代码,然后在循环条件为真时再次执行循环体中的代码,重复上述步骤,直到循环条件为假时结束循环。
循环语句可以根据需要灵活地控制循环的次数或循环的条件,还可以结合条件语句和跳转语句来实现更复杂的控制逻辑。
同时,可以在循环体中使用break语句提前结束循环,或使用continue语句跳过当前循环的剩余代码。
循环语句在编写程序时经常使用,可以提高代码的复用性和效率。
苏教版高中高二数学必修3《基本算法语句》教案及教学反思一、教案设计1.1 教学目标•掌握循环语句的使用方法•掌握条件语句的使用方法•学会使用算法设计解决问题•加深对于计算机基本概念和基本算法的理解1.2 教学重点•循环语句•条件语句•算法设计1.3 教学难点•如何将实际问题转化为计算机可处理的问题•如何编写复杂的算法1.4 教学内容1.循环语句•执行次数确定的循环:“for”语句•执行次数不确定的循环:“while”语句•“while”语句与“for”语句的比较2.条件语句•“if”语句•“if-else”语句•“if-else”嵌套语句•“switch”语句3.算法设计•算法的概念及基本特点•模拟算法•贪心算法•分治算法•动态规划算法•回溯算法1.5 教学过程1.导入:教师先介绍循环语句、条件语句以及算法设计的概念,以“小陈去超市买东西”为例子来引入说解决问题也会用到类似的算法。
2.准备:为了让学生更好的理解,先列举一些常见的算法问题,如不借助任何辅助内存,如何在一列数中找到最大的数?3.实操:让学生分别用for、while来编写求1-100和的程序,并比较for和while的区别。
4.拓展:让学生设计一个命令行界面的计算器,介绍if/else、switch等条件语句的使用方法。
5.总结:在学生练习完这些算法后,教师就应该让学生自行思考算法问题的设计方法,并通过优化算法提高执行效率。
二、教学反思教学效果本节课的教学效果还不错,学生们都能够掌握循环语句和条件语句的使用方法,并在练习中逐渐掌握了算法设计的基本方法和思路。
此外,让学生自主思考算法问题的设计方法也起到了良好的效果,学生们的创造力以及掌握算法的能力都得到了提高。
教学难点本节课的教学难点是如何将实际问题转化为计算机可处理的问题,以及如何编写复杂的算法。
初步策略是通过实际问题的演示,让更多的学生理解为什么要使用算法。
学生反馈通过调查问卷和讨论,学生们发现这节课解释了许多过去难以理解的概念。