计算机二级C语言程序设计第5讲.ppt
《计算机二级C语言程序设计第5讲.ppt》由会员分享,可在线阅读,更多相关《计算机二级C语言程序设计第5讲.ppt(63页珍藏版)》请在三一办公上搜索。
1、5.1 while语句5.2 do-while语句5.3 for 语句5.4 循环的嵌套5.5 break、continue和goto语句5.6 程序举例,第5讲 循环结构程序设计,2,C语言有while、do-while、for三种循环结构语句。前两个称为条件循环,即根据条件来决定是否继续循环;后一个称为计数循环,即根据设定的执行次数来执行循环。,5.1 while 语句及其循环结构,while 语句和格式及执行过程:格式:while(表达式)语句执行过程:先计算表达式之值,若为非0(即条件成立),执行后面的语句(称之为循环体)之后,再计算表达式之值进行判断,如此多次重复执行循环体;若表达式
2、之值为0(即条件不成立),跳出循环体语句,继续向下执行。,while 语句的流程图,表达式,语句(循环体),Y(非0),N(0),while(表达式)语句,例1 求1100之间所有整数的和,i=100,sum+=i;/*累加*/i+=1;/*计数器加1*/,Y(非0),N(0),i=1;sum=0;,printf(i=%d,sum=%dn,i,sum);,求1100之间整数和的程序,main()int i=1,sum=0;while(i=100)sum+=i;i+=1;printf(i=%d,sum=%dn,i,sum);,这是一个while语句,想一想,语句sum+=i;和语句i+=1;能否
3、改变位置?为什么?,想一想,如果在while语句之前对变量sum赋初值为1,是否可以?程序的哪些地方应作相应的改动?,求1100之间整数和的程序运行过程,main()int i=1,sum=0;while(i=100)sum+=i;i+=1;printf(i=%d,sum=%dn,i,sum);,这是一个while语句,程序执行的过程和结果如下:,i=101,sum=5050,注意:循环结束后,变量i 的值一定大于100。,想想这样的一段循环语句的执行结果:i=1;while(i=100)putchar(*);i+;,这个循环永远不会结束,因为循环控制变量i没有在循环体内被改变,i+;不属于循
4、环体。,应该改为:,i=1;while(i=100)putchar(*);i+;,循环语句中一定要注意表达式的值是否能在循环执行过程中被改变,以免造成死循环。,5.2 do-while 语句及其循环结构,dowhile 语句和格式及执行过程:格式:do 语句 while(表达式);执行过程:先执行语句(称之为循环体),然后计算表达式之值,若为非0(即条件成立),再执行语句(循环体)后计算表达式之值,如此多次重复执行循环体并判断条件;若表达式之值为0(即条件不成立),结束循环,继续向下执行。,dowhile 语句的流程图,表达式,语句(循环体),Y(非0),N(0),注意:while循环语句与d
5、o-while循环语句的区别。,用do-while语句求100以内正整数的和,main()int i=1,sum=0;do sum+=i;i+=1;while(i=100);printf(i=%d,sum=%dn,i,sum);,i=101,sum=5050,从键盘上输入10个整数,求总和及平均值,main()int x,sum=0,i=1;float aver;while(i=10)scanf(%d,从键盘上输入若干个整数,求总和及平均值,输入-1结束,main()int x,sum=0,i=1;float aver;while()sum+=x;i+;scanf(%d,scanf(%d,x!
6、=-1,5.3 for 语句,格式:for(表达式1;表达式2;表达式3)语句执行:(1)先求解表达式1的值。(2)再求解表达式2的值,若值为非0(条件成立),则执行语句(循环体)后执行下面的(3);若表达式2的值为0(条件不成立),则转向(5)。(3)求解表达式3的值。(4)转回执行(2)。(5)执行for语句后面的语句。,for 语句执行流程图,表达式2,语句(循环体),Y(非0),N(0),表达式1,表达式3,for(表达式1;表达式2;表达式3)语句,求1100之间的整数之和(for语句),main()int i,sum;for(i=1,sum=0;i=100;i+)sum+=i;pr
7、intf(i=%d,sum=%dn,i,sum);,i=101,sum=5050,求1100之间的整数之和(for语句),main()int i,sum;for(;i=100;i+)sum+=i;printf(i=%d,sum=%dn,i,sum);,i=101,sum=5050,表达式1可缺省,放在循环之前,但for语句中的第一个分号不能省略,i=1;sum=0;,求1100之间的整数之和(for语句),main()int i,sum;for(;i=100;)sum+=i;printf(i=%d,sum=%dn,i,sum);,i=101,sum=5050,表达式3可缺省,放在循环体之中,但
8、for语句中的第二个分号不能省略,i=1;sum=0;,i+;,求1100之间的整数之和(for语句),main()int i,sum;for(i=1,sum=0;i=100;sum+=i,i+)printf(i=%d,sum=%dn,i,sum);,i=101,sum=5050,循环体中的内容可以放在表达式3中,但要在花括号的后面加一个空语句,;,for语句的一般格式,在for语句中,一般表达式1用来为变量赋初值;表达式2一般用来设置循环结束条件;表达式3一般用于循环变量增值。,故 for 语句的一般格式为:for(变量赋初值;执行循环体的条件;循环变量增值)语句,例:求 1/100+2/9
9、9+1,分析:用变量i从1开始循环,每次增加1;用变量j从100开始循环,每次减少1。累加i/j的值到s中。当ij时结束循环(即i=j时继续循环)。最后输出s。,#includemain()int i,j;float s=0;for(i=1,j=100;i=j;i+,j-)s=s+(float)i/j;printf(“ns=%f”,s);,例:任意输入一个自然数,把它反序输出。(如:原数为123,输出321)。,分析:此题不确定循环执行的次数,也不涉及一个规律变化的变量,一般用while或do-while来编写。又由于第一次就要判断输入的是否是自然数,通常用while来实现。算法步骤如下:,1
10、.定义整型变量a用于存储输入的自然数,定义t初值为0用于存放a的反序数,定义i用于依次存放求出的a的每一位的数值。2.输入一个自然数赋值给变量a3.若a0,执行第4步,否则执行第7步4.i=a%105.t=t*10+i6.a=a/10,并返回第3步7.输出t,程序:,#includemain()long a,i,t=0;scanf(“%ld”,1、有以下程序main()int i;for(i=1;i=40;i+)if(i+%5=0)if(+i%8=0)printf(%d,i);printf(n);执行后的输出结果是 A)5 B)24 C)32 D)40,2006-9,2、若变量已正确定义,有以
11、下程序段i=0;doprintf(%d,i);while(i+);printf(%dn,i);其输出结果是A)0,0B)0,1C)1,1D)程序进入无限循环3、有以下程序#includemain()inty=9;for(;y0;y-)if(y%3=0)printf(%d,-y);程序的运行结果是A)741B)963C)852D)875421,2007-9,2007-9,4、以下程序的输出结果是()#includemain()intn=12345,d;while(n!=0)d=n%10;printf(%d,d);n/=10;5、有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k=
12、n;k+)s=s+1.0/(k*(k+1);printf(s=%fnn,s);请填空,使下面程序段的功能与之完全相同s=1.0;k=1;while(_)s=s+1.0/(k*(k+1);_;printf(s=%fnn,s);,2007-954321,2007-9k=nk+,6、以下程序的输出结果是()#includemain()inti;for(i=a;if;i+,i+)printf(%c,i-a+A);printf(n);,2007-9ACE,7、有以下程序#include main()intx=8;for(;x0;x-)if(x%3)printf(%d,x-);continue;print
13、f(%d.,-x);程序运行的结果是 A)7,4,2,B)8,7,5,2,C)9,7,6,4,D)8,5,4,2,2008-4,8、以下不构成无限循环的语句或语句组是A)n=0;B)n=0;do+n;while(n=0);while(1)n+;C)n=10;D)for(n=0,i=1;i+)n+=i;while(n);n-;15、若有定义:intk;,以下程序段的输出结果是(#2#4)for(k=2;k6;k+,k+)printf(#%d,k);,2008-4,9、有以下程序#includemain()inti=5;doif(i%3=1)if(i%5=2)printf(*%d,i);break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言程序设计

链接地址:https://www.31ppt.com/p-6606176.html