c语言循环语句和循环控制例题解析
C语言 第五章-循环结构程序设计
执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
(完整版)C语言循环结构练习题集带答案解析
第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。
A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。
A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。
int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。
A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。
c语言:循环控制语句
循环语句=======知识点:while循环的使用do-while循环的使用for循环的使用continue和break的使用一、while循环while(表达式){语句}【逻辑】当程序执行到while语句,首先计算表达式,如果为假,跳出结构。
如果为真,执行语句;执行语句之后,在计算表达式,如果为真,在执行语句,在计算表达式,直到表达式为假,跳出。
【死循环】不能跳出,永远执行的循环称为死循环,如while(1){printf(“sixunhuan!\n”);}例,使用while打印5个hello worldint i=0;while(i++ <5){printf(“%d\n”,i);printf(“hello world!\n”);}//printf(“—%d\n”,i);【注】条件i++<5,先比较i<5是否成立,在执行i++,如果i<5成立,进入循环,否则跳出循环,无论该条件是否成立,都会执行i++。
【注】第一次执行i++,该表达式的值是0,而执行之后,i的值为1。
while(i<5){printf(“%d\n”,i++);printf(“hello world!\n”);}练习8、打印1—100中每个整数。
关键字break 跳出循环continue 结束本次循环,进入下一次循环。
int i=0;while(i++<100){if(i%7==0) //碰到七的倍数跳出循环。
break; //break无视if,跳出while循环。
printf(“%d\n”,i);}//打印1到100中所有整数,跳过7的倍数。
int i=0;while(i++<100){if(i%7==0) //碰到7的倍数,结束本次循环,继续下一次循环continue; //continue无视if,结束本次while循环。
printf(“%d\n”,i);}练习9、找出100以下所有带7和7的倍数的正整数。
c语言for循环语句例题及解析
标题:深度解析C 语言中的 for 循环语句及例题在C 语言编程中,for 循环语句是最常用的循环结构之一。
它可以让程序重复执行一段代码,直到达到指定的条件。
在本文中,我将深入探索 C 语言中 for 循环语句的概念、语法结构和实际应用,并通过例题解析帮助您更好地理解和掌握这一重要的编程知识。
1. for 循环语句的基本结构在C 语言中,for 循环语句的基本结构如下:```for (初始化表达式; 条件表达式; 更新表达式){循环体语句;}```其中,初始化表达式用于初始化循环变量的初始值;条件表达式是循环执行的条件,如果条件为真,则执行循环体语句;更新表达式用于更新循环变量的值,以便控制循环的次数。
2. for 循环语句的实际应用下面通过一个简单的例题来演示 for 循环语句的实际应用场景:```#include <stdio.h>int main() {int i;for (i=1; i<=5; i++) {printf("This is iteration %d\n", i);}return 0;}```在以上示例中,我们使用 for 循环语句实现了输出 "This is iteration i" 的功能,其中 i 从 1 到 5 依次递增。
通过这个例题,我们可以清晰地看到 for 循环语句的执行过程和效果。
3. for 循环语句的深入解析在实际编程中,for 循环语句还可以嵌套使用,或者与 break、continue 等关键字配合使用,以实现更复杂的控制流程。
我们还可以在条件表达式中使用逻辑运算符或者关系运算符,以实现更灵活的循环控制。
这些深入的应用将在后续的例题中逐一讲解。
总结 & 理解通过本文的深度解析和相关例题的讲解,相信您已经对 C 语言中的for 循环语句有了更加全面和深入的了解。
在实际开发中,for 循环语句是必不可少的一部分,熟练掌握它将有助于提高编程效率和代码质量。
C语言中的循环结构
C语言中的循环结构循环结构是编程中常用的控制结构之一,它允许程序重复执行特定的代码块,直到满足某个条件为止。
在C语言中,有三种主要的循环结构:`for`循环、`while`循环和`do-while`循环。
首先,让我们来看一下`for`循环。
`for`循环是C语言中最常用的循环结构之一,它通常用于已知循环次数的情况。
`for`循环的语法如下:```for (初始化表达式; 条件表达式; 更新表达式) {// 循环体}```其中,初始化表达式用于初始化循环计数器,条件表达式用于判断循环是否继续执行,更新表达式用于更新循环计数器。
例如,下面的代码展示了一个简单的`for`循环,它会打印1到5的数字:```for (int i = 1; i <= 5; i++) {printf("%d\n", i);}```接下来,让我们来看一下`while`循环。
`while`循环用于在满足条件的情况下重复执行代码块,直到条件不再成立。
`while`循环的语法如下:while (条件表达式) {// 循环体}````while`循环会在每次循环开始前先检查条件表达式,如果条件为真,则执行循环体。
例如,下面的代码展示了一个简单的`while`循环,它会打印1到5的数字:```int i = 1;while (i <= 5) {printf("%d\n", i);i++;}```最后,让我们来看一下`do-while`循环。
`do-while`循环与`while`循环类似,不同之处在于`do-while`循环会先执行一次循环体,然后再检查条件是否成立。
`do-while`循环的语法如下:```do {// 循环体} while (条件表达式);`do-while`循环会先执行循环体,然后再检查条件表达式。
即使条件不成立,循环体至少会被执行一次。
例如,下面的代码展示了一个简单的`do-while`循环,它会打印1到5的数字:```int i = 1;do {printf("%d\n", i);i++;} while (i <= 5);```总的来说,循环结构在C语言中是非常重要的,它可以使程序更加灵活和高效。
while循环语句例题及解析
题目:while循环语句例题及解析在编程语言中,while循环是一种常见的循环语句,它能够根据给定的条件重复执行一段代码。
通过while循环,开发者可以实现对一个条件的反复检查,并在满足条件时执行相应的操作。
本文将通过一些例题及其解析,帮助读者更好地理解和掌握while循环的用法和特点。
1. 例题1:使用while循环计算1到100的和给定一个整数n,计算1到n的和。
当n=100时,应计算1+2+3+...+100的结果。
解析:这是一个经典的求和问题,可以通过while循环轻松实现。
我们需要一个变量sum来存储累加的结果,初始值为0。
通过while循环,对从1到n的数字依次累加到sum中,直到累加到n为止。
```pythonn = 100sum = 0i = 1while i <= n:sum += ii += 1print("1到d的和为:d" (n, sum))```在上述代码中,我们使用了变量n来表示需要计算的范围,sum来存储累加的结果,i作为循环的控制变量。
通过while循环,当i小于等于n时,执行累加操作并将i递增1。
最终输出1到100的和为5050。
2. 例题2:使用while循环找出100以内的所有质数给定一个整数n,找出所有小于等于n的质数。
当n=100时,应找出所有小于等于100的质数。
解析:质数是指除了1和本身外,没有其他正因子的数。
在这个例题中,我们可以利用while循环逐个检查1到n之间的每个数,判断其是否为质数。
具体的算法思路如下:- 我们需要一个列表prime_list来存储所有找到的质数,初始为空列表。
- 我们使用while循环,从2开始逐个判断每个数是否为质数。
对于每个数i,从2开始逐个检查是否存在能整除i的数,若不存在,则将i加入到prime_list中。
- 输出prime_list中找到的所有质数。
```pythonn = 100i = 2prime_list = []while i <= n:j = 2while j <= (i/j):if i j == 0:breakj += 1if j > i/j:prime_list.append(i)i += 1print("100以内的质数有:", prime_list)```在上述代码中,我们先对每个数i进行了从2到i的遍历,通过while 循环对每个数遍历寻找质数。
c语言循环控制语句
c语⾔循环控制语句循环控制结构(⼜称重复结构)是程序中的另⼀个基本结构.在实际问题中,常常需要进⾏⼤量的重复处理,循环结构可以使我们只写很少的语句,⽽让计算机反复执⾏,从⽽完成⼤量类同的计算.C语⾔提供了while语句、do...while语句和for语句实现循环结构.3.4.1while语句while语句是当型循环控制语句,⼀般形式为:while<表达式>语句;语句部分称为循环体,当需要执⾏多条语句时,应使⽤复合语句.while语句的流程图见图3-8,其特点是先判断,后执⾏,若条件不成⽴,有可能⼀次也不执⾏.[例3-11]求n!分析:n!=n*(n-1)*(n-2)*..2*1,0!=1.即S0=1,Sn=Sn-1*n.可以从S0开始,依次求出S1、S2、...Sn.统⼀令S等于阶乘值,S的初值为0!=1;变量i为计数器,i从1变到n,每⼀步令S=S*i,则最终S中的值就是n!.流程图见图3-9,程序如下:考察图3-9中循环部分的流程图可以看出,在循环前各变量应有合适的值(s=1),另外,控制循环结束的变量(此处为i)必须在循环体中被改变,否则,循环将⽆限进⾏下去,成为死循环.本题中,将多项式的每⼀项⽤t表⽰,s代表符号,在每⼀次循环中,只要改变s、n的值,就可求出每⼀项t.⼀般情况下,while型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,⽽且该表达式的值会在循环中被改变,如同例3-12的情况⼀样.3.4.2do...while语句在C语句中,直到型循环的语句是do...while,它的⼀般形式为:do语句while<表达式>其中语句通常为复合语句,称为循环体.do...while语句的流程图见图3-10,其基本特点是:先执⾏后判断,因此,循环体⾄少被执⾏⼀次.但需要注意的是,do...while与标准的直到型循环有⼀个极为重要的区别,直到型循环是当条件为真时结束循环,⽽do...while 语句恰恰相反,当条件为真时循环,⼀旦条件为假,⽴即结束循环,请注意do...while语句的这⼀特点.例[3-13]计算sin(x)=x-x3/3!+x5/5!-x7/7!+...直到最后⼀项的绝对值⼩于1e-7时为⽌.分析:这道题使⽤递推⽅法来做.让多项式的每⼀项与⼀个变量n对应,n的值依次为1,3,5,7,...,从多项式的前⼀项算后⼀项,只需将前⼀项乘⼀个因⼦:(-x2)/((n-1)*n)⽤s表⽰多项式的值,⽤t表⽰每⼀项的值,程序如下:#include# includem a i n ( ){double s,t,x ;int n ;printf("please input x :");scanf("%lf",&x);t=x;n=1;s=x;do{n=n+2;t=t*(-x*x)/((float)(n)-1)/(float)(n);s=s+t;}while(fabs(t)>=1e-7);printf("sin(%f)=%lf,"x,s);}运⾏结果如下:RUN?pleaseinputx:1.5753?sin(1.575300)=0.999990RUN?pleaseinputx:-0.65?sin(-0.650000)=-0.6051863.4.3for语句for语句是循环控制结构中使⽤最⼴泛的⼀种循环控制语句,特别适合已知循环次数的情况.它的⼀般形式为:for(<表达式1>;<表达式2>;<表达式3>)语句for语句很好地体现了正确表达循环结构应注意的三个问题:1)控制变量的初始化.2)循环的条件.3)循环控制变量的更新.表达式1:⼀般为赋值表达式,给控制变量赋初值;表达式2:关系表达式或逻辑表达式,循环控制条件;表达式3:⼀般为赋值表达式,给控制变量增量或减量.语句:循环体,当有多条语句时,必须使⽤复合语句.for循环的流程图如图3-11,其执⾏过程如下:⾸先计算表达式1,然后计算表达式2,若表达式2为真,则执⾏循环体;否则,退出for 循环,执⾏for循环后的语句.如果执⾏了循环体,则循环体每执⾏⼀次,都计算表达式3,然后重新计算表达式2,依此循环,直⾄表达式2的值为假,退出循环.[例3-14]计算⾃然数1到n的平⽅和.# include# includemain ( ){int i;float s;printf("please input n :");scanf("%d",&n);s=0.0;for(i=1;i<=n;i++)s=s+(float)(i)*(float)(i);printf("1*1+2*2+...+%d*%d=%f\,nn",n,s);}运⾏结果如下:RUNplease input n:51*1+2*2+...+5*5=55.000000for语句的⼏种格式for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略.a.for(;;)语句;这是⼀个死循环,⼀般⽤条件表达式加break语句在循环体内适当位置,⼀旦条件满⾜时,⽤break语句跳出for循环.例如,在编制菜单控制程序时,可以如下:for(;;){printf("please input choice(Q=Exit):");显/*⽰菜单语句块:*/scanf("%c",&ch);if(ch=='Q')or(ch=='q')break;语/*句段*/}b.for(;表达式2;表达式3)使⽤条件是:循环控制变量的初值不是已知常量,⽽是在前⾯通过计算得到,例如:i=m-n;for(;ic.for(表达式1;表达式2;)语句⼀般当循环控制变量⾮规则变化,⽽且循环体中有更新控制变量的语句时使⽤.例如:for(i=1;i<=100;){i=i*2+1;}d.for(i=1,j=n;i在for语句中,表达式1、表达式3都可以有⼀项或多项,如本例中,表达式1同时为i和j 赋初值,表达式3同时改变i和j的值.当有不⽌⼀项时,各项之间⽤逗号“,”分隔.另外,C语⾔还允许在循环体内改变循环变量的值,这在某些程序的设计中是很有⽤的.到此,我们已经学习了C语⾔中三种循环控制语句while、do...while和for语句,下⾯再讨论两个问题:三种语句的选⽤同⼀个问题,往往既可以⽤while语句解决,也可以⽤do...while或者for语句来解决,但在实际应⽤中,应根据具体情况来选⽤不同的循环语句,选⽤的⼀般原则是:1)如果循环次数在执⾏循环体之前就已确定,⼀般⽤for语句;如果循环次数是由循环体的执⾏情况确定的,⼀般⽤while语句或者do...while语句.2)当循环体⾄少执⾏⼀次时,⽤do...while语句,反之,如果循环体可能⼀次也不执⾏,选⽤while语句.循环的嵌套⼀个循环的循环体中有另⼀个循环叫循环嵌套.这种嵌套过程可以有很多重.⼀个循环外⾯仅包围⼀层循环叫⼆重循环;⼀个循环外⾯包围两层循环叫三重循环;⼀个循环外⾯包围多层循环叫多重循环.三种循环语句for、while、do...while可以互相嵌套⾃由组合.但要注意的是,各循环必须完整,相互之间绝不允许交叉.如下⾯这种形式是不允许的:do{for(;;){......}while();}[例3-15]打印8⾏7列的星形矩阵.流程图见图3-12,程序如下:#includemain(){inti,j;for(i=0;i<8,i++)/*控制⾏*/{for(j=0;j<7>;j++)/*控制列*/printf("*");printf("\n");/*换⾏*/}}打印结果如下:RUN********************************************************将程序中for(j=0;j<7;j++)改为for(j=0;j打印三⾓形.3.4.4break与continue语句有时,我们需要在循环体中提前跳出循环,或者在满⾜某种条件下,不执⾏循环中剩下的语句⽽⽴即从头开始新的⼀轮循环,这时就要⽤到break和continue语句.1.break语句在前⾯学习switch语句时,我们已经接触到break语句,在case⼦句执⾏完后,通过break 语句使控制⽴即跳出switch结构.在循环语句中,break语句的作⽤是在循环体中测试到应⽴即结束循环时,使控制⽴即跳出循环结构,转⽽执⾏循环语句后的语句.[例3-16]打印半径为1到10的圆的⾯积,若⾯积超过100,则不予打印.#includemain(){intr;float area;for(r=1;r<=10;r++){area=3.141593*r*r;if(area>100.0)break;printf("square=%f\n",area);}printf("nowr=%d\n",r);}运⾏程序:RUNsquare=3.141593square=12.566373square=28.274338square=50.265488square=78.539825nowr=6当break处于嵌套结构中时,它将只跳出最内层结构,⽽对外层结构⽆影响.2.continue语句continue语句只能⽤于循环结构中,⼀旦执⾏了continue语句,程序就跳过循环体中位于该语句后的所有语句,提前结束本次循环周期并开始新⼀轮循环.[例3-17]计算半径为1到15的圆的⾯积,仅打印出超过50的圆⾯积.#includemain(){int r;float area;for(r=1;r<=5;r++){area=3.141593*r*r;if(area<50.0)continue;printf("square=%f",area);}}结果为:RUNsquare=50.265488square=78.539825同break⼀样,continue语句也仅仅影响该语句本⾝所处的循环层,⽽对外层循环没有影响.3.4.5程序应⽤举例[例3-18]验证哥德巴赫猜想:任⼀充分⼤的偶数,可以⽤两个素数之和表⽰,例如:4=2+26=3+3......98=19+79哥德巴赫猜想是世界著名的数学难题,⾄今未能在理论上得到证明,⾃从计算机出现后,⼈们就开始⽤计算机去尝试解各种各样的数学难题,包括费马⼤定理、四⾊问题、哥德巴赫猜想等,虽然计算机⽆法从理论上严密地证明它们,⽽只能在很有限的范围内对其进⾏检验,但也不失其意义.费马⼤定理已于1994年得到证明,⽽哥德巴赫猜想这枚数学王冠上的宝⽯,⾄今⽆⼈能及.分析:我们先不考虑怎样判断⼀个数是否为素数,⽽从整体上对这个问题进⾏考虑,可以这样做:读⼊⼀个偶数n,将它分成p和q,使n=p+q.怎样分呢?可以令p从2开始,每次加1,⽽令q=n-p,如果p、q均为素数,则正为所求,否则令p=p+q再试.其基本算法如下:1)读⼊⼤于3的偶数n.2)P=13)do{4)p=p+1;q=n-p;5)p是素数吗?6)q是素数吗?7)}whilep、q有⼀个不是素数.8)输出n=p+q.为了判明p、q是否是素数,我们设置两个标志量flag p和flag q,初始值为0,若p是素数,令flag p=1,若q是素数,令flagq=1,于是第7步变成:7)}while(flag p*flag q==0);再来分析第5、第6步,怎样判断⼀个数是不是素数呢?素数就是除了1和它⾃⾝外,不能被任何数整除的整数,由定义可知:2、3、5、7、11、13、17、19等是素数;1、4、6、8、9、10、12、14等不是素数;要判断i是否是素数,最简单的办法是⽤2、3、4、??i-1这些数依次去除i,看能否除尽,若被其中之⼀除尽,则i不是素数,反之,i是素数.但其实,没必要⽤那么多的数去除,实际上,⽤反证法很容易证明,如果⼩于等于i的平⽅根的数都除不尽,则i必是素数.于是,上述算法中的第5步、第6步可以细化为:第5)步p是素数吗?flag p=1;for(j=2;j<=[sqrt(p)];j++)ifp除以j的余数=0{flag p=0;break;}第6)步q是素数吗?flag q=1;for(j=2;j<=[sqrt(q)];j++)ifq除以j的余数=0{flag q=0;break;}程序如下:#include#includemain(){intj,n,p,q,flag p,flag q;printf("please input n:");scanf("%d",&n);if(((n%2)!=0)||(n<=4))printf("inputdataerror!\n");else{p=1;do{p=p+1;q=n-p;flag p=1;for(j=2;j<=(int)(floor(sqrt((double)(p))));j++) {if((p%j)==0){flag p=0;break;}}flag q=1;for(j=2;j<=(int)(floor(sqrt((double)(q))));j++) { if((q%j)==0){flag q=0;break;}}}while(flag p*flag q==0);printf("%d=%d+%d\n,"n,p,q);}}程序运⾏结果如下:RUN?please input n:88=3+5RUNplease input n:98 98=19+79RUNplease input n:9 input data error!。
C语言中的循环控制
C语言中的循环控制循环控制顾名思义就是重复执行某一个语句块,日常生活中也有很多需要重复执行的事,比如生产流水线等都是在重复执行某一件事。
程序中如果没有循环控制,那么当需要执行重复的指令时,程序将变得非常庞大,有时候也不是程序员能写出的,比如要重复一百万次,你不可能把语句写一百万遍,所以循环控制是多么的重要,任何一门程序设计语言都有循环控制语句,因此循环控制是多么的基础,打好基础才能进阶成大神。
下面就简要附上对每一种循环语句进行简要说明。
一、while(表达式)语句:其一般形式如下:while(表达式){语句块}执行流程图:说明:while语句后面的表达式为真时(非0),那么就将执行后面的语句块,但是while后面的表达式一旦为真,那么它就一直为真,自己并不会使条件转变为假,因此后面的语句块必须存在使表达式转变为假的条件,否则将进入死循环,无休无止。
换言之,就是程序在运行时可以通过判断,检验条件作出选择,程序还必须能够重复执行随后的语句,直到满足某个条件为止,跳出循环。
二、do{语句块}while(表达式):上面的while语句如果一开始表达式就为假,那么它大括号里的语句块一次也不执行,但是do……w hile(表达式)语句就算一开始表达式值为假,它也会执行一次。
流程图为:可以看出其特点是,先执行循环体语句,然后再进行判断,当表达式结果为真时那么返回重新执行循环体语句,直到循环条件为假时,结束此循环。
大大的注意:在使用do……while语句时,条件要放在while后面的圆括号中,但是最后一定一定要加上分号,如do……while(表达式);。
三、for语句:for语句的一般形式为:for(表达式1;表达式2;表达式3)。
其执行流程图为:for语句每一次循环时修改循环变量,跟上面的两个比,for循环语句最为灵活,它不仅可以用于循环次数确定的情况,也可以用于循环次数不确定的情况,而只给出循环结束条件的情况。
(完整版)C语言循环结构练习题集带答案解析
第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。
A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。
A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。
int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。
A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。
while和do while循环,C语言while和do while循环详解
while和do while循环,C语言while和do while 循环详解while 循环的执行流程为,首先判断循环控制表达式Exp_cntrl 的值,当该表达式的值为逻辑真(非0)时,会一直执行循环体,直到表达式的值为逻辑假(0)才结束循环。
while 循环流程图如图1 所示。
图1通常把循环控制表达式ExP_cntrl 中含有的变量,称为循环控制变量。
为了避免程序陷入死循环,必须要有能改变循环控制变量的语句,使循环控制表达式Exp_cntrl 的值趋于逻辑假,以便使循环趋于终止。
【例1】统计输出100 以内的所有奇数之和。
分析:本题是重复执行“把100 以内的当前奇数1、3、5、7,…累加求和”的相似操作,故采用循环结构。
循环算法的关键是要确定循环条件表达式和循环体。
循环控制变量及初始条件确定:由题意可知,奇数i 作为循环控制变量,初值为第一个奇数,即i=1。
另外,还有求和变量sum=0。
循环条件表达式的确定:循环控制变量i 为[1,100] 间的奇数。
故循环条件表达式为i<=100。
循环体确定:该题循环体中包含以下两部分操作。
∙把当前奇数变量i 累加到求和变量sum 中,即sum+=i;∙为计算当前奇数的下一个奇数做准备,也就是控制变量的增量部分,即i+=2。
流程图如图2 所示。
图2 流程图实现代码如下:1.#include<stdio.h>2.int main(void){3.int sum=0,i=1;//i初始为第一个素数4.while(i<=100)//循环执行的判断条件5.{6. sum+=i;7. i+=2;//控制变量的增量8.}9.printf("sum=%d\n",sum);10.return0;11.}运行结果为:sum=2500需要说明的是,必须在零的基础上进行累加,故sum 需要初始化为0,否则将是无意义的随机值。
循环控制条件不必刻意去思考最后一个奇数是否包含100,让程序根据奇数的定义及相邻奇数的差值自行计算确定100 以内的最后一个奇数。
计算机等级考试c语言考点第4章
考点1 while 循环结构由while 语句构成的循环称为“当循环”。
(1)循环结构的形式【格式】while(表达式)循环体使用while 时应注意以下4个方面: ① while 是C 语言的关键字。
② while 后一对圆括号中的表达式可以是C 语言中任意合法的表达式,但不能为空,由它来控制循环体是否执行。
当表达式的值为整数时,表示条件为假;表达式为非整数时,表示条件为真。
③ 循环体只能是一条执行语句,若循环体内有多个语句,应该使用复合语句。
真题1 有下列程序: 【2006.9】main( ) { int k=5;考点 w h i l e 循环结构 1真题2真题3真题4考点2 do-while 循环结构(1)do-while 循环结构的形式【格式】do循环体 while(表达式);【说明】do-while 语句先执行语句,后判断表达式的值。
故do-while 语句又称“直到型”循环结构。
由于是先执行后判断,因此do-while 语句的循环语句至少被执行一次。
使用do-while 循环结构时应注意以下4.个方面...: do 是C 语言的关键字,必须和while 联合使用。
do-while 循环由do 开始,至while 结束。
while 后一对圆括号中的表达式,可以是C 语言中任意合法的表达式,该表达式决定是否继续循环。
2)do-while ① 执行do真题1 有下列程序段:【2005.9】int n,t=1,s=0; scanf("%d",&n);考点 d o -w h i l e 循环结构2在真题2真题3真题4考点3 for 循环结构for 语句构成的循环结构通常称为for 循环。
(1)for 循环结构的形式【格式】for(表达式1;表达式2;表达式3)循环体【说明】“表达式1”一般为赋值表达式,“表达式2”一般为关系表达式或逻辑表达式,用于执行循环的条件判断,“表达式3”一般为赋值表达式或自增、自减表达式,用于修改循环变量的值。
C语言循环习题集答案解析
循环习题集锦一.选择题1.for(i=0;i<10;i++);结束后,i的值是;(10)A 9B 10C 11D 122.下面程序的循环次数是:(D)int k=0;while(k<10){if(k<1) continue;if(k==5) break;k++;}A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10)main(){int s,k;for(s=1,k=2;k<5;k++)s+=k;printf(“%d\n”,s);}A 1B 9C 10D 154.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)for(i=0;i<= ;)printf(“%d\n”,i+=2);A 9B 10C 18D 205.运行下面程序:(B)main(){ int i=10,j=0;do{ j=j+i;i--;}while(i>5);printf(“%d\n”,j);}输出结果是:A 45B 40C 34D 55 6.运行下面程序#include “stdio.h”main(){ int k=0,a=1;while(k<10){for( ; ;){ if((k%10)==0)break;elsek--;}k+=11;a+=k;}printf(“%d %d\n”,k,a);}则输出的结果是(C)A 21 32B 21 33C 11 12D 10 117.以下叙述正确的是:(D)A.do---while语句构成的循环不能用其他语句构成的循环来代替。
B.do---while语句构成的循环只能用break语句退出。
C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。
D.用do---while语句构成的循环,在while后的表达式为零时结束循环。
8.有如下程序:main(){ int x=3;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:(C)A 3 2 1B 2 1 0C 3D 29.若k为整型变量,则下面while循环执行的次数为:(A)k=10;while(k==0) k=k-1;A 0B 1C 10 D无限次10.下面有关for循环的正确描述是(D)A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体。
c语言循环知识点总结
c语言循环知识点总结1. for循环for循环是C语言中最常见的循环结构之一,它的语法格式如下:```cfor (初始化表达式; 循环条件表达式; 循环控制表达式) {// 循环体}```其中,初始化表达式用于初始化循环变量,循环条件表达式用于判断是否继续执行循环,循环控制表达式用于更新循环变量的值。
在执行for循环时,首先执行初始化表达式,然后进行循环条件判断,如果循环条件为真,则执行循环体,并且在执行完循环体后执行循环控制表达式,然后再次进行循环条件判断,依次循环下去,直到循环条件为假为止。
例如,下面的代码展示了一个简单的for循环的例子:```cfor (int i = 0; i < 5; i++) {printf("Hello, world!\n");}```这段代码的输出结果是打印5次"Hello, world!"。
在使用for循环时需要注意以下几点:- 初始化表达式、循环条件表达式和循环控制表达式都可以是多个表达式,用逗号隔开。
- 循环体可以是一个语句块,用花括号括起来。
- 循环条件表达式的值必须是一个逻辑表达式,其值为真时循环继续执行,为假时循环结束。
- for循环的三个表达式都可以省略,但是分号必须保留,如for (;;) {},这样的for循环将会成为一个无限循环。
2. while循环while循环是另一种常用的循环结构,它的语法格式如下:```cwhile (循环条件表达式) {// 循环体}```在执行while循环时,首先对循环条件表达式进行判断,如果为真则执行循环体,然后再次对循环条件表达式进行判断,依次循环下去,直到循环条件为假为止。
例如,下面的代码展示了一个简单的while循环的例子:```cint i = 0;while (i < 5) {printf("Hello, world!\n");i++;}```这段代码的输出结果和上面for循环的例子是一样的。
计算机c语言
x0=x1 语句 x1=(x0+a/x0)/2
表达式=0?
非零
|x1-x0|>10-5 ?
零
输出a,x1
#include <stdio.h> #include <math.h> main() {float a,x0,x1; scanf("%f",&a); x1=a/2; do { x0=x1; x1=(x0+a/x0)/2; }while (fabs(x1-x0)>1e-5); printf("squrt(a)=%f\n",x1); 14 }
前例求: n
main( ) i=1;
n 1
100
思考:删除i++;后果?
调换i++;与求和语句的后果?
框图:
开始
sum=0 i=1 i<=100 零
{ int i, sum=0 ; while(i<=100)
{ sum=sum+i ;
i++;
}
循 环 体
非零 sum=sum+i i=i+1
输出sum 结束
for( ; ; ) { · · · while( ) {· · · } } for循环体嵌套while循 环体 for( ; ; ) { · · · for( ; ; ) {· · ·} }
for循环体嵌套for循环
28
do {
do {· · ·} while( ); }while( ); do_while循环体 嵌套do_while循环 while( ) { while( ) { · · ·} }
c语言循环语句和循环控制例题解析
一、循环控制(一)、break语句break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。
即满足条件时便跳出循环。
例如:int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++){if(i==51) break; /*如果i等于51,则跳出循环*/sn+=i; /*1+2+……+50*/}printf(%d\n,sn);}可以看出,最终的结果是1+2+……+50。
因为在i等于51的时候,就跳出循环了。
自己写写怎样在while和do--while循环中增加break语句。
注意:1. break语句对if-else的条件语句不起作用。
2. 在多层循环中,一个break语句只向外跳一层。
例如:int main(int argc, char *argv[]){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++){if(j==2) break;printf(%d %d\n,i,j);}}输出结果为:i j0 00 11 01 1当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。
(二)、continue语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。
C语言循环例题
1、//输出a与b之间的所有素数, 10个素数为一行输出#include<stdio、h>#include<stdlib、h>#include<math、h>int panDuanSuShu(int x) //判断x就是否就是素数{int i,m,flag; //flag为1表示就是素数,flag为0表示不就是素数 m=(int)sqrt(x);if(x==2){ flag=1;}else{for(i=2;i<=m;i++){if(x%i==0){flag=0;break;}}if(i>m){ flag=1; }}return flag;}int shuChuSuShu(int a,int b){int i,k=0;//i就是循环变量,k表示已经输出了k个素数for(i=a;i<=b;i++){if(panDuanSuShu(i)==1){printf("%6d",i);k++;if(k%10==0){ printf("\n");}}}printf("\n");return k;}int main(){int a,b,t;printf("输入a与b,以便求a与b之间的所有素数\n");scanf("%d%d",&a,&b);while(a<2||b<2){printf("重新输入n与m:");scanf("%d%d",&a,&b);}if(a>b){ t=a;a=b;b=t; }printf("%d与%d之间共有%d个素数",a,b,shuChuSuShu(a,b));printf("\n\n");return 0;}2、//用户输入2个数,输出这2个数之间所有的超素数//超素数(质数)的概念:7193就是素数,719就是素数,71就是素数,7就是素数,则7193就是素数#include<stdio、h>#include<stdlib、h>#include<math、h>int isPrime(int n)//判断某数就是否就是素数{int i,f,m=(int)sqrt(n);if(n==1) f=0;else{for(i=2;i<=m;i++){if(n%i==0)break;}if(i>m) f=1;else f=0;}return f;}int supperPrime(int n)//判断某数就是否就是超素数{int t=n;while(t>0){if(isPrime(t)==1)t=t/10;elsebreak;}if(t==0) return 1;else return 0;}void printSupperPrime(int a,int b)//输出a到b之间所有的超素数{int i,m=0;for(i=a;i<=b;i++){if(supperPrime(i)){ printf("%8d",i);m++;if(m%5==0)printf("\n");}}printf("\n");}int main(){int a,b,t;printf("input a,b:");scanf("%d%d",&a,&b);while(a<2 || b<2){printf("input a,b:");scanf("%d%d",&a,&b);}if(a>b) {t=a;a=b;b=t;}printSupperPrime(a,b);printf("\n");//system("pause");return 0;}3、//满足a*a+b*b==c*c的a,b,c三个数,称为勾股数//编程输出100以内的所有勾股数#include<stdio、h>#include<stdlib、h>int gouGuShu(){int x=0;for(int a=1;a<=100;a++)for(int b=a;b<=100;b++)for(int c=b;c<=100;c++)if(a*a+b*b==c*c){if(x%4==0)printf("\n");printf("%4d%4d%4d ",a,b,c);x++;}return x;}int main(){printf("\n\n 100以内的勾股数共有:%d个。
c语言breakcontinue例题
在C语言中,break 和 continue 是两个控制语句,它们在循环结构(如 for、while、do-while)中起着重要的作用。
1. break 语句:break 语句用于提前结束当前循环。
当程序遇到 break 时,会立即退出当前的循环,并继续执行循环后面的代码。
例题: 找出数组中最大的数并输出。
c复制代码#include<stdio.h>int main() {int arr[] = {5, 2, 9, 1, 5, 6};int n = sizeof(arr) / sizeof(arr[0]);int max = arr[0];for (int i = 1; i < n; i++) {if (arr[i] > max) {max = arr[i];break; // 当找到最大值后,提前结束循环。
}}printf("最大值是:%d\n", max);return0;}2. continue 语句:continue 语句用于跳过当前循环的剩余部分,并开始下一次循环。
当程序遇到 continue 时,会忽略掉本次循环中 continue后面的代码,直接开始下一次循环。
例题: 输出数组中所有的偶数。
c复制代码#include<stdio.h>int main() {int arr[] = {5, 2, 9, 1, 5, 6};int n = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < n; i++) {if (arr[i] % 2 != 0) { // 如果不是偶数,则跳过本次循环的剩余部分。
continue;}printf("%d ", arr[i]); // 输出偶数。
}printf("\n"); return0;}。
c语言for循环例题
c语言for循环例题C语言for循环例题介绍C语言中的for循环是一种非常常用的循环语句,通过在循环体内重复执行指定次数的操作,可以实现各种功能。
本文将介绍几个常见的C语言for循环例题,帮助读者更好地理解for循环的用法。
例题1:计算1到10的和我们首先看一个简单的例题,要求计算1到10的和。
代码如下:#include <>int main() {int sum = 0;for (int i = 1; i <= 10; i++) {sum += i;}printf("1到10的和为:%d\n", sum);return 0;}运行结果为:1到10的和为:55上述代码中,使用for循环从1到10遍历每个数,并将其累加到变量sum中,最后输出sum的值。
例题2:输出乘法表下面我们来看一个稍微复杂一点的例题,要求输出一个乘法表。
代码如下:#include <>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d * %d = %d\t", j, i, j * i);}printf("\n");}return 0;}运行结果为:1 * 1 = 11 *2 = 2 2 * 2 = 41 * 3 = 32 *3 = 6 3 * 3 = 91 * 4 = 42 * 4 = 83 *4 = 12 4 * 4 = 161 * 5 = 52 * 5 = 103 * 5 = 154 *5 = 20 5 * 5 = 251 * 6 = 62 * 6 = 123 * 6 = 184 * 6 = 245 *6 =30 6 * 6 = 361 * 7 = 72 * 7 = 143 * 7 = 214 * 7 = 285 * 7 = 356 *7 = 42 7 * 7 = 491 * 8 = 82 * 8 = 163 * 8 = 24 4 * 8 = 325 * 8 = 406 * 8 = 487 *8 = 56 8 * 8 = 641 * 9 = 92 * 9 = 183 * 9 = 274 * 9 = 365 * 9 = 456 * 9 = 547 * 9 = 638 *9 = 72 9 * 9 = 81上述代码中,使用嵌套的for循环分别遍历每一行和每一列,计算并输出每个乘法表达式的结果。
c语言循环语句示例
c语言循环语句示例有关C语言的循环语句,在程序中是非常常见的,几乎所有的C语言程序都会用到循环语句。
循环语句的作用是重复执行某些代码块,直到某个条件不满足为止。
循环语句主要有for、while、do-while三种形式。
本文会针对这三种循环语句进行详细的讲解,并且会附带一些实例代码,方便大家参考和学习。
1、for循环语句示例for循环语句的格式如下:for(初始化表达式;循环条件表达式;步进表达式){循环体语句}在for循环语句中,初始化表达式只在循环开始时执行一次,循环条件表达式在每次循环开始前都会被计算,如果条件为真,则执行循环体语句。
步进表达式也在每次循环结束后被执行一次,通常用于改变循环变量的值。
下面是一个简单的for循环语句的示例,它将计算1到10的累加和,并输出结果:#include <stdio.h>for(i = 1; i <= 10; i++){sum += i;}printf("1 + 2 + 3 + ... + 10 = %d\n", sum);return 0;}上面的程序中,初始化表达式为i = 1,循环条件表达式为i <= 10,步进表达式为i++,循环体语句为sum += i。
在程序运行过程中,i的值从1一直增加到10,每次循环都会执行循环体语句sum += i,将i的值加到sum变量中。
最终,程序输出1到10的累加和的结果。
2、while循环语句示例上面的程序中,循环条件表达式为i <= 10,循环体语句为printf("%d\n", i++)。
在程序运行过程中,循环会先执行一次循环体语句,然后再检查循环条件表达式。
如果条件为真,则继续执行循环体语句,否则跳出循环。
最终,程序会输出1到10的数字。
总结本文介绍了C语言中的三种循环语句:for、while、do-while。
这三种循环语句都有自己的特点和使用场景,应该根据具体的情况来选择使用哪种循环语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、循环控制(一)、break语句break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。
即满足条件时便跳出循环。
例如:int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++){if(i==51) break; /*如果i等于51,则跳出循环*/sn+=i; /*1+2+……+50*/}printf(%d\n,sn);}可以看出,最终的结果是1+2+……+50。
因为在i等于51的时候,就跳出循环了。
自己写写怎样在while和do--while循环中增加break语句。
注意:1. break语句对if-else的条件语句不起作用。
2. 在多层循环中,一个break语句只向外跳一层。
例如:int main(int argc, char *argv[]){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++){if(j==2) break;printf(%d %d\n,i,j);}}输出结果为:i j0 00 11 01 1当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。
(二)、continue语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。
例如:int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++){if(i==51) continue; /*如果i等于51,则结束本次循环*/sn+=i; /*1+2+……+50+52+……+100*/}printf(%d\n,sn);}从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。
int main(int argc, char *argv[]){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++){if(j==1) continue;printf(%d %d\n,i,j);}}输出结果为:i j0 00 21 01 2(三)、goto语句goto语句是一种无条件转移语句,与BASIC中的goto语句相似。
goto语句的使用格式为: goto 标号;其中标号是Turbo C 2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。
标号既然是一个标识符,也就要满足标识符的命名规则。
另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。
通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。
int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++){if(i==51) goto loop; /*如果i等于51,则跳出循环*/sn+=i; /*1+2+……+50*/}loop: ;printf(%d\n,sn);}可以看出,这儿的goto语句和break作用很类似。
这儿的loop: ;printf(%d\n,sn);也可以写成loop: printf(%d\n,sn);int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++){if(i==51) goto loop; /*如果i等于51,则跳出本次循环*/sn+=i; /*1+2+……+50+52+……+100*/loop: ;}printf(%d\n,sn);}可以看出这儿的loop语句和continue的作用类似。
但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。
如:int main(int argc, char *argv[]){int i,j,k;printf(i j k\n);for(i=0;i<2;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){if(k==2) goto loop;printf(%d %d %d\n,i,j,k);}loop: ;}输出结果为:i j k0 0 00 0 1如果不使用goto语句,而使用break,continue语句,应该这样int main(int argc, char *argv[]){int i,j,k;printf(i j\n);for(i=0;i<2;i++){for(j=0;j<3;j++){for(k=0;k<3;k++){if(k==2) break;printf(%d %d %d\n,i,j,k);}if(k==2) break;}if(k==2) break;}}输出结果为:i j k0 0 00 0 1所以在同时跳出多层循环时,应该使用goto语句。
记住,所有的goto语句其实都是可以用break,continue代替的。
下面举几个例子:1.求两个整数的最大公约数。
例如10和15的最大公约数是5。
分析:最大公约数一定小于等于最小的那个数一半,同时能被两数整除。
int main(int argc, char *argv[]){int num1,num2,i,min;scanf(%d%d,&num1,&num2);min=num1二、循环语句(一)、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循环语句都是正确的。
int main(int argc, char *argv[]){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++)printf(%d %d\n,i,j);}输出结果为:i j0 00 10 21 01 11 2用for循环求1+2+……+100的和:int main(int argc, char *argv[]){int sn=0,i;for(i=1;i<=100;i++)sn+=i; /*1+2+……+100*/printf(%d\n,sn);}从程序可以看出,使用循环语句可以大大简化代码。
(二)、while循环它的一般形式为:while(条件)语句;while循环表示当条件为真时,便执行语句。
直到条件为假才结束循环。
并继续执行循环程序外的后续语句。
例如:#include stdio.hint main(int argc, char *argv[]){char c;c='\0'; /*初始化c*/while(c!='\n') /*回车结束循环*/c=getche(); /*带回显的从键盘接收字符*/}上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\n',条件为假,循环便告结束。
与for 循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。
注意:(1).在while循环体内也允许空语句。
例如:while((c=getche())!='\n');这个循环直到键入回车为止。
(2).可以有多层循环嵌套。
(3).语句可以是语句体, 此时必须用{和}括起来。
用while循环求1+2+……+100的和:int main(int argc, char *argv[]){int sn=0,i=0;while(++i<=100)sn+=i; /*求1+2+……+100*/printf(%d\n,sn);}(三)、do--while循环它的一般格式为:do{语句块;}while(条件);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。
因此,do-while循环至少要执行一次循环语句。
同样当有许多语句参加循环时,要用{和}把它们括起来。
用do--while循环求1+2+……+100的和:int main(int argc, char *argv[]){int sn=0,i=1;sn+=i; /*求1+2+……+100*/while(++i<=100);printf(%d\n,sn);}从上面三个程序看出,使用for,while和do--while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。
一、循环语句(一)、for循环它的一般形式为:for(<初始化>;<条件表过式>;<增量>)语句;初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。