C语言第五章 循环结构程序设计习题(2)

简介: C语言第五章 循环结构程序设计习题(2)

 目录

3.阅读程序题。

(20)文字

(20)代码

(20)运行结果

4.完善程序题。

(5)文字

(5)代码

(5)运行结果

 

(6)文字描述

(6)代码

(6)运行结果

(8)文字描述

(8)代码

(8)运行结果

(9)文字描述  

(9)代码

(9)运行结果

5.编程题

(1)文字描述

(1)代码

(1)运行结果

(2)文字描述

(2)代码

(2)运行结果

(3)文字描述  

(3)代码

(3)运行结果

(4)文字描述  

(4)代码

(4)运行结果

(5)文字描述  

(5)代码

(5)运行结果

流程图汇总


3.阅读程序题。

(20)文字

    1. 定义两个整形变量n,i,给n赋值为0。
    2. for语句(i=0;i<3;i++),
    3. switch语句(n++)
    4. case 0,1,2,条件为空
    5. case 3:输出两个单位长度n后,n++.
    6. 返回2,不满足结束。

    (20)代码

    int main()
    {
        int n = 0, i;
        for(i=0;i<3;i++)
            switch(n++)
        {
            case 0:
            case 1:
            case 2:
            case 3:printf("%2d", n++);
        }
        return 0;
    }

    image.gif

    (20)运行结果

    image.gif编辑

    4.完善程序题。

    (5)文字

      1. 定义长整型变量n,i,k,j,p,sum。
      2. n=2;
      3. 判断n是否小于等于10,满足执行4,不满足结束;
      4. 把三个n的乘积赋值给k;
      5. i=1;
      6. 判断i是否小于k除以2,满足执行7,不满足执行16.
      7. j=i;sum=0;
      8. 判断sum是否小于k,满足执行9,不满足执行i+=2后,返回6。
      9. sum+=j;
      10. 判断sum是否等于k,满足执行11,不满足执行j+=2后,返回8.
      11. 输出n*n*n=sum=.
      12. p=i;
      13. 判断p是否小于j-2;满足执行14,不满足执行j+=2后,返回8。
      14. 输出‘p+',输出p的值。
      15. 结束10这个循环,执行j+=2后,返回8.
      16. 判断i是否大于等于k/2,满足输出回车换行error!,不满足执行n++后,返回3。

      (5)代码

      int main()
      {
          long n, i, k, j, p, sum;
          for (n = 2; n <= 10; n++)
          {
              k = n * n * n;
              for (i = 1; i < k / 2; i += 2)
              {
                  for (j = i, sum = 0;sum<k; j += 2)
                      sum += j;
                  if (sum == k);
                  {
                      printf("\n%ld*%ld*%ld=%ld", n, n, n, sum);
                      for (p = i; p <j-2 ; p += 2)printf("%ld+", p);
                      printf("%ld", p);
                      break;
                  }
              }
              if (i >= k / 2)printf("\n error");
          }
          return 0;
      }

      image.gif

      (5)运行结果

      image.gif编辑

      (6)文字描述

      1、声明长整型m,n,k,s,flag并把0的值赋值给flag;

      2、输出input k;

      3、输入k的值;

      4、把k的值赋值给n;

      5、把n的值赋值给m;

      6、把表达式的值赋值给s;

      7、判断s乘以s是否等于1,是进行下一步,否则进行第9步;

      8、把1的值赋值给flag;

      9、m自减1;

      10、判断m是否大于0和是否不等于flag,是返回第6步,否则进行下一步;

      11、判断m是否等于0,是进行n--,否进行第12步;

      12、判断n是否大于0和不等于flag,是进行下一步,否则返回第5步;

      13、输出m和n的值,程序结束。

      (6)代码

      int main()
      {
          long m, n, k, s, flag = 0;
          printf("input k:");
          scanf_s("%ld", &k);
          n = k;
          do
          {
              m = n;
              do
              {
                  s = n * (n - m) - m * m;
                  if (s * s == 1)flag = 1;
                  else m--;
              } while (m > 0 && !flag);
              if (m == 0)n--;
          } while (n > 0 && !flag);
          printf("m=%ld,n=%ld", m, n);
          return 0;
      }

      image.gif

      (6)运行结果

      image.gif编辑

      (8)文字描述

        1. 声明整数变量i,j,line,并把0的值赋值给line,声明长整型n;
        2. 输出普通字符Please enter n:;
        3. 输入n的值;
        4. 定义while循环,判断n是否小于等于1,是进行下一步,否则进行第7步;
        5. 输出普通字符"Enter error,enter again."
        6. 再输入n的值;
        7. 定义for循环,把2的值赋值给i,
        8. 判断i是否小于等于n,是进行下一步,否则进行第17步;
        9. 定义for循环,把2的值赋值给j;
        10. 判断j是否小于i,是进行下一步,否则进行第8步;
        11. 判断i取余j是否等于0,是进行第8步,否则进行下一步;
        12. 判断j是否等于i和i取余10是否不等于9,是进行下一步,否则进行第8步;
        13. 输出i的值;
        14. line自加1;
        15. 判断line是否等于10,是进行下一步,否则进行第8步;
        16. 输出”\n”,并且把0的值赋值给line;
        17. 程序结束。

        (8)代码

        int main()
        {
            int i, j, line = 0; long int n;
            printf("Please enter n:");
            scanf_s("%ld", &n);
            while (n <= 1)
            {
                printf("Enter error,enter again.");
                scanf_s("%ld", &n);
            }
            for (i = 2; i <= n; i++)
            {
                for (j = 2; j < i; j++)
                    if (i % j == 0)break;
                if (j == i && i % 10 != 9)
                {
                    printf("%d\t", i);
                    line++;
                    if (line == 10) { printf("\n"); line = 0; }
                }
            }
            return 0;
        }

        image.gif

        (8)运行结果

        image.gif编辑

        (9)文字描述  

          1. 声明整数变量i,j,n,声明长整型变量temp和sum,并把0的值赋值给sum;
          2. 输出普通字符Please input terms number.;
          3. 输入n的值;
          4. 判断n是否小于1,或者n是否大于10,是进行下一步,否则进行第15步;
          5. 输出普通字符"Enter error,enter again."
          6. 再输入n的值;
          7. 定义for循环,把0的值赋值给i;
          8. 判断i是否小于n,是进行下一步,否则进行第12步;
          9. 把0的值赋值给temp;
          10. 定义for循环,把0的值赋值给j;
          11. 判断j是否小于等于i,是进行下一步,否则i自加1,进行第6步;
          12. 把表达式的值赋值给temp;
          13. 把sum加temp的值赋值给sum,j自加,返回1第9步;
          14. 输出字符’sum=‘和sum的值。
          15. 程序结束。

          (9)代码

          int main()
          {
              int i, j, n; long temp, sum = 0;
              printf("Please input terms number.");
              scanf_s("%d", &n);
              while (n < 1 || n>10)
              {
                  printf("Enter error,enter again.");
                  scanf_s("%d", &n);
              }
              for (i = 0; i < n; i++)
              {
                  temp = 0;
                  for (j = 0; j <= i; j++)
                      temp += (long int)pow(10, j) * (i + 1);
                  sum += temp;
              }
              printf("sum=%ld\n", sum);
              return 0;
          }

          image.gif

          (9)运行结果

          image.gif编辑

          5.编程题

          (1)文字描述

            1. 声明整数变量i,j,n,sum,并把0的值赋值给n;
            2. 定义for循环,把3的值赋值给i;
            3. 判断i是否小于等于1000,是进行4,否则进行第13步;
            4. 把0的值赋值给整数sum;
            5. 定义for循环,把1的值赋值给j;
            6. 判断j是否小于n-1,是进行7,否则j自加1进行第3步;
            7. 判断n取余j是否等于0,是进行下一步,否则进行j自加1进行第6步;
            8. 把sum加j的值赋值给sum;
            9. 判断sum是否等于i,是进行下一步,否则j自加1进行第6步;
            10. 输出' i'的值;
            11. n自加1;
            12. n和5取余是否等于0,是进行下一步,否则j自加1进行第6步;
            13. 输出“\n”,j自加1进行第6步;
            14. 输出的值,程序结束。

            (1)代码

            int main()
            {
                int i, j, n = 0, sum;
                for (i = 3; i <= 1000; i++)
                {
                    sum = 0;
                    for (j = 1; j < n - 1; j++)
                        if (n % j == 0)sum += j;
                    if (i == sum)
                    {
                        printf(" %d", i);
                        n++;
                        if (n % 5 == 0)printf("\n");
                    }
                }
                printf("\n%d\n", n);
                return 0;
            }

            image.gif

            (1)运行结果

            image.gif编辑

            (2)文字描述

            1、声明整型变量i和n,并给n赋值为0;

            2、定义for循环,把1900的值赋值给i;

            3、判断i是否小于等于2000,是执行4,否则进行第9步;

            4、判断i是否为闰年的数;

            5、输出i的值;

            6、n自加1;

            7、判断n取余3是否等于0,是进行下一步,否则n++,返回第3步;

            8、输出回车换行,并且i++,返回第3步;

            9、程序结束。

            (2)代码

            int main()
            {
                int i, n = 0;
                for (i = 1900; i <= 2000; i++)
                {
                    if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
                    {
                        printf(" %d", i);
                        n++;
                        if (n % 3 == 0)printf("\n");
                    }
                }
                return 0;
            }

            image.gif

            (2)运行结果

            image.gif编辑

            (3)文字描述  

            1、声明整数变量i,a,b,c,n,并且把0的值赋值给n;

            2、定义for循环,把100的值赋值给i;

            3、判断i是否小于等于999,是进行下一步,否则进行第12步;

            4、把i除以100的数赋值给a;

            5、把减去a*100除以10的值赋值给b;

            6、把i取余10的值赋值给c;

            7、判断i是否等于表达式的值,是进行下一步,否则返回第3步,i自加1;

            8、输出i的值;

            9、n自加1;

            10、判断n取余2是否等于0,是进行下一步,否则返回第3步,i自加1;

            11、输出回车换行,返回第3步,i自加1;

            12、程序结束。

            (3)代码

            int main()
            {
                int i, a, b, c, n = 0;
                for (i = 100; i <= 999; i++)
                {
                    a = i / 100;
                    b = (i - a * 100) / 10;
                    c = i % 10;
                    if (pow(a, 3) + pow(b, 3) + pow(c, 3) == i)
                    {
                        printf(" %d", i);
                        n++;
                        if (n % 2 == 0)printf("\n");
                    }
                }
                return 0;
            }

            image.gif

            (3)运行结果

            image.gif编辑

            (4)文字描述  

            1、声明整数变量k,i,n,t;

            2、声明单精度浮点型变量e和s,并把1的值分别赋值给e和s;

            3、输入n的值;

            4、把1的值赋值给t;

            5、定义for循环,把1的值赋值给i;

            6、判断i是否小于等于k,是进行下一步,否则进行第 步;

            7、把t乘以i的值赋值给t;

            8、把表达式 e = e + 1.0 / t;的值赋值给e;

            9、k自加1;

            10、判断k是否小于等于n,是进行下一步,否则返回第4步;

            11、输出e的值,程序结束。

            (4)代码

            int main()
            {
                int k = 1, i, n, t;
                float e = 1, s = 1;
                scanf_s("%d", &n);
                do
                {
                    t = 1;
                    for (i = 1; i <= k; i++)
                        t *= i;
                    e = e + 1.0 / t;
                    k++;
                } while (k <= n);
                printf("%.2f", e);
                return 0;
            }

            image.gif

            (4)运行结果

            image.gif编辑

            (5)文字描述  

            1、声明单精度浮点型变量y,s,x,xx,a,i,并把1的值赋值给s,xx,a,i;

            2、输入x的值;

            3、把-a的值赋值给a;

            4、i自加1;

            5、把xx乘以x的值赋值给xx;

            6、把i除以xx的值赋值给y;

            7、把s加a乘以y的值赋值给s;

            8、判断y是否大于0.00001,是进行下一步,否则进行第3步;

            9、输出s的值,程序结束。

            (5)代码

            int main()
            {
                float y, s = 1, x, xx = 1, a = 1, i = 1;
                scanf_s("%f", &x);
                do
                {
                    a = -a;
                    i++;
                    xx = xx * x;
                    y = i / xx;
                    s += a * y;
                } while (y > 1e-5);
                printf("%f", s);
                return 0;
            }

            image.gif

            (5)运行结果

            image.gif编辑

            流程图汇总

            image.gif编辑

            image.gif编辑


            相关文章
            |
            1月前
            |
            C语言
            C语言模块化程序设计
            C语言模块化程序设计
            21 0
            |
            1月前
            |
            存储 文件存储 C语言
            《C语言程序设计》课程设计 -- 火车票票务管理系统
            《C语言程序设计》课程设计 -- 火车票票务管理系统
            23 1
            |
            1月前
            |
            C语言
            在C语言中,for语句是一种常用的循环结构控制语句
            在C语言中,for语句是一种常用的循环结构控制语句
            8 0
            |
            1月前
            |
            C语言
            c语言循环结构
            c语言循环结构
            11 0
            |
            1月前
            |
            C语言
            C语言循环结构
            C语言循环结构
            24 0
            C语言循环结构
            |
            1月前
            |
            存储 C语言
            C语言顺序结构程序设计
            C语言顺序结构程序设计
            21 0
            |
            1月前
            |
            算法 程序员 C语言
            【C语言】循环结构
            本文介绍了C语言中的三种循环结构:`while`、`do-while`和`for`循环,它们用于重复执行任务直到满足特定条件。`while`循环在满足条件前评估,`do-while`至少执行一次,`for`循环适合已知循环次数的情况。文中通过示例展示了如何使用这三种循环,并强调了避免无限循环、正确更新循环变量以及注意嵌套循环复杂性的重要性。理解循环结构对编写高效C程序至关重要。
            21 2
            |
            1月前
            |
            C语言
            C 语言三大结构之循环结构
            C 语言三大结构之循环结构
            14 0
            |
            1月前
            |
            存储 程序员 C语言
            C语言的循环结构
            C语言的循环结构
            6 1