专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)

2025-10-09
| 36页
| 285人阅读
| 2人下载
精品

内容正文:

专题5: while循环与do…while循环 《编程语言基础—C语言》课程 专题复习讲练测 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 考纲要求 一 掌握while循环的格式、执行流程及其应用 掌握do……while循环的格式、执行流程及其应用 知识点梳理 二 知识点梳理 二 1、while循环 (1)一般形式: while(表达式) {语句序列; } (2)注意事项: ①循环必须在有限的次数内结束,否则会出现“死循环”,在程序中应避免出现死循环。 ②while循环执行的特点是先判断条件,后执行循环体,因此,循环循环次数可能为0。 ③while语句中的表达式可以为任何类型的表达式。 ④循环体中的语句可以是简单语句,也可以是复合语句。 知识点梳理 二 1、while循环 (3)执行过程: ①首先计算“表达式”的值,如果非0,循环条件为真,则进入第②步,开始一次循环周期;如果为假,则进入第③步。 ②执行“{}”内的“语句序列”,这些“语句序列”称为“循环体”。循环体执行完毕后,返回第①步,开始下一轮的循环条件测试。 ③结束循环,执行while循环后面的语句。 知识点梳理 二 1、while循环 (4)应用举例:求1+2+3+....+100,即 ①解题思路: 特点:这是一个累加的问题,需要先后将100个数累加,要重复进行100次加法运算。显然可以用循环结构来实现。重复执行循环体100次,每次加一个数。 规律:发现每次累加的数是有规律的,后一个数是前一个数加1。因此不需要每次使用scanf语句从键盘临时输入数据,只需在加完上一个数i后,使i加1就可以得到下一个数。 知识点梳理 二 1、while循环 (4)应用举例:求1+2+3+....+100,即 ②编写程序: #include<stdio.h> main () { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf(“sum=%d ”,sum); } 知识点梳理 二 1、while循环 (4)应用举例:求1+2+3+....+100,即 ③程序分析: 循环体如果包含一个以上的语句,应该用花括号括起来,作为复合语句出现。 不要忽略给i和sum赋初值,否则它们的值是不可预测的,结果显然不正确。 在循环体中应有使循环趋向于结束的语句。如本例中的“i++;”语句。如果无此语句,则i的值始终不改变,循环永远不结束。 #include<stdio.h> main () { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf(“sum=%d ”,sum); } 知识点梳理 二 2、do……while循环 (1)一般形式: do { 语句序列; }while(表达式); (2)特点: 先无条件执行循环体,后判断条件,至少执行一次循环体。 (3)流程图: 知识点梳理 二 2、do……while循环 (4)执行过程: ①执行循环体中的语句,开始一个循环周期。 ②计算表达式的值。如果表达式为非0,即循环条件为真,则转到第①步,开始下一个循环周期;如果表达式为0,即循环条件为假,则转到第③步。 ③结束do……while循环,转而执行do……while循环语句后的第1条语句。 知识点梳理 二 2、do……while循环 (5)应用举例:求1+2+3+....+100,即 #include <stdio.h> int main() { int i=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d ",sum); } 知识点梳理 二 2、do……while循环 #include < stdio . h> main( ) { char ch ; ch=getchar() ; do { putchar(ch) ; ch=getchar( ) ; } while(ch!='*'); getch( ); } //输入:ABC* #include < stdio . h > main( ) { char ch ; ch=getchar() ; while(ch!='*') { putchar(ch); ch=getchar( ); } getch( ); } //输入:ABC* 在一般情况下,用while语句和用do…while语句处理同一问题时,若二者的循环体部分是一样的,那么结果也一样。 知识点梳理 二 2、do……while循环 #include < stdio . h> main( ) { char ch ; ch=getchar() ; do { putchar(ch) ; ch=getchar( ) ; } while(ch!='*'); getch( ); } //输入:*ABC* #include < stdio . h > main( ) { char ch ; ch=getchar() ; while(ch!='*') { putchar(ch); ch=getchar( ); } getch( ); } //输入:*ABC* 无输出 如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。 知识点梳理 二 3、比较while循环与do……while循环 #include <stdio.h> main() { int i,sum=0; printf("please enter i,i=?"); scanf("%d",&i); while(i<=10) { sum=sum+i; i++; } printf("sum=%d ",sum); } 知识点梳理 二 3、比较while循环与do……while循环 #include <stdio.h> int main() { int i,sum=0; printf("please enter i,i=?"); scanf("%d",&i); do { sum=sum+i; i++; }while(i<=10); printf("sum=%d ",sum); } 真题练讲 三 【答案】3 1.(2008年湖南高考真题)程序分析题。 #include <stdio.h> main() { int a=12,b=0; do { b+=2;a-=2+b; }while (a>=0); } 程序中循环体的执行次数是___________。 真题练讲 三 【答案】a=-5 2.(2009年湖南高考真题)下面的程序运行的结果是________________。 #include "stdio.h" main() { int p,a,s; p=1; a=0; s=1; do { a=a+s*p; s=-s; p++; }while(p<=10); printf("a=%d",a); } 真题练讲 三 【答案】 a=12 y=34 3.(2012年湖南高考真题)阅读程序,写出运行结果:________________。 #include <stdio.h> main() { int a=8,y=0; do{ a+=2; y+=a; if(y>30) break; }while(a=10); printf("a=%d y=%d ",a,y); } 真题练讲 三 【答案】①(cx=getchar()) ②putchar(cx+32) ③per=cx 4.(2012年湖南高考真题)程序填空题。面程序接受键盘上的输入,直到按回车键为止,然后将输入的字符串输出,输出时如果原输入字符是英文大写字母则转成小写字母输出,如果是小写字母则转成大写字母输出,如果有连续的一个以上的空格时只输出一个空格。 #include<stdio.h> main() { char cx,pre='\0'; while(_______③_______!=' ') { if(cx!=' ') if(cx>='a'&&cx<='z') putchar(cx-32); else if(cx<'z'&&cx>='A') if(cx>=’A’&&cx<=’Z’) _______④______; else putchar(cx); else if(pre!=' ') putchar(cx); _______⑤_____; } } 真题练讲 三 【答案】36687 5.(2013年湖南高考真题)阅读程序,写出运行结果,当输入为125时,运行结果是_____________ #include <conio.h> #include <stdio.h> main() { int c; while((c=getchar())!=' ') switch(c-'2') { case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; } getch(); } 真题练讲 三 【答案】(1) L11 scanf("%d",&a); (2) L12 if(a==x) 6.(2015年湖南高考真题)程序改错题。产生一个0-9之间的随机整数,要求用户猜这个整数。用户输入一个整数,程序判断是否与所产生的随机数相等,由屏幕显式判断结果。如果猜得不对,再次提示输入,进行判断,直到猜出这个数为止。以下程序只允许修改两行。 真题练讲 三 【答案】 gcd=7 7.(2018年湖南高考真题)阅读程序,写出运行结果:_____________ #include <conio.h> #include <stdio.h> int main( ) { int a=14,b=35,c; if(a<b) c=a,a=b,b=c; c=a%b; while(c!=0) a=b,b=c,c=a%b; printf("gcd=%d ",b); getch(); } 真题练讲 三 【答案】0,1 8.(2019年湖南高考真题)阅读程序,写出运行结果:_____________ #include <conio.h> #include <stdio.h> main() {int i=0; do printf("%d,",i); while(i++); printf("%d ",i); getch(); } 限时练习 四 【答案】r=4 1.(2023年湖南高考真题)阅读程序,写出运行结果:_____________ #include <conio.h> #include <stdio.h> main( ){ int s=24, r=1; while(s) { if(!(s&0x01)) r++; else break; s>>=1; } printf("r=%d ",r); getch(); } 限时练习 四 【答案】num=3 2.(2022年湖南高考真题)阅读程序,写出运行结果:_____________ #include <conio.h> #include <stdio.h> int main( ) { unsigned int V=7; int num=0; while(V){ V &=(V-1); num++; } printf("num=%d",num); getch(); } 限时练习 四 【答案】0:0 1 2 3 4 5 6 7 8 9 3.(2021年湖南高考真题)阅读程序,写出运行结果:_____________ #include <stdio.h> main() { int i=0,j=0; do { printf("%d:",i); for(j=i;j<10;j++){ printf("%d ",j); } printf(" "); }while(++i<1);} 限时练习 四 【答案】x=5 4.(2025年湖南高考真题)阅读程序,写出运行结果:_____________ #include <stdio.h> int main( ) { int x=0,y=5; do{ x+=y; }while(!--y); printf("x=%d",x); } 限时练习 四 【答案】k=4 5.(2020年湖南一轮联考题)阅读程序,写出运行结果:_____________ #include <conio.h> #include <stdio.h> int main() { int k=0;char c='A'; do {switch(c++) {case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k+10;break; default:k=k/3; } k++; }while(c<'C'); printf("k=%d ",k); getch(); } 限时练习 四 【答案】1086 6.(2016年湖南一轮联考题)阅读程序,写出运行结果:_____________ #include <stdio.h> int main() { int n=12; while(n-->7) { printf("%d",--n); } } 限时练习 四 7.(2018年湖南二轮联考题)语句“while(! G);”中,循环体能执行的条件“! G”等价于 ( ) A.G==0 B.G!=1 C.G!=0 D.~G 【答案】A 限时练习 四 8.(2018年湖南二轮联考题)设有如下程序段“int k=8;while(k==‘8’){k--;}”,则下列描述正确的是 ( ) A.循环体语句“k--;”执行10次 B.循环体语句“k--;”执行无限次 C.循环体语句“k--;”一次也不执行 D.循环体语句“k--;”执行一次 【答案】C 限时练习 四 【答案】x=0,y=5,z=2 9.(2019年湖南二轮联考题)阅读程序,写出运行结果:_____________ #include <conio.h> #include <stdio.h> int main() { int x=0,y=0,z=0; do {switch(y++) {case 1:x++;break; case 2:x+=3;break; default:x%=2;continue;} z++; }while(y<5); printf("x=%d,y=%d,z=%d ",x,y,z); getch(); } 限时练习 四 【答案】3,6,8 10.(2016年湖南二轮联考题)阅读程序,若输入AAABBBCC<回车>,写出运行结果:_____________ #include <conio.h> #include <stdio.h> int main() { int a1=0,a2=0,a3=0; char ch; while((ch=getchar())!=' ') switch(ch) {case'A':a1++; case 'B':a2++; default:a3++;} printf("%d,%d,%d",a1,a2,a3); getch(); } 内容小结 五 内容小结 五 一、while循环 • 一般形式:while(条件表达式) { 循环体语句; }。 • 流程图:先判断条件表达式,若为真(非0),执行循环体,之后再次判断条件;若为假(0),退出循环。 • 执行过程:先判断条件,再决定是否执行循环体,若初始条件就不满足,循环体一次都不会执行。 • 应用举例:计算1到100的和,可通过while循环,初始值i = 1,sum = 0,只要i <= 100,就执行sum += i; i++;。 二、do...while循环 • 一般形式:do { 循环体语句; } while(条件表达式);(注意末尾有分号)。 • 流程图:先执行一次循环体,然后判断条件表达式,若为真,继续执行循环体;若为假,退出循环。 • 执行过程:先执行循环体,再判断条件,所以循环体至少会执行一次。 • 应用举例:让用户输入密码,直到输入正确为止,可使用do...while循环,先输入密码(执行循环体),再判断是否正确,若不正确继续循环。 三、两种循环的对比 • 执行顺序:while先判断后执行,do...while先执行后判断。 • 循环体执行次数:while可能0次,do...while至少1次。 • 使用场景:当循环体至少要执行一次时,适合用do...while;若循环体可能一次都不执行,用while更合适。 当许多人在一条路上徘徊不前时,他们不得不让开一条大路,让那些珍惜时间的人赶到他们的前面去。 $

资源预览图

专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
1
专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
2
专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
3
专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
4
专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
5
专题5:while循环与do……while循环(课件)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。