高中数学循环结构 典型例题

合集下载

高中数学1.2.3循环语句

高中数学1.2.3循环语句

输出y n=n+1
否 n>11?
是 结束
总结:
正确写出含有循环结构的程序应注意的问题:
(1)正确画出程序框图; (2)找出循环结构,并确定是哪种类型的循环结构; (3)根据循环结构写出相应的循环语句。
WHILE语句UNTIL语句的区别
WHILE语句(当型) 执行循环体前判断 当条件满足时执行循环体 可能不执行循环体 UNTIL语句(直到型) 执行一次循环体后判断 直到条件满足时跳出循环体 至少执行一次循环体
程序框图:
开始
.
程序:
i=1 s= 0 DO s=s+i 循环体 i=i+1
i=1
s=0 s=s+1 i=i+1
否 i >100?
LOOP UNTIL i>100 PRINT s END
条件

输出s
结束
(1)UNTIL语句的一般格式是: 直到型循环结构
循环体

满足条件?
DO 循环体 LOOP UNTIL 条件
WHILE语句(当型)
执行循环体前判断 当条件满足时执行循环体 可能不执行循环体
UNTIL语句(直到型)
执行一次循环体后判断 直到条件满足时跳出循环体 至少执行一次循环体
WHILE语句UNTIL语句的联系
WHILE语句
可以相互转化 决定循环时条件相反
UNTIL语句
例8:已知 y x 3x 24 x 30 连续输入 自变量的11个取值,求相应的函数值

程序框图:
开始
程序:
i=1 s=0
i=1 s=0
s=s+i i=i+1 WEND

高中数学 同步练习 循环语句

高中数学 同步练习 循环语句

第7课时循环语句知识点一循环语句的概念1.在循环语句中,下列说法正确的是( )A.UNTIL型循环可以无限循环B.WHILE型循环可以无限循环C.循环语句中必须有判断D.WHILE型循环不能实现UNTIL型循环的功能答案 C解析UNTIL型循环和WHILE型循环实现的功能是一样的,只是看不同条件下哪种方便而已.2.下列关于循环语句的说法不正确的是( )A.算法中的循环结构由WHILE语句来实现B.循环语句中有直到型语句和当型语句,即UNTIL语句和WHILE语句C.一般来说UNTIL语句和WHILE语句可以互相转换D.算法中的循环结构由循环语句来实现答案 A解析算法中的循环结构既可由WHILE语句来实现,也可以由UNTIL语句来实现,所以A的说法是不正确的.知识点二 UNTIL语句的应用3.下列程序中循环体运行次数是( )i=40DOPRINT ii=i+10LOOP UNTIL i>90ENDA.4 B.5 C.6 D.60答案 C解析循环体第1次运行后,i=50,第2次运行后,i=60,第3次运行后,i=70,第4次运行后,i=80,第5次运行后,i=90,第6次运行后,i=100>90条件满足,循环终止,则共运行了6次.4.根据程序框图,把程序中所缺少的语句补充完整.程序框图:程序:i=1S=0DO①②LOOP UNTIL ③PRINT SEND答案①S=S+i^2 ②i=i+1 ③i>100解析由程序框图可知利用了直到型循环结构,对应的语句为直到型循环语句,DO后面执行的为循环体,故①②处应分别为“S=S+i^2”和“i=i+1”,直到满足条件时为止,所以③处应为“i>100”.知识点三 WHILE语句的应用5.运行下面的程序后输出的s的值是( )A.11 B.15 C.17 D.19答案 B解析 循环过程依次为:i =3,s =7;i =5,s =11;i =7,s =15,此时不满足条件.故输出s =15.6.读程序,回答下列问题: INPUT ni =1S =0WHILE i<=nS =S +1/(i*(i +1)) i =i +1WENDPRINT S END(1)若输入n =3,则输出的结果为________;(2)此程序对应的计算式子是_________________________________;(3)程序中的循环语句对应________型循环结构.答案 (1)34 (2)12+16+…+1n (n +1)(3)当 解析 (1)输入n =3,第一次循环,S =0+12=12,i =2;第二次循环,S =12+16=23,i =3;第三次循环,S =23+112=34,i =4,此时不满足条件,结束循环.故输出S =34. (2)此程序的功能是计算12+16+…+1n (n +1)的值. (3)这是WHILE 语句,对应的是当型循环结构.易错点 混淆WHILE 语句与UNTIL 语句7.编写程序计算2+4+6+…+100的值.易错分析 由于对“直到型循环”与“当型循环”两种结构形式掌握不清而致误.正解 解法一:程序如下:i =2sum =0WHILE i <=100sum =sum +i i =i +2WENDPRINT sumEND解法二:程序如下:i=2sum=0DOsum=sum+ii=i+2LOOP UNTIL i>100PRINT sumEND一、选择题1.运行下面的循环语句,当循环终止时,i等于( )i=1DOi=i+1LOOP UNTIL i>4ENDA.3 B.4 C.5 D.6答案 C解析由“LOOP UNTIL i>4”,知当i=5时,循环终止.2.执行下列程序后输出的结果是( )i=1s=0WHILE i<=4s=s+ii=i+1WENDPRINT sENDA.3 B.6 C.15 D.10答案 D解析运行程序,依次为s=1,i=2;s=3,i=3;s=6,i=4;s=10,i=5,此时跳出循环,输出s=10.3.执行下面的程序后,输出的i的值是( )i=1WHILE i<=10i=i+5WENDPRINT iENDA.5 B.6 C.10 D.11答案 D解析程序执行如下:i=1,i=6,i=11,此时跳出循环并输出i=11.4.运行下面程序的结果为( )i=1S=0WHILE S<=20S=S+ii=i+1WENDPRINT iENDA.7 B.8 C.5 D.6答案 A解析第一次循环,S=0+1=1,i=1+1=2;第二次循环,S=1+2=3,i=2+1=3;第三次循环,S=3+3=6,i=3+1=4;第四次循环,S=6+4=10,i=4+1=5;第五次循环,S=10+5=15,i=5+1=6;第六次循环,S=15+6=21>20,i=6+1=7.故输出i的值为7.5.执行下面的程序,输入a=3,b=-1,n=4后,输出的结果是( )INPUT “a,b,n=”;a,b,ni=1WHILE i<=nc=a+ba=bb=ci=i+1WENDPRINT cENDA.3 B.4 C.5 D.6答案 B解析循环体被执行了四次,第一次执行循环体得到的结果是c=2,a=-1,b=2,i=2;第二次执行循环体得到的结果是c=1,a=2,b=1,i=3;第三次执行循环体得到的结果是c=3,a=1,b=3,i=4;第四次执行循环体得到的结果是c=4,a=3,b=4,i=5,此时输出c=4.二、填空题6.已知有如下两段程序:程序1运行的结果为________,程序2运行的结果为________.答案0 21解析程序1是计数变量i=21开始,不满足i≤20,终止循环,累加变量sum=0,这个程序计算的结果为0;程序2计数变量i=21,开始进入循环,sum=0+21=21,i=i+1=21+1=22,i>20,循环终止,此时,累加变量sum=21,这个程序运行的结果为21.7.要使下面程序能运算出“1+2+…+100”的结果,需将语句“i=i+1”加在________处.S=0i=1①WHILE i<=100②S=S+i③WEND④PRINT SEND答案③解析这是当型循环语句,当满足i≤100时,执行S=S+i,同时对应的计数变量要有i=i+1出现.故填③.8.执行下面算法语句,输出的结果是________.A=1B=1DOA=A+BB=A+BLOOP UNTIL B>15C=A+BPRINT CEND答案34解析循环结构中的循环体的作用是将前两个数相加,得到后一个数.如果没有循环条件的限制,程序中的循环结构将连同初始值,依次给A、B赋值为1、1,2、3,5、8,13、21,…,其中第一、三、五……个数为A的值,第二、四、六……个数为B的值.可见,当B=21时,循环结束,此时A=13,所以C=A+B=34.三、解答题9.下面程序的功能是输出1~100间的所有偶数.程序:(1)试将上面的程序补充完整;(2)改写为WHILE型循环语句的程序.解(1)①m=0,②i=i+1.(2)改写为WHILE型循环语句的程序如下:i=1WHILE i<=100m=i MOD 2IF m=0 THENPRINT iEND IFi=i+1WENDEND10.设计一个算法,求1×22×33×…×100100的值,并画出程序框图(分别用直到型循环结构和当型循环结构表示).解算法步骤如下(直到型循环结构):第一步,S=1.第二步,i=1.第三步,S=S×i i.第四步,i=i+1.第五步,判断i>100是否成立.若成立,则输出S,结束算法;否则,返回第三步.该算法的程序框图如图所示:算法步骤如下(当型循环结构):第一步,S=1.第二步,i=1.第三步,判断i≤100是否成立.若成立,则执行第四步;否则,输出S,结束算法.第四步,S=S×i i.第五步,i=i+1.该算法的程序框图如图所示:。

循环结构程序设计练习题 内含答案

循环结构程序设计练习题  内含答案

第三单元循环结构练习题选择题:1、有以下程序执行后的输出结果是( D )。

main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);}A.自然数1~9的累加和 B.自然数1~10的累加和C.自然数1~9中的奇数之和 D.自然数1~10中的偶数之和2、以下关于for语句的说法不正确的是( A )。

A. for循环只能用于循环次数已经确定的情况B. for循环是先判断表达式,后执行循环体语句C. for循环中,可以用break跳出循环体D. for循环体语句中,可以保含多条语句,但要用花括号括起来3、若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是( d )。

A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无限循环4、以下程序程序的执行后的输出结果是( c )。

main(){int i,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);}A.7 5 3B. 3 5 7C.3 6 9D.7 5 15、以下程序运行后的输出结果是( A )。

void fun(char*s){ while(*s){ if(*s%2==0) printf(“%c”,*s); s++;}}main(){ char a[]={“good”};fun(a);printf(“\n”);}注意:字母a的ASCⅡ码值为97A.dB.goC.godD.good6、已知 int t=0; while(t=1){...} 则以下叙述正确的是( B )。

A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对7、设有以下程序段 Bint x=0,s=0;while(!x!=0)s+=++x;printf("%d",s); 则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次8、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为( C )。

江苏省南京市中学苏教版高一数学必修三练习:1.2.3循环结构

江苏省南京市中学苏教版高一数学必修三练习:1.2.3循环结构

1.2.3循环结构【新知导读】1.什么是循环结构?循环结构的基本框架是什么?2.循环结构分为哪两类型?3.对同一个问题,如果分别用当型循环和直到型循环来处理的话,两者判断的条件相同吗?【范例点睛】例1.设计算法,输出1000以内能被3和5整除的所有正整数,画出算法流程图。

思路点拨:这个问题很简单,凡是能被3和5整除的正整数都是15的倍数,由于 1000=15×66+10,因此1000以内一共有66个这样的正整数。

易错辨析:此题既可以用当型循环又可以用直到型循环,但两者的判断的条件恰好相反。

方法点评: 当一个算法中包含多次重复执行相同类型的操作时,应考虑使用循环结构。

例 2.设区间[0,1]是方程0)(=x f 的有解区间,画出用二分法算法求方程0)(=x f 在区间[0,1]上的一个近似解的流程图,要求精确度为ε.思路点拨:对于给定的一元方程0)(=x f ,要求精确度为ε的近似解的算法如下: 1.确定有解区间[])0)()((,<⋅b f a f b a 2.取],[b a 的中点2ba +. 3.计算函数)(x f 在中点处的函数值)2(ba f +. 4.判断函数值)2(ba f +是否为0; (1)如果为0,2ba x +=就是方程的解,问题就得到了解决; (2)如果函数值)2(ba f +不为0,则分下列两种情况: ①若0)2()(<+⋅b a f a f ,则确定新的有解区间为)2,(ba a +;②若0)2()(>+⋅b a f a f ,则确定新的有解区间为),2(b ba + 5.判断新的有解区间的长度是否小于误差ε:(1)如果新的有解区间长度大于误差ε,则在新的有解区间的基础上重复上述步骤; (2)如果新的有解区间长度小于或等于误差ε,则取新的有解区间的中点为方程的近似解. 在上述算法中: (1)循环变量和初始条件设两个变量b a ,,分别表示有解区间的左端点和右端点,初始值分别为0和1. (2)循环体算法中反复执行的部分是判断函数值)2(ba f +是否为0: ①如果0)2(=+ba f ,输出2b a + ②如果)2(ba f +不为0,则判断)2()(b a f a f +⋅的符号: ⅰ)如果0)2()(<+⋅b a f a f ,2ba b +← ⅱ)如果0)2()(>+⋅b a f a f ,2b a a +← (3)终止条件 ①0)2(=+ba f ; ②ε<-a b易错辨析:将终止条件ε<-a b 当成循环体方法点评:循环结构可以大大地简化算法的表述;循环变量在构造循环结构中发挥了关键作用,本质上,这就是“函数的思想”。

循环结构程序设计典型例题

循环结构程序设计典型例题
}
特别注意此题中变量不能定义成
此题可做改进,在循环时确保
for(a=1;a<=99;a++)
for(b=1;b<=99;b++)
for(c=1;c<=99;c++)
if(a>b&&b>c&&a+b+c<100
&&c*c* (a*a+b*b)==a*a*b*b)
n++;
例6:e=1+1/1!+1/2!+….+1/n!(精度为1e-6)
分析:用变量a从1至U sqrt( 2698)-1循环。变量s初值为6000。若2698%a==0,则b=2698/a,若s>a+b,则s=a+b,并保存b的值在变量t.
mai n()
{int a,b,s=6000,t;
for( a=1;a<sqrt(2698);a++)
{if(2698%a==0)
for(a=n; a<=m;a++)
if(a%3==0)
{ x=a;
while(x>0)
{i=x%10;
if(i==5){printf (“%ld”,a);break;}
x=x/10;
}
}
}
问:能把

算法分析:
1.
2.
3.若a%i==0,结束i的循环,执行第4步
4.若i==a,把a累加到s上。
5.
注意:此题中执行第
float s=0;
for(n=1; n<=30 ;n++)

1.1.2程序框图的概念(循环结构)(高中数学人教版必修三)

1.1.2程序框图的概念(循环结构)(高中数学人教版必修三)

计数变量:用于记录循环次数,同时还用 于判断循环是否终止. 累加变量:用于输出结果,一般与计数变 量同步执行,累加一次,计数一次.
i i 1
循环终止条件
循环体
S Si
Y
i 100?
N
输出 S 结束
练习
1、下面3个图是为计算1 2 3 100 的值而绘制的 程序框图,其中正确的是 C 开始 开始 开始 S=0 S=1 i=2 i=1 i=2 S =1
i=i+1 i≥n-1或r=0?
是 否 否
r=0?

n不是质数
结束
n是质数
开始
语言描述
第一步,给定大于2的整数n。
输入n i=2
简单流程
第二步,令i=2。 求n除以i的余数r 第三步,用i除n,得到余数r。 第四步,判断r=0是否成立, 若是,则n不是质数,结束 算法;否则,将i的值增加 1,仍用i表示。 第五步,判断i >(n-1) 是否成立。若是,则n是 质数,结束算法;否则, 返回第三步. i=i+1 i>n-1或r=0?
1. 画流程图时一定要清晰,用铅笔和直尺画, 要养成有开始和结束的好习惯; 2. 画流程图时拿不准的时候可以先根据结构特 点画出大致的流程,反过来再检查,比如:遇到 判断框时,往往临界的范围或者条件不好确定, 就先给出一个临界条件,画好大致流程,然后检 查这个条件是否正确,再考虑是否取等号的问题 ,这时候也就可以有几种书写方法了; 3. 在输出结果时,如果有多个输出,一定要用 流程线把所有的输出总结到一起,一起终结到结 束框。
如果一个计算过程,要重复一系列的 计算步骤若干次,每次重复的计算步骤完 全相同,则这种算法过程称为循环过程。

C 循环结构23道题[含答案解析]

C  循环结构23道题[含答案解析]

题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。

输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。

若为素数则输出1,否则输出0。

(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。

输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。

循环结构的例子

循环结构的例子

循环结构的例子
1. 刷牙不就是个循环结构的例子嘛!每天早上起来,你是不是都会重复拿起牙刷、挤牙膏、刷牙这个动作?这就像我们生活中的很多事情一样,不断地重复。

2. 上班的日子也可以看作循环结构呀!每天固定的时间出门,到了公司开始工作,然后下班再回家,第二天又重复,这难道不像一个循环吗?
3. 健身不也是这样嘛!你设定一个健身计划,然后每周按照这个计划去锻炼,这不就是在循环嘛,难道你没感觉到吗?
4. 学生们每天上课、下课、做作业,周而复始,这多明显就是个循环结构呀!就像一个不停转动的轮子一样。

5. 农民伯伯每年播种、施肥、收获,一年又一年,这不是循环又是什么呢,这可是他们生活重要的一部分啊!
6. 家庭主妇们每天做饭、打扫、照顾家人,不也是在一个循环里面吗?这种付出难道不值得我们点赞吗?
7. 四季的更替也是一种循环啊!春天来了,夏天接着,秋天到了,冬天又来临,然后又开始新的一轮,神奇吧?
8. 我们每天睡觉、醒来,这简单的过程也是个循环呀!这几乎是每个人都在经历的,你还不承认吗?我觉得循环结构在我们生活中无处不在呢,它就像是我们生活的节奏,一直伴随着我们呀!。

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

【例1开始输出“是闰年”
y 输出“是闰年”y 输出“不是闰年”
y 输出“不是闰年”y y :=2000是是


否4整除y 100整除y 400整除y
(1(2(3三部分构成解:(1(2)(3【例2程图.
次比较..
i >100是循
开始
输出b 结

i := 2i := i +11
b := a b := a
b a
<是 是


输入…a ,a ,a ,1 2 10
i i
i >100
图2-2-32
【例3】菲波拉契数列表示的是这样一列数:0,1,1,2,3,5,…,后一项等于前两项的和.设计一个算法流程图,输出这个数列的前50项.
分析:输出数列的前50项,当然需设置50个变量:A 1,A 2,…,
A 50,若A i -2,A i -1,A i 分别表示数列中连续的三项,则有A i =A i -2+A i
-1
,即知任何一项的前2项,就可以把这项写出来. 解法一:流程图如图2-2-33.
开始输入 , A A 输出A 结束
A := 0
A := 1A := A + A i := 3i := i +1i >50是 否
图2-2-33
解法二:流程图如图2-2-34.
i 为循环变量,3为i 的初始值;
循环体为A i =A i -2+A i -1;终止条件为i >50.
法一中有50个变量,输出后不再进行其他操作,因此可只设三个变量A 1,A 2,A 3.
图2-2-34
【例4】设区间[0,1]是方程f(x)=0的有解区间,画出用二分法算法求方程f(x)=0在区间[0,1]上的一个近似解的流程图.要求精确度为ε.
分析:结合求精确度为ε的近似解的算法.
(1)由f(a)·f(b)<0,确定有解区间[a,b];
(2)取[a,b]的中点
2b
a+

(3)判断函数值f(
2b
a+
)是否为0.
①如果为0,则x=
2b
a+
是方程的解,问题解决完毕.
②如果不为0,则有两种情形.
a.若f(a)·f(
2b
a+
)<0,则(a,
2b
a+
)为新的有解区间.
b.若f(
2b
a+
)·f(b)<0,则(
2b
a+
,b)为新的有解区间.
(4)判断新的有解区间的长度是否小于ε.
①若大于ε,则在新的有解区间的基础上重复上述步骤.
②若不大于ε,则取新的有解区间的中点为方程的近似解.
解:算法流程图如图2-2-35.
先写出算法,再根据算法写流程图.其算法原理是不断取区间中点得到新的有解区间,同时使精度提高,最终得到满足条件的解.
设置两个循环变量a,b,其初始值分别为0,1,终止条件为
f(
2
b
a+
)=0或b-a≤ε.
输出结束
a b
+2a b +2。

相关文档
最新文档