第4章 循环结构程序设计
Python程序设计 第4章 循环结构程序设计(第7次课)2
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循环可以相互嵌套。 循环嵌套的执行过程是:一次外循环对应着完 整的一轮内循环。
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,不符合题目要求。
计算机编程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 理 在计算机编程中的应用。 念”在计算机编程中的应用。
第四章 结构化程序设计的三种结构
第四章结构化程序设计的三种结构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、格式指示符输出不同类型的数据,要使用不同的类型转换字符。
matlab实验4_循环结构程序设计_参考解答
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构
《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++)
项目04 循环结构程序设计
while语句和do„while语句。本章是程序设计的重点内容,
重点培养读者的逻辑思维能力和程序编写基本能力。要求读 者能理解循环结构的工作过程,并且能用循环语句解决
项目四
循环结构程序设计
实际问题,提高编程能力。
【学习目标】
(1) 掌握for语句、while语句和do„while语句的使用。 (2) 掌握break语句和continue语句的使用。 (3) 能够利用循环语句解决实际问题。
所有商品的总价格;收银员每扫描一次,也就是把该商品的
价格输入给x,然后把x的值转移加入到s盒子里,重复操作, 直到收银员按回车键,在这里用“0”代表回车;最后输出s 盒子中的值,就可得到所有商品的总价格。
第一部分
任 务 学 习
【解决方案】
#include<stdio.h> void main() { float x,s=0;
注:从上面的说明可以看出,C语言的for语句功能强大,
使用灵活,可以把循环体和一些与循环控制无关的操作也都 作为表达式出现,程序短小简洁。但是,如果过分使用
(3) 循环。这样的语句一直重复写到h满足题目要求为
止。 程序代码如下:
第一部分
任 务 学 习
#include<stdio.h> void main() { double h=0.1; int n=0; /*n用来累计对折次数*/ while(h<=8848180) { h=h*2;
n=n+1;
} printf("对折次数为:%d,此时厚度:%.2f\n",n-1,h/2);
第一部分
一、while语句 二、for语句
任 务 学 习
第四章 循环结构程序设计
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); }
第四讲 循环结构的Fortran 程序设计
§3 Fortran循环结构程序设计的其它问题 一、do循环与do while循环的互换
Do循环和do while循环是Fortran90中常用的2种基本循环结构, 前者主要用于确定循环次数的问题、而后者则常用来处理事先 无法确定循环次数的问题,但也并非绝对,很多情况下二者可 以互换使用。 比如:输入一个整数,判断是否为素数。 分析:所谓素数指这样的整数:除了 1和本身不能被其它任何 数整除的数。判断一个数是否为素数,可以按照 2 , 3 , … , m-1逐一检查能否除下,但当m很大时检查量太大。 有一个结论:只需检查 2 , 3 , … , m1/2 即可判断 m 是否为素数。
i+e3→i r-1→r
end do下面的语句 5
(2)由于在循环过程 中,循环变量会自动按 循环要求变化,因此不 能在循环体内给循环变 量进行赋值。
Integer i Do i=1,5,2 i=i+1 Print*,i End do End Error for3598: assignment to variable i detected between i and = Integer i,m Do i=1,10,2 m=i End do Print*,i,m End 输出为:11 9
11
(2)cycle语句
Cycle 语句是用来结束本次循环,即跳过循环体中尚未执行的 语句。在循环结构中, cycle 语句将使控制直接转向循环条件 的测试部分,从而决定是否继续执行循环。
Cycle语句与exit语句的区别在于:cycle语句只是结束本次循 环,而不是终止整个循环的执行。Exit语句则是结束所在循环, 跳出所在循环体。 Integer:: x=0,y=0
Python程序设计 第4章 循环结构程序设计(第6次课)
Copyright © SWFU-CISD, 2012. All rights reserved. 1-8
计算机编程导论
4.2 循环结构概述
(3)给定2个整数,求它们的最大公约数和最小 公倍数。例如:给定6和9,求最大公约数时, 循环过程从6依次பைடு நூலகம்减至1,当循环到3时,判 断得6和9都能被3整除,于是终止循环,求得 最大公约数是3.;求最小公倍数时,循环过程 从9依次递增至54,当循环到18时,判断得18 同时能被6和9整除,于是终止循环,求得最小 公倍数是18。
练习: 1. 求1+3+5+…+99 2. 求2*4*6*…*12
Copyright © SWFU-CISD, 2012. All rights reserved.
1-21
计算机编程导论
第6次上机作业: 1.计算,参考值: S=1.718282 1 1 1 S 1 1*2 1*2*3 1*2*3*50 2.编程求斐波拉契数列的前20项,已知该数列 的第一、二项分别是0、1,从第三项开始,每 一项都是前两项之和。例如:0, 1, 1, 2, 3, 5, 8, 13……
Copyright © SWFU-CISD, 2012. All rights reserved. 1-12
输出 s 结束 图 4-3 累加若干整数值的框图
计算机编程导论
程序:
#Exp4_1.py print '请输入若干正整数进行求和操作,当输入负数时结束: ' s=0 x = input("请输入一个整数: ") while x >= 0: s=s+x x = input("请输入一个整数: ") print '整数之和=', s
vb-4-循环结构程序设计-实例
lbldata
lblmax
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第四章
VB程序设计 VB程序设计
编程分析
处理第1 处理第1个数据
• 产生一个随机数,存放在变量a中 产生一个随机数,存放在变量a a = Int(Rnd * 100) + 1 lblData.Caption = a • 将a显示在标签(lblData)中 显示在标签(lblData) max = a • 将a作为当前最大值放在变量max中 作为当前最大值放在变量max中
VB程序设计 VB程序设计
【实例】输入若干成绩(输入-1时结束)计算 实例】输入若干成绩(输入总成绩和平均成绩 。
多 行 文 本 框
连续弹出输入框接收成 直至绩,直至-1时结束
Lblsum
Lblaverage
txtscore
计算总成绩和平均成绩
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第四章
VB程序设计 VB程序设计
程序说明
For-Next常用于循环次数已知的循环中 For-Next常用于循环次数已知的循环中 循环体语句可以是一条或多条语句 循环体语句可以是一条或多条语句 可以使用Exit For语句提前结束循环 可以使用Exit For语句提前结束循环
For i =1 To 10 x = x + Int( Rnd * 100 ) sum = sum + x If sum > 300 Then Exit For End If Next i Print sum
No
条件判断
Yes
循环体语句
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第四章
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、有如下程序{ 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 )。
chap4循环结构程序设计课件
{ 语句 表达式3;
}
况下,可以使用while语 句;如果指定了循环次数, 则用for语句会使程序显 得简洁、清晰。
break continue 和goto语句
• C语言提供了break
while语句中
do-while语句中 for语句中break
break执行流程图 break执行流程图
执行流程图
{ if(i%n!=0)
for(i=100;i<=200;i++)
continue; printf("%d ",i); count++; if(count%10==0)
printf("\n");
{ if(i%n==0) {printf("%d ",i); count++; if(count%10==0) printf("\n");}
{
int i=1;
int sum=0;
loop: sum=sum+i; i++;
if(i<=100)goto loop;
printf("sum=%d\n",sum);
}
循环的嵌套
【例4-22】有两个红球,三个黄球,四个 白球,任意取四个球,其中必须有一个 红球,编程输出所有可能的方案。
for(i=1;i<=2;i++) for(j=0;j<=3;j++) { k=4-i-j; if(k>=0) printf("%5d%7d%8常用来修改循环控制变量的值, 表明循环控制变量每次变化的数值。
for语句与while语句比较
《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时循环*/ /*输出位数*/
第4章循环结构程序设计
提示: 使用Math.random()可以 产生0 ~ 1之间的随机数 int number=(int)(Math.rand om()*5); //产生0~4之间 的随机整数
方法二: import java.util.Scanner; public class Guess1 { public static void main(String[] args) { int count=0; //玩家猜对的次数 int guess; //玩家猜的数字 Scanner input = new Scanner(System.in); int i=1; //循环变量 while(i <= 3){ int number = (int)(Math.random()*5); //产生0~4之间的随机数 System.out.println("有一个0到4之间的整数,猜猜是什么?"); guess = input.nextInt(); //从键盘获取一个数字 if(guess == number){ System.out.println("猜对了!"); count++; }else { System.out.println("猜错了!"); } i++; } System.out.println("\n猜对"+count+"次!"); if(count==3||count==2) System.out.println("你太有才了!"); else if(count==1) System.out.println("很聪明呀!"); else System.out.println("多努力!"); } }
程序设计基础(C语言)第3版习题及答案
第1章C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-3】上机运行本章的3个例题。
答:略。
【习题1-4】请从以下的4个选项中选择一个正确答案。
(1)A (2)A (3)C (4)B【习题1-5】参照本章例题,编写一个C语言程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第2章基本数据类型和运算符【习题2-1】上机编辑并调试本章所有例题。
答:略。
【习题2-2】下面哪些是合法的常量?⑴20 0.5 012 13e5.1 E-5 8e4 5. 0x6a⑵'mn' "OK" "a" '\012' "a/b" '\\'答:⑴合法的常量有:20 0.5 012 8e4 5. 0x6a⑵合法的常量有: "OK" "a" '\012' "a/b" '\\'【习题2-3】下面的变量名中哪些是合法的?A&b abc123 abc% AbC a_b_cint _abc 123abc a\b?ca bc a*bc 'a'bc答:合法的变量名有:abc123 AbC a_b_c _abc【习题2-4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?⑴Int i,j;⑵float a,b;⑶int a,b;float a,b;⑷float a,int b;⑸char 'a';答:⑴错误,因为关键字Int 应该全为小写字母⑵正确⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型 ⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号 ⑸错,'a'表示字符常量,不能用作变量名 【习题2-5】把下列数学式子写成C 语言表达式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <st50d0io5.0h>
#include <stdio.h>510510
void main()
void main()
{
{
int i, sum=0;
int i, sum=0;
scanf("%d", &i);
scanf("%d", &i);
while ( i<=100 )
do
w{hile语句——先判断表达式,后{执行语句
开始
i=1, sum=0 i=12001N
i<=100 Y
sum=sum+i
i=i+1 i=23101
输出sum
结束
循环: 反复执行同一段程序, 直到满足一定的条件后 才停止执行该段程序。
对于有规律的事物, 一般都可以用循环来组织。
2019年11月1日星期五
第4章 循环结构程序设计
主要内容 goto 和 if 语句构成循环 while 语句 do…while 语句 for 语句 辅助控制语句:continue,break
语句类型 表达式语句 空语句 控制语句 复合语句
实例 printf("sum=%d", sum=sum+i); ; if (sum==50) printf("i=%d",i); { sum=sum+i; i=i+1; }
2019年11月1日星期五
while 语句
while 语句的两个要素: while ( 循环条件 )
i++;
for (循环变量赋初值;循环条件;循环变量} 增值)
循环体;
例如:for(i=1; i<=100; i++) sum=sum+i;
2019年11月1日星期五
for 语句
for 语句的一般形式:
for ([exp1]; [exp2]; [exp3])
statement;
exp1 和 exp2 可以是逗号表达式:
{
i=1, sum=0
int i=1, sum=0;
N i<=100
Y sum = sum+i
do {
sum=sum+i;
循环体
i=i+1
i++;
循环条件
} while ( i<=100 );
输出sum
结束
2019年11月1日星期五
printf("%d",sum); }
do…while 语句
do…while 语句的两个要素:
循环体
}
printf("%d",sum); }
while语句
用while语句求:
10运0 行时用
n
ctrl+break
可跳出当前运行
n1 #inlcclude <stdio.h>
开始
void mmaainin(()void)
i=1, sum=0 N
i<=100 Y
sum = sum+i
i=i+1
外循环 内循环
{ while() { ……
}while(); ……
…… } …... }
2019年11月1日星期五
break 语句
break 语句 break;
功能 在循环语句中,跳出并终止循环体 在switch语句中,跳出并终止分支语句体
说明 break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的任何其它 语句之中体
sum=sum+i; i++; }
输出sum
printf("%d",sum); }
结束
2019年11月1日星期五
循环的嵌套
循环的嵌套是指:
(4)一个f{循or环( ;体; )内又包含另一个完整的循f{o环r(结; ;构)
O ……
……
三种循d环o结构可以相互嵌套,层数不限do
(123)
w{}d}woh… w{}… d{}… w{}…hiwwolhhei… .… … .l..hhii(e..ll.)… … …eeii(ll((ee)… … …))((;));;
while (ex真p)(非0)
statement
statement;
statement;
真(非0)
while (eexxpp);
假(=0)
2019年11月1日星期五
do…while语句
用do… while语句求:10#0innclude <stdio.h> nv1oid main()
开始
sum=sum+i (i=1,2,3,…,100) sum=sum+i被重复执行
sum=sum+3;
变量i有规律的变化
.s.u..m...=. sum+4; sum=sum+150; 0;
解决这类问题可以采用
printf("sum=%d",sum); }
循环结构
2019年11月1日星期五
提出问题
例如:for(sum=0, i=1; i<=100; sum+=i, i++);
相当于:
sum =0;
for(i=1; i<=100; i++)
sum+=i;
2019年11月1日星期五
for 语句
100
用 for 语句求: n n 1 开始
i=1, sum=0 N
i<=100 Y
sum = sum+i
}
}
2019年11月1日星期五
for 语句
for 语句的一般形式:
exp1
for ([exp1]; [exp2]; [exp3]) statement;
exp2 真(非0)
假(=0)
for语句中exp1,exp2,exp3类型任意,都可st省at略em,ent
但分号不可省略 无限循环: for( ; ; )
{ siuf m(i>=1su0m0)+bi;reak; } sum=sum+(i++); }
输出sum
结束
2019年11月1日星期五
printf("%d",sum); }
continue 语句
continue 语句 continue;
功能 结束本次循环,跳过循环体中尚未执行的语句, 进行下一次是否执行循环体的判断
{
死循环
int i=1, sum=0;
while ( i<=100 ) {
sum=sum+i;
i++;
输出sum
}
结束
2019年11月1日星期五
printf("%d",sum); }
while 语句
while 语句的两个要素: while ( 循环条件 )
i{f (sum==su5m0)+i; p; r循ini=环tfi(+体p"r1s;iu;nmtf(="% i=% d",d}"s,ui)m; =sum+i);
相当于 while(1) exp3
for语句可以转换成while结构
2019年11月1日星期五
for 语句
for 语句的一般形式:
相当于:
for ([exp1]; [exp2]; [exp3])
i=1;
statement;
while (i<=100)
for 语句一般应用形式:
{ sum=sum+i;
说明 continue只能用于循环体中
2019年11月1日星期五
continue 语句
continue 语句
for
continue;
do
……
continue; …...
真(非0)
while
exp
假(0)
while
假(0) exp
真(非0) …… continue; ……
exp1
exp2
循环体;
循环体可为任意类型语句 循环体应当为一个单独的语句,或一个复合语句 循环体中一定要有能够使循环趋向于结束的语句,
避免出现“死循环”
2019年11月1日星期五
do…while 语句
do…while 语句的一般形式:
do statement;
do…while 语句至少会执行一遍循环体 while 语句不一定
do……suwmh=isleu语m句+i—; —先执行循环体,su后m判=断su表m+达i;式
whilei+语+句; ——循环体执行次数≥0 i++;
d}o……while语句——循环体执行}次w数hil≥e1( i<=100 );
printf("%d",sum);
printf("%d",sum);
2019年11月1日星期五
算法的表示
自然求语n!言 开始
A
成立
通俗易懂,读容入易nB的产值生歧义A
P或 不成立 成立 P 不成立 BEGIN
Bread n A
流程图 置t的初值为1
1 => t