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

类型计算机本科c措辞第六章讲稿[优质课件.ppt

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

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

    特殊限制:

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

    关 键  词:
    计算机 本科 措辞 第六 讲稿 优质 课件
    资源描述:

    1、本章重点 forfor语句语句 do-whiledo-while语句语句 while语句语句本章难点 break语句和continue语句的区别点 循环条件的表示和控制 循环的嵌套 第六章 循环控制第1页,共55页。一、结构化程序的三种基本结构A块B块条件A块B块成立不成立顺序结构分支选择结构第2页,共55页。条件AB不成立a块当型循环结构条件Aa块不成立直到型循环结构B区别在于:当型循环结构当条件满足时,反复执行a块,直到条件不满足时才停止循环。而直到型是先执行a块操作,再判断条件是否满足,若满足再执行a块,如此反复,直到条件不满足为止。第3页,共55页。循环结构一般由两部分组成:进入或退出

    2、循环的条件:该条件决定是否继续下一轮循环。循环体:为每一轮循环所进行的操作,语法上要求是一个语句序列构成,如示意图中的a块。第4页,共55页。在许多问题中要用到循环控制:输入全校学生成绩 求04级C语言的总成绩 1+2+3+100 循环是用来求这类重复性操作的结构,几乎所有实用的程序中都包含循环,掌握循环是结构化程序设计最基本的要求。第5页,共55页。一、while 语句1、一般形式 while (表达式)语句 说明:当表达式的值为真时执行循环体语句特点:先判断表达式,后执行语句。执行过程为:先计算表达式的值,如果为真,则执行循环体语句部分并重新求表达式的值,一直到表达式的值变为0时,才退出整

    3、个循环结构。第6页,共55页。在应用while()语句时,要注意以下几点:while()后面的条件表达式一定要用一对圆括弧括起来。如果循环体中的语句多于一条时,应该用大括号括起来,以复合语句形式出现,因为while()语句的作用范围只能是 while()后面的第一个语句在循环体中应有改变循环条件表达式的语句,否则,如果不采用其他方法退出循环,将成为死循环。while()语句可以嵌套。第7页,共55页。例1设有程序段 int k=10;while(k=0)k=k-1;则下面描述正确的是_A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次第8页,共55页

    4、。例2:求1+2+50main()int n=1,sum=0;while(n=50)sum+=n;n+;printf(“sum=%dn”,sum);当循环体由多个语句组成时,必须用左、右花括号括起来,使其形成复合语句。第9页,共55页。例3利用while语句,计算1+1/2+1/4+1/50的值,并显示出来。#include main()int i;float sum=1.0;i=2;while(i=50)sum+=1/(float)i;i+=2;printf(“sum=%fn”,sum);第10页,共55页。例4 从键盘连续输入字符,直到输入“回车”符为止,并分别统计其中算术运算符(+-*/

    5、%)的个数。main()int c_add=0,c_sub=0,c_mul=0,c_div=0,c_mod=0;char ch;while(1)ch=getchar();if(ch=n)break;switch(ch)case+:c_add+;break;case-:c_sub+;break;case*:c_mul+;break;case/:c_div+;break;case%:c_mod+;break;printf(“%d%d%d%d%d”,c_add,a_sub,a_mul,a_div,a_mod);n为标记值,当提前不知道准确循环的次数,可用标记来控制循环。第11页,共55页。例5 键入

    6、一个整数,然后按相反顺序输出各位数字。分析:要将一个整数按相反的次序输出各位数字,必须获得该整数的各位数字,由于n%10为n的个位数,用循环语句来实现。#include main()int n,r;/*n用来接受输入的整数,r用来求个位数*/printf(“请输入一个整数:”);scanf(“%d”,&n);putchar(n);while(n!=0)r=n%10;printf(“%d”,r);n/=10;第12页,共55页。二、do-while语句1 一般形式:do 语句 while (表达式);2 特点 1)先执行一次语句,后判断表达式;当表达式的值为真时,反复执行循环体中的语句。3 注意

    7、点:同while()语句,但还要特别注意一点,即while()后的分号不能少。4 与while()语句的不同点:while()语句是先判断后执行而dowhile()语句是先执行后判断。第13页,共55页。例子1 以下程序段x=-1;do x=x*x;while(!x);A)死循环B)循环执行二次C)循环执行一次D)有语法错误 第14页,共55页。例例2 求求1+2+50#include main()int n=1,sum=0;do sum+=n;n+;while(n=50);printf(“sum=%dn”,sum);第15页,共55页。main()main()int sum=0;int su

    8、m=0;int n;int n;scanf(“%d”,&n);scanf(“%d”,&n);while(n=10)do sum+=n;sum+=n;n+;n+;while(n=10);printf(“sum=%dn”,sum);printf(“sum=%dn”,sum);如果从终端输入的值为11的前提下,请大家分析两个程序的运行结果.例3第16页,共55页。例4 若执行下面程序时,输入“Adescriptor”后按回车,则以下程序的输出结果是_#include main()char c;int v0=0,v1=0,v2=0;do switch(c=getchar()case a:case A:

    9、case e:case E:case i:case I:case o:case O:case u:case U:v1+;default:v0+;v2+;while(c!=n);printf(“nv0=%d,v1=%d,v2=%d”,v0,v1,v2);v0=7,v1=4,v2=7v0=8,v1=4,v2=8v0=11,v1=4,v2=11v0=12,v1=4,v2=12第17页,共55页。1、一般形式 for(表达式1;表达式2;表达式3)语句表达式2非00求解表达式1语句表达式3三 for语句2、它的执行过程:第18页,共55页。则执行以下for语句时,for(i=0;i3;i+)print

    10、f(“*”);表达式1执行_次,表达式2执行_次;表达式3执行_次。例子1:第19页,共55页。3 for 语句最简单的应用形式是:for(循环变量赋初值;循环条件;循环变量增值)语句例2 求1+2+50#include main()int n,sum;for(n=1,sum=0;n=50;n+)sum+=n;printf(“sum=%dn”,sum);for语句最简单的应用形式通常用计数器来控制循环第20页,共55页。#include main()int n,sum=0;for(n=1;n=50;n+)sum+=n;printf(“sum=%dn”,sum);计数器控制的循环的本质在一个由计

    11、数器控制的循环中,需要包括以下内容:1 控制变量(循环计数器)的名称2 控制变量的初值3 用于检测控制变量终值的条件(即循环是否要继续)4 循环时,控制变量每一次都会自增或自减(通常是1)第21页,共55页。例子304级计算机专业有4位同学中的一位做了好事,不留名,表扬信来了之后,院长问这4位是谁做的好事。A说:不是我B说:是CC说:是DD说:他胡说 已知3个人说的是真话,一个人说的是假话,现在要根据这些信息,找出做了好事的人。第22页,共55页。#include void main()int k;char s;for(k=1;k=4;k+)s=64+k;if(s!=A)+(s=C)+(s=D

    12、)+(s!=D)=3)printf(thisman is%c“,s);第23页,共55页。(1)for 语句一般形式中的表达式语句一般形式中的表达式1可以省略可以省略例子例子4#include main()int n=1,sum=0;for(;n=50;n+)sum=sum+n;printf(“sum=%dn”,sum);请大家理解以下几点:第24页,共55页。(2)如果表达式2省略,即不判断条件,循环无终止地进行下去。此时必须在循环体中有一个ifbreak语句使循环终止。例子5#include main()int n,sum;for(n=1,sum=0;n+)sum+=n;if(n=50)b

    13、reak;printf(“sum=%dn”,sum);第25页,共55页。(3)表达式3也可以省略,但此时应在循环体中设法使循环变量的值发生改变,从而使循环条件趋于0。例子6#include main()int n,sum;for(n=1,sum=0;n=50;)sum+=n;n+;printf(“sum=%dn”,sum);第26页,共55页。(4)表达式1、表达式2、表达式3也可同时省略。例子7 /*该程序功能求150的总和*/#include main()int n,sum=0;_;for(;)sum+=n;_;_;printf(“sum=%dn”,sum);第27页,共55页。4 fo

    14、r语句的应用方面 计数循环:在已知最大循环次数的情况下,计数循环:在已知最大循环次数的情况下,可使用可使用forfor语句。语句。例子例子8 8#include#include main()/main()/*程序的功能求程序的功能求1010的阶乘的阶乘*/long sum=1;long sum=1;int t;int t;for(t=1;t=10;t+)for(t=1;t=10;t+)sum sum*=t;=t;printf(“10 printf(“10的阶乘为的阶乘为%ldn”,sum);%ldn”,sum);第28页,共55页。查找循环:和查找循环:和ifbreak语句配合使用,当找到语句

    15、配合使用,当找到符合条件的值时,就跳出循环;反之,则继续符合条件的值时,就跳出循环;反之,则继续查找。查找。#include /*例子例子9*/main()int i,a;for(i=1;i=101)printf(“不存在不存在n”);第29页,共55页。3)3)无限循环:没有循环条件或条件永远为真无限循环:没有循环条件或条件永远为真值的值的forfor循环是无限循环。例如在显示功能循环是无限循环。例如在显示功能菜单并等待键盘输入的应用中,或者在单片菜单并等待键盘输入的应用中,或者在单片机控制中等待外部变量的变化过程中,都可机控制中等待外部变量的变化过程中,都可以使用无限循环。此时只有在循环体

    16、中判断以使用无限循环。此时只有在循环体中判断某个条件为真时,用某个条件为真时,用breakbreak语句跳出循环。语句跳出循环。第30页,共55页。例子10#include main()char c;for(c=getchar();c=getchar()clrscr();/*清屏*/puts(“please select key:n”);puts(“1.insert recordn”);puts(“2.delete recordn”);puts(“3.print recordn”);puts(“0.Exitn”);if(c=0)break;第31页,共55页。switch(c)case 1:i

    17、nsert();break;case 2:delete();break;case 3:print();break;default:printf(“errorn”);break;第32页,共55页。4)延时循环:即循环体内不做任何事情,只是使延时循环:即循环体内不做任何事情,只是使CPU等待一定时间后再执行程序,这在控制两个动作之等待一定时间后再执行程序,这在控制两个动作之间的时间间隔上经常使用。间的时间间隔上经常使用。#inlcude /*例子例子11*/main()int t;clrscr();puts(“hello,welcome you!n”);for(t=1;t=1000;t+);pu

    18、ts(“并祝您能早日掌握并祝您能早日掌握C语言语言n”);getchar();第33页,共55页。5 循环的嵌套 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。其中三种循环可以互相嵌套。while()do while();第34页,共55页。例子1 若t,k已定义为int 类型,则以下程序段中循环体执行总的次数是?for(t=5;t;t-)for(k=0;k4;k+)printf(“*”);第35页,共55页。循环嵌套的应用 1)用来处理数组中元素(如赋值、排序、输出等)例子2#include main()int s23,t,k;for(t=0;t=1;t+)for(k=0;k=2;

    19、k+)scanf(“%d”,&stk);for(t=0;t=1;t+)for(k=0;k=2;k+)printf(“%5d”,stk);第36页,共55页。2)解决数学上的穷举法问题例子3 婚礼上的谎言 三对情侣参加婚礼,三个新郎为A,B,C三个新娘为X,Y,Z。有人想知道究竟谁和谁结婚,于是就问新人中的三位,得到如下的提示:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人事后知道他们在开玩笑,说的全是假话。那么,究竟谁与谁结婚呢?第37页,共55页。#include#include main()main()char A,B,C;char A,B,C;for(A=X;A=Z;A+)

    20、for(A=X;A=Z;A+)for(B=X;B=Z;B+)for(B=X;B=Z;B+)for(C=X;C=Z;C+)for(C=X;C=Z;C+)if(A!=X&C!=C&C!=Z&A!=B&A!=C&B!=C)if(A!=X&C!=C&C!=Z&A!=B&A!=C&B!=C)printf(“A will marry to%cn”,A);printf(“A will marry to%cn”,A);printf(“B will marry to%cn”,B);printf(“B will marry to%cn”,B);printf(“C will marry to%cn”,C);prin

    21、tf(“C will marry to%cn”,C);第38页,共55页。五、break语句作用:从循环体内跳出循环,接着执行控制语句下 面的语句。如例子1#include#define PI 3.14156 main()int r;float area;for(r=1;r100)break;printf(“%fn”,area);第39页,共55页。break语句通常用于以下两种情况:用于switch语句的语句序列中,作用是退出 switch语句。用在循环中,其功能是用来退出循环结构,即当运行到循环体中的break语句时,就立即 退出循环。通常和if语句结合使用。第40页,共55页。七、con

    22、tinue 语句一般形式:continue作用:结束本次循环,跳过循环体中下面尚未执行的语句,接着进行下一次是否进行循环的判定main()int n;for(n=100;n=200;n+)if(n%3=0)continue;else printf(“n=%dn”,n);第41页,共55页。书中例1 用/4约等于1-1/3+1/5-1/7+1/9+式,求的近似值,直到最后一项的绝对值小于10-6为止#include#include main()int s=1;float n=1,t=1,pi=0;while(fabs(t)1e-6)pi+=t;n+=2;s=s*(-1);t=s/n;pi*=4;

    23、printf(“pi=%10.6fn”,pi);第42页,共55页。书中例3 判断m是否是素数判断m能被2sqrt(m)中的任何一个整数整除,则它不是素数,否则就是素数。#include#include main()int m,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i=k+1)printf(“%d is a prime numbern”,m);else printf(“%d is not a prime numbern”,m);第43页,共55页。书中例4 译密码,为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文,例如,将字母A变

    24、成字母E,a变成字母e,则变成其后的第4个字母,W变成A,X变成B,Y 变成C,Z变成D。输入一行字符,要求输出其相应的密码。第44页,共55页。#include main()char c;while(c=getchar()!=n)if(c=a&c=A&c=Z&cz)c=c-26;printf(“c”,c);第45页,共55页。本章练习1下面程序输出的结果是_#include main()int x=3;do printf(“%dn”,x-=2);while(!(-x);输出的是1 输出的是1和-2 输出的是3和0A)是死循环第46页,共55页。2 设x和y均为int型变量,则执行下面的循环后

    25、,y的值为_for(y=1,x=1;y=10)break;if(x%2=1)x+=5;continue;x-=3;2 4 6A)8第47页,共55页。3 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空:int n=0,c;c=getchar();while(_)if(_)n+;c=getchar();第48页,共55页。4 当运行以下程序时,从键盘键入right?(代表回车),则下面程序的运行结果是_#include main()char c;while(c=getchar()!=?)putchar(+c);第49页,共55页。5 执行下面的程序后,k值是_ k=1

    26、;n=263;do k*=n%10;n/=10;while(n);6 下面程序段的运行结果是_ x=2;do printf(“*”);x-;while(!x=0);7 鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空.for(x=1;x=29;x+)/*x代表鸡的个数y代表兔的个数*/y=30-x;if(_)printf(“%d,%dn”,x,y);第50页,共55页。8 若for循环用以下形式表示:for(表达式1;表达式2;表达式3)循环体语句 则执行语句for(I=0;I3;I+)printf(“*”);时,表达式1执行_次,表达式3执行_次。第51页,共55页。9

    27、下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“no exist”。请填空。#include main()int i,a;for(i=1;i0&y5);printf(“y=%d,x=%d”,y,x);第53页,共55页。11 以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。float x,max,min;scanf(“%f”,&x);max=x;min=x;while(_)if(xmax)max=x;if(_)min=x;scanf(“%f”,&x);printf(“nmax=%fnmin=%fn”,max,min);第54页,共55页。12下面程序的输出结果是_#include void main()int s=0,k;for(k=7;k4;k-)switch(k)case 1:case 4:case 7:s+;break;case 2:case 3:case 6:break;case 0:case 5:s+=2;break;printf(“s=%d”,s);第55页,共55页。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机本科c措辞第六章讲稿[优质课件.ppt
    链接地址:https://www.163wenku.com/p-3294573.html

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


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


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

    163文库