书签 分享 收藏 举报 版权申诉 / 45
上传文档赚钱

类型C语言课件:循环讲座.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2088435
  • 上传时间:2022-02-14
  • 格式:PPT
  • 页数:45
  • 大小:279KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言课件:循环讲座.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 课件 循环 讲座
    资源描述:

    1、1 循环结构循环结构 在在C C语言中可实现循环语句语言中可实现循环语句: :用用gotogoto语句和语句和ifif语句构成循环语句构成循环用用whilewhile语句语句用用do do while while语句语句用用forfor语句语句杨微Email: 2while循环循环语句语句while循环语句的形式循环语句的形式 while(条件表达式)语句(条件表达式)语句 while循环语句的执行过程是:循环语句的执行过程是:先判断条件,后执行语句。先判断条件,后执行语句。条件表达式条件表达式语句零零非零非零执行过程执行过程这是内嵌语句,也这是内嵌语句,也称为称为循环体循环体,它可,它可以是

    2、单语句,也可以是单语句,也可以是复合语句以是复合语句 循环体内应注意设置修循环体内应注意设置修改循环条件的语句。否改循环条件的语句。否则循环无法终止。则循环无法终止。 循环体循环体3说明:说明:(1)执行)执行while循环语句时,如果表达式的值第一循环语句时,如果表达式的值第一次计算就等于次计算就等于0,则循环体一次也不执行。,则循环体一次也不执行。(2)发生下列情况之一时,)发生下列情况之一时,while循环结束执行:循环结束执行:表达式的值为表达式的值为0;循环体内遇到循环体内遇到break语句;语句;循环体内遇到循环体内遇到goto 语句,且与该语句,且与该goto语句配合语句配合 使

    3、用的标号所指定的语句在本循环体外;使用的标号所指定的语句在本循环体外;循环体内遇到循环体内遇到return语句,此时退出语句,此时退出while循环循环后,执行的流程从包含该后,执行的流程从包含该while语句的函数返回语句的函数返回到所调用函数到所调用函数。4dowhile循环语句的形式循环语句的形式 do do 语句语句 while(while(表达式)表达式); 2. 执行过程执行过程说明:说明:(1 1)dowhiledowhile循环语句循环语句首先执行循环体,然后计首先执行循环体,然后计算表达式并检查循环条件,算表达式并检查循环条件,所以所以循环体至少执行一次。循环体至少执行一次。

    4、(2 2)退出)退出dowhiledowhile循环循环的条件与退出的条件与退出whilewhile循环的循环的条件相同。条件相同。表达式表达式语句语句零零非零非零dowhile循环语句循环语句注意:注意:不要丢掉分号不要丢掉分号dowhile循环执行过程是:循环执行过程是:先执行语句,后判断条件。先执行语句,后判断条件。5for for 循环语句循环语句1. for循环语句的形式循环语句的形式 for(表达式表达式1;表达式表达式2;表达式表达式3)语句)语句表达式表达式2表达式表达式1语句语句表达式表达式3零零非零非零2. 执行过程执行过程说明:说明:(1 1)表达式)表达式1 1仅被执行

    5、一仅被执行一次;表达式次;表达式2 2决定了是否继决定了是否继续执行循环续执行循环; ;表达式表达式3 3则不则不断修改循环控制变量的值。断修改循环控制变量的值。(2 2)三个表达式均可省略,)三个表达式均可省略,分号不能省略。分号不能省略。63.说明:说明:最简单的应用形式:最简单的应用形式:forfor(循环变量赋初值;循环条件;循环变量增值)语句(循环变量赋初值;循环条件;循环变量增值)语句例:例:求级数求级数12+22+32+前前10项之和。项之和。main() int i, sum=0; for (i=1;i=10;i+) sum=sum+i*i; printf(%d,sum);7

    6、表达式表达式1省略,应在省略,应在for之前对循环变量赋初值之前对循环变量赋初值 i=1; for( ; i=10 ; i+) sum=sum+i; 表达式表达式1放在放在for前前分号不能省略分号不能省略使用中有以下几种情况使用中有以下几种情况8表达式表达式2省略,则不判断条件,循环无终止进省略,则不判断条件,循环无终止进行下去,认为表达式行下去,认为表达式2始终为真。始终为真。 sum=0; for(i=1 ; ; i+) sum+=i; 表达式表达式3省略,则应另设法保证循环的结束省略,则应另设法保证循环的结束. for(sum=0,i=1;i=10; ) sum=sum+i; i+;

    7、表达式表达式3i=1;sum=0; while(1)sum=sum+i; i+; 等效等效9l三个表达式均可缺省,但起分割作用的两个三个表达式均可缺省,但起分割作用的两个分号不可省略。这种循环无终止地执行循环分号不可省略。这种循环无终止地执行循环体。体。 例如:例如:for( ; ; )语句语句相当于:相当于:while(1)语句语句 如使得循环结束,要写成:如使得循环结束,要写成: while(1) . if(表达式表达式) break; . 10 表达式表达式1和表达式和表达式3可以是逗号表达式。可以是逗号表达式。 例:例: int i,j,sum; for( i=0,j=100;i=j;

    8、i+,j- ) sum=i+j;11注意:注意:表达式表达式2一般是关系表达式一般是关系表达式(如如i=100)或逻辑表达式或逻辑表达式(ab&xy),但也可以是算术表达式或字符表达式,只要其值但也可以是算术表达式或字符表达式,只要其值为非零,就执行循环体。为非零,就执行循环体。例:例: for(i=0;(c=getchar()!=n;) i=i+c;或,或,for(i=0;(c=getchar()!=n; i=i+c);作用,不断地输入字符,将它们的作用,不断地输入字符,将它们的ASCII 码相加,码相加,直到输入一个回车换行符为止。直到输入一个回车换行符为止。12如上题改为:如上题改为:

    9、for(;(c=getchar()!=n;)printf(“%c”,c);无表达式无表达式1和表达式和表达式3,其作用是,每读入一个字符输出该字,其作用是,每读入一个字符输出该字符,直到输入一个符,直到输入一个“回车回车”以后才送到内存缓冲区去的,运以后才送到内存缓冲区去的,运行情况如下:行情况如下:ComputerComputer而不是输入一个字符马上输出一个字符,而是输入回车后数而不是输入一个字符马上输出一个字符,而是输入回车后数据送到缓冲区,然后每次从缓冲区读一个字符,然后输出。据送到缓冲区,然后每次从缓冲区读一个字符,然后输出。13练习练习1:下列程序段,选项正确的是(:下列程序段,选

    10、项正确的是( )。)。 int i,k; for(i=0,k=-1;k=1;i+,k+) printf(*); A.A.判断循环结束的条件非法判断循环结束的条件非法 B.B.无限循环。无限循环。 C.C.只循环一次只循环一次 D.D.一次也不循环一次也不循环 表达式表达式2:k=1,非零,是非零,是无限循环无限循环B14 break break和和continuecontinue语句语句 1. break 语句语句语法语法: break ;功能功能:结束包含该语句的结束包含该语句的最内层循环最内层循环 main( ) int n; for(n=100;n=200;n+) if(n%3= =0)

    11、 break ; printf(%6d,n); 2. continue 语句语句语法语法:continue ;功能功能:结束循环体的本次结束循环体的本次循环循环main( ) int n; for(n=100;nj) printf(s=%d,s); break; s+=j; 循环体共执行循环体共执行了多少次?了多少次? S=506次次当条件当条件ij成立时成立时才能执行到才能执行到 break语句语句For循环是死循环循环是死循环注意:注意:break语句只能出现在语句只能出现在switch ,for ,while或或dowhile语句中。语句中。16练习练习3:以下程序的输出结果是(:以下程

    12、序的输出结果是( )。)。 main( ) int x=8; for( ; x0; x-) if( x%3) printf( %d,x-); continue; printf( %d,-x); D如如x不是不是3的倍数的倍数(x%3!=0),则输出则输出x,并令并令x减减1,结束本次循环。,结束本次循环。 A. 7 4 2A. 7 4 2 B. 8 7 5 2 B. 8 7 5 2 C. 9 7 6 4 C. 9 7 6 4 D. 8 5 4 2 D. 8 5 4 2 17练习练习4:下列程序的输出结果是(:下列程序的输出结果是( )。)。 main() int i,j,x=0; for (i

    13、=0;i2;i+) x+; for(j=0;j0); printf(%dn,i); 练习练习6: main() int x=3; do printf(%3d,x-=2); while(!(-x); 输出结果:输出结果:-1输出结果:输出结果:1-2;是空语句是空语句19练习练习8:求:求100数以内的偶数和。数以内的偶数和。#include void main()int i,sum=0;for(i=0;i=100;i+)if(i%2=0) sum=sum+i;printf(sum=%dn,sum);若计算奇数和,改为:若计算奇数和,改为:if(i%2!=0) sum=sum+i;20以下程序段

    14、中的变量已正确定义:以下程序段中的变量已正确定义: for(i=0;i4;i+,i+) for(k=1;k3;k+); printf(“*”);程序段的输出结果是:程序段的输出结果是:A* B* C* D*练习练习9: 21main()int i=0;do printf(“%d”,i);while(i+);printf(“%d”,i);A 00 B 01 C 11 D程序进入无限循环程序进入无限循环练习练习10 22下列程序运行时,若输入下列程序运行时,若输入1abced2df#include main()char a=0,ch;while(ch=getchar()!=n)if(a%2!=0&

    15、(ch=a&ch=z)ch=ch-32;a+;putchar(ch);printf(“n”);输出结果为:输出结果为:1AbCeD2Df练习练习110 1 2 3 4 5 6 7 8 23练习练习13:求:求s=1-1/2+1/3-1/4+1/n,n由键盘输入。由键盘输入。解题方法:让变量解题方法:让变量t的初值等于的初值等于1,然后反复执行语,然后反复执行语句,则句,则t的值就在的值就在1和和-1之间交替变化。之间交替变化。main( ) int i ,n; double s, t; scanf(%d, &n); for(s=0,t=1, i=1; i=n;i+) s=s+t/i; t= t

    16、; printf(s=%fn,s); 24练习练习14: 循环嵌套。循环嵌套。 for(i=1;i=2;i+) for(j=1;j=2;j+) printf(%3d,i+j); printf(n); for(i=1;i=2;i+) for(j=1;j=2;j+) printf(%3d,i+j); printf(n); 对对j循环循环结束结束,再再换行换行.输出结果输出结果: 2 3 3 4输出结果输出结果: 23 3425练习练习15: 求求1!+2!+3!+.+n!main() int i,j,n; float sum,s; scanf(%d,&n); sum=0;for(i=1;i=n;i

    17、+) s=1; for(j=1;j=i;j+) s*=j; sum+=s; printf(%fn ,sum);计算计算i!注意类型定义注意类型定义26练习练习16:按规定的格式输出九九乘法表。按规定的格式输出九九乘法表。main() int i,j; for(i=1; i=9; i+) for (j=1;j=i;j+) printf(%d , i*j); printf(n); 内循环体内循环体外循环体外循环体 2 4 3 6 9 9 18 27 72 81.27练习练习17:下列程序的输出结果是(:下列程序的输出结果是( )。)。 main() int k=0,m=0; int i,j; fo

    18、r (i=0;i2;i+) for(j=0;j=1;k-) m=0; for(j=k;j=5;j+) m=m+k*j; printf(“%dn”m);A. 124 B. 25 C. 36 D. 15练习练习18 :阅读程序,指出输出结果。:阅读程序,指出输出结果。 D29#include void main() int i; for(i=10;i=99;i+) if(i%3=0&i%5=3&i%7=6) printf(%d,i);printf(n);或:或:if(i%3=0&i%5=3&(i+1)%7=0) 练习练习19 : 输出所有被整除,并能被整除余,被输出所有被整除,并能被整除余,被整除

    19、缺整除缺1的两位数。的两位数。30练习练习20:打印下面图形:打印下面图形(每行错位一个每行错位一个*) * * *31#includemain() int i,j,k;for(i=1;i=3;i+) for(j=1;ji;j+) printf( ); for(k=1;k=4;k+) printf(*); printf(n);* * *注意这里的条件注意这里的条件输出输出4个个*, 作作4次循环次循环打印打印3行行, 作作3次循环次循环32)!12(121) 1(! 55! 331sinnnxnxxxx书上例题:书上例题: 33main() double sin1=0,x,a,b,t;int

    20、i,k,n;printf(input x,y:n);scanf(%lf%d,&x,&n);x=x*3.1415926/180;t=1;for(i=1;i=n;i+)a=b=1;for(k=1;k=2*i-1;k+) a=a*x; b=b*k;sin1+=t*a/b;t=-t; printf(sin=%fn,sin1);读入的角度转换成弧度读入的角度转换成弧度x 的累乘的累乘分母分母 的累乘的累乘34#include #include main() double sin=0,x,a,b;int i,k,n;printf(input x,n:n);scanf(%lf,%d,&x,&n);x=x*3

    21、.1415926/180; /*输入的角度化为弧度输入的角度化为弧度*/for(i=1;i=n;i+)a=b=1;for(k=1;k=2*i-1;k+) a=a*x; b=b*k;sin+=pow(-1,i+1)*a/b; printf(sin=%lfn,sin);注意:要用此类型注意:要用此类型注意:输入角度化为弧度注意:输入角度化为弧度注意:正负的变化注意:正负的变化或采用先或采用先t=1;t=-t;的办法的办法35#include #include main() double sin=0,x,a,b;int i,k,n;printf(input x,n:n);scanf(%lf,%d,&

    22、x,&n);x=x*3.1415926/180; /*输入的角度化为弧度输入的角度化为弧度*/for(i=1;i=n;i+)a=b=1;for(k=1;k=2*i-1;k+) a=a*x; b=b*k;sin+=pow(-1,i+1)*a/b; printf(sin=%lfn,sin);注意:要用此类型注意:要用此类型注意:输入角度化为弧度注意:输入角度化为弧度注意:正负的变化注意:正负的变化或采用先或采用先t=1;t=-t;的办法的办法作业作业36 输出所有被整除,并能被整除余,被整除输出所有被整除,并能被整除余,被整除缺缺1的两位数。的两位数。 main( ) int i; for( i=

    23、10; i100; i+) if( i%3= =0&i%5= =3&(i+1)%7 = = 0) printf(%dn, i ); if(i%3=0&i%5=3&i%7=6) printf(%d,i);注意:两位数的范围(或注意:两位数的范围(或i=99)作业作业37求求100数以内的偶数和。数以内的偶数和。#include void main()int i,sum=0;for(i=0;i=100;i+)if(i%2=0) sum=sum+i;printf(sum=%dn,sum);若计算奇数和,改为:若计算奇数和,改为:if(i%2!=0) sum=sum+i;作业作业38有以下程序:有以下

    24、程序:main() int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); printf(“%d,%c,%d,%c”,a1,c1,a2,c2);若想通过键盘输入,使得若想通过键盘输入,使得a1的值是的值是12,a2的值是的值是34,c1的值是字母的值是字母a,c1的值是字母的值是字母b, 程序的输出结果是程序的输出结果是12,a,34,b,则正确的输入格式是:,则正确的输入格式是:A12a34b B12 a 34 b C12,a,34,b D12 a34 b练习练习139以下程序段的输出结果是:以下程序段的输出结果是:int x=0,

    25、y=1,z=0;switch(x) case 0: switch(y) case 1: z=1;break; case 2: break; case 1: switch(y) case 1: break; case 2: break; default:printf(“%”);if(z=1)printf(“abcd”);%abcd练习练习240有以下程序:有以下程序:main() int a=1,b=2,c=3,d=0; if(a= 1&b+=2) if(b!=2|c-!=3) printf(“%d,%d,%dn”,a,b,c); else printf(“%d,%d,%dn”,a,b,c);

    26、else printf(“%d,%d,%dn”,a,b,c); 程序运行后的输出结果是:程序运行后的输出结果是:A 1,2,3 B 1,3,2 C 1,3,3 D 3,2,1 练习练习3 41以下程序段中的变量已正确定义:以下程序段中的变量已正确定义: for(i=0;i4;i+,i+) for(k=1;k10); printf(“s=%d”,s);练习练习6S=044#include main() int x; scanf(“%d”,&x); if(x=3); else if(x!=10) printf(“%dn”,x);程序运行时,输入的值在哪个范围才会有输出结果程序运行时,输入的值在哪个范围才会有输出结果A 不等于不等于10的整数的整数B 大于大于3且不等且不等10的整数的整数C 大于大于3或等于或等于10的整数的整数D 大于大于3的整数的整数练习练习7 45下列程序运行时,若输入下列程序运行时,若输入1abced2df#include main()char a=0,ch;while(ch=getchar()!=n)if(a%2!=0&(ch=a&ch=z)ch=ch-a+A;a+;putchar(ch);printf(“n”);输出结果为:输出结果为:1AbCeD2Df练习练习8

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言课件:循环讲座.ppt
    链接地址:https://www.163wenku.com/p-2088435.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库