C语言循环结构练习题.docx
《C语言循环结构练习题.docx》由会员分享,可在线阅读,更多相关《C语言循环结构练习题.docx(17页珍藏版)》请在冰点文库上搜索。
C语言循环结构练习题
第5章循环结构程序设计
5.1基本知识点
Øwhile语句的使用格式和注意事项
Ødo-while语句的使用格式和注意事项
Øfor语句的使用格式和注意事项
Øbreak和continue语句在循环语句中的应用
Ø循环结构的嵌套
Ø使用goto语句实现循环结构
Ø穷举法程序设计方法
Ø迭代程序设计方法
5.2练习题5
1.单项选择题
(1)语句while(!
e);中的条件!
e等价于。
A.e==0B.e!
=1C.e!
=0D.~e
(2)下面有关for循环的正确描述是。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来
(3)C语言中。
A.不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(4)C语言中while和do-while循环的主要区别是。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
(5)以下程序段。
intx=-1;
do
{
x=x*x;
}
while(!
x);
A.是死循环B.循环执行二次
C.循环执行一次D.有语法错误
(6)下列语句段中不是死循环的是____。
A.i=100;
while
(1)
{
i=i%100+1;
if(i==20)break;
}
B.for(i=1;;i++)
sum=sum+1;
C.k=0;
do
{
++k;
}while(k<=0);
D.s=3379;
while(s++%2+3%2)
s++;
(7)与以下程序段等价的是____。
while(a)
{
if(b)continue;
c;
}
A.while(a)B.while(c)
{if(!
b)c;}{if(!
b)break;c;}
C.while(c)D.while(a)
{if(b)c;}{if(b)break;c;}
(8)以下程序的输出结果是____。
#include
main()
{
inti;
for(i=4;i<=10;i++)
{
if(i%3==0)continue;
printf("%d",i);
}
}
A.45B.457810C.69D.678910
(9)以下程序的输出结果是____。
#include
main()
{
intnum=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
A.1B.1C.1D.1
222
33
4
2.填空题
(1)以下程序的运行结果是____。
#include
main()
{
ints=0,k;
for(k=7;k>=0;k--)
{
switch(k)
{
case1:
case4:
case7:
s++;break;
case2:
case3:
case6:
break;
case0:
case5:
s+=2;break;
}
}
printf("s=%d\n",s);
}
(2)以下程序的运行结果是。
#include
main()
{
inti=1,s=3;
do
{
s+=i++;
if(s%7==0)
continue;
else
++i;
}while(s<15);
printf("%d\n",i);
}
(3)以下程序的运行结果是____。
#include
main()
{
inti,j;
for(i=4;i>=1;i--)
{
printf("*");
for(j=1;j<=4-i;j++)
printf("*");
printf("\n");
}
}
(4)以下程序的运行结果是____。
#include
main()
{
inti,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++)
printf("");
for(k=1;k<=i;k++)
printf("%4d",i);
printf("\n");
}
}
(5)以下程序的运行结果是____。
#include
main()
{
inti,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-3*i;j++)
printf("");
for(k=1;k<=i;k++)
printf("%3d",k);
for(k=i-1;k>0;k--)
printf("%3d",k);
printf("\n");
}
}
(6)以下程序的运行结果是____。
#include
main()
{
inti,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<=20-3*i;j++)
printf("");
for(k=1;k<=2*i-1;k++)
printf("%3s","*");
printf("\n");
}
for(i=3;i>0;i--)
{
for(j=1;j<=20-3*i;j++)
printf("");
for(k=1;k<=2*i-1;k++)
printf("%3s","*");
printf("\n");
}
}
3.编程题
(1)编写一个程序,求
之值。
(2)编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
(3)编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。
(4)编写一个程序,求出200到300之间的数,且满足条件:
它们三个数字之积为42,三个数字之和为12。
(5)编写一个程序,求出满足下列条件的四位数:
该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12。
(6)编写一个程序,求e的值。
(7)编写一个程序,求满足如下条件的最大的n:
(8)某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。
编写一个程序,采用迭代法问某人共摘了多少只桃子。
第5章循环结构程序设计
练习题
1.单项选择题
(1)语句while(!
e);中的条件!
e等价于A。
A.e==0B.e!
=1C.e!
=0D.~e
(2)下面有关for循环的正确描述是D。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判定表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来
(3)C语言中D。
A.不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环
(4)C语言中while和do-while循环的主要区别是A。
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
(5)以下程序段C。
intx=-1;
do
{
x=x*x;
}
while(!
x);
A.是死循环B.循环执行二次
C.循环执行一次D.有语法错误
(6)下列语句段中不是死循环的是__C__。
A.i=100;
while
(1)
{
i=i%100+1;
if(i==20)break;
}
B.for(i=1;;i++)
sum=sum+1;
C.k=0;
do
{
++k;
}while(k<=0);
D.s=3379;
while(s++%2+3%2)
s++;
(7)与以下程序段等价的是__A__。
while(a)
{
if(b)continue;
c;
}
A.while(a)B.while(c)
{if(!
b)c;}{if(!
b)break;c;}
C.while(c)D.while(a)
{if(b)c;}{if(b)break;c;}
(8)以下程序的输出结果是_B___。
#include
main()
{
inti;
for(i=4;i<=10;i++)
{
if(i%3==0)continue;
COUT<
}
}
A.45B.457810C.69D.678910
(9)以下程序的输出结果是__C__。
#include
main()
{
intnum=0;
while(num<=2)
{
num++;
cout<}
}
A.1B.1C.1D.1
222
33
4
2.填空题
(1)以下程序的运行结果是__S=7__。
#include
main()
{
ints=0,k;
for(k=7;k>=0;k--)
{
switch(k)
{
case1:
case4:
case7:
s++;break;
case2:
case3:
case6:
break;
case0:
case5:
s+=2;break;
}
}
cout<
}
(2)以下程序的运行结果是i=8。
#include
main()
{
inti=1,s=3;
do
{
s+=i++;
if(s%7==0)
continue;
else
++i;
}while(s<15);
Cout<
}
(3)以下程序的运行结果是____。
#include
main()
{
inti,j;
for(i=4;i>=1;i--)
{
cout<<"*";
for(j=1;j<=4-i;j++)
cout<<"*";
cout<<"\n";
}
}
输出结果:
*
**
***
****
(4)以下程序的运行结果是____。
#include
main()
{
inti,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++)
cout<<"";
for(k=1;k<=i;k++)
cout<
cout<}
}
输出结果:
1
22
333
4444
55555
666666
(5)以下程序的运行结果是____。
#include
main()
{
inti,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-3*i;j++)
cout<<"";
for(k=1;k<=i;k++)
cout<for(k=i-1;k>0;k--)
cout<cout<}
}
输出结果:
1
121
12321
1234321
123454321
(6)以下程序的运行结果是____。
#include
main()
{
inti,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<=20-3*i;j++)
cout<<"";
for(k=1;k<=2*i-1;k++)
cout<<"*";
cout<}
for(i=3;i>0;i--)
{
for(j=1;j<=20-3*i;j++)
cout<<"";
for(k=1;k<=2*i-1;k++)
cout<<"*";
cout<}
}
输出结果:
*
***
*****
*******
*****
***
*