- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第05章C语言
5.1 循环语句概述 求1~100的累计和。 根据已有的知识,可以用“1+2+……+100”来求解,但显然很繁琐。现在换个思路来考虑: 首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累计和。 (4)用goto语句和if语句构成循环。使用goto语句实现求解1~100累计和的程序可以如下: main() { int n=1, sum=0; loop: sum += n; n++; if (n=100) goto loop; printf(“sum=%d\n”, sum); } 其中“loop:”为语句标号(格式:标号: 语句行),其命名遵循标识符命名规则。goto语句格式:goto 标号,功能为:使系统转向标号所在的语句行执行。 注意:结构化程序设计方法,主张限制使用goto语句。因为滥用goto语句,将会导致程序结构无规律、可读性差。 [Return] 5.2 for语句和while语句 在3条循环语句中,for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况。[案例5.1] 求1~100的累计和。/*案例代码文件名:AL5_1.C*//*程序功能:求1~100的累计和*/main() { int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i=100; i++) sum += i; /*实现累加*/ printf(sum=%d\n,sum); } [程序演示] 程序运行情况如下: sum=5050 /*案例代码文件名:AL5_2.C*//*程序功能:求n!*/main() { int i, n; long fact=1; /*将累乘器fact初始化为1*/ printf(“Input n: ”); scanf(“%d”, n); for(i=1; i=n; i++) fact *= i; /*实现累乘*/ printf(%d ! = %ld\n, n, fact); } [程序演示] 程序运行情况如下:Input n: 5↙5 ! = 120 1.for语句的一般格式 for([变量赋初值];[循环继续条件];[循环变量增值]) { 循环体语句组;} 2.for语句的执行过程 (1)求解“变量赋初值”表达式。 (2)求解“循环继续条件”表达式。如果其值非0,执行(3);否则,转至(4)。 (3)执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。 (4)执行for语句的下一条语句。 3.说明 (1)“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。 (2)当循环体语句组仅由一条语句构成时,可以不使用复合语句形式,如上例所示。 (3)“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。 例如,for(sum=0;i=100;i++) sum += i; for(sum=0,i=1;i=100;i++) sum += i; (4)“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。 4.while语句 (1)一般格式 while(循环继续条件) { 循环体语句组;} (2)执行过程 执行过程: 1)求解“循环继续条件”表达式。如果其值为非0,转2);否则转3)。 2)执行循环体语句组,然后转1)。 3)执行while语句的下一条。 显然,while循环是for循环的一种简化形式(缺省“变量赋初值”和“循环变量增值”表达式)。 [案例5.3] 用while语句求1~100的累计和。/*案例代码文件名:AL5_3.C*//*程序功能:求1~100的累计和*/main() { int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/ while( i=100 ) { sum += i; /*实现累加*/ i++; /*循环控制
您可能关注的文档
- c语音教案第5章.ppt
- 空间向量与空间角.ppt
- C语言课件1-3章.ppt
- 第七章 脂肪代谢.ppt
- 电磁学第8章习题.ppt
- 工程流体力学-第一次习题课.ppt
- 第9章 8051扩展资源的C编程.ppt
- 第八章 8051内部资源的C编程.ppt
- 运筹学-1复习.doc
- 概率论与数理统计第七章习题.ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)