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语言文件操作详解_文件操作函数
            本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。
            |
            1月前
            |
            存储 C语言
            C语言程序设计核心详解 第七章 函数和预编译命令
            本章介绍C语言中的函数定义与使用,以及预编译命令。主要内容包括函数的定义格式、调用方式和示例分析。C程序结构分为`main()`单框架或多子函数框架。函数不能嵌套定义但可互相调用。变量具有类型、作用范围和存储类别三种属性,其中作用范围分为局部和全局。预编译命令包括文件包含和宏定义,宏定义分为无参和带参两种形式。此外,还介绍了变量的存储类别及其特点。通过实例详细解析了函数调用过程及宏定义的应用。
            |
            1月前
            |
            存储 人工智能 C语言
            C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
            本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
            |
            1月前
            |
            存储 人工智能 C语言
            C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
            本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
            |
            1月前
            |
            存储 C语言
            C语言程序设计核心详解 第九章 结构体与链表概要详解
            本文档详细介绍了C语言中的结构体与链表。首先,讲解了结构体的定义、初始化及使用方法,并演示了如何通过不同方式定义结构体变量。接着,介绍了指向结构体的指针及其应用,包括结构体变量和结构体数组的指针操作。随后,概述了链表的概念与定义,解释了链表的基本操作如动态分配、插入和删除。最后,简述了共用体类型及其变量定义与引用方法。通过本文档,读者可以全面了解结构体与链表的基础知识及实际应用技巧。
            |
            10天前
            |
            C语言 C++
            C语言 之 内存函数
            C语言 之 内存函数
            25 3
            |
            1天前
            |
            存储 缓存 C语言
            【c语言】简单的算术操作符、输入输出函数
            本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
            17 10
            |
            5天前
            |
            存储 编译器 C语言
            C语言函数的定义与函数的声明的区别
            C语言中,函数的定义包含函数的实现,即具体执行的代码块;而函数的声明仅描述函数的名称、返回类型和参数列表,用于告知编译器函数的存在,但不包含实现细节。声明通常放在头文件中,定义则在源文件中。
            |
            11天前
            |
            C语言
            c语言回顾-函数递归(上)
            c语言回顾-函数递归(上)
            27 2
            |
            13天前
            |
            Java 编译器 C语言
            【一步一步了解Java系列】:Java中的方法对标C语言中的函数
            【一步一步了解Java系列】:Java中的方法对标C语言中的函数
            16 3