第一节 while循环-【单招零距离】计算机专业综合(下)

2025-04-23
| 2份
| 8页
| 62人阅读
| 0人下载

内容正文:

单招零距离·计算机专业综合·下册 第五章 循环结构程序设计 大纲要求 1.掌握for循环结构。 2.理解while和do while循环结构。 3.掌握continue语句、break语句。 4.理解循环的嵌套。 第一节while循环 知识体系 while循环的格式、while循环的运行过程 while循环解决实际问题的一般步骤 知识梳理 ⊙⑤ 一、while循环的格式 1.while语句的一般格式为: while(表达式) {循环体;} 2.运行过程: 计算 的值,当值为 时,反复执行 语句,为 时退出循环。 3.说明: (1)循环体如果 ,可以省略大括号,两句以上则应用大括号以 形式 出现。 (2)在循环体中或表达式中应有使循环趋向于结束的语句,即有最终使表达式为 的情况,否则会出现 现象,这在编程中要避免的。另外在条件表达式后千万不能加一 个 ,否则极易造成死循环现象,此时循环控制的是分号前的 ,控制不到循环 体了。 (3)while循环的特点是先判断表达式的值,如果一开始为假(值为0),则循环体 执行,直接执行while循环的后续语句。 二、while循环解决实际问题的一般步骤 1.设置好循环的 2.确定好循环的 3.把要重复执行的语句部分放在 中: ·78· 总复习方案·第五章循环结构程序设计 4.设法在循环体中或条件表达式中 致使循环能够满足一定的条件后 典例精析 【例1】 (1)写出下列程序的执行结果。 #include "stdio.h" int main() int i,sum=0; i=1; while(i<5) (sum=sum+i; i++; 〉 printf("%d ",sum); } (2)写出下列程序的执行结果。 #include "stdio.h" int main() int i,sum=0; i=5; while(i->0) sum=sum十i; printf("%d ",sum); 【分析】(1)i从1变化到5,且全部加到sum中,但最终i为6使循环退出。(2)i一开始 为5,-0,在执行循环体之前要自减一次,所以sum中加的第一个数是4、然后是3、2、1、0、一 1,最终i为一2。 【答案】(1)15(2)9 【例2】如果从健盘上输入4,写出下列程序的运行结果。 #include "stdio.h" int main() { int a=0,n; printf(" input n:"); scanf("%d",&.n); while(n-一) printf("%d",a十+*n); } 【分析】条件表达式为n一,先是用n的值判断是否循环,再自减一次。 ·79· 单招零距离·计算机专业综合·下册 【答案】 程序运行结果: 010 【例3】编程求sum=1十3+5十.十99,请填空: #include "stdio.h" int main() int i,sum=0; i=1; while(i< (sum=sum+i; i+= } printf("%d ",sum); } 【答案】 (1)99 (2)2 【例4】编程求sum=1+(1+2)+(1+2+3)+..十(1+2+3+.100)。 #include "stdio.h" int main() int i,t=0,sum=0; printf("%d ",sum); } 【答案】 i=1; while(i<=100) t=t+i; sum=sum+t; i十+; 巩固练习 ©⊙ 1.执行如下语句后,a,b的值分别是()。 int a=1,b=10; while(b--<0) ·80· 总复习方案·第五章循环结构程序设计 b=b-a; a++; } A.1,10 B.2,9 C.1,9 D.2,10 2.和while(!x)中的(!x)等价的是( )。 A.x==0 B.x!=0 C.x==1 D.x!=1 3.写出下列程序的执行结果: include "stdio.h" int main() int i,sum=0; i=1; while(i<=99) sum=sum+i; i+=2; printf("%d ",sum); } 4.如果从键盘上输入一3,写出下列程序的运行结果: include "stdio.h" int main() int a=0,n; printf(" input n:"); scanf("%d",&n); while (++n) printf("%d ",n+a--*2); 拓展练习 ⊙务Y⊙ 1.编程求sum=1十(1+3)+(1+3+5)+..+(1+3+5十..99),请填空: include "stdio.h" int main() (int i,t=0,sum=0; i=1: while(i<99) {t= sum=sum+t; ·81… 单招零距离·计算机专业综合·下册 printf("%d ",sum); 2.程序填空题:对任一实数x,对其进行分半,直到小于0.001为止,输出分半的次数。 #include "stdio.h" int main() {float n=0,x; scanf("%f",&x); while( {n十+; ;》 printf("x=%f,n=%.0f",x,n); } 3.求sum=1一(1+2)+(1+2+3)一…一(1+2+3+…100),请编程实现: #include "stdio.h" int main() { /*兴头兴关米米¥关米¥米米***BEGIN关并关米兴兴关关关关关关关关关/ /米*米米米米米米米*米米米米米*END关米米米关关米米关米米米*米0/ printf("%d ",sum); 技能实践 C© 1.程序填空题:从键盘上输入两个正整数,求它们的最大公约数和最小公倍数(注:两数 的最小公倍数为两数的积除以两数的最大公约数)。(最大公约数要求用辗转相除法) #include "stdio.h" int main() (int m,n,r,t; int gbs,gys; int x,y; printf("input two integer numbers m,n"); scanf("d%d",&.m,&.n); if (m<n)(t=m;m=n;n=t;) x=m;y=n; r= ·82· 总复习方案·第五章循环结构程序设计 while(r!=0) (m=n;n=r;r=mn;) gbs= gys=n; printf("gbs=%d,gys=%d ",gbs,gys); 2.程序改错题:计算s=1十1/(1*2)十1/(23)十..十1/(n*(n十1))直到最后一项小 于0.001,编程求出n值,最后一项的值及s值。(要求最后一项的值也加进s中去),调试结果 应为:n=32,k=0.000947,s=1.969697,程序中有三处错误,请改正。 include "stdio.h" int main() float n=0; /米米关*关米米米***米米米关*f0ud*米米***米米兴米米米米*米米米/ float s=0,k=1; /米米**米米米米米米*米米米**f0und米并米*米***米关米米米关米米米/ while(k>0.001) {n十+; /米米米**米米米米*米并米米米*f0ud米米米米**米米米米米米米*米*米/ k=1/n*(n+1): s=s十k printf("n=%.0f,k=%f,s=%f",n,k,s); 3.程序设计题:从键盘上输入一个整数,求出它的逆序数。如n=1234,则输出m=4321。 #include "stdio.h" int main() int n,m=0; scanf("%d",&n); /米米米米米***米米米米米*BEGIN***关米米米米**米米/ /米米米米米米*兴关米米米米**END*米米米****米兴兴米米关兴米米/ printf("m=%d",m); ·83· (3)days+day  5.switch(a) { case1:printf("Monday ");break; case2:printf("Tuesday ");break; case3:printf("Wednesday ");break; case4:printf("Thursday ");break; case5:printf("Friday ");break; case6:printf("Saturday ");break; case7:printf("Sunday ");break; default:printf("Error ");break; } 【拓展练习】  1.i=8,s=21  2.i=2,n=0 s=0  3.(1)a+b>c&&a+c>b&&b+c>a  (2)a==b&&b==c  (3)a==b||b==c||a==c  4.if(x%3==0)  t=t+3; if(x%5==0)  t=t+5; if(x%7==0)  t=t+7; switch(t) { case15:printf("能被3、5、7整除 ");break; case12:printf("能被5、7整除 ");break; case10:printf("能被3、7整除 ");break; case8:printf("能被3、5整除 ");break; case7:printf("能被7整除 ");break; case5:printf("能被5整除 ");break; case3:printf("能被3整除 ");break; case0:printf("不能被3、5、7整除 ");break; }  5.if(x>=1&&x<=126)  t='A'; elseif(x>=128&&x<=191)  t='B'; elseif(x>=192&&x<=223)  t='C'; elseif(x>=224&&x<=239)  t='D'; elseif(x>=240)  t='E'; putchar(t); 【技能实践】  1.(1)r=-1  (2)r=0.70  (3)0.50+weigh∗r  2.(1)if(x>72)或if(x>=73)  (2)elseif(x>=25)  3.gets(word); for(i=0;word[i];i++) { t=toupper(word[i]); if(t>='A'&&t<='E')weigh+=1; elseif(t>='F'&&t<='J')weigh+=2; elseif(t>='K'&&t<='O')weigh+=3; elseif(t>='P'&&t<='T')weigh+=4; elseif(t>='U'&&t<='Y')weigh+=5; else   weigh+=6; } printf(“weight(“%s”)=%d ”,word,weight); 第五章 循 环 结 构 第一节 while循环 【知识梳理】 一、while循环的格式 2.表达式 真(非0) 循环体 假(0) 3.(1)只有一句 复合语句 (2)假(0) 死循环 分号 空语句 (3)一次也不 二、while循环解决实际问题的一般步骤 1.初始条件 2.条件表达式 3.循环体 4.改变条件 结束循环 【巩固练习】  1.C 2.A  3.2500  4.-2 -3 【拓展练习】  1.(1)t+i (2)i+=2;  2.(1)x>=0.001 (2)x/=2  3.inti,t=0,sum=0,flag=1; i=1; while(i<=100) {t=t+i; 􀅰71􀅰 总复习方案􀅰参考答案 sum=sum+t∗flag; flag=-flag; i++; } 【技能实践】  1.(1)m%n (2)x∗y/n  2.(1)floats=0,k=1;改为floats=1,k=1; (2)while(k>0.001)改为 while(k>=0.001) (3)k=1/n∗(n+1);改为k=1/(n∗(n+1));  3.while(n! =0) {m=m∗10+n%10;  n=n/10; } 第二节 do-while循环 【知识梳理】 一、do-while循环的格式 2.循环体 计算表达式的值 真 假 3.(1)至少要执行一次 分号 语法 (2)结束 假 死循环 【巩固练习】  1.B 2.A 3.B  4.c,99  5.a=8,b=7  6.digit=x%10; sum=sum+digit∗digit∗digit; x=x/10; 【拓展练习】  1.3 4 6 7 9 10  2.a=5,b=13,i=4  3.(1)sum+f3/f2 (2)++i<=8或i++<8 【技能实践】  1.(1)x-y==c (2)n<3&&flag==0  2.(1)r=n%m;改为r=m%n; (2)gbs=x∗y/n;改为gbs=x∗y/m; (3)gys=r;改为gys=m;  3.num=num∗2; d=num; printf("%d",d); t++; num=num-d; 第三节 for循环 【知识梳理】 一、for循环的格式 1.取代 for(表达式1;表达式2;表达式3)循环体 2.(1)表达式1 (2)表达式2 循环体 假(0) 结束循环 (3)表达式3 (4)(2) 3.循环变量赋初值 循环条件 循环变量增量 关系表达式或逻辑表达式 ; (1)选择项 ; (2)循环控制变量 (3)死循环 (4)循环控制变量 【巩固练习】  1.B 2.B 3.D  4.1 2 3 4 3 6 9 12  5.sum=9 【拓展练习】  1.结果为:a=2,b=8,c=46,ch=B  2.2 3 5 8 13  3.for(i=1;i<=n;i++) {p∗=i; s+=1/p; }  4.for(i=2;i<=n-1;i++) if(n%i==0) {flag=0; break; } 【技能实践】  1.(1)k=10 (2)d-t∗k  2.(1)for(i=1;i<10;i++)改为for(i=1;i<= 10;i++)  (2)s=s+h改为s=s+h+r;  (3)h=r/2改为h=r;  3.sum+a/b; printf("%.3f\t",a/b); r=b; b=a; a=x+a; 第四节 循环结构的嵌套 【知识梳理】 一、循环辅助语句 1.终止并跳出 结束循环 终止并跳出最近一层 2.本次循环 尚未执行 是否执行循环体 判断 􀅰81􀅰 单招零距离􀅰计算机专业综合􀅰下册

资源预览图

第一节 while循环-【单招零距离】计算机专业综合(下)
1
第一节 while循环-【单招零距离】计算机专业综合(下)
2
第一节 while循环-【单招零距离】计算机专业综合(下)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。