开发者社区> RainstormGod> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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)运行结果

    imageimage.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)运行结果

      imageimage.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)运行结果

      imageimage.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)运行结果

        imageimage.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)运行结果

          imageimage.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)运行结果 

            imageimage.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)运行结果

            imageimage.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)运行结果

            imageimage.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)运行结果

            imageimage.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)运行结果 

            imageimage.gif编辑

            流程图汇总 

            imageimage.gif编辑

            imageimage.gif编辑


            版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

            相关文章
            《C语言程序设计》一第 2 章 C程序设计基础
            本节书摘来自华章出版社《C语言程序设计》一 书中的第2章,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
            942 0
            《C语言程序设计与实践(第2版)》——2.7 函数
            C语言的程序是由一个个函数构成的,除了有且必须有的main主函数以外,用户也可以自己定义函数。此外,C语言的编译系统还提供了一些库函数。函数为程序的封装提供了一种简便的方法,在其他地方使用函数时不需要考虑它是如何实现的。
            976 0
            《C语言及程序设计》实践参考——改造链表
            返回:贺老师课程教学链接 【项目3 - 改造链表】 下面是一个建立动态链表的程序。阅读程序,然后按要求改造程序。 #include <iostream> using namespace std; #include <stdio.h> #include <malloc.h> #define N 5 typedef struct
            871 0
            《C语言及程序设计》实践参考——链表的合并
            返回:贺老师课程教学链接 【项目1-链表的合并】 输入一个整数m,表示A链表的长度,再输入m个数作为A链表中的m个数据元素,建立链表A,其头指针为heada。输入一个整数n,表示B链表的长度,再输入n个数表示B链表中的n个数据元素,建立链表B,其头指针为headb。输入i、len、j,将要从单链表A中删除自第i个元素起的共len个元素,然后将单链表A插入到单链表B的第j个
            1024 0
            《C语言及程序设计》实践参考——链表版通信录
            返回:贺老师课程教学链接 【项目4-链表版通信录】 利用链表存储数据,写一个通信录程序,能够记录多个联系人的编号、姓名、性别、联系电话、地址,完成数据的录入、添加、删除、修改以及查询功能。 [参考解答] 本解答自网络:链接 #include<stdio.h> #include<string.h> #include<stdlib.h>
            1068 0
            《C语言及程序设计》实践参考——字符串处理函数
            返回:贺老师课程教学链接  实践要求 【项目4-字符串处理函数】指针是神奇的,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];更灵活的是,在函数的传递中,指针、数组名在一定程度上可以互换。请编制函数,对字符串的进行各种操作。 序 功能 用数组名作形参 用指针作形参 1 字符串str1和str
            1309 0
            《C语言及程序设计》实践参考——歌手大奖赛计分函数版
            返回:贺老师课程教学链接  项目要求 【项目2-歌手大奖赛计分函数版】(1)在歌手大奖赛中,有n位评委为参赛的选手打分,分数为0~10分(运行时由人输入)。选手最后得分为:去掉一个最高分和一个最低分后其余分数的平均值。请编写一个程序,完成相关的功能。 要求利用一个函数void calScore(int n),对一位选手成绩的输入成绩、计算和显示实现,其中n为评委人数。这样,在main函数
            1114 0
            《C语言及程序设计》实践参考——大奖赛计分(续一)
            返回:贺老师课程教学链接  项目要求 【项目1:大奖赛计分(续一)】在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。请在大奖赛计分程序基础上,增加功能,若用户输入不在0-10范围内,则立即要求重输,直到正确。 [参考解答] #include <stdio.h> #define n 10 int main( ) { int i; double av
            971 0
            《C语言及程序设计》实践参考——大奖赛计分
            返回:贺老师课程教学链接  项目要求 【项目4:大奖赛计分】  (1)基本要求:在歌手大奖赛中,有10个评委为参赛的选手打分,分数为1~10分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。 #include <stdio.h> #define n 10 int main( ) { int i=1; double ave
            1065 0
            《C语言及程序设计》实践参考——Bessel函数
            返回:贺老师课程教学链接  项目要求 【项目3:Bessel函数】Bessel函数Jn(X)有以下的递推关系: 编写程序,利用递推关系,由任意的n和x≠0求Jn(X)。 [参考解答] #include <stdio.h> #include <math.h> int main( ) { double jn, j0, j1, x; int n, i;
            981 0
            +关注
            RainstormGod
            眼睛可以近视,但目光不能短浅。
            文章
            问答
            文章排行榜
            最热
            最新
            相关电子书
            更多
            为什么要学函数式编程?
            立即下载
            低代码开发师(初级)实战教程
            立即下载
            阿里巴巴DevOps 最佳实践手册
            立即下载