C语言循环结构练习题

C语言循环结构练习题
C语言循环结构练习题

第5章循环结构程序设计

5.1 基本知识点

while语句的使用格式和注意事项

do-while语句的使用格式和注意事项

for语句的使用格式和注意事项

break和continue语句在循环语句中的应用

循环结构的嵌套

使用goto语句实现循环结构

穷举法程序设计方法

迭代程序设计方法

5.2 练习题5

1. 单项选择题

(1)语句while (!e);中的条件!e等价于。

A. e==0

B. e!=1

C. e!=0

D. ~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的循环控制条件严格

第5章循环结构程序设计35

C. do-while允许从外部转到循环体内

D. do-while的循环体不能是复合语句

(5)以下程序段。

int x=-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)以下程序的输出结果是____。

36 第Ⅰ部分C程序设计教程学习指导

#include

main()

{

int i;

for (i=4;i<=10;i++)

{

if (i%3==0) continue;

printf("%d",i);

}

}

A. 45

B. 457810

C. 69

D. 678910

(9)以下程序的输出结果是____。

#include

main()

{

int num=0;

while (num<=2)

{

num++;

printf("%d\n",num);

}

}

A. 1

B. 1

C. 1

D. 1

2 2 2

3 3

4

2. 填空题

(1)以下程序的运行结果是____。

#include

main()

{

int s=0,k;

for (k=7;k>=0;k--)

{

switch(k)

{

case 1:

case 4:

case 7: s++; break;

case 2:

case 3:

case 6: break;

第5章循环结构程序设计37

case 0:

case 5: s+=2; break;

}

}

printf("s=%d\n",s);

}

(2)以下程序的运行结果是。

#include

main()

{

int i=1,s=3;

do

{

s+=i++;

if (s%7==0)

continue;

else

++i;

} while (s<15);

printf("%d\n",i);

}

(3)以下程序的运行结果是____。

#include

main()

{

int i,j;

for (i=4;i>=1;i--)

{

printf("*");

for (j=1;j<=4-i;j++)

printf("*");

printf("\n");

}

}

(4)以下程序的运行结果是____。

#include

main()

{

int i,j,k;

for (i=1;i<=6;i++)

{

for (j=1;j<=20-2*i;j++)

printf(" ");

38 第Ⅰ部分C程序设计教程学习指导

for (k=1;k<=i;k++)

printf("%4d",i);

printf("\n");

}

}

(5)以下程序的运行结果是____。

#include

main()

{

int i,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()

{

int i,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");

}

第5章 循环结构程序设计 39

} 3. 编程题

(1)编写一个程序,求100

199********-++-+- 之值。 (2)编写一个程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。

(3)编写一个程序,用户输入一个正整数,把它的各位数字前后颠倒一下,并输出颠倒后的结果。

(4)编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。

(5)编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12。

(6)编写一个程序,求e 的值。

!

1!21!111n e ++++≈ (7)编写一个程序,求满足如下条件的最大的n :

10003212222≤++++n

(8)某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。编写一个程序,采用迭代法问某人共摘了多少只桃子。

相关主题
相关文档
最新文档