循环程序设计
一、 选择题
1 程序段如下:则以下说法中正确的是:。
int k=5;
do{
k--;
}while(k<=0);
A. 循环执行 5 B. 循环是无限循环
C. 循环体语句一次也不执行 D. 循环体语句执行一次
2 i x 都是 int 类型,则 for 循环语句。
for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x);
A. 最多执行 10 B. 最多执行 9
C. 是无限循环 D. 循环体一次也不执行
3 下述 for 循环语句。
int i,k;
for(i=0,k=-1;k=1;i++,k++) printf("* * * *");
A. 判断循环结束的条件非法 B. 是无限循环
C. 只循环一次 D. 一次也不循环
4 程序段如下:则以下说法中正确的是:。
int k=-20;
while(k=0) k=k+1;
A. while 循环执行 20 B. 循环是无限循环
C. 循环体语句一次也不执行 D. 循环体语句执行一次
5 下列程序段执行后 k 值为。
int k=0,i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
k=k+1 ;
A. 15 B. 3 C. 5 D. 8
6 程序段如下:则以下说法中不正确的是:。
#include <stdio.h>
int main()
{
int k=2;
while(k<7)
{
while语句的执行流程
if(k%2) {k=k+3; printf( k=%d\n,k);continue;}
k=k+1;
printf( k=%d\n,k);
}
return 0;
}
A. k=k+3; 执行一次 B. k=k+1; 执行 2
C. 执行后 k 值为 7 D. 循环体只执行一次
二、 读程序写结果
1 #include <stdio.h>
int main()
{ int num=0;
while(num<=2)
{ num++; printf("%d\n",num);}
return 0;
}
1
2
3
2 #include <stdio.h>
int main()
{ int i=0,s=0;
do
{ s+=i*2+1; printf("i=%d,s=%d\n",i,s); i++;}
while(s< 10);
return 0;
}
3 #include <stdio.h>
int main()
{ int i,m=1;
for(i=5;i>=1;i--)
{
m=(m+1)*2;
printf("m=%d\n",m);
}
return 0;
}
4 指出下面三个程序的功能,当输入为: "quert?" 时,它们的执行结果是什么?
#include <stdio.h>
int main()
{ char c;
c=getchar();
while (c!='?')
{ putchar(c);c=getchar();}
return 0;
}
quert
#include <stdio.h>
int main()
{ char c;
while ((c=getchar())!='?') putchar(++c);
return 0;
}
rvfsu
5 #include <stdio.h>
int main()
{ int i;
for(i=1;i<=5;i++)
{ if(i%2)
putchar( <);
else
continue;
putchar( >);
}
putchar( #);
return 0;
}
<><><>#
6 #include <stdio.h>
int main()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{ if(b>10) break;
if(b%3==1)
{ b+=3; continue;}
}
printf("a=%d\n",a);
return 0;
}
a=5
7 #include <stdio.h>
int main()
{int i=1;
while (i<=15)
if (++i%3!=2) continue;
else printf("%d ",i);
printf("\n");
return 0;
}
2 5 8 11 14
8 #include <stdio.h>
int main()
{ int i,j;
for(i=0;i<=3;i++)
{ for(j=0;j<=i;j++)
printf("(%d,%d),",i,j);
printf("\n");
}
return 0;
}
9 #include <stdio.h>
int main()
{int i,j,k;
char space=' ';
for (i=0;i<=5;i++)
{ for (j=1;j<=i;j++)printf("%c",space);
for (k=0;k<=5;k++)printf("%c",'*');
printf("\n");
}
return 0;
}
三、 填空题
1 break 语句只能用于语句和语句中。
2 计算 2+4+6+8+...+98+100
#include <stdio.h>
int main()
{
int i, (1) ;
for(i=2;i<=100; (2) )
s+=i;
return 0;
}
3 Sna+aa+aaa+...+aa...a 之值,其中 a 是一个数字。例如 2+ 22 +222+2222
(此时 n4),n 由键盘输入。
#include <stdio.h>
int main()
{ int a,n,count=1,Sn=0,Tn=0;
printf(" 请输入 a n 的值:\n");
scanf("%d,%d",&a,&n);
while (count<=(1))
{ Tn= (2);
Sn=(3);
a=a*10;
(4);
}
printf("a+aa+aaa+...=%d\n",Sn);
return 0;
}
4 一球从 100 米高度自由落下,每次落地后反跳回原来高度的一半,再落下,求它在
第十次落地时,共经过多少米?第十次反弹多高?
#include <stdio.h>
int main()
{float Sn=100.0,hn=Sn/2;
int n;
for (n=2;n<= (1);n++)
{ Sn= (2) ;hn= (3) ;}
printf(" 10次落地时共经过 %f\n",Sn);
printf(" 10次反弹 %f\n",hn);
return 0;
}
5 打印出以下图形

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。