11-while,do...while语句及练习解析

合集下载

单片机原理及接口技术(C51编程)(第2版)-习题问题详解汇总情况

单片机原理及接口技术(C51编程)(第2版)-习题问题详解汇总情况

第1章思考题及习题1参考答案一、填空1. 除了单片机这一名称之外,单片机还可称为微控制器或嵌入式控制器2.单片机与普通微型计算机的不同之处在于其将CPU、存储器、和I/O口三部分,通过内部总线连接在一起,集成于一块芯片上。

3. AT89S51单片机工作频率上限为33MHz MHz。

4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低成本和提高可靠性二、单选1. 单片机内部数据之所以用二进制形式表示,主要是A.为了编程方便B.受器件的物理性能限制C.为了通用性D.为了提高运算速度2. 在家用电器中使用单片机应属于微计算机的。

A.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用3. 下面的哪一项应用,不属于单片机的应用范围。

A.工业控制 B.家用电器的控制C.数据库管理 D.汽车电子设备三、判断对错1. STC系列单片机是8051内核的单片机。

对2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断源、1个定时器(且具有捕捉功能)。

对3. 单片机是一种CPU。

错4. AT89S52单片机是微处理器。

错5. AT89S51片内的Flash程序存储器可在线写入(ISP),而AT89C52则不能。

对6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。

对7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。

对8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP的长处。

对第2章思考题及习题2参考答案一、填空1. 在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为2µs。

2. AT89S51单片机的机器周期等于12个时钟振荡周期。

3. 内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为28H和88H。

高二数学程序语言试题答案及解析

高二数学程序语言试题答案及解析

高二数学程序语言试题答案及解析1.根据右图所示的算法,可知输出的结果为___________.【答案】11【解析】根据题中的伪代码,可得该程序经过第一次循环得到,;第二次循环得,;第三次循环得到,;…,依此类推,当时,输出下一个值.由以上规律,可得:当时,,恰好大于,变成11并且输出,由此可得,输出的结果为11.【考点】算法程序语言.2.根据如图所示的程序,当输入a,b分别为2,3时,最后输出的m的值是()A.0B.2C.3D.1【答案】C【解析】有条件结构可得因为.即.所以进入ELSE环节即将赋值给.结束假设从而输出.故选C.本小题主要考查条件结构并且含有ELSE的较复杂的结构,本题及选出两个数中较大的值的程序框.【考点】1.判断框的应用.2.比较大小.3.如果执行如图所示的程序,则输出的数=____ ____.【答案】120【解析】运行程序语句当时,执行语句体成立;成立;成立,不成立结束循环,故输出120.【考点】算法语句,当型循环结构.4.当输入的值为,的值为时,右边的程序运行的结果是()A.-2B.-1C.1D.2【答案】C【解析】程序的功能是将a-b赋值给a,输出a,所以,输出结果为(-2)-(-3)=1,故选C。

【考点】本题主要考查算法程序的概念识别。

点评:简单题,读懂题意,按要求计算即得。

5.如图所示的程序框图输出的结果是()A.B.C.D.【答案】C【解析】执行过程如下:成立,成立,成立,成立,不成立,退出循环,输出【考点】本小题主要考查程序框图的执行过程,考查学生根据程序框图运算求解的能力.点评:程序框图中含有循环结构时,要注意分清是直到型循环还是当型循环.6.如果下边程序执行后输出的结果是990,那么在程序中UNTIL后面的“条件”应为( )A.i>10B.i<8C.i<=9D.i<9【答案】D【解析】根据程序可知,因为输出的结果是990,即s=1×11×10×9,需执行4次,则程序中UNTIL后面的“条件”应为i<9.故选D【考点】本题主要考查了直到型循环语句,语句的识别问题是一个逆向性思维,一般认为学习是从算法步骤(自然语言)至程序框图,再到算法语言(程序).如果将程序摆在我们的面前时,从识别逐个语句,整体把握,概括程序的功能.点评:解决该试题的关键是先根据输出的结果推出循环体执行的次数,再根据s=1×11×10×9=990得到程序中UNTIL后面的“条件”.7.执行如图的程序框图,如果输入的是4,则输出的是()A.B.C.D.【答案】C【解析】运行过程如下:不成立,所以输出【考点】本小题主要考查算法中的循环结构,考查学生的读图识图能力.点评:要读懂程序框图,尤其要重视循环结构的程序框图,弄清当型与直到型循环结构的区别,以及进入、推出循环的条件、循环的次数.8.将两个数交换,使,下面语句中正确的一组是()A.B.C.D.【答案】B【解析】先把b的值赋给中间变量c,这样c=17,再把a的值赋给变量b,这样b=8,把c的值赋给变量a,这样a=17,故选B9.把“二进制”数化为“五进制”数是()A.B.C.D.【答案】C【解析】10.将十进制数30化为二进制.【答案】【解析】把一个十进制的数转换为相应的二进制数,用2反复去除欲被转换的十进制数30,直到商是0为止,所得余数(从末位读起)就是该十进制数30的二进制表示.解:把一个十进制的数转换为相应的二进制数,用2反复去除欲被转换的十进制数30,直到商是0为止,所得余数(从末位读起)就是该十进制数30的二进制表示. 所以11.把十进制数15化为二进制数为()A.1011B.1001 (2)C.1111(2)D.1111【答案】C【解析】选C.12.以下程序运行后的输出结果为()A.17B.19C.21D.23【答案】C【解析】退出循环体时i=8,所以输出的13.计算,写出算法的程序.【答案】s=1n=2i=1WHILE i<=63s=s+n∧ii=i+1WENDPRINT “1+2+2∧2+2∧3+…+2∧63=”;sEND【解析】本题主要设计计算1+2+22+23+…+263的程序,显然利用循环语句,可采用当型循环语句,弄清首项和最后一项,本题是求和,可利用语句作为循环体.14.下列程序执行后输出的结果是()A.–1B. 0C. 1D.2【答案】B【解析】该程序是一个当型循环结构.第一步:s=0+5=5,n=5-1=4;第二步:s=5+4=9,n=4-1=3;第三步:s=9+3=12,n=3-1=2;第四步:s=12+2=14,n=2-1=1;第五步:s=14+1=15,n=1-1=0.∵s=15,∴结束循环.∴n=0.15.比较大小:【答案】>【解析】因为,显然填大于号.16.在下列各数中,最大的数是()A.B.C.D.【答案】B【解析】因为A=77,B=78,C=64,D=31.所以选B.17.计算机执行下面的程序段后,输出的结果是()A.B.C.D.【答案】B【解析】a=1+3=4,b=4-3=1.18.已知,分别用“For”语句和“While”语句描述计算S这一问题的算法过程.【答案】【解析】“For”语句弄清I的初始值、终值和步长,以及累积变量S,利用语句S=S+I,然后根据“For”语句的格式即可写出;“While”语句弄清循环的条件,以及利用语句S=S+I,I=I+4作为循环体,最后根据“While”语句格式即可写出.19.为了在运行下面的程序之后得到输出16,键盘输入x应该是()A.3或-3B.-5C.5或-3D.5或-5【答案】D【解析】若x<0,则(x+1)2=16,所以x=-5;若x>0,则(x-1)2=16,所以x=5.所以键盘输入x应该是5或-520.在右边程序中,如果输入的值是20,则输出的值是A.100B.50C.25D.150【答案】D【解析】本题考查的是程序框图。

全国计算机等级考试二级C语言真题库之选择题(14)

全国计算机等级考试二级C语言真题库之选择题(14)

全国计算机等级考试等级考试真题库之选择题(14)1.一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A) 12345ABCDEB) EDCBA54321C) ABCDE12345D) 54321EDCBA参考答案:B【解析】栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择B)。

2.下列叙述中正确的是()。

A) 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B) 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C) 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D) 循环队列中元素的个数是由队头指针和队尾指针共同决定参考答案:D【解析】循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A)错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B)与C)错误。

3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A) O(n)B) O(n2)C)D)参考答案:C【解析】当有序线性表为顺序存储时才能用二分法查找。

可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较次,而顺序查找需要比较n次。

4.下列叙述中正确的是()。

A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间参考答案:A【解析】链式存储结构既可以针对线性结构也可以针对非线性结构,所以B)与C)错误。

链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D)错误。

5.数据流图中带有箭头的线段表示的是()。

A) 控制流B) 事件驱动C) 模块调用D) 数据流参考答案:D【解析】数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。

VFP第六章课件2(循环结构)

VFP第六章课件2(循环结构)

控制循环执行的方式
控制循环执行的方式
3)用记录指针控制循环 学院英语比赛成绩数据表SH.DBF SH.DBF中包 例2:学院英语比赛成绩数据表SH.DBF中包 括以下字段:姓名( ),班级 班级( 括以下字段:姓名(C,8),班级(C, 10),英语(N ),英语(N, 0)和备用(N, 和备用(N 10),英语(N,3,0)和备用(N,3,0) ;其 中除备用字段外,其他字段均已有值。 中除备用字段外,其他字段均已有值。 编程序统计各班英语的平均成绩, 编程序统计各班英语的平均成绩,并显示平 均分前三名的班级和平均成绩( 均分前三名的班级和平均成绩(假设平均成绩 都不相同)。 都不相同)。 ( 见“程序168.PRG” 程序文件 )
<内存变量>为循环变量,作为计数器控制循环。<数 内存变量>为循环变量,作为计数器控制循环。 值表达式1>为循环变量初值; 数值表达式2> 1>为循环变量初值 2>为循环 值表达式1>为循环变量初值;<数值表达式2>为循环 变量终值,循环变量超过终值循环结束。 变量终值,循环变量超过终值循环结束。 FOR语句每循环一次 语句每循环一次, FOR语句每循环一次,自身便改变一次循环变量的 STEP短语设置改变的增量 短语设置改变的增量, 数值表达式3> 值,STEP短语设置改变的增量,由<数值表达式3> 设置。正值为增加,负值为减少,缺省默认为1 设置。正值为增加,负值为减少,缺省默认为1。在 循环中允许使用赋值语句修改循环变量的值。 循环中允许使用赋值语句修改循环变量的值。 FOR语句可以嵌套 语句可以嵌套。 NEXT任选其一 任选其一。 FOR语句可以嵌套。ENDFOR 和NEXT任选其一。

dowhile循环语句例题及解析

dowhile循环语句例题及解析

dowhile循环语句例题及解析do-while循环语句例题及解析do-while循环是一种后测试循环语句,它先执行循环体中的代码,然后再进行条件判断。

这意味着无论条件是否满足,循环体中的代码至少执行一次。

在本文中,我们将介绍一些do-while循环的例题,并提供详细的解析。

例题一:请编写一个程序,使用do-while循环打印出1到10的数字。

解析:```c#include <stdio.h>int main() {int i = 1;do {printf("%d ", i);i++;} while (i <= 10);return 0;}```在这个例子中,我们使用do-while循环打印出了1到10的数字。

首先,我们将变量i初始化为1。

然后,循环体中的代码打印出当前的i值,并将i增加1。

然后,do-while循环会再次进行条件判断,如果i仍然小于等于10,则继续执行循环体中的代码。

当i等于11时,循环终止。

例题二:请编写一个程序,使用do-while循环计算1到10的和,并输出结果。

解析:```c#include <stdio.h>int main() {int i = 1;int sum = 0;do {sum += i;i++;} while (i <= 10);printf("1到10的和为:%d\n", sum);return 0;}```在这个例子中,我们使用do-while循环计算了1到10的和,并输出结果。

首先,我们将变量i初始化为1,将变量sum初始化为0。

然后,循环体中的代码将当前的i值加到sum中,并将i增加1。

再次进行条件判断,如果i仍然小于等于10,则继续执行循环体中的代码。

当i等于11时,循环终止。

最后,我们输出结果,即1到10的和。

通过以上两个例题,我们了解了do-while循环的基本用法和语法结构。

C语言基础 五、循环

C语言基础 五、循环

五、循环结构程序设计本章概述:以笔试和上机两种形式考核。

笔试中,多出现在选择题第20-23题。

填空题第8、9题。

分值约占12%。

上机中,三种题型中均有体现,抽中几率约为37%。

考生要熟练掌握。

大纲要求:1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

重点难点:1.for循环结构。

2.continue语句和break语句。

3.循环的嵌套。

考点分析:while 语句while 语句一般形式:while (条件表达式){循环体}while 语句执行过程:先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。

说明:(1)while语句的特点是先判断,再执行。

因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。

(2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。

(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

试题解析1.要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是(A)A)while((ch=getchar())!=′N′)printf("%c",ch);B)while(ch=getchar()!=′N′)printf("%c",ch);C)while(ch=getchar()==′N′)printf("%c",ch);D)while((ch=getchar())==′N′)printf("%c",ch);解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。

直到表达式的值为假时,结束循环。

ch=getchar()应加一个括号,表示输入字符的函数。

while循环语句例题及解析

题目:while循环语句例题及解析在编程语言中,while循环是一种常见的循环语句,它能够根据给定的条件重复执行一段代码。

通过while循环,开发者可以实现对一个条件的反复检查,并在满足条件时执行相应的操作。

本文将通过一些例题及其解析,帮助读者更好地理解和掌握while循环的用法和特点。

1. 例题1:使用while循环计算1到100的和给定一个整数n,计算1到n的和。

当n=100时,应计算1+2+3+...+100的结果。

解析:这是一个经典的求和问题,可以通过while循环轻松实现。

我们需要一个变量sum来存储累加的结果,初始值为0。

通过while循环,对从1到n的数字依次累加到sum中,直到累加到n为止。

```pythonn = 100sum = 0i = 1while i <= n:sum += ii += 1print("1到d的和为:d" (n, sum))```在上述代码中,我们使用了变量n来表示需要计算的范围,sum来存储累加的结果,i作为循环的控制变量。

通过while循环,当i小于等于n时,执行累加操作并将i递增1。

最终输出1到100的和为5050。

2. 例题2:使用while循环找出100以内的所有质数给定一个整数n,找出所有小于等于n的质数。

当n=100时,应找出所有小于等于100的质数。

解析:质数是指除了1和本身外,没有其他正因子的数。

在这个例题中,我们可以利用while循环逐个检查1到n之间的每个数,判断其是否为质数。

具体的算法思路如下:- 我们需要一个列表prime_list来存储所有找到的质数,初始为空列表。

- 我们使用while循环,从2开始逐个判断每个数是否为质数。

对于每个数i,从2开始逐个检查是否存在能整除i的数,若不存在,则将i加入到prime_list中。

- 输出prime_list中找到的所有质数。

```pythonn = 100i = 2prime_list = []while i <= n:j = 2while j <= (i/j):if i j == 0:breakj += 1if j > i/j:prime_list.append(i)i += 1print("100以内的质数有:", prime_list)```在上述代码中,我们先对每个数i进行了从2到i的遍历,通过while 循环对每个数遍历寻找质数。

国家二级C语言机试(C语言程序设计)模拟试卷33

国家二级C语言机试(C语言程序设计)模拟试卷33(总分:70.00,做题时间:90分钟)一、选择题(总题数:35,分数:70.00)1.要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是(分数:2.00)A.while(ch=getchar0='N')printf("%c",ch);B.while(ch=getchar()=="N")printf("%c",ch);C.while((ch=getchar())!='N')printf("%c",ch);√D.while((ch=getchar())=='N')printf("%c",ch);解析:解析:while循环的执行过程如下:①计算while后面圆括号中表达式的值,当值为非0时,执行步骤②;当值为0时,执行步骤④;②执行循环体一次:③转去执行步骤①;④退出循环。

在选项C 中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。

如果这个条件表达式不成立,即输入的字符等于N,则退出循环。

2.若有以下程序 main(){int a=-2,b=0; while(a++) ++b; pfintf("%d,%d\n",a,b);} 则程序的输出结果是(分数:2.00)A.0,2B.1,2 √C.1.3D.2,3解析:解析:循环体执行两次,第一次表达式a++值为-2,a的值为-1,执行循环体++b,b值为1,第二次表达式a++值为-1,a的值等于0,执行++b,b值为2,第三次判断条件a++,表达式值为0,不执行循环体,但是条件判断以后,a的值为1。

3.由以下while构成的循环,循环体执行的次数是int k=0;while(k=1)k++;(分数:2.00)A.一次也不执行B.执行一次C.无限次√D.有语法错,不能执行解析:解析:循环条件表达式为赋值表达式k=-1,因此循环执行无限次。

shell中的for、while循环及if语句

shell中的for、while循环及if语句shell与其他语⾔⼀样也⽀持for、while循环for循环的⼀般格式如下:1 #!/bin/sh23for变量in列表4do5 command 16 command 27 command 18 .........9 command n10done列表是⼀组值(数字、字符串等)组成的序列,每个值通过空格分隔。

每循环⼀次,就将列表中的下⼀个值赋给变量。

列表也可以是⼀个⽂件:in 列表是可选的,如果不⽤它,for 循环使⽤命令⾏的位置参数。

1 #!/bin/sh23for line in12345674do5echo"line is $line"6done结果:[root@localhost 1st]# sh test.shline is 1line is 2line is 3line is 4line is 5line is 6line is 7下⾯⽤for循环读⼀个⽂件:查看⽂件内容1 [root@localhost 1st]# cat test.txt2 hello3 wolrd4 hello5 shell6 [root@localhost 1st]#code:1 #!/bin/sh23 FILE=./test.txt45for line in $(<$FILE)6do7echo"line is: $line"8doneResults:1 [root@localhost 1st]# sh xx.sh2 line is: hello3 line is: wolrd4 line is: hello5 line is: shell6 [root@localhost 1st]#while循环的⼀般格式如下:1while command2do34 statement56done3 i=04sum=05while [ $i -le 100 ]6do7sum=$(($sum + $i))8 i=$(($i + 1))9done10echo"sum is $sum"rusults:1 [root@localhost 1st]# sh xx.sh2sum is 50503 [root@localhost 1st]#if语句的⼀般格式如下:1if ....; then2 ....3elif ....; then4 ....5else6 ....7fiif 条件语句:⽂件表达式:1 [ -f "somefile" ] : 判断是否是⼀个⽂件2 [ -x "/bin/ls" ] : 判断/bin/ls是否存在并有可执⾏权限3 [ -n "$var" ] : 判断$var变量是否有值4 [ "$a" = "$b" ] : 判断$a和$b是否相等5 -r file ⽤户可读为真6 -w file ⽤户可写为真7 -x file ⽤户可执⾏为真8 -f file ⽂件为正规⽂件为真9 -d file ⽂件为⽬录为真10 -c file ⽂件为字符特殊⽂件为真11 -b file ⽂件为块特殊⽂件为真12 -s file ⽂件⼤⼩⾮0时为真13 -t file 当⽂件描述符(默认为1)指定的设备为终端时为真字符串表达式:[string string_operator string]这⾥string_operator可为如下⼏种:1 = 两个字符串相等。

Java基础2—{循环语句(for、while、do...while)、控制跳转语句(br。。。

Java基础2—{循环语句(for、while、do...while)、控制跳转语句(br。

1、循环语句1.1 for语句(1)for语句的格式:for(初始化表达式语句;判断条件语句;控制条件语句) {循环体语句;}(2)执⾏流程:a:执⾏初始化表达式语句b:执⾏判断条件语句,看其返回值是true还是false如果是true,就继续执⾏如果是false,就结束循环c:执⾏循环体语句;d:执⾏控制条件语句e:回到b继续。

(3)注意事项:初始化表达式语句只执⾏⼀次判断条件语句⽆论简单还是复杂结果是boolean类型。

循环体语句如果是⼀条语句,⼤括号可以省略;如果是多条语句,⼤括号不能省略。

建议不要省略。

1.2 for语句案例演⽰1需求:在控制台输出所有的”⽔仙花数”所谓的⽔仙花数是指⼀个三位数,其各位数字的⽴⽅和等于该数本⾝。

举例:153就是⼀个⽔仙花数。

153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153 2代码:3public class Demo01{4public static void main(String[] args) {5int count=0;6for (int i = 100; i <= 999; i++) {7int ge = i / 1 % 10;8int shi = i / 10 % 10;9int bai = i / 100 % 10;10int flowerNumber=ge*ge*ge+shi*shi*shi+bai*bai*bai;11if(flowerNumber==i){12 System.out.println("⽔仙花数是: "+i);13 count++;14 }15 }16 System.out.println("⽔仙花数有"+count+"个");17 }18 }运⾏结果:1.3 while语句1(1)while语句的格式:2 while循环的基本格式:3while(判断条件语句) {4循环体语句;5 }6完整格式:7初始化条件语句;8while(判断条件语句) {9循环体语句;10控制条件语句;11 }12(2)while语句执⾏流程:13 a:执⾏初始化条件语句;14 b:执⾏判断条件语句,看其返回值是true还是false15如果是true,就继续执⾏16如果是false,就结束循环17 c:执⾏循环体语句;18 d:执⾏控制条件语句19 e:回到b继续。

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

说明 (1)do 是关键字。 do-while 语句是先执行循 环体“语句”,后判断循环终止条件, 因此循环体至少被执行一次,这一点与 while和for循环存在很大的差别。 (2)do-while循环中,do … while(表达式) 后 面有分号,而while循环中,while(表达 式)后面没有分号。 (3)在书写时,循环体包含多条语句要用花 括号括起来。
5.2 while语句


一般形式 while(表达式) 循环体语句; 功能:计算并判断表达式的值, • 若值为真,则执行循环体语句; • 若值为假则结束循环,退出 while 语句, 转而执行while循环后面的语句。

while循环的使用
循环变量初始化;/*for中表达式1*/ While (由循环变量构成的条件) /* 表达式 2*/ { 循环体语句; 修改循环变量的值; /*for中表达式3*/

课后练习5.2
#include "stdio.h" main( ) { char ch; do { ch=getchar(); putchar(ch); } while(ch!='\n'); }
练习
1、从键盘输入若干个数,当输入为0时结束, 计算这些数的和及平均值并输出。
#include "stdio.h" main( ) { float j=0,sum=0,avg=0; int k=0; do { k = k + 1; printf("请输入第%d个数:",k); scanf("%f",&j); sum = sum + j; }while(j!=0); if(k>1) avg = sum / (k - 1); printf("和为:%f,平均数为:%f.\n",sum,avg); }
}

例5.2 将例5.1用while循环来实现。 main() {int sum,i; sum=0; i=1; while(i<=100) for(i=1;i<=100;i++) { sum=sum+i; i++; } printf("sum=%d",sum); }

说明
( 1 ) while 是关键字。 while 后面的表达式相 当于for语句中的表达式2。 (2) 对于for语句中的表达式1,在while语句 中,需要在进入循环之前确定循环控制变量的 初始值,如上面语句i=1。 (3) 对于for语句中的表达式 3,在while语句 中,需要在循环体中来体现,如上面语句 i++ 。 (4) 循环体中包含多条语句,需要用花括号 写成复合语句。
课后练习5.3
#include "stdio.h" main( ) { int n,d; printf("请输入一个整数:"); scanf("%d",&n); do{ d=n%10; printf("%d",d); n=n/10; }while(n!=0); printf("\n"); }
例:如果我国工农业产值每年以 9% 的增长 率增长,问几年后我国的工农业产值可以 翻一番。 【问题思路】先设原来产值(基数)为100, 然后每年底计算一次增长后的产值。如果 未达到200,就再计算下一年的产值,直 到某一年的产值达到或超过200为止。设 变量n用来累计经历的年数
参考程序如下: #include "stdio.h" main( ) { float p,r; int n; n=0;p=100;r=0.09; while(p<200) { p=p*(1+r); n=n+1; } printf("%d years,p=%10.4f\n",n,p); }
课后练习5.7
5.3 do-while语句


一般形式 do 循环体语句 while(表达式); 功能:先执行循环体,然后计算“表达 式”,判别“表达式”的值是否为真。 如果为真则再次进入循环体执行。如此 往复,直至“表达式”的值为假时,循 环才结束。

do while循环的使用
循环变量初始化; do { 循环体语句; 修改循环变量的值; }while (循环条件);
课后练习5.1(2)
#include "stdio.h" #include "math.h" main( ) { int a; double x0,x1; printf("请输入正整数a:"); scanf("%d",&a); x0=a/2.0; x1=(x0+a/x0)/2.0; while(fabs(x1-x0)>1e-5) { x0=x1; x1=(x0+a/x0)/2.0; } printf("%d的平方根为:%f.\n",a,x1); }
相关文档
最新文档