模块三 循环程序设计习题及答案
一、填空题
1、当在数据处理中要重复执行相同的操作时,宜采用 程序结构来实现。
2、循环的3要素是 、 、 。
3、在循环语句体中包含另一个循环语句的用法称为 。
4、执行循环语句体中的break语句后将使用包含它的循环语句 。
5、要结束当前正在执行循环体语句而直接进入下一循环周期,需要执行 语句。
6、在for语句中表达式允许省略,但 不能少,语句for( ; ;) ;构成的是 循环。
7、在for语句中,省略表达式2时,则循环为 循环。
8、执行语句for(i=1;i++<4; );后变量i的值是 。
9、要使用循环程序提前结束本次循环周期并开始下一个循环周期,应在循环体内有条件使用 语句。
欢迎下载,精选文档
可编辑
10、在每次循环周期均要执行一次的语句,称为 。
11、for语句括号内的3个表达式的作用分别是 、 和循环控制变量的更新。
二、选择题
1、若k为整形变量,则while循环共循环( k=5;
while(k>=0) k-1;
A、无限循环 B、6次 C、5次 D、4次
2、与while( ! n) ; 中表达式!dn等价的是( A、dn>=0 B 、dn!=0
C、dn == 0 D、dn != 1
3、以下程序段,while循环执行的次数是( 欢迎下载,精选文档
。
)。
)
)
可编辑
int k=0;
while( k == 1) k++;
A、无限次 B、有语法错,不能执行
C、一次也不执行 D、执行1次
4、在C语言中,当do while语句中的条件为( A、0 B、1
C、TRUE D、非0
5、下面程序段的输出结果是( ) do
{ b-=a;
a++;
}while(b--<0);
A、10,-1 B、2,8
欢迎下载,精选文档
)时,结束该循环。
可编辑
C、9,0 D、4,-3
6、以下描述正确的是( )
A、由于do while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do while循环由do开始,用while结束,在while(表达式)后面不能写分号
C、在do while循环体中,一定要有能使while后面匠值变为零的操作
D、do while循环中,根据情况可以省略while
7、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。
s=c;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是( )
A、s=a+b; B、s=a+c; C、s=s+c; D、s=b+c;
8、假定a,b,c,d均已定义为整型变量,且a、c均已赋值,a大于0,c大于0,则与程序段for(d=a,b=1;b<=c;b++) d--;功能等价的语句是( )
欢迎下载,精选文档
可编辑
A、d=a+b; B、d=a+c; C、d=a-b; D、
欢迎下载,精选文档
可编辑
d=a-c
9、下列关于for循环的说法正确的是( )
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式2
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
10、下列语句中能跳出循环的是( )
A、for(y=0,x=1;x>++y;x=i++) i=x;
B、for( ; ;x++)
C、while(1) {x++; }
D、for(i=10; ;i--) sum+=i;
三、程序填空题
1、等比数列的第一项a=1,公比q=2,下列程序是求满足前n项和小于100的最大n。
欢迎下载,精选文档
可编辑
main()
{ int a,q,n,sum=0;
a=1;q=2;n=0;
do
{ ;
n++;
a*=q;
}while( );
;
printf(“%d\\n”,n);
}
2、计算1-3+5-7+…-99+101的值。
#include\"stdio.h\"
欢迎下载,精选文档
可编辑
main()
{
欢迎下载,精选文档
可编辑
int i;t=1,s=0;
for(i=1;i<=101;i+=2)
{ ;
;
}
printf(\"1-3+5+...-99+101=%d\
}
3、输出100以内个位数为6且能被3整除的数。
#include\"stdio.h\"
main()
{
int i,j;
for(i=0; ;i++)
欢迎下载,精选文档
可编辑
{ j=i*10+6;
if( )
printf(\"%d \ );
}
}
四、程序运行结果
1、#include\"stdio.h\"
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20) break;
欢迎下载,精选文档
可编辑
if(b%3==1)
{
b+=3;
欢迎下载,精选文档
可编辑
continue;
}
b-=5;
}
printf(\"%d\\n\
}
程序运行结果:
2、#include\"stdio.h\"
main()
{
int i;
for(i=1;i<=5;i++)
switch(i%5)
欢迎下载,精选文档
可编辑
{
case 0:printf(\"*\");break;
case 1:printf(\"#\");break;
case 2:printf(\"&\");break;
default:printf(\"\\n\");
}
}
程序运行结果:
3、#include\"stdio.h\"
main()
{
int i,x;
for(i=1,x=1;i<=50;i++)
欢迎下载,精选文档
可编辑
{
if(x>=10) break;
if(x%2==1)
欢迎下载,精选文档
可编辑
{
x+=5;
continue;
}
x=3;
}
printf(\"x=%d,i=%d\
}
程序运行结果:
4、#include\"stdio.h\"
main()
{
int i , j ;
欢迎下载,精选文档
可编辑
for(i=4;i>=1;i--)
{
printf(\"*\");
for(j=1;j<=4-i;j++)
printf(\"*\");
printf(\"\\n\");
}
}
程序运行结果:
五、编程题
1、 用C语言编程实现任意输入一个十进制数,将其转换为二进制数并输出。
欢迎下载,精选文档
可编辑
2、输入n的值,编程计算并输出 s(n)=1*1+2*2+3*3+……+n*n
模块三 循环程序设计答案
一、填空题
1. 循环
2. 循环条件 循环体 循环控制变量
3. 循环嵌套(嵌套循环)
4. 提前结束包含它的循环语句的执行
5. continue
6. 分号 无限
7. 无限
8. 5
9. continue
10. 循环体
欢迎下载,精选文档
可编辑
11. 循环变量赋初值 循环测试条件
二、填空题
1. A
2. C
3. C
4. A
5. B
6. C
7. C
8. D
9. D
10. A
三、程序填空题
欢迎下载,精选文档
可编辑
1. sum+=a sum<100 n- -
欢迎下载,精选文档
可编辑
2. s+i*t t=-t
3. i<10 j%3==0 j
四、程序阅读
1. 8
2. $&
*
3. x=3,i=51
4. *
**
***
****
五、编写程序
1.
欢迎下载,精选文档
可编辑
#include\"stdio.h\"
main()
{
int s,t=1;
long e=0;
printf(\"请输入一个十进制数:\\n\");
scanf(\"%d\
while(s!=0)
{
e=e+(s%2)*t;
s=s/2;
t=t*10;
}
欢迎下载,精选文档
可编辑
printf(\"该数的二进制数为%d\\n\
}
2.
欢迎下载,精选文档
可编辑
#include\"stdio.h\"
main()
{
int i,n,s=0;
printf(\"请输入n的值:\\n\");
scanf(\"%d\
for(i=1;i<=n;i++)
s+=i*i;
printf(\"%d\
}
.
欢迎下载,精选文档
因篇幅问题不能全部显示,请点此查看更多更全内容