C语言第四章循环结构
C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构
第4章循环结构【练习 4-1】在例 4-1 程序中,如果对 item 赋初值 0,运行结果是什么?为什么?如果将精度改为 10-3,运行结果有变化吗?为什么?解答:如果对 item 赋初值 0,则程序运行结果是 pi=0,因为 item 为 0 时不满足 while 循环的执行条件,即不执行循环,故 pi 值为 0。
如果将精度改为10-3,运行结果会有变化,因为精度改变意味着 while 循环的条件改变,精度变大使得 while 循环次数减少,必然影响到π的值。
【练习 4-2】运行例 4-2 程序时,如果将最后一个输入数据改为-2,运行结果有变化吗?如果第一个输入数据是 -1,运行结果是什么?为什么?解答:如果将最后一个输入数据改为-2,运行结果没有变化,因为最后一个负数是一结束标志,不进行统计,故任意一个负数都可以。
如果第一个输入数据是-1,运行结果是:Grade averageis 0,因为第一个输入就是-1,则 while 循环条件不成立,不执行循环体。
【练习 4-3】序列求和(1-1/4+1/7-1/10+1/13-1/16+…):输入一个正实数 eps,计算序列1-1/4+1/7-1/10+1/13-1/16+…的值,精确到最后一项的绝对值小于eps(保留6位小数)。
试编写相应程序。
解答:#include <stdio.h>#include <math.h>int main(void){int denominator, flag;double item, s,eps;printf(“Input eps:”);scanf(“%lf”,&eps);flag = 1;denominator = 1 ;item = 1.0;s = 0;while(fabs (item) >= eps) {item = flag * 1.0 / denominator;s = s + item;flag = -flag;denominator = denominator +3;}printf ( “s = %f\n”, s);return 0;}【练习 4-4】如果将例 4-3 程序中的 do-while 语句改为下列 while 语句,会影响程序的功能吗?为什么?再增加一条什么语句,就可以实现同样的功能?while(number != 0){number = number / 10;count ++;}解答:会有影响,因为当输入数据 number 为 0 时,上述 while 循环将不执行,count 值仍为 0,故输出为 0,不符合题目要求。
c语言 循环结构
c语言循环结构循环结构在C语言中是一种非常重要的语法结构,它可以使程序按照预定的次数重复执行特定的代码块。
循环结构的概念非常简单,但是掌握它的使用方法和技巧对于编写高效的程序至关重要。
C语言中的循环结构主要有三种形式:for循环、while循环和do-while循环。
这三种循环结构在使用上有一些区别,但它们的基本原理都是一样的,即通过判断条件是否满足来决定是否继续执行循环体中的代码。
首先我们来看一下for循环结构。
for循环由三个部分组成:初始化部分、判断条件部分和更新部分。
在每次循环开始之前,初始化部分会被执行一次,用于初始化循环变量;然后会判断条件部分的结果,如果条件为真,则执行循环体中的代码,执行完之后会执行更新部分,然后再次判断条件部分的结果。
这样循环体中的代码就会被重复执行,直到条件为假为止。
for循环结构非常适合用于已知循环次数的情况。
接下来是while循环结构。
while循环只有一个判断条件部分,没有初始化部分和更新部分。
在每次循环开始之前,会先判断条件部分的结果,如果条件为真,则执行循环体中的代码,执行完之后再次判断条件部分的结果。
这样循环体中的代码就会被重复执行,直到条件为假为止。
while循环结构适合用于未知循环次数的情况。
最后是do-while循环结构。
do-while循环也只有一个判断条件部分,但它与while循环的区别在于,它是先执行循环体中的代码,然后再判断条件部分的结果。
也就是说,无论条件是否为真,循环体中的代码至少会被执行一次。
之后会继续判断条件部分的结果,如果条件为真,则继续执行循环体中的代码,直到条件为假为止。
do-while循环结构适合用于至少执行一次循环体的情况。
除了上述三种基本的循环结构,C语言还提供了一些控制循环流程的语句,如break语句和continue语句。
break语句可以用来跳出循环,即使循环条件仍然为真;而continue语句可以用来终止当前循环的迭代,然后继续下一次循环的迭代。
c语言循环结构三种形式
c语言循环结构三种形式
c语言循环结构主要有三种形式:for, while和do-while循环。
for循环应用最为广泛,最开始就非常有效地在程序中实现循环,具有如下优点:
(1)for循环可以方便地设置初始值、循环条件和自增步长;
(2)可以轻松实现多次循环;
(3)for循环可以轻松实现多次跳转,提高代码效率。
while循环移植性很强,可以在各种编程环境中使用,其特点如下:
(1)while循环这种结构可以在完成迭代后进行求和、求交集等操作;
(2)while循环操作符号简单,只有while、break、continue;
(3)while循环可以满足常见的迭代需求,如逐行读取文件、拆分字符串以及连接字符串等。
do-while循环最大的优势在于可以保证循环至少执行一次,其优点如下:
(1)执行流程不会因外部影响而受到损害;
(2)循环条件位于循环末尾;
(3)可以简单实现多次迭代,可以根据条件来完成不同的功能。
总的来说,c语言的循环结构非常灵活,根据实际需求可以采用for、while或者do-while结构进行编程。
对于开发者来说,掌握这三种循环结构将可以帮助你更加方便有效地完成程序编写任务。
计算机编程CHP4_循环结构
#include <stdio.h> Int main(void) Enter grades: -1 67 88 73 54 82 { int num; Grade average mark is 0 double grade, total; num = 0; total = 0; printf(“Enter grades: \n"); scanf("%lf", &grade); /* 输入第 个数 输入第1个数 个数*/ while (grade >= 0) { /* 输入负数,循环结束 */ 输入负数, total = total + grade; num++; Enter grades: 67 88 73 54 82 -1 scanf (“%lf”, &grade); Grade average is 72.80 } if(num != 0) printf(“Grade average is %.2f\n", total/num); else printf(" Grade average is 0\n"); return 0; }
第四章
循环结构
本章教学要求
1. 理解C语言循环程序的概念与基本原理,熟 理解C 语言循环程序的概念与基本原理, 循环程序的概念与基本原理 悉循环的功能。 悉循环的功能。 循环结构程序设计的基本方法 掌握循环结构程序设计的基本方法。 2. 掌握循环结构程序设计的基本方法。 3. 正确区分while、do-while语句的异同。 正确区分while do-while语句的异同 while、 语句的异同。 掌握break continue语句在循环中的使用 break和 4. 掌握 break 和 continue 语句在循环中的使用 方法。 方法。 通过多重循环程序设计 多重循环程序设计, 5. 通过 多重循环程序设计 , 更加深入地掌握 结构化程序设计方法,进一步加深“CDIO理 结构化程序设计方法, 进一步加深“CDIO 理 在计算机编程中的应用。 念”在计算机编程中的应用。
c语言中循环结构
c语言中循环结构循环结构在C语言中是一种非常重要的控制结构,它能够让程序重复执行某段代码,实现代码的复用和效率的提高。
循环结构主要有三种形式:while循环、do-while循环和for循环。
1. while循环while循环是一种先判断条件再执行的循环结构。
它的语法形式如下:```while (条件) {循环体语句;}```在循环开始之前,先判断条件是否成立,如果条件成立,则执行循环体语句;否则,跳过循环体语句,继续执行后面的代码。
循环体执行完毕后,再次判断条件是否成立,如果成立,则继续执行循环体语句,直到条件不成立为止。
2. do-while循环do-while循环和while循环类似,不同之处在于它是先执行循环体,再判断条件是否成立。
它的语法形式如下:```do {循环体语句;} while (条件);```在循环开始时,先执行循环体语句,然后判断条件是否成立,如果条件成立,则继续执行循环体语句,否则跳出循环。
3. for循环for循环是一种常用的循环结构,它的语法形式如下:```for (初始化表达式; 条件表达式; 更新表达式) {循环体语句;}```for循环的执行顺序是先执行初始化表达式,然后判断条件是否成立,如果条件成立,则执行循环体语句;执行完循环体语句后,再执行更新表达式,再次判断条件是否成立,以此类推。
当条件不成立时,跳出循环。
循环结构的应用非常广泛,可以用于处理各种重复性任务,比如计算数列的和、输出九九乘法表等。
下面以计算数列的和为例,演示这三种循环结构的使用。
我们来看一下使用while循环计算数列的和的代码:```#include <stdio.h>int main() {int n = 10; // 数列的长度int sum = 0; // 数列的和int i = 1; // 循环变量while (i <= n) {sum += i;i++;}printf("数列的和为:%d\n", sum);return 0;}```在这段代码中,我们使用while循环从1开始累加到n,得到数列的和。
第4章 C语言程序的基本控制结构
#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B
真
表达 式
假
条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)
C语言中的循环结构
C语言中的循环结构循环结构是编程中常用的控制结构之一,它允许程序重复执行特定的代码块,直到满足某个条件为止。
在C语言中,有三种主要的循环结构:`for`循环、`while`循环和`do-while`循环。
首先,让我们来看一下`for`循环。
`for`循环是C语言中最常用的循环结构之一,它通常用于已知循环次数的情况。
`for`循环的语法如下:```for (初始化表达式; 条件表达式; 更新表达式) {// 循环体}```其中,初始化表达式用于初始化循环计数器,条件表达式用于判断循环是否继续执行,更新表达式用于更新循环计数器。
例如,下面的代码展示了一个简单的`for`循环,它会打印1到5的数字:```for (int i = 1; i <= 5; i++) {printf("%d\n", i);}```接下来,让我们来看一下`while`循环。
`while`循环用于在满足条件的情况下重复执行代码块,直到条件不再成立。
`while`循环的语法如下:while (条件表达式) {// 循环体}````while`循环会在每次循环开始前先检查条件表达式,如果条件为真,则执行循环体。
例如,下面的代码展示了一个简单的`while`循环,它会打印1到5的数字:```int i = 1;while (i <= 5) {printf("%d\n", i);i++;}```最后,让我们来看一下`do-while`循环。
`do-while`循环与`while`循环类似,不同之处在于`do-while`循环会先执行一次循环体,然后再检查条件是否成立。
`do-while`循环的语法如下:```do {// 循环体} while (条件表达式);`do-while`循环会先执行循环体,然后再检查条件表达式。
即使条件不成立,循环体至少会被执行一次。
例如,下面的代码展示了一个简单的`do-while`循环,它会打印1到5的数字:```int i = 1;do {printf("%d\n", i);i++;} while (i <= 5);```总的来说,循环结构在C语言中是非常重要的,它可以使程序更加灵活和高效。
c语言循环结构三种形式
c语言循环结构三种形式
循环结构是c语言程序设计中重要的一环,它是指将指定的语句重复执行多次的程序结构,循环结构有三种形式:for循环,while循环和do…while循环。
for循环是一种最常用的循环结构,其结构形式为:for(表达式1;表达式2;表达式3)语句;(注意:表达式1、2、3之间用分号隔开,表达式3要用分号结尾),每次循环都会按照表达式1、2、3的顺序执行,其中表达式1一般是初始化变量的值,表达式2则是作为循环条件(集限),表达式3则是更改变量的值。
while循环是另一种比较常用的循环结构,其结构形式为:while(表达式)语句,while循环的作用是当表达式值为真时则重复执行相应的语句,也就是说,只要表达式的值为真,语句就会一次被执行,最后当表达式值为假时,结束循环。
最后一种结构是do…while循环,其结构形式为:do句 while (表达式),不同于while循环,do…while循环会先执行语句,然后才判断表达式,也就是说,无论表达式的值是真还是假,语句都会被至少执行一次。
c语言程序设计中,for循环,while循环和do…while循环共同构成了循环结构的三种形式,它们均是c语言中重要的程序控制结构。
对于for循环,我们可以使用其来完成同一段代码的多次执行;而对于while循环,可以利用其来完成当表达式值为真时的重复执行;最后,对于do…while循环,可以利用其来完成将语句至
少执行一次的操作。
从上面可以看出,不论是c语言编程还是其他编程语言,都不可缺少循环结构,其中for循环,while循环和do…while循环是循环结构当中最为常用的三种形式,他们能够极大地提高程序员的编程效率,帮助我们完成一些复杂的程序编写工作。
《C语言程序设计课件》第四章-循环语句
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)
C语言for循环说课课件
C语言说课
说教材
职业中等教育“十一五”国家级规划 教材《语言基础——C语言》(第5 版),教材由高等教育出版社出版。
此教材的特点是:在提出问题的同时 给出示例程序,而示例程序尽量将主 要的知识点演示出来,使读者对解决 同类问题的程序设计思想有比较全面 的认识。从而满足初学者以及对程序 要求不是很高的读者的需求,正好适 合中职层次的人才培养目标
■ 针对学生这一基本特征,教学模式和教学 方法要进行相应的调整
C语言说课
说课导航
说课程性质和地位 说教材 说教学目标 说教学重难点 说教学资源 说学情 说教法学法 说教学过程
说教学反思
C语言说课
教法分析
教学方法
情境导入法 案例导入法 对比教学法 任务驱动法 项目式教学法
C语言说课
教法分析
例如用案例“自然数1~100的和”来导入循 环结构
考核评价
考核 分类
考核内容
实训 学习态度
课堂
技能 30%
不迟到 率
30%
纪率 10%
作业 20%
提问 10%
评 分
项目1:初识C程序设计
项目2:C程序设计基础——数据类型转换
项目3:选择结构程序设计——学生成绩评定
项目4:循环结构程序设计——乘法表
过程 考核 40%
项 项 项目目目过(567: : :程10字数 指考0符组 针%串— —核)— ——成 图—=绩 书字(统 查符技3计询分0能类%)
课程性质
必修课
软考的重点
其它专业的前导课
C语言
软件设计的主要语言
网络专业重要语言
计控、电子的重要语言
C语言说课
课程性质和地位
第四章 循环结构程序设计
while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
chp4循环结构
第四章循环结构程序设计 (2)4.1引例——统计某门课程平均成绩 (2)4.2循环控制语句之一——while语句 (3)4.2.1使用while语句实现引例 (3)4.2.2while语句应用举例 (4)4.3循环控制语句之二——do while语句 (7)4.3.1使用do while语句实现引例 (7)4.3.2do while语句应用举例 (9)4.4循环控制语句之三——for语句 (10)4.4.1使用for语句实现引例 (10)4.4.2 for语句应用举例 (11)4.5break语句和continue语句 (13)4.6应用循环解决实际问题 (16)4.6.1使用循环嵌套统计学生的平均成绩 (16)4.6.2使用循环完善学生成绩管理系统菜单 (18)4.7小结 (20)习题 (21)上机实训 (23)阅读材料 (24)第四章循环结构程序设计在许多问题中会遇到大量具有规律性的重复运算,用C语言解决这样的问题就需要用到结构化程序设计的基本结构之一——循环结构。
在C语言中提供了专门用于循环的控制语句:while语句、do while语句和for语句。
本章着重介绍这三种循环语句及循环结构编程的基本思想。
4.1引例——统计某门课程平均成绩1.问题描述每学期末期,学生要参加考试。
考试结束后通常需要对各门课程的教学情况总结。
其中,统计所修课程的学生平均成绩是考察教学效果的重要评定参数。
假设计算机应用08班的40名同学选修了C语言程序设计,要求统计该门课程的平均成绩。
2.引例分析计算平均成绩的方法,是数学中求平均值的简单运算,即求出所有人成绩的总和,用人数去除总成绩可得结果。
具体步骤如下:1)主要变量的定义。
(1)设定变量sum存放总成绩,其初值为零,即sum=0;(2)设定变量score存放某位同学的成绩。
2)运算处理。
(1)输入第1位同学的成绩,在总成绩sum中计入其成绩,即执行语句:scanf("%d",&score);sum=sum+score;(2)接着,键入第2位同学的成绩存入变量score中,在已得总成绩值sum的基础上累加,即继续执行语句:scanf("%d",&score);sum=sum+score;(3)再输入第3位同学的成绩存入score,然后计入总成绩sum。
c语言循环结构的要素组成
c语言循环结构的要素组成一、循环条件循环条件是循环结构中的判断条件,用于决定是否执行循环体。
在C语言中,循环条件通常使用关系运算符(如<、>、<=、>=、==、!=)或逻辑运算符(如&&、||、!)来表达。
循环条件的结果必须是一个布尔值,即true或false。
二、循环体循环体是循环结构中需要重复执行的语句块。
循环体可以包含多个语句,用花括号{}括起来,形成一个代码块。
循环体中的语句将按照循环条件的判断结果执行多次,直到循环条件为false时跳出循环。
三、循环变量循环变量是循环结构中用于控制循环次数的变量。
循环变量一般在循环开始前进行初始化,然后在每次循环结束时更新其值,以便满足循环条件。
循环变量的类型可以是整型、浮点型或字符型,通常使用整型变量作为循环变量。
四、循环控制语句循环控制语句用于控制循环结构的执行流程,包括break、continue和goto语句。
1. break语句:当在循环体内遇到break语句时,循环立即终止,跳出循环体,执行循环后的语句。
break语句通常用于满足某个条件时提前结束循环。
2. continue语句:当在循环体内遇到continue语句时,循环将立即跳过当前循环的剩余语句,开始下一次循环。
continue语句通常用于在满足某个条件时跳过本次循环的执行。
3. goto语句:goto语句用于无条件地跳转到程序中的标记位置,从而改变程序的执行顺序。
虽然goto语句可以实现跳出多层循环的功能,但过多使用goto语句会导致程序的可读性和可维护性降低,因此应尽量避免使用。
C语言循环结构的要素包括循环条件、循环体、循环变量和循环控制语句。
循环条件用于判断是否执行循环体,循环体是需要重复执行的语句块,循环变量用于控制循环次数,循环控制语句用于控制循环的执行流程。
合理运用这些要素可以实现各种复杂的循环逻辑,提高程序的效率和灵活性。
同时,在编写循环结构时需要注意避免死循环和过度使用循环控制语句,以确保程序的正确性和可读性。
C语言循环结构
循环结构循环3要素:○1、初始化:决定循环的出事状态,即与循环相关的变量的初始值;○2循环体:循环中反复执的部分;○3循环条件:决定循环结束的条件,即循环到什么时候为止。
一、while结构(当型循环)1、一般形式:while(表达式)限定{循环体语句;}特点:先判断表达式,再执行语句。
注意:1、循环体如果包含一个以上的语句,应该用大括号括起来,以复合语句形式出现。
2、在循环体中应有使循环趋向于结束的语句。
二、do—while结构1、一般形式:do—whileDo{循环体语句}while (表达式);特点:先执行循环体,然后判断循环条件是否成立。
执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。
while语句和用do-while语句的比较:•二者是完全等价的。
•do-while语句有可能一次也不执行循环体。
三、for 结构1、一般形式:for(表达式1;表达式2;表达式3) 语句表达式1:初始化表达式,只执行一次表达式2:循环控制表达式,控制循环的结束表达式3:增量表达式,使表达式2趋向于假for语句的执行过程:(1) 先求解表达式1。
(2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。
若为假(值为0),则结束循环转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语句注意;C语言允许for语句的3个表达式省略或部分省略,但分好间隔符不能省略。
for语句的变化形式建议:尽管C语言允许有省略,但建议不要采用,以提高程序的可读性和可维护性。
四、转移语句循环结构的结束方式(2种)○1正常结束循环:通常都以某个表达式的结果值作为判断条件,当其值为假(0值)时结束循环;○2非正常结束循环:C语言提供4种转移语句,可在循环体内随时对循环进行各种检测,一旦发现某种特殊情况,则跳出循环,非正常的结束循环。
《C语言程序设计》2教学课件 第4章 循环结构程序设计
—7—
4.1 while循环
【例4.1】
计算从1到100的和。
#include<stdio.h> int main() {
int i,sum; sum=0; i=1; while(i<=100) {
sum=sum+i; i=i+1; } printf("1+2+3+...+99+100=%d",sum); return 0; }
表达式3
一般被称为“步长”,用于循 环变量的修改,该表达式是在 每次循环体执行完以后、下一 次循环条件判断之前执行的, 使循环变量经过多次循环的累 积而发生改变,最终因为不满 足循环条件退出循环。
— 26 —
4.3 for循环
【例4.7】
编程计算1到49之内的奇数和。
#include<stdio.h> int main() {
可将for循环语句改写为如下的while循环形式:
表达式1; while(表达式2) {
语句; 表达式3; }
例如:
for(i=1;i<=100;i++) sum=sum+i;
相当于:
i=1; while(i<=100) {
sum=sum+i; i++; }
— 28 —
4.3 for循环
因此,可以将例4.7用while语句进行改写如下:
/*定义及初始化变量*/ /*输出提示语*/ /*输入整数*/ /*如果输入的为负整数则取反*/
/*number整除10,即去掉最低位*/ /*位数加1*/ /*number不为0时循环*/ /*输出位数*/
C语言程序设计习题集第4章 循环结构(答案)
第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。
main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。
main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序main(){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。
c语言while语句
一、教学设计思路说明while语句是(C语言)第四章“循环结构程序设计”中的第一节。
wheil语句是本章实现循环结构程序设计三种语句中的第一个语句,所以本节内容为以后学习ofr语句,dowheil语句打下坚实的基础。
学好本节课,不仅有利于学生掌握程序设计的墓本思想,养成良好的程序设计风格,还能培养学生理论联系实际的能力,为编制程序、解决实际问题打下良好的基础。
二、课堂教学目标及,难点知识目标:A.识记wheil语句的一般形式;B.学会画循环结构流程框图;C.while语句的编程应用。
能力目标:结合实际问题,通过分析,确定算法,绘制程序流程图,编写程序,培养学生分析问题、解决问题的能力。
情感目标:培养学生热爱科学、勇于探索、勇于创新的精神。
教学重点:循环结构程序设计的基本方法。
教学难点:根据实际问题,确定程序中的循环条件和循环体。
三、教学策略在本课堂教学中,我着重发挥学生的主体作用,“小群体合作学习方式”,充分运用多媒体教学,增加课堂气氛和学生乐趣,为学生创造一个生动的、富有实践意义的学习情景,并以此为依托,在教学活动中不断激发学生对学习的兴趣和好奇,对发现问题、寻求知识的执著追求。
同时,我还鼓励学生运用原有的知识经验和课堂所学习的知识进行大胆推断和预测,激发学生对知识进行积极探究并联系实际生活,培养其实践能力和创新精神。
在整个学生活动中,充分调动学生感官进行听说读写,使学生在情景中运用观察、分析、比较、归纳、讨论等方式,积极主动地学习。
同时培养学生自学能力、思维能力、合作能力,为终身学习打下基础。
四、学法指导动用启发式、讲授式、讨论式、练习法,通过学生动脑、动口、动手发现问题,提出问题,进而解决问题,培养学生善于发现、勇于探索的精神。
五、教其准备制作多媒体课件;多媒体教室布置。
六、教学过程七、板书设计(一)while语句的格式及功能(二)while的执行过程1.流程图2.工作过程(三)阅读程序(四)循环术语1.循环条件2.循环体3.循环控制变量(五)实践应用及达标检测练习一练习二练习三J、、教学反思本课充分发挥多媒体环境的优势,出色完成创设情境、激发兴趣和整体感知的任务,从而突破重点、难点。
第4章c语言的三种基本结构
程序1: /*exp51.c*/ #include <stdio.h> main ( ) { int x, y;
scanf(“%d", &x); if (x<0)
y= -1; else if (x==0)
y=0; else
y=1; printf ("x=%d, y=%d\n", x, y); }
程序2:将程序1的if语句改为: /*exp52.c*/ #include <stdio.h> main ( ) { int x, y; scanf(“%d", &x); if (x>=0)
1. 顺序结构 先执行A, 再执行B.
A 表示 A B
B
2. 选择结构 存在某条件P, 若P为真,则执行A, 否则执行B。
TP F
A
B
表示为
TP F AB
另一种选择结构––多分支结构.
K
K=K1 K=K2
K=Kn
A1 A2 … Ai … An
3. 循环结构
有两种结构:当型和直到型 (1) 当型结构
例:计算10!并输出结果。
main()
main()
{
{
int i=1, sum=1;
int i=1; long sum=1;
loop: if (i<=10)
loop: if (i<=10)
{
{
sum=sum*i;
sum=sum*i;
i++;
i++;
goto loop;
goto loop;
}
}
printf(“10!=%d\n”,sum); printf(“10!=%ld\n”,sum
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直到猜对为止
/*记录人猜次数的计数器变量 记录人猜次数的计数器变量*/ 记录人猜次数的计数器变量
counter = 0; /*计数器变量 计数器变量count初始化为 初始化为0*/ 计数器变量 初始化为 do{ printf("Please guess a magic number:"); scanf("%d", &guess); counter ++; /*计数器变量 计数器变量count加1*/ 计数器变量 加 if (guess > magic) printf("Wrong! Too high!\n"); else if (guess < magic) printf("Wrong! Too low!\n"); else printf("Right!\n"); }while (guess != magic); printf("counter = %d \n", counter); }
并一定完全要按照这个方法, 并一定完全要按照这个方法,其实这三种循环 功能是等价的,也可以根据个人习惯去选择 功能是等价的,
循序渐进式编程 ——例:猜数游戏 例
想一个 1~100之间 之间 的数 猜对: right! 猜对 猜错: 猜错:wrong!并提示 并提示 大小
循序渐进式编程: 循序渐进式编程:猜数游戏 ——
4.1 用格里高利公式求 的近似值 用格里高利公式求π的近似值
使用格里高利公式求π的近似值, 使用格里高利公式求 的近似值,要求精 的近似值 确到最后一项的绝对值小于10 确到最后一项的绝对值小于 –4。
π
4
= 1− + − +K
3 5 7
1
1
1
4.1.1 程序解析 4.1.2 while语句 语句 4.1.3 输入一批学生的成绩,统计平均分 输入一批学生的成绩,
4.1.2 while 语句
循环的一般形式如下: 一、while循环的一般形式如下: 循环的一般形式如下
初始化 如果值 为假 为真
初始化部分; 初始化部分; while(表达式) (表达式) { 语句 }
表达式
非0
0
程是 1.先执行初始化部分 . 2 .计算 计算while后面圆括号内表达式的值; 后面圆括号内表达式的值; 后面圆括号内表达式的值 3.如果其值为“真”(非0),则执行语句部分(即循 .如果其值为“ ) 则执行语句部分( 环体) 重复 。 环体);重复2。 4.如果值为“ 假”(0)时,循环结束,程序控制转 .如果值为“ 循环结束, ) 至循环结构的下一语句。 至循环结构的下一语句。
猜多个数 10次猜不对就猜 10次猜不对就猜 下一个数 最多猜10 最多猜10次 10次
直到猜对为止 只猜1 只猜1次
#include <stdlib.h> #include <stdio.h> main() { int magic; int guess; int counter; magic = rand() % 100 + 1;
4.2.3 循环语句的选择
if(循环次数已知) (循环次数已知) 使用for语句 使用 语句 else /* 循环次数未知 */ if (循环条件在进入循环时明确 循环条件在进入循环时明确) 循环条件在进入循环时明确 使用while语句 使用 语句 else /* 循环条件需要在循环体中明确 */ 使用do-while语句 使用 语句
第 四 章
循环结构
4.1 用格里高利公式求 的近似值 (while语句 用格里高利公式求π的近似值 语句) 语句 4.2 统计一个整数的位数 (do-while语句 语句) 语句 4.3 判断素数 (break 和 continue 语句 语句) 4.4 求1!+2!+...+100! (循环嵌套 循环嵌套) 循环嵌套 4.5 循环结构程序设计
4.2.2 do - while 语句
初始化 循环的一般形式如下: 一、do-while循环的一般形式如下: 循环的一般形式如下 初始化部分; 初始化部分; do { 语句 } while (表达式 表达式); 表达式 表达式
非0
语句 如果值 为假 为真 0
语句的执行过程是: 二、 do—while语句的执行过程是: 语句的执行过程是 1.先执行初始化部分 . 2 .执行语句部分(即循环体); 执行语句部分(即循环体); 3.计算while后面圆括号内表达式的值;如 .计算 后面圆括号内表达式的值; 后面圆括号内表达式的值 果其值为“ ),重复 果其值为“真”(非0),重复 。 ),重复2。 4.如果值为“假”(0)时,循环结束,程 .如果值为“ 循环结束, ) 序控制转至循环结构的下一语句。 序控制转至循环结构的下一语句。
#include <stdio.h> Int main(void) Enter grades: -1 67 88 73 54 82 { int num; Grade average mark is 0 double grade, total; num = 0; total = 0; printf(“Enter grades: \n"); scanf("%lf", &grade); /* 输入第 个数 输入第1个数 个数*/ while (mark >= 0) { /* 输入负数,循环结束 */ 输入负数, total = total + grade; num++; Enter grades: 67 88 73 54 82 -1 scanf (“%lf”, &grade); Grade average is 72.80 } if(num != 0) printf(“Grade average is %.2f\n", total/num); else printf(" Grade average is 0\n"); return 0; }
本章要点
什么是循环? 为什么要使用循环? 如何实现循环? 什么是循环 为什么要使用循环 如何实现循环 实现循环时,如何确定循环条件和循环体 实现循环时,如何确定循环条件和循环体? 怎样使用while 和 do-while语句实现次数不确定的 怎样使用 语句实现次数不确定的 循环? 循环 while 和do-while语句有什么不同 语句有什么不同? 语句有什么不同 如何使用break语句处理多循环条件 语句处理多循环条件? 如何使用 语句处理多循环条件 如何实现多重循环? 如何实现多重循环
的初始值从8开始 例:若x的初始值从 开始,比较下面两个程序的运行结果。 的初始值从 开始,比较下面两个程序的运行结果。 #include <stdio.h> void main() { int sum,i; sum=0,i=8 do { sum=sum+i; i=i+1; }while (i<=5); printf(“sum=%d”,sum); } 结果为sum=8 结果为 #include <stdio.h> void main() { int sum,i; sum=0,i=8; while (i<=5) { sum=sum+i; i=i+1; } printf(“sum=%d”,sum); } 结果为sum=0 结果为
3. while 和 for 的比较
for (i = 1; i <= 10; i++) sum = sum + i;
i = 1;
循环变量赋初值 循环条件
while (i <= 10){ 循环体 i++; }
sum = sum + i; 循环变量的改变
4.1.3 统计输入的一批学生的平均成绩
从键盘输入一批学生的成绩,计算平均分。 例4-2 从键盘输入一批学生的成绩,计算平均分。 分析: 分析: 求累加和 确定循环条件 不知道输入数据的个数, 不知道输入数据的个数 , 无法事先确定循环 次数 用一个特殊的数据 特殊的数据作为正常输入数据的结束 用一个 特殊的数据 作为正常输入数据的结束 标志,比如选用一个负数作为结束标志。 标志,比如选用一个负数作为结束标志。
4.2 统计一个整数的位数
从键盘读入一个整数,统计该数的位数。 从键盘读入一个整数,统计该数的位数。 4.2.1 程序解析 4.2.2 do - while语句 语句 4.2.3 循环语句的选择
4.2.1 程序解析-统计一个整数的位数 程序解析-
Enter a number: 12534 int main(void) It contains 5 digits. { int count, number; Enter a number: -99 count = 0; It contains 2 digits. printf(“Enter a number: "); Enter a number: 0 scanf ("%d", &number) ; if (number < 0) number = -number; It contains 1 digits. do { while (number != 0) { number = number / 10; number = number / 10; count ++; count ++; } } while (number != 0); printf("It contains %d digits.\n", count); return 0; }
三、while 和 do-while 的比较
1.对同一个问题用while语句处理,也可以用do_while语 .对同一个问题用 语句处理,也可以用 语 语句处理 句处理,并且初始化部分、循环体部分、 句处理,并且初始化部分、循环体部分、条件部分都是一样 的。 2 .样式上不同点, while语句中 样式上不同点, 语句中while(条件)后无“;”, 条件) 语句中 条件 ; , 而do_while语句中 语句中while(条件)后一定要加“;”。 条件)后一定要加 ; 。 语句中 条件 3 .执行上不同点,while语句是先判定条件,再执行循环 执行上不同点, 语句是先判定条件, 语句是先判定条件 如果一开始条件为假,则有可能一次也不执行循环体, 体,如果一开始条件为假,则有可能一次也不执行循环体, 故又称0次循环 次循环。 语句是先执行循环体, 故又称 次循环。do_ while语句是先执行循环体,再判定条 语句是先执行循环体 如果一开始条件为假,则也要先执行一次循环体, 件,如果一开始条件为假,则也要先执行一次循环体,故又 次循环。 称1次循环。 次循环