for循环语句.ppt_第1页
for循环语句.ppt_第2页
for循环语句.ppt_第3页
for循环语句.ppt_第4页
for循环语句.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全国计算机等级考试之 二级C语言,For 循环语句,for语句的一般形式如下:,for(表达式;表达式;表达式) 语句(即循环体),说明:其中,for为关键字。三个表达式可以为任何类型。一般情况下,表达式1是给循环变量赋初值部分。表达式2是循环控制条件。表达式是循环变量的修改部分,用来表达循环变量的增量,常用自加、自减运算。语句部分为循环体,可以是一条语句,也可以是复合语句和空语句。,for语句最易理解的形式: for(循环变量赋初值;循环条件;循环变量增值) 语句,For 循环语句,for语句的执行过程,先求解表达式1。 求解表达式2,若为真,执行步骤3,然后转到第4步执行;若为假,转到第5

2、步。 执行一次for循环体。 求解表达式3,转到第2步进行判断。 退出循环,执行后面的语句。,例 计算1100自然数之和,#include main() int i,sum=0; for(i=1;i=100;i+) sum+= i; printf(1+2+.+100=%dn,sum); ,该程序运行结果查看,for语句的执行过程,1)for语句中的表达式可以部分或全部省略,但两个“;”不可省略。,c)如果表达式2省略,即不判断循环条件,认为表达式2的值绐终为真,循环无终止地进行下去,成为死循环。为了避免死循环的出现可以在循体的内部加入条件判断,并用break退出循环。 如: int i,sum

3、=0; for(i=1;i+) if(i=100) sum+= i; else break; ,For 循环语句,有关for语句的说明,b)表达式1可以省略,此时应在for语句之前给出循环变量的初值。注意省略表达式1时,其后的分号不能省略。 如: int i=1,sum=0; for(;i=100;i+) sum+=i;,a)全部省略, 例如for( ; ; )printf(“*”);,部分省略,For 循环语句,d)表达式3也可以省略,但为了保证循环能正常结束,必须在循环体内加入对循环变量的修正语句。 如: for(i=1;i=100;) sum+= i; i+; ,e)可以省略表达式1和表

4、达式3,只有表达式2。 如: int i=1,sum=0; for(;i=100;) sum+= i; i+; ,有关for语句的说明,For 循环语句,2)三个表达式可以是逗号表达式。 如:int i,sum; for(sum=0,i=1;i=100;sum+=i,i+) ; for前面sum=0也可放在表达式1的位置,循环体中的语句也可放到表达式3的位置,这时循环体为一个空语句。,3)for语句的一般形式可以改写为while循环的形式: 表达式1; while( 表达式2) 语句 表达式3; ,有关for语句的说明,For 循环语句,While和do while语句,while语句和do-

5、while语句,While语句,形式如下: while(表达式) 语句,dowhile语句的形式: do 循环体语句 while(表达式);,例如:求1100自然数之和(while语句实现) #include main() int i=1,sum=0; while(i=100) /*循环条件*/ sum+=i; i+; /*循环变量增值*/ printf(1+2+.+100=%dn,sum); ,For 循环语句,程序示例,#include void main() float i, s; /*i,s需要定义为float型 */ for(i=1,s=0;i=10;i=i+0.5) s = s +

6、 i; printf(s=%fn,s); ,程序运行结果分析查看(在VC中打开),1. 有以下程序: #include main( ) int a = 1, b = 1; for( ; a-; ) b-; printf(%d,%dn, a, b); 程序运行后的输出结果是()。 A)-1,0 B)0,0 C)-1,-1 D)1,1,【解析】题干中语句for( ; a-; ),条件a-!=0先判断a!=0成立,则进入循环,然后a减1,起始a=1不等于0,满足条件进入for循环,然后a自减1为0,b自减1为0,继续循环;再跳回for语句时,a!=0不成立,不会进入循环,但是a也要自减1为-1,循环

7、结束;因此最后输出a=-1,b=0.因此答案为选项A。 【答案】A,真题链接,2.以下程序段中的变量已正确定义: for( i=0; i4; i+, i+ ) for( k=1; k3; k+ ); printf(* ); 程序段的输出结果是()。 A)* B)* C)* D)*,【解析】由于内层循环for( k=1; k3; k+)后面直接跟了空语句“;”,所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“*”。答案为选项C。 【答案】C,真题链接,3、有以下程序: #include main() int y=9; for( ; y0; y) if(y%3=0) printf(%d, -y); 程序的运行结果是()。 A)852 B)963 C)741 D)875421,A 【解析】第一次for循环,y的值为9,y%3的值为0,满足条件打印- - y,即先减1后打印,所以打印8;第二次for循环,y的值为7,y%3的值为1,不执行打印语句;第三次for循环,y的值为6,y%3的值为0,满足条件打印- -y,即先减1后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论