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语言程序设计——函数】递归求斐波那契数列的前n项(头歌实践教学平台习题)【合集】
            本关任务是编写递归函数求斐波那契数列的前n项。主要内容包括: 1. **递归的概念**:递归是一种函数直接或间接调用自身的编程技巧,通过“俄罗斯套娃”的方式解决问题。 2. **边界条件的确定**:边界条件是递归停止的条件,确保递归不会无限进行。例如,计算阶乘时,当n为0或1时返回1。 3. **循环控制与跳转语句**:介绍`for`、`while`循环及`break`、`continue`语句的使用方法。 编程要求是在右侧编辑器Begin--End之间补充代码,测试输入分别为3和5,预期输出为斐波那契数列的前几项。通关代码已给出,需确保正确实现递归逻辑并处理好边界条件,以避免栈溢出或结果
            66 16
            |
            1月前
            |
            存储 编译器 C语言
            【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
            函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
            37 3
            |
            1月前
            |
            存储 算法 安全
            【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
            if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
            20 2
            |
            1月前
            |
            存储 编译器 C语言
            【C语言程序设计——函数】回文数判定(头歌实践教学平台习题)【合集】
            算术运算于 C 语言仿若精密 “齿轮组”,驱动着数值处理流程。编写函数求区间[100,500]中所有的回文数,要求每行打印10个数。根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码。如果操作数是浮点数,在 C 语言中是不允许直接进行。的结果是 -1,因为 -7 除以 3 商为 -2,余数为 -1;注意:每一个数据输出格式为 printf("%4d", i);的结果是 1,因为 7 除以 -3 商为 -2,余数为 1。取余运算要求两个操作数必须是整数类型,包括。开始你的任务吧,祝你成功!
            53 1
            |
            1月前
            |
            存储 算法 C语言
            【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
            本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
            63 23
            |
            1月前
            |
            算法 C语言
            【C语言程序设计——函数】利用函数求解最大公约数和最小公倍数(头歌实践教学平台习题)【合集】
            本文档介绍了如何编写两个子函数,分别求任意两个整数的最大公约数和最小公倍数。内容涵盖循环控制与跳转语句的使用、最大公约数的求法(包括辗转相除法和更相减损术),以及基于最大公约数求最小公倍数的方法。通过示例代码和测试说明,帮助读者理解和实现相关算法。最终提供了完整的通关代码及测试结果,确保编程任务的成功完成。
            68 15
            |
            1月前
            |
            C语言
            【C语言程序设计——函数】亲密数判定(头歌实践教学平台习题)【合集】
            本文介绍了通过编程实现打印3000以内的全部亲密数的任务。主要内容包括: 1. **任务描述**:实现函数打印3000以内的全部亲密数。 2. **相关知识**: - 循环控制和跳转语句(for、while循环,break、continue语句)的使用。 - 亲密数的概念及历史背景。 - 判断亲密数的方法:计算数A的因子和存于B,再计算B的因子和存于sum,最后比较sum与A是否相等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台对代码进行测试,预期输出如220和284是一组亲密数。 5. **通关代码**:提供了完整的C语言代码实现
            61 24
            |
            2月前
            |
            存储 C语言 开发者
            【C语言】字符串操作函数详解
            这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
            94 10
            |
            2月前
            |
            存储 程序员 C语言
            【C语言】文件操作函数详解
            C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
            69 9
            |
            2月前
            |
            存储 Unix Serverless
            【C语言】常用函数汇总表
            本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
            62 8

            热门文章

            最新文章