循环.docx
- 文档编号:5166549
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:9
- 大小:18.46KB
循环.docx
《循环.docx》由会员分享,可在线阅读,更多相关《循环.docx(9页珍藏版)》请在冰豆网上搜索。
循环
知识聚焦
5.1goto语句――无条件转移语句(不提倡使用)
例子:
求1~100所有数的累加和
main()
{inti,sum=0;
i=1;
loop:
if(i<=100)
{sum=sum+i;
i++;
gotoloop;}
printf(“%d”,sum);}
5.2while语句(当型循环)
while(表达式)
{
语句;
}
main()
{inti;
sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i++;}
printf(“%d“,sum);}
5.3do—while循环(直到型循环)
do{语句}
while(表达式);
main()
{inti,sum=0;
i=1;
do{sum=sum+i;
i++;
}
while(i<=100);
printf(“%d”,sum);}
5.4for语句(既定循环语句)
for(表达式1;表达式2;表达式3)
{语句序列;}
例如:
for(i=0;i<=100;i++)
sum=sum+1;
执行过程:
(1)先执行表达式1;
(2)计算表达式2,为“真”则执行(3),为“假”则执行(6);
(3)执行循环体;
(4)计算表达式3;
(5)返回
(2);
(6)结束循环。
注意:
(1)三个表达式均可省略,但分号不可省。
(表达式2一般不省去,否则为死循环)。
(2)表达式1和表达式3可以是逗号表达式。
例如:
for(i=1,j=100;i<=j;i++,j--)
k=i+j;
(3)表达式2可为关系表达式或逻辑表达式,也可为数值或字符.
例如:
求n个自然数之和.
main()
{inti,sum;
intn;
sum=0;
printf(“n=“);
scanf(“%d“,&n);
for(i=1;i<=n;i++)
sum+=i;
printf(“sum=%d\n”,sum);
}
输入n=100
输出:
sum=5050
5.5for循环嵌套(一个循环体内又包含另一个完整的循环结构)
例如:
打印九九乘法表
#include“stdio.h”
main()
{
inti,j;
for(i=1;i<=9;i++)
{printf(“\n”);
for(j=1;j<=i;j++)
printf(“%d%d=%d”,i,j,i*j);}
}
5.6三种循环可以互相嵌套
5.7循环辅助控制
1.break语句
可用于循环体中,使程序从整个循环中退出
2.continue语句
可用于循环体中,使程序从本次循环中退出,继续下一次循环.
例判素数程序
#include“math.h”
main()
{intnum,j,k;
scanf(“%d”,&num);
k=sqrt(num);
j=2;leap=1;
while(j<=k)
{if(num%j==0)
{leap=0;break;}
elsej++;}
if(leap)printf(“%dissushu!
\n”,num);
elseprintf(“%disnotsushu!
\n”,num);
}
Continue语句示例
main()
{inti;
for(i=0;i<10;i++)
{if(i%2==0)
continue;
else
printf(“%4d”,i);
}
}
结果:
13579
习题
1.设x和y均为int型变量,则执行下面的循环后,y值为:
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1)
{x+=5;continue;}
x-=3;
}
A)2B)4C)6D)8
2.假定a和b为int型变量,则执行以下语句后b的值为:
a=1;b=10;
do
{b-=a;a++;}
while(b--<0);
A)9B)-2C)-1D)8
3.设j为int型变量,则下面for循环语句的执行结果是:
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
A)6B)74C)8D)9
4.有以下程序
main()
{inti,j;
for(j=10;j<11;j++)
{for(i=9;i<=j-1;i++)printf("%d",j);
}
}
输出结果是:
A)11B)10C)9D)1011
5.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___,i值___,j的值___。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
6.当执行以下程序段时:
A)循环体将执行一次
B)循环体将执行两次
C)循环体将执行无限次
D)系统将提示有语法错误
x=-1;
do{x=x*x;}while(!
x);
7.执行以下程序后,输出的结果是
A)-1B)1 C)8 D)0
main()
{inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
8.在下列选项中,没有构成死循环的程序段是:
A)inti=100
while
(1)
{i=i%100+1;
if(i>100)break;
}
B)for(;;);
C)intk=1000;
do{++k;}while(k>=1000);
D)ints=36;
while(s);--s;
9.执行语句:
for(i=1;i++<4;)后;变量i的值是
A)3B)4C)5D)不定
10.以下程序的输出结果是
A)x=4B)x=8C)x=6D)x=12
main()
{inti,j,x=0;
for(i=0,i<2;i++)
{x++;
for(j=0;j<3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);
}
11.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为
A)m=3B)m=2C)m=1D)m=0
main()
{intm,n;
printf{“Enterm,n:
”};scanf(“%d%d”,&m,&n);
while(m!
=n)
{while(m>n)m-=n;
while(n>m)n-=m;
}
printf(“m=%d\n”,m);
}
12.以下循环体的执行次数是:
,运行结果是:
A)3B)2C)1D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);
}
13.以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
14以下程序段的执行结果是
A)a=12y=12B)a=12y=12
a=14y=16a=16y=28
a=16y=20
a=18y=24
C)a=12y=12D)a=12y=12
a=14y=26
a=14y=44
inta,y;
a=10;y=0;
do
{a+=2;y+=a;
printf("a=%dy=%d\n",a,y);
if(y>20)break;}
while(a==14);
15.下面程序的功能是:
计算1到10之间奇数之和及偶数之和,请填空。
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;[?
];i+=2)
{a+=i;
[?
];
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
16.下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请填空。
#include
main()
{inti,j;
for(i=0;[?
];i++)
{j=i*10+6;
if([?
])continue;
printf("%d",j);
}
}
17.有如下程序
main()
{inti,sum;
for(i=1;i<=3;sum++)sum+=i;
printf(“%d\n”,sum);
}
该程序的执行结果是
A)6B)3C)死循环D)0
18.有如下程序
main()
{intx=23;
do
{printf(“%d”,x--);}
while(!
x);
}
该程序的执行结果是
A)22B)23C)不输出任何内容D)陷入死循环
19.有如下程序
main()
{intn=9;
while(n>6){n--;printf(“%d”,n);}
}
该程序段的输出结果是
A)987B)876C)8765D)9876
20.要使以下程序段输出10个整数,请填入一个整数。
for(i=0;i<=[?
];printf(“%d\n”,i+=2));
21.若输入字符串:
abcde<回车>,则以下while循环体将执行[?
]次。
while((ch=getchar())==’e’)printf(“*”);
22有以下程序段
intk=0
while(k==1)k++;
while循环执行的次数是
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
23以下程序执行后sum的值是:
A)15B)14C)不确定D)0
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
24有以下程序段
intx=3
do
{printf("%d",x-=2);}
while(!
(--x));
其输出结果是
A)1B)30C)1-2D)死循环
25t为int类型,进人下面的循环之前,t的值为0
while(t=l)
{……}
则以下叙述中正确的是
A)循环控制表达式的值为0B)循环控制表达式的值为1
C)循环控制表达式不合法D)以上说法都不对
26.以下程序的输出结果是
main()
{intnum=0;
while(num<=2)
{num++;printf("%d\n",num);
}}
A}1B}1C}1D}l
222
33
4
27以下程序的输出结果是:
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);
}
A)101B)6C)5D)4
28.以下程序运行后的输出结果是【?
】。
main()
{inti=10,j=0;
do
{j=j+i;i--;}
while(i>2);
printf("%d\n",j);
}
29.设有以下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为【?
】。
30以下程序中,while循环的循环次数是:
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A)1B)10
C)6D)死循环,不能确定次数
31以下程序的输出结果是
#include
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;
}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21B)32C)33D)11
32以下程序的输出结果是【?
】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环
![提示](https://static.bdocx.com/images/bang_tan.gif)