第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的循环控制条件严格
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)以下程序的输出结果是____。
#include <stdio.h>
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 <stdio.h>
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 <stdio.h>
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;
            case 0:
            case 5: s+=2; break;
        }
    }
    printf("s=%d\n",s);
}
(2)以下程序的运行结果是      。   
#include <stdio.h>
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 <stdio.h>
main()
{
    int i,j;
    for (i=4;i>=1;i--)
    {
        printf("*");
        for (j=1;j<=4-i;j++)
            printf("*");
        printf("\n");
    }
}
(4)以下程序的运行结果是____。
#include <stdio.h>
main()
{
    int i,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 <stdio.h>
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 <stdio.h>
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");
    }
}
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的值。
while语句简单例子
(7)编写一个程序,求满足如下条件的最大的n
(8)某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又吃了一只;
第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。编写一个程序,采用迭代法问某人共摘了多少只桃子。

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