C语言程序设计电子教案(2).ppt_第1页
C语言程序设计电子教案(2).ppt_第2页
C语言程序设计电子教案(2).ppt_第3页
C语言程序设计电子教案(2).ppt_第4页
C语言程序设计电子教案(2).ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 循环结构的C程序设计 YYH版 第5章 循环结构程序设计 5.1 while循环语句 5.2 do-while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句和continue语句 5.6 goto语句和标号 5.7 程序举例 教材上的 第二章2.5 中的一部 分(2.5.5) 第5章 循环结构的C程序设计 YYH版 5.1 while循环语句(格式1) 1. 格式: 图 5.1 while循环 2. 功 能 图 3. 执行过程:先计算while 后面圆括号内表达式的值, 如果其值为“真”(非0),则执 行语句部分(即循环体),然 后再计算表达式的值,并重 复上述过程,直到表达式的 值为“假”(0)时,循环结束。 注意:while循环中的表达 式一般是关系表达式(如 i0)个数,求其和 。 图 5.2 求n个 数的和的程 序框图(细 框) 输入 处理 输出 编程粗框三部曲 第5章 循环结构的C程序设计 YYH版 #include /#include void main() int i, n, x, sum; i=1; sum=0; /定义计数/累加器 printf(“Input:“);/coutn; while(ix; sum=sum+x; /循环求和 i+; /循环计数 printf(“nsum is: %dn“, sum); /cout void main() char ch; int len=0; /字符计数变量/器初始化 puts(“Type in a sentence, then press n“); while (ch=getch()!=r) putchar(ch); /将刚键入的字符输出 len+; printf(“nSentence is %d characters long.n“, len); 运行结果: Type in a sentence, then press this is a sentence. Sentence is 19 characters long. 包含空格 赋值表达式 第5章 循环结构的C程序设计 YYH版 5.2 do-while循环语句(格式2) 1. 格式 图5.4 do-while循环 2. 功能图 3. 执行过程(先执行 后判定) :先执行循环体 中的语句,然后计算表 达式的值;若表达式的 值为“真”(非0),则再次 执行循环体;如此重复 ,直至表达式的值为“假 ”(0)时结束循环。 注意:与while语句(先判 定后执行)比较。 例 5.3 利用dowhile 语句重做例5.1。 do 语句块 (即循环体 ) while (表达式); 第5章 循环结构的C程序设计 YYH版 图5.5求n 个数和的 程序框图 #include void main() int i, n, k, sum; i=1; sum=0; printf(“Input n: “); scanf(“%d“, do scanf(“%d“, sum=sum+k; i+; while(i void main() int i, n, k, sum=0; printf(“Input n: “); scanf(“%d“, for (i=1; i void main() int i,sum=0;/定义循变和累加器 for (i=1; i=1; i-)”)与循环变 量的初值和终值有关;2)for语 句的循环次数是可计算的,而 while语句的循环次数一般是不 可计算的(按条件循环)。 实例 见“VC+实例/一般程序/基 本循环编程求a+aa+aaa+”和“C+ 级数(方一循环方二数组)” 终值 初值 步长 +1 ) 循环次数=int ( 比较:对循环次数确定 的用for循环语句;对循 环次数不确定的用while 循环语句(使用条件)。 第5章 循环结构的C程序设计 YYH版 5.4 多重循环或循环嵌套 当一个循环体内又包含另一个完整的循环结构时,称为多 重循环或循环嵌套,其循环结构可用上述三种循环语句的任意 一种。 例如,下面是两种循环嵌套的示意图。 (1) while ( ) while ( ) (2) for (; ; ) do while( ); 外循环内循环 (3) for (i=1; ; ) for (j=1; ; ) 第5章 循环结构的C程序设计 YYH版 说明: (1) 循环嵌套中的各循环变量不能同名; 而并行循环的循环变量 可同名。 (2) 对循环嵌套,当内循环循环完毕时,外循环才开始下一轮循 环,此时,内循环又从头开始循环;故内循环的总次数为内 外循环次数之积。 for (i=1; ; ) for (j=1; ; ) for (i=1; ; ) for (i=1; ; ) for(i=1;i void main() 第5章 循环结构的C程序设计 YYH版 i: j: 改内循环的初或 终值为外循环的 循变的函数及输 出格式,如:该内 循环控制语句为 for(j=1;j void main() int r; float area; for (r=1; r100) break; printf(“r: %d area is: %fn“, r, area); 运行结果: r: 1 area is: 3.1415930 r: 2 area is: 12.566370 r: 3 area is: 28.274334 r: 4 area is: 50.265480 r: 5 area is: 78.539818 问题:1、此例实际循环六次(即计算了六次, 第六次 因area100而跳出循环),但输出了五次。2、若改题 为“计算r=1、2、3的圆面积,直到面积area大于 100为止”则只能用“while”语句,同学们自编。 第5章 循环结构的C程序设计 YYH版 5.5.2 continue语句 continue语句的作用是结束本次循环,即跳过循环体中下 面尚未执行的语句,直接进行下一次是否执行循环的判定。 continue语句的一般形式如下: continue; 其执行过程是:终止当前这一轮循环,即跳过循环体中 位于continue后面的语句而立即开始下一轮循环;对于while 和do-while来讲,这意味着立即执行条件测试部分,而对于 for语句来讲,则意味着立即求解表达式3。 第5章 循环结构的C程序设计 YYH版 例5.8输出100到150之间不能被3整除的数, 要求一行输出10个数。 #include void main() int n, i=0; for (n=100; n0) printf(“%4d“, n); i+; /每行的列数计数 if (i%10=0) printf (“n“); 等 价 第5章 循环结构的C程序设计 YYH版 5.6 goto语句和标号 goto语句为无条件转向语句,程序中使用goto语句时要求 和标号配合, 它们的一般形式为 goto 标号; 标号: 语句; C语言规定,goto语句的使用范围仅局限于函数内部,不允许在 一个函数中使用goto语句把程序控制转移到其它函数之内。 一般来讲,goto语句可以有两种用途: (1) 与if语句一起构成循环结构。 (2) 退出多重循环。 例:goto label1; label1: 语句; 第5章 循环结构的C程序设计 YYH版 5.7 程 序 举 例 例 5.9 用公式 求出的近似值, 直到最后一项的绝对值小于10-6为止。具体程序如下: #include #include void main() int s; /定义每项的变量 float n, t, pi; /定义每项:n-每项分母;t-每项;pi- t=1;pi=0;n=1.0;s=1; /初始化 第5章 循环结构的C程序设计 YYH版 while (fabs(t)=1e-6) /当每项的绝对值不小于10-6时循环处理 pi=pi+t; /累加下一项 n=n+2; /准备下一项分母 s=-s; /准备下一项的符号 t=s/n; /求出下一项t pi=pi*4; /求出 printf(“pi=%10.6fn”,pi); 运行结果: pi= 3.141594 实例见“VC+实例一般程序C+ 应用举例(双重循环)”下的“c+双重 循环求素数”和“双重循环求完数” 问题:1、 pi=pi+t; 和 n=n+2; 顺序调换可否 ?2、 s=-s; 和t=s/n;顺 序调换可否? 第5章 循环结构的C程序设计 YYH版 例 5.10 从键盘输入一个大于2的整数n,判断n是不是素数 。 #include #include void main() int n, k, i, flag=0; /定义是否素数标志 do /保证(反复)输入大于2的整数n printf(“Input a number: “); scanf(“%d“, while(n #include void main() float x, x0, f, f1; printf(“Enter the first approch x: “); scanf(“%f“, do x0=x; f=(2*x0-4)*x0+3)*x0-6; /* 求f(x0) */ f1=(6*x0-8)*x0+3; /* 求f(x0) */ x=x0-f/f1; 第5章 循环结构的C程序设计 YYH版 while(fabs(x-x0)=1e-5); printf(“The root of equation is: %10.7fn“, x); 运行结果: Enter the first approch x: 1.5 The root of equation is: 2.0000000 例 5.12 从键盘输入4个9以内的数字字符,将其转换为4位十进 制数后显示出来。 分析:(1)将每个数字字符c变成对应的数字,即将以 ASCII码表示的数字字符变成一位十进制数,方法为:c-0, 如c=8时,c-0=8。转换中若遇非09字符则结束转换。 第5章 循环结构的C程序设计 YYH版 (2)将每次变换的一位十进制数,从高位开始,按位加权, 变成多位的十进制数,放在变量data中。如输入1,2,3,4 , 则 结果应是按%d格式显示的1234。 具体程序如下: #include #include void main() char c; int i, data=0; printf(“Input char : “);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论