ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:28.99KB ,
资源ID:7324077      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7324077.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言三种循环语句Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言三种循环语句Word文件下载.docx

1、for(j=0;j3;j+)printf(%d %dn,i,j); 输出结果为:i j0 00 10 21 01 11 2用for循环求1+2+100的和:main()int sn=0,i;=100;sn+=i; /*1+2+100*/printf(%dn,sn);从程序可以看出,使用循环语句可以大大简化代码。(二)、while循环 它的一般形式为:while(条件)while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。#include stdio.h char c;c=0 /*初始化c*/while(c!=n) /*回车结束循环*/c=getch

2、e(); /*带回显的从键盘接收字符*/上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c=,条件为假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。(1).在while循环体内也允许空语句。while(c=getche()!);这个循环直到键入回车为止。(2).可以有多层循环嵌套。(3).语句可以是语句体, 此时必须用和括起来。用while循环求1+2+100的和:int sn=0,i=0;while(+i=100) /*求1+2+100*/(三)、

3、do-while循环 它的一般格式为:do语句块;while(条件);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。同样当有许多语句参加循环时,要用和把它们括起来。用do-while循环求1+2+100的和:int sn=0,i=1;=100);从上面三个程序看出,使用for,while和do-while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。二、循环控制(一)、break语句break语句通常用在循环语句和开关语句中。当break用于开关语句

4、switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。if(i=51) break; /*如果i等于51,则跳出循环*/ /*1+2+50*/可以看出,最终的结果是1+2+50。因为在i等于51的时候,就跳出循环了。自己写写怎样在while和do-while循环中增加br

5、eak语句。1. break语句对if-else的条件语句不起作用。2. 在多层循环中,一个break语句只向外跳一层。if(j=2) break;当i=0,j=2时,执行break语句,跳出到外层的循环,i变为1。(二)、continue语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。if(i=51) continue; /*如果i等于51,则结束本次循环*/ /*1+2+50+52+100*/从程序中可以看出,continue语句只是当前的值没有执

6、行,也就是说当前的值跳过去了,接着执行下次循环。if(j=1) continue;(三)、goto语句goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto语句的使用格式为:goto 标号;其中标号是Turbo C 2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。标号既然是一个标识符,也就要满足标识符的命名规则。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。goto语句通常不用,主要因为它将使程序层次

7、不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。if(i=51) goto loop;loop: ;可以看出,这儿的goto语句和break作用很类似。这儿的loop:也可以写成loop: printf(%dn,sn); /*如果i等于51,则跳出本次循环*/可以看出这儿的loop语句和continue的作用类似。但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。如:int i,j,k;printf(i j kn);for(k=0;k0;i-)if(num1%i=0&num2%i=0) break;printf(最大公约数为%dn,i);2.求1!+2!+n!(n10)

8、int n,i;long temp=1,sn=0; /*从9!以后,所得的值就超过了int范围*/scanf(%d,&n);=n;temp*=i;sn+=temp; /*如果没有这一步,求的就是n!*/printf(%ldn,sn);那么想想,如果求1!+3!+5!应该怎么办?3.判断一个整数是不是素数(素数就是只能被本身和1整除的数)。#include math.hint num,i,flag=0;num);for(i=2;iflag=0; /*标志变量复位*/if(num%i=0)flag=1;break;if(flag=0) printf(是素数n);else printf(不是素数n)

9、;可以说,在所有的C语言书上,都有判断素数的例题。它的编程思想是:把一个变量作为标志变量,用来标志是不是素数;循环体是从2到sqrt(num),因为如果一个数不是素数的话,一定能分解成num=num1*num2,它们中的最小值一定小于sqrt(num),所以循环的时候只要到sqrt(num)就可以了。同时要注意变量复位的问题。二、递归递归,是函数实现的一个很重要的环节,很多程序中都或多或少的使用了递归函数。递归的意思就是函数自己调用自己本身,或者在自己函数调用的下级函数中调用自己。递归之所以能实现,是因为函数的每个执行过程都在栈中有自己的形参和局部变量的拷贝,这些拷贝和函数的其他执行过程毫不相

10、干。这种机制是当代大多数程序设计语言实现子程序结构的基础,是使得递归成为可能。假定某个调用函数调用了一个被调用函数,再假定被调用函数又反过来调用了调用函数。这第二个调用就被称为调用函数的递归,因为它发生在调用函数的当前执行过程运行完毕之前。而且,因为这个原先的调用函数、现在的被调用函数在栈中较低的位置有它独立的一组参数和自变量,原先的参数和变量将不受影响,所以递归能正常工作。程序遍历执行这些函数的过程就被称为递归下降。程序员需保证递归函数不会随意改变静态变量和全局变量的值,以避免在递归下降过程中的上层函数出错。程序员还必须确保有一个终止条件来结束递归下降过程,并且返回到顶层。例如这样的程序就是

11、递归:void a(int);int num=5;a(num);void a(int num)if(num=0) return;printf(%d,num);a(-num);在函数a()里面又调用了自己,也就是自己调用本身,这样就是递归。那么有些人可能要想,这不是死循环吗?所以在递归函数中,一定要有return语句,没有return语句的递归函数是死循环。我们分析上面的例子,先调用a(5),然后输出5,再在函数中调用本身a(4),接着回到函数起点,输出4,一直到调用a(0),这时发现已经满足if条件,不在调用而是返回了,所以这个递归一共进行了5次。如果没有这个return,肯定是死循环的。虽然

12、递归不难理解,但是很多在在使用递归函数的时候,问题多多。这里面一般有两个原因:一是如何往下递归,也就是不知道怎么取一个变量递归下去;二是不知道怎么终止递归,经常弄个死循环出来。下面看几个例子:1.求1+2+100的和先分析一下。第一递归变量的问题,从题目上看应该取1,2,100这些变量的值作为递归的条件;第二就是如何终止的问题,从题目上看应该是当数为100的时候就不能往下加了。那么我们试着写一下程序。int add(int);int num=1,sn;sn=add(num);getch();int add(int num)static int sn;sn+=num;if(num=100) re

13、turn sn;add(+num);分析一下程序:前调用add(1),然后在子函数中把这个1加到sn上面。接着调用add(2),再把sn加2上来。这样一直到100,到了100的时候,先加上来,然后发现满足了if条件,这时返回sn的值,也就是1+2+100的值了。这里有一个问题一定要注意,就是static int sn;有些人就不明白,为什么要使用static类型修饰符,为什么不使用int sn=0;?如果使用int sn=0;这样的语句,在每次调用函数add()的时候,sn的值都是赋值为0,也就是第一步虽然加了1上来,可是第二次调用的时候,sn又回到了0。我们前面说了,static能保证本次初

14、始化的值是上次执行后的值,这样也就保证了前面想加的结果不会丢失。如果你修改为int sn=0,最后结果一定是最后的100这个值而不是5050。2.求数列s(n)=s(n-1)+s(n-2)的第n项。其中s(1)=s(2)=1。可以看出,终止条件一定是s(1)=s(2)=1。递归下降的参数一定是n。int a(int);int n,s;s=a(n);printf(%dn,s);int a(int n)if(n3) return 1;return a(n-1)+a(n-2);这个题目主要说明的是,在函数中,不一定只有一个return语句,可以有很多,但是每次对归的时候只有一个起作用。题目不难理解,

15、这儿不分析了。说了这些递归,其实它和函数的调用没有大的区别,主要就是一个终止条件要选好。递归函数很多时候都能用循环来处理。int n=20,array20;int i;N;I+)if(i . 自左向右! + - + - * & sizeof 自右向左* / % 自左向右+ - 自左向右 自左向右 = 自左向右= ! 自左向右| 自左向右| 自左向右?: 自右向左= += -= *= /= %= &= = |= =0) y=x;if(a|b&c) z=a+b;c+=z;二、if-else语句除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另外一段代码。在C语句中利用else语句来达

16、到这个目的。else 语句2;同样,当语句1或语句2是多于一个语句时,需要用把语句括起来。else y=-x;三、if-else if-else结构。if(表达式1) 语句1;else if(表达式2) 语句2;else if(表达式3) 语句3;. else 语句n;这种结构是从上到下逐个对条件进行判断,一旦发现条件满点足就执行与它有关的语句, 并跳过其它剩余阶梯;若没有一个条件满足,则执行最后一个else 语句n。最后这个else常起着缺省条件的作用。同样,如果每一个条件中有多于一条语句要执行时,必须使用和把这些语句包括在其中。条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其

17、原因主要是不知道哪个if对应哪个else。20|x-10) if(yx) printf(Good);printf(Bad);对于上述情况, Turbo C2.0规定: else语句与最近的一个if语句匹配, 上例中的else与if(y-10)相匹配, 必须用花括号。如下所示:-10)1.输入一个数,如果大于0,输出plus;如果是负数,输出negative;如果正好是0,则输出zero。float num;scanf(%f,&f);if(num0)printf(plusn);else if(numprintf(negativen);elseprintf(zeron);先定义两个变量,然后输入一

18、个数,然后判断这个数的范围,输出对应的字符串。2.输入一个数x,输出y。其中y是x的绝对值。float x,y;x);printf(%fn,y);程序比较简单,这儿就不分析了。其实Trubo C 2.0把一些常用的功能都写好了,我们只需要使用就可。例如求绝对值的功能在C的库里面就有。看下面的:y=fabs(x); /*求x的绝对值,然后赋值给y*/这个程序和上面的程序完成的功能是一模一样的,都是求绝对值。可以看出,用下面这个方法比上面就要好一些。由于fabs()是一个函数,系统自带的,所以在使用它的时候,我们必须把它所在的库文件math.h包含都程序中,即程序最前面一行。类似的还有求开方sqr

19、t(),求指数幂exp()等等,这些与数学方面有关的函数都在math.h里面。具体哪些有哪些没有,在什么库里面,可以查看一些手册。3.输入x,输出y,x和y满足关系:x-5 y=x;-5=x1 y=2*x+5;1=4 y=3*x-2;程序如下:if(x-5)y=x;else if(-5=x&1)y=2*x+5;else if(14)y=x+6;y=3*x-2;这里要说明两点:(1).-51不能写成-51;4也不能写成1=z) printf(%ft%fn,y,z);else printf(%ft%fn,z,y);else if(yprintf(%ft,y);=z) printf(%ft%fn,x,z);else p

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2