04 循环结构程序设计(第4章)

合集下载

循环结构习题参答

循环结构习题参答

第4章循环结构程序设计_编程序练习题aP110–18题:编写程序,输入某门功课的若干同学的成绩,以-1作为终止的特殊成绩,计算平均成绩并输出。

程序如下(用while语句编写):#include <stdio.h>void main( ){ int i=0,cj;float s=0,vs;scanf(“%d”,&cj);while(cj!=-1){ i=i+1 ; s=s+cj; scanf(“%d”,&cj); }vs=s/i ;printf("vs=%f\n",vs);}输入数据:80↙78↙90↙66↙88↙-1↙输出结果:vs =80.400000bP110–5题:编写程序,输出九九乘法表。

1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9 2×1=2 2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18 …程序如下(二重循环for语句):#include <stdio.h>void main( ){ int i,j;for(i=1;i<=9;i++){ for(j=1;j<=9;j++)printf("%d*%d=%2d ",i,j,i*j);printf("\n");}}输出结果:见上面形式bP110–6题:编写程序,输入一组字符(以#结尾),对该组字符进行统计,统计字母、数字和其他字符的个数,输出统计结果。

程序如下(单循环while语句):#include <stdio.h>void main( ){ int an=0,sn=0,tn=0; char ch;while((ch=getchar())!=’#’)if(ch>=’a’ && ch<=’z’ || ch>=’A’ && ch<=’Z’)an++;else if(ch>=’0’ && ch<=’9’)sn++;elsetn++;printf(“字母个数=%d\n ”,an);printf(“数字个数=%d\n ”,sn);printf(“其他字符个数=%d\n ”,tn);}输入数据:sd45&*abc23K+-D8wEv$s#↙输出结果:字母个数=11数字个数=5其他字符个数=5aP111–8题(修改):求 的值并输出。

Python程序设计 第4章 循环结构程序设计(第7次课)2

Python程序设计 第4章 循环结构程序设计(第7次课)2
print score[i],
sum += score[i]
#循环体——对列表元素求和
aver = sum / 8.0 #循环之后,求平均值 print '\naver = ', aver
计算机编程导论
Copyright © SWFU-CISD, 2012. All rights reserved.
Copyright © SWFU-CISD, 2012. All rights reserved. 1-11
为 i 赋初值 1 False
判断 i <= 100? True
判断 i 是否能被 7 整除但不能被 5 整 除 ?
False
True 输出 i
i 自增 1
结束 图 4-10 整除问题的框图
计算机编程导论

1 1 2 1 2 3 1 2 3 4 1 2 n 1 2 3 3 5 3 5 7 3 5 7 9 3 5 (2n 1)
Copyright © SWFU-CISD, 2012. All rights reserved.
1-10
Copyright © SWFU-CISD, 2012. All rights reserved.
计算机编程导论
【例4-8】求1 ~ 100之间能被7整除,但不能同 时被5整除的所有整数 。
开始
【分析】 (1)本题需要对1 ~ 100 范围内的所有数一一进 行判断。 (2)本题的循环次数确 定是100次。 (3)在每次循环过程中 需要用 if 语句进行条件 判断。因此本题是循环 嵌套选择的结构。
1-19
利用for语句实现双层循环嵌套
循环的嵌套是指在一个循环中又包含另外一个 完整的循环,即循环体中又包含循环语句。 while循环和for循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完 整的一轮内循环。

004第4章结构化程序设计

004第4章结构化程序设计

4.3.1 条件语句
if (InputScore >= 70) { if (InputScore >= 80) { if (InputScore >= 90) { OutputScore = "优秀"; //优秀 } else { OutputScore = "良好"; //良好 } } else { OutputScore = "中等"; //中等 } }
if (Score >= 60) { Console.WriteLine("该成 绩合格。"); } else { Console.WriteLine("该成 绩不合格。"); } }
}
4.3.1 条件语句

如果程序的逻辑判定关系比较复杂,可以用if…else嵌套语句 形式如下: if(表达式1) if(表达式2) if(表达式3) ... 语句1; else 语句2; else 语句3; else 语句4;
}
4.3.1 条件语句

2. if…else语句 if…else语句是一种更为常用的选择语句。if…else语 句的语法如下: if(表达式) { 语句块A; }
else
{ 语句块B; }
【例4-3】根据输入的学生
成绩Score的值,显示 其是否及格。
using System; class Score { static void Main() { Console.WriteLine("请您 输入学生成绩:"); int Score = int.Parse(Console.ReadLi ne());//转换为整数

【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及

C语言程序设计课件 第4章 循环结构.ppt

C语言程序设计课件 第4章 循环结构.ppt
10
while语句
语法形式:
while (表达0(式假)) 表达式?循环体;
非0(真) 循环体
后续语句
11
执行过程:
step1:求解表达式,若 为0(假),则退出循 环执行后续语句。若 为非0(真),则执行 循环体。
step2: 转回step1继续 判断。
while语句应用实例
【例4.3】从键盘上读入一个非0的整数,统计该数的
语句功能
{count++; number=number/10;
?
}
printf ("It contains %d digits.\n",count);
}
12
while语句应用实例
【例4.4】计算表达式a+aa+aaa+…+aaa…a,其中a与x的值从 键盘上输入。
int a,x;
long sum=0,n=1,tn;
scanf("%d,%d", &a,&x);
tn=a; while(n<=x) {sum+=tn; tn=tn*10+a; n++;
循环次数 第1次 第2次 第3次 第4次
循环条件 1<=4为真 2<=4为真 3<=4为真 4<=4为真
}
第5次
5<=4为假
sum值
tn值
n值
0+2
2*10+2
2
2+22
C语言程序设计
第4章 循环结构
本章主要内容
1. 循环结构设计理念 2. for循环语句 3. while循环语句 4. do…while循环语句 5. 循环嵌套 6. 流程控制语句

C语言程序设计(第3版)何钦铭-颜-晖-第4章-循环结构

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,不符合题目要求。

第四章 结构化程序设计的三种结构

第四章 结构化程序设计的三种结构

第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。

printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。

格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。

(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。

转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。

格式字符串中的普通字符,原样输出。

例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。

2.输出项表输出项表是可选的。

如果要输出的数据不止1个,相邻2个之间用逗号分开。

下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。

第4章程序控制结构及循环结构

第4章程序控制结构及循环结构
getchar()!=‘\n’
int n=0 n
y n++
#include <stdio.h> main() { int n=0; printf(“input a string:”); while (getchar( )!='\n') n++; printf("number of charaters=%d\n",n); }
【例4.28】打印不超过200的圆面积。 #include <stdio.h> 运行结果: main() r=1 area=3.141593 {int r; r=2 area=12.566372 float area; „„ r=7 area=153.938065 for(r=1;r<=10;r++) now r=8 {area=3.141593*r*r; if(area>200.0) break; printf(“r=%-3d area=%f\n",r,area); } printf(“now r=%d\n”,r); }
第四章
程序控制结构及结构化程序设计
§4.6 循环结构
循环结构:
重复执行某段程序,直到 某个条件不成立为止的一 种程序结构。
表达式
n
y
语句
§4.6.1 while语句 while语句的一般形式: while(表达式) 语句;
【例】计算sum=1+2+3+…..+100之和。 初始化部分:int sum=0 ,i=1; 循环部分: sum=sum+1; sum=sum+2; sum=sum+i; 工作部分 sum=sum+3; i++; 修改部分 …… sum=sum+100; i<=100

循环程序设计

循环程序设计

编号:GXJG/JX-JL-12(08) 保存期限:三年教案审批表课题名称:4.1 while循环4.2 do...while循环教学目标:(1)知识目标:掌握while语句的格式及使用,掌握do…while语句的格式及使用;(2)能力目标:熟练使用while语句;(3)情感目标:培养学生的逻辑思维,提高学生分析问题解决问题的能力。

教学分析与准备:1.教学重点while语句的功能及运行过程,do…while语句的运行过程。

2.教学难点while语句的运行过程。

3.教学策略采用启发式教学方法,逐步引导学生对while,do...while语句的认识,结合具体实例由浅入深,加强学生对while,do...while语句认识。

4.课时安排2课时(45分钟×2)5.教学环境多媒体教室学习过程:在许多问题中需要用到循环控制,例如要求100个数之和,计算全班各个学生的成绩及其平均值等。

循环结构是结构化程序设计的三种基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。

因此熟练掌握选择结构和循环结构的基本概念和使用技巧是程序设计的最基本的要求。

请考虑以下一个问题:要计算全班各个学生某门课程考试的平均成绩应如何做呢?假定该班有40名学生,我们可以在程序中写40个scanf 函数,从键盘上输入40个学生的成绩。

实质上是重复40个同样的函数,如果你还能“忍受”的话,那么如果要统计全校1000名学生某门课程的成绩,难道你要在程序中写上1000个scanf 函数吗?这种重复操作的现象,在计算机中称为“循环”,程序设计中采用“循环语句”来完成该功能。

在任何一种高级语言中都存在循环语句。

我们将反复运行的那一部分程序称为循环的“循环体”。

在C 语言中有三种可以实现循环的语句:while 语句、for 语句和do 一while 语句。

4.1 while 语句while 语句的一般形式是:while (表达式)语句while 语句的执行流程是先计算表达式的值,如果值非零(真),则循环控制条件成立,执行while 中的“语句”,然后再计算表达式的值,如果此值仍旧为非零(真)则仍旧执行while 中的“语句”……,如此循环,直到表达式值为零(假),程序控制退出while 语句。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验04 循环结构程序设计
(第4章MATLAB程序设计)
一、实验目的
二、实验内容
1. 求π的近似值
根据
2
2222
1111
6123n
π
=++++,求π的近似值。

当n分别取100、1000、10000时,
结果是多少?
要求:分别用循环结构和向量运算(使用sum函数)来实现。

程序及运行结果:
《数学软件》课内实验王平
2. 求级数部分和
根据
111
1
3521
y
n
=++++
-
,求:
(1) y<3时的最大n值。

(2) 与(1)的n值对应的y值。

3. 迭代过程收敛问题
考虑以下迭代公式:
1
n n
a
x b x +=
+ 其中a 、b 为正的常数。

(1) 编写程序求迭代的结果,迭代的终止条件为|x n+1-x n |≤10-5,迭代初值x 0=1.0,迭代次数不超过500次。

(2) 如果迭代过程收敛于r ,那么r 的准确值是2
b -,当(a,b)的值取(1,1)、
(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。

4. 求解数列
已知
123123
11021323
n n n n f n f n f n f f f f n ---==⎧⎪==⎪⎨
==⎪⎪=-+>⎩
求f 1~f 100中:
(1) 最大值、最小值、各数之和。

(2) 正数、零、负数的个数。

5. 亲密数对问题
若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。

例如,2×3-1=5,由于5是素数,所以2和3是亲密数,5是亲密素数。

求[2,50]区间内:
(1) 亲密数对的对数。

(2) 与上述亲密数对对应的所有亲密素数之和。

程序及运行结果:
三、实验提示
四、教程:第4章 MATLAB程序设计(2/3)
4.2.3 循环结构p65
1.for语句
表达式1的值为循环变量的初值
表达式2的值为步长
表达式3的值为循环变量的终值。

步长为1时,表达式2可省略。

例4.7(for)水仙花数p65
一个三位整数各位数字的立方和等于该数本身(称水仙花数)。

输出全部水仙花数。

例4.8(for )求和 p66
已知
2
2221111123
y n
=
++++
例4.9(for )用梯形法求定积分 p66
设 0.5()sin 6x
f x e
x π-⎛
⎫=+ ⎪⎝
⎭,求30()s f x dx π=⎰。

for语句更一般的格式为:
执行过程是:
依次将矩阵的各列元素赋给循环变量;
然后执行循环体语句;
直至各列元素处理完毕。

例4.10(for)写出下列程序的执行结果。

2.while 语句
执行过程:
若条件成立,则执行循环体语句;
执行后再判断条件是否成立,若不成立则结束循环。

例4.11(while )求数组的平均值及和 p68
从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

例4.12(while )求矩阵指数
23
2!3!
!
n X
X X X e I X n =++++
++
3. break语句和continue语句
break 执行到该语句时,跳出循环。

continue 执行到该语句时,跳过循环体中剩下的语句,继续下一次循环。

例4.13 使用continue和break语句p69
4. 循环的嵌套(多重循环结构)
循环结构的循环体又包括一个循环结构。

例4.14(for二重循环)求完数p70
一个数恰好等于除它本身外的因子之和,称完数,如6=1+2+3,6是完数。

例4.15(for)用筛选法求某自然数范围内的全部素数p70。

相关文档
最新文档