第五章 循环控制.
第5章 习题与思考题和答案

4.下段程序执行的输出结果是。
S=0:T=0:U=0
For i=1 To 3
For j=1 To i
For K=j To 3
S=S+1
Next K
T=T+1
Next j
U=U+1
Next i
Print S;T;U
A.3 6 14B.14 63C.14 3 6D.16 4 3
Next j
If j>Int (Sqr(n-m))ThenPrint n,m,n-m
EndIf
Next m
Next n
EndSub
六
(1)编程序计算:1!+3!+5!+….+11!
(2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a的方法如下:先算出m/n余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。
Private Sub Form_click()
Dim k,a,b as integer
a=20
b=2
k=2
Do While k<=a
b=b*2
k=k+5
Loop
Print b
End Sub
5.写出以下程序在单击命令按钮后的输出结果。
Private Sub Form_click()
k=0
fori=1 to 5
If n <= 0 Or m <= 0 Then
C语言练习题 (在图书馆可打印)

1. 以下不是C语言的特点的是()A. C语言简洁,紧凑B. 能够编制出功能复杂的程序C. C语言可以直接对硬件进行操作D. C语言移植性好2. 以下不正确的C语言标识符是()A. ABCB. abcC. a_bcD. ab.c3. 一个C程序的执行是从()A. main()函数开始。
直到main()函数结束B. 第一个函数开始, 直到最后一个函数结束C. 第一个语句开始。
直到最后一个语句结束D. .main( )函数开始,直到最后一个函数结束4. 在C程序中main() 的位置()A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D.必须放在它所调用的函数之后5. 一个C程序是由()A. 一个主程序和若干个子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成是非题(对者打√,错者打×)1、C语言源程序的基本单位是函数()2、编辑程序的功能是建立并修改程序()3、C编译程序是一组机器语言指令()4、C语言源程序的语句分隔符是逗号()5、C语言源程序文件的扩展名是.obj()第二章数据类型、运算符与表达式选择题1. (设 int I; char c ;float f;)以下结果为整数的表达式的是()A. I+fB. i*cC. c+fD. I+c+f2. 设n=10,I=4,则赋值运算n%=I+1执行后,n的值是()A. 0B. 3C. 2D. 13.设 a=2,b=2; 则 ++a+b的结果是(),a 的结果是(),b的结果是()A. 2B. 3C. 4D. 54. 在C语言中,要求运算对象必须是整型的运算符是()A. /B. !C. %D. ==*4)设 int a=04, b; 则执行 b=a<<1 ;语句后,b的结果是()。
A.4B.04C. 8D.105. 属于非法转义字符的是()A. ‘\d’B.‘\0xf’C.‘\037’D.‘\f’*5)设有以下语句,则C的二进制值是()char a=3, b=6,c; c=a^b<<2;A. 00011011B. 00010100C. 00011100D. 000110006. sizeof(double)是一个()表达式()A. 整型B. 双精度C. 不合法D.函数调用7. 在C语言类型说明中,int ,char, short等类型的长度是()A. 固定的B. 由用户自己定义的C. 任意的D. 与机器字的长度有关的※8)如下程序执行的结果是()main(){int n=1; printf(“%d%d%d\n”, n, ++n, n--); } A.1 1 1 B. 1 2 2 C. 1 2 3 D. 1 2 1是非题(对者打T,错者打F)1、 C语言中,大写字母和小写字母被认为是两个不同的字符()2、 C语言规定,在程序中所用到的变量都必须在程序中定义()3、在C语言中“\n”代表两个字符()4、在一个字符变量中可以存放一个字符串()5、一个字符数据既可以以字符形式输出,也可以以整型形式输出()6、在C语言中,不能把一个字符串赋给一个字符变量()7、自增运算符(++)和自减运算符(--)可以用于常量或表达式()8、表达式10/3的结果是3.3()9、在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。
[工学]第05章 循环结构程序设计 (2)
![[工学]第05章 循环结构程序设计 (2)](https://img.taocdn.com/s3/m/90d7833fff00bed5b9f31d37.png)
22
i=i+c
2019/2/17
例:#include<stdio.h> 例:#include<stdio.h> main( ) main( ) { int i=0; { int i=0; for(;i<10;i++) for(i=0;i<10;i++) putchar(‘a’+i); putchar(‘a’+i); } } 运行结果:abcdefghij
2019/2/17
21
(7)表达式2一般是关系表达式(如 for语句说明4 i<=100)或逻辑 表达式(如a<b&&x<y),但也可以是数值表达式 或字符表达式,只要其值为非零,就执行循环体。分 析下面两个例子: ①for ( i=0;(c=getchar( ))!=‘\n’;i+ =c); i=0 此 for语句的执行过程见图 ,它的作 用是不断输入字符,将它们的ASCII 取一个字 码相加,直到输入一个“换行”符为 符=>c 止。 F ② for( ;(c=getchar( ))!=‘ \ n’;) C≠换行符 printf(“%c”,c);
15
思考:该程序是什么功能?
2019/2/17
5.3 for语句
for循环语句是C语言中功能最强的循环语句,它有
多个变化形式,并且可以很方便的代替其它的循环语
16
句。 for语句的一般形式
for(表达式1;表达式2;表达式3)循环体语句
2019/2/17
17
for执行流程
①先计算初值表达式1,它主要 用于循环开始前设置变量初值; ②接着计算循环控制逻辑表达式 2,它控制循环条件,决定循环 次数; ③如果表达式2为真,则执行循 环体语句,否则结束for循环; ④求解表达式3,它主要是对循 环控制变量进行修改。 ⑤转步骤②执行。
专升本C语言考试大纲

专升本C语言考试大纲第一章 C语言概述(一)课程内容1 C语言的简史与特点2 一个简单的C程序3 程序的编辑,编译,链接和运行(二)考核知识点与考核要求1.程序设计,要求达到“识记”层次。
2.C语言的字符集,要求达到“领会”层次。
第二章数据类型,运算符与表达式(一)课程内容1 C数据类型2 常量与变量3运算符与表达式(二)考核知识点与考核要求1.C数据类型,要求达到“识记”层次。
2.常量与变量,要求达到“领会”层次。
3.运算符与表达式,要求达到“简单应用”层次。
第三章顺序程序设计(一)课程内容1 C语句的概述2 赋值语句3 数据输入输出的概念及在C语言中的实现4 字符数据的输入输出5 格式输入与输出(二)考核知识点与考核要求1.C语句的概述,要求达到“识记”层次。
2.赋值语句,要求达到“简单应用”层次。
3.格式输入与输出,要求达到“综合应用”层次。
第四章选择结构程序设计(一)课程内容1 if语句2 switch语句(二)考核知识点与考核要求if语句、switch语句,要求达到“综合应用”层次。
第五章循环控制(一)课程内容1 while语句2 do—while语句3 for语句4 循环的嵌套5 break语句和continue语句(二)考核知识点与考核要求1.while语句、do—while语句、for语句、break语句和continue语句,要求达到“综合应用”层次。
2. 循环的嵌套,要求达到“简单应用”层次。
第六章数组(一)课程内容1 一维数组2 多维数组3 字符数组(二)考核知识点与考核要求1一维数组的定义、元素的引用和初始化,要求达到“综合应用”层次。
2. 多维数组的定义、元素的引用和初始化,要求达到“简单应用”层次。
3字符数组的定义、元素的引用和初始化,要求达到“综合应用”层次。
4.字符数组的输入输出、字符串处理函数,要求达到“简单应用”层次。
第七章函数(一)课程内容1 概述2 函数定义的一般形式3 函数参数和函数值4 函数的调用5 函数的嵌套调用6 函数的递归调用7 数组作为函数参数8 局部变量和全局变量9 变量的存储类别(二)考核知识点与考核要求1.函数的定义和调用方法,要求达到“领会”层次。
第五章 C语言多重循环语句ppt课件

scanf(“%f”,&Weight); /*第8个儿童的体重*/ total=total+ Weight; /*前8个儿童的总体重*/
scanf(“%f”,&Weight); /*第9个儿童的体重*/ total=total+ Weight; /*前9个儿童的总体重*/
unsigned n,sum=0; scanf(“%u”,&n); do { sum+=i ;
int i; float Weight, total=0, aver;
*输入N个儿童的体重并计算总体重*/
for(i=1;i<=N;i++) {
scanf(“%f”,&Weight); /*第i个儿童的体重*/ total=total+ Weight; /*i个儿童的总体重*/
}
aver=total/N;
scanf(“%f”,&Weight); /*第1个儿童的体重*/ total=total+ Weight; /*前1个儿童的总体重*/
scanf(“%f”,&Weight); /*第2个儿童的体重*/ total=total+ Weight; /*前2个儿童的总体重*/
scanf(“%f”,&Weight); /*第3个儿童的体重*/ total=total+ Weight; /*前3个儿童的总体重*/
/*10个儿童的平均体重*/
printf(“%d个儿童的平均体重是:%.2\n”,N,aver); }
第五章循环结构程序设计习题解答

5、设某县2000年工业产值为200亿元,如果该县预计平均 每年工业总产值增长率为4.5%,那么多少年后该县工业总 产值将超过500亿? 算法步骤: 第一步,输入2000年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于 500.若是,则输出该年的年份;否则,返 回第二步. (1)确定循环体:设a为某年的年生产 总值,t为年生产总值的年增长量,n为 年份,则循环体为t=0.045a,a=a+t,n=n+1. (2)初始化变量: n=2000, a=200. (3)循环控制条件: a>500
3、从键盘输入一个正整数n,计算该数的各位数字之和并输出。 #include <stdio.h> void main() { long n; int s, i=1,j=10; scanf("%ld",&n); s=n%10; while(n/j!=0) { s=s+n/j%10; j=j*10; i++; } printf("i=%d, s=%d ",i,s); }
11、 九· 九表----1
1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81
2、输入一串字符,直到输入一个星号为止, 统计(输出)其中的字de <stdio.h> void main() { char ch; int char_num=0,int_num=0; ch=getchar(); while(ch!='*') { if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) char_num++; else if(ch>='1'&&ch<='9') int_num++; ch=getchar(); } printf("char_num = %d, int_num = %d\n",char_num,int_num); }
C语言试题库(完整版)

C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、i f, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4)以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5)若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#incl ude “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。
C语言第5章循环结构程序设计1

(2)在循环体中应有使循环趋向于结束的语句。 比如上例中,循环结束的条件是“score>=0”, 那么当我们把这个班的成绩全部输入完后, 一定要输入一个负数,才能使程序往下执行。 (3)循环体语句有可能一次也不执行。比如说上 例中,当第一次输入的分数就为负数时,则 循环体一次也不执行。
§5.3 do …while语句
① ② ④ ③
for(i=1; i<100; i++) s=s+i; printf(″s=%d″, s); }
/*循环体语句*/
对于for循环,有一点非常重要,即条件测 试永远是在循环开始时进行,如果在循环开 始时条件为假,那么循环体语句就不会被执 行。如: int i=10; for (k=10;k!=i;k++) printf(″%d″,k); printf(″%d″,k);
2、循环控制变量必须在循环体内有所改变,才 能使while和do-while语句的循环控制条件表达 式的值不断改变,直至循环结束。否则会造 成死循环。例如: i=1; while(i<=100) putchar(′*′); i++; 这个循环永远不会结束,因为“i++;”语句 不属于循环体中的语句,循环控制变量i没有 在循环体内被改变。 程序应该作如下改变:
在使用while语句的时候,我们要注意以下 两个问题: (1)循环体如果包含一个以上的语句,应该用花 括号括起来,以复合语句的形式出现。如果 不加花括号,则while语句的范围只到while后 面的第一个分号处。比如上例中,while语句 中如无花括号,则while语句范围只到 “average+=score;”。
#include <stdio.h> main() {int i,n;long fac; Scanf(―%d‖,&n); i=1 while (i<=n) fac=fac*i; i++; } Printf(―%d!=%ld‖,n,fac); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。
例5-1:利用while语句,编写程序计算1+2+3+…+100。
解:
算法1:直接写出算式
S1: result<=1+2+3+4+5+…+100
很简单。但是写都写得累死了。
例5-9:将50-100之间的不能被3整除的数输出(用三种循环结构实现)
对计数型的循环或确切知道循环次数的循环,用for比较合适,对其它不确定循环次数的循环许多程序设计者喜好用while/do-while循环(如链表操作)。
5、6break和continue语句
5.6.1break语句
前面介绍的三种循环结构都是在执行循环体之前或之后通过对一个表达式的测试来决定是否终止对循环体的执行。在循环体中可以通过break语句立即终止循环的执行,而转到循环结构的下一语句处执行。
(2)循环语句可以嵌套使用,break语句只能跳出(终止)其所在的循环,而不能一下子跳出多层循环。要实现跳出多层循环可以设置一个标志变量,控制逐层跳出。
…
flag=0;
for(…)
{
for(…)
{
…
if(…){flag=1;break}
…
}
if(flag==1)break;
算法4:
S0: p<=0,i<=1(循环初值)
S1: p<=p+i, i<=i+1(循环体)
S2:如果i小于或等于100,返回重新执行步骤S1及S2;否则,算法结束(循环控制)。
p中的值就是1+2+…+100的值。
从算法4可以看出这是一个典型的循环结构程序,流程图:
结论:编制循环程序要注意下面几个方面:
5、5 几种循环的比较
5、5、1循环结构的基本组成部分(小结)
从前面的循环结构的语法和例子的介绍,我们可以看出循环结构由4部分组成:
(1)循环变量、条件(状态)的初始化
(2)循环变量、条件(状态)检查,以确认是否进行循环
(3)循环变量、条件(状态)的修改,使循环趋于结束
(4)循环体处理的其它工作。
5.5.2几种循环的比较
break语句的一般形式为:
break语句的执行过程是:终止对switch语句或循环语句的执行(跳出这两种语句),而转移到其后的语句处执行。
说明:
(1)break语句只用于循环语句或switch语句中。在循环语句中,break常常和if语句一起使用,表示当条件满足时,立即终止循环。注意break不是跳出if语句,而是循环结构。
(2)如果省略表达式1,即不在for语句中给循环变量赋初值,则应该在for语句前给循环变量赋初值。
(3)如果省略表达式2,即不在表达式2的位置判断循环终止条件,循环无终止地进行,也就是认为表达式2始终为“真”。则应该在其它位置(如:循环体)安排检测及退出循环的机制。
(4)如果省略表达式3,即不在此位置进行循环变量的修改,则应该其它位置(如:循环体)安排使循环趋向于结束的工作。
5)结束循环,执行for循环之后的语句。
for循环的执行流程:
例5-6:写一个程序,计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时圆的半径。
解:
本例要求计算6个不同半径的圆的面积,可以每次计算一个圆的面积,共计算6次,采用循环处理此问题。
注意到半径变化是有规律的:从0.5mm开始按1mm的规律递增。假设半径r,r从0.5开始,每循环一次r增加1,r≤5.5。
5、4 语句标号和goto语句[自学,不做重点要求,但要了解]
5、4、1语句标号
语句标号:一个标识符+“:”,它表示程序指令的地址。语句标号的标识符遵守“标识符”命名规定。
例如:
loop: ERR:
5、 4、2goto语句(无条件转移语句)
goto语句-无条件转移(转向)语句。格式为:
goto语句的功能:程序无条件转移到“语句标号”处执行。
(1)遇到数列求和,求积的一类问题,一般可以考虑使用循环解决。
(2)注意循环初值的设置。一般对于累加器常常设置为0,累乘器常常设置为1。
(3)循环体中做要重复的工作,同时要保证使循环倾向于结束。循环的结束由while中的表达式(条件)控制。
例5-2:利用while语句,计算机1+1/2+1/4+…+1/50.
算法2:
考虑到1+2+3+…+100可以改写为:(((1+2)+3)+…+100),
S1:p1<=1+2
S2: p2<=p1+3
S3: p3<=p2+4
…
S99: p99<=p98+100结果在p100里。
此算法也一样麻烦,要写99步,同时要使用99个变量。本算法同样不适合编程。
但是可以从本算法看出一个规律。即:每一步都是两个数相加,加数总是比上一步加数增加1后参与本次加法运算,被加数总是上一步加法运算的和。可以考虑用一个变量i存放加数,一个变量p存放上一步的和。那么每一步都可以写成:p+i,然后让p+i的和存入p,即:每一步都是p<=p+i。也就是说p既代表被加数又代表和。这样可以得到算法3。执行完步骤S99后,结果在p中。
其中:表达式称为“循环条件”,语句称为“循环体”。 为便于初学者理解,可以读做:“执行语句(循环体),当条件(循环条件)成立(为真)时,继续循环”或“执行语句(循环体),当条件(循环条件)不成立(为假)时,循环结束”-直到型循环。
执行过程是:
1)执行do后面循环体语句。
2)计算while后面的表达式的值,如果其值为“真”则继续执行循环体,如果表达式的值为假,退出此循环结构。
1、if/goto构成循环-被while,do-while,for代替。
例5-8a:仅仅作为goto,语句标号概念的理解,实际建议不要这样使用。
2、从循环体跳到循环体外-被break,continue代替。(break跳出本层循环continue结束本次循环,多层循环可以设置一个标志变量,逐层跳出)。
结构化程序设计方法主张“限制”(注意不是“禁止”)使用goto语句。因为goto语句不符合结构化程序设计的准则-模块化,使用三种基本程序结构。无条件转移使程序结构无规律,可读性变差。但是,任何事情都是一分为二,如果能大大提高程序的执行效率,也可以使用。
goto语句常见的两种用途(现在没有人会这么用):
执行过程是:
1)先计算while后面的表达式的值,如果其值为“真”则执行循环体,
2)在执行完循环体后,再次计算while后面的表达式的值,如果其值为“真”则继续执行循环体,如果表达式的值为假,退出此循环结构。
while循环的执行流程:
使用while语句需要注意以下几点:
(1)while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。
(1)while语句构成的循环结构(“当型循环”)
(2)do-while语句构成的循环结构(“直到型循环”)
(3)for语句构成的循环结构(“当型循环”)
5、1while语句(当型循环)
while语句的一般形式是:
其中:表达式称为“循环条件”,语句称为“循环体”。 为便于初学者理解,可以读做“当条件(循环条件)成立(为真),循环执行语句(循环体)”
(2)循环条件:while和do-while循环只在while后面指定循环条件;而for循环可以在表达式2中指定。
(3)循环变量修改使循环趋向结束:while和do-while循环要在循环体内包含使循环趋于结束的操作;for循环可以在表达式3中完成。
(4)for循环可以省略循环体,将部分操作放到表达式2,表达式3中,for语句功能强大。
for是关键词,其后有3个表达式,各个表达式用“;”分隔。3个表达式可以是任意的表达式,通常主要用于for循环控制。
for循环执行过程如下:
1)计算表达式1。
2)计算表达式2,若其值为非0(循环条件成立),则转3)执行循环体;若其值为0(循环条件不成立),则转5)结束循表达式3,然后转2)判断循环条件是否成立。
(5)while和for循环先测试表达式,后执行循环体,而do-while是先执行循环体,再判断表达式。(所以while,for循环是典型的当型循环,而do-while循环可以看作是直到型循环)。
(6)三种基本循环结构一般可以相互替代,不能说哪种更加优越。具体使用哪一种结构依赖于程序的可读性和程序设计者个人程序设计的风格(偏好)。我们应当尽量选择恰当的循环结构,使程序更加容易理解。(尽管for循环功能强大,但是并不是在任何场合都可以不分条件使用)。
while循环的执行流程:
说明:
(1)do-while循环,总是先执行一次循环体,然后再求表达式的值,因此,无论表达式是否为“真”,循环体至少执行一次。
(2)do-while循环与while循环十分相似,它们的主要区别是:while循环先判断循环条件再执行循环体,循环体可能一次也不执行。do-while循环先执行循环体,再判断循环条件,循环体至少执行一次。
观察数列1,1/2,…,1/50。=1/1,1/2,,1/50。分子全部为1,分母除第一项外,全部是偶数。同样考虑用循环实现。其中累加器用sum表示(初值设置为第一项1,以后不累加第一项),循环控制用变量i(i:2-50)控制,数列通项:1/i。
5、2do-while语句(直到型循环)