• 基础的C语言编程题,喊你快来巩固一下


    快速导航

    😊最大公约数

    😕打印闰年

    😧打印素数

    👼分数求和

    😲求最大值 

    😊乘法口诀表

    😊最大公约数

    输入两个数,求这两个数的最大公约数

    常见的方法有两种:辗转相除法和辗转相减法。

    其实还有一种方法:枚举法,但是这种方法我们并不常用,所以在这里主要介绍两种方法。

     ①辗转相除法

    关于辗转相除,这里转载一张图来更好的理解:

    代码实现 

    1. int main()
    2. {
    3. int a = 0;
    4. int b = 0;
    5. //输入
    6. scanf("%d %d", &a, &b);
    7. while (b)//当a%b为0时循环结束,此时a的值就是最大公约数
    8. {
    9. int tmp = a % b;//记录初识的a%b
    10. a = b;
    11. b = tmp;
    12. }
    13. printf("%d\n", a);
    14. return 0;
    15. }

    ②辗转相减法

    执行代码

    1. int main()
    2. {
    3. int a = 0;
    4. int b = 0;
    5. scanf("%d %d", &a, &b);
    6. while (a != b)
    7. {
    8. if (a > b)
    9. a = a - b;
    10. else
    11. b = b - a;
    12. }
    13. printf("%d\n", a);
    14. return 0;
    15. }

    😕打印闰年

    打印1000-2000的闰年

    闰年的判断方法:

    1.非整百年份:能被4整除的是闰年。(如2004年就是闰年,2001年不是闰年)

    2.整百年份:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

    详情见百度百科:闰年(历法中的名词)_百度百科

     判断流程

     执行代码

    1. int main()
    2. {
    3. int y = 0;
    4. for (y = 1000; y <= 2000; y++)
    5. {
    6. if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
    7. printf("%d ", y);
    8. }
    9. return 0;
    10. }

    运算符的优先级也是一门学问,但是可以通过加()来减少不必要的麻烦。

     😧打印素数

    打印100-200之间的素数

    质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。

    判断流程

     执行代码

    1. int main()
    2. {
    3. int i = 0;
    4. for (i = 100; i <= 200; i++)
    5. {
    6. //素数判断
    7. int j = 0;
    8. for (j = 2; j < i; j++)
    9. {
    10. if (i % j == 0)
    11. break;
    12. }
    13. if (i == j)//i==j时是素数,第二个for循环走完
    14. printf("%d ", i);
    15. }
    16. return 0;
    17. }

    👼分数求和

    计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

    这道题相对简单,下面我们直接上代码:

    1. int main()
    2. {
    3. int i = 0;
    4. double sum = 0;
    5. for (i = 1; i <= 100; i++)
    6. {
    7. int flag = i;//拷贝一份i的值
    8. if (flag % 2 == 0)
    9. flag = -flag;
    10. sum += 1.0 / flag;
    11. }
    12. printf("%.2f\n", sum);
    13. return 0;
    14. }

    这里需要注意的是:在for循环内部,一定要先拷贝一份i的值,不能对i直接操作,否则可能会造成死循环。

    😲求最大值 

    输入十个数,输出十个数中的最大值

    程序流程图

    执行代码 

    1. int main()
    2. {
    3. int arr[10] = { 0 };
    4. int i = 0;
    5. //输入
    6. for (i = 0; i < 10; i++)
    7. {
    8. scanf("%d", &arr[i]);
    9. }
    10. //将最大值初始化为数组第一个元素,与后面的元素进行比较
    11. int max = arr[0];
    12. for (i = 1; i < 10; i++)
    13. {
    14. if (arr[i] > max)
    15. max = arr[i];
    16. }
    17. printf("%d\n", max);
    18. return 0;
    19. }

    😊乘法口诀表

    在屏幕上输出9*9乘法口诀表

    这道题也是相对简单的,需要注意的就是打印时的对齐问题,下面直接上代码:

    1. int main()
    2. {
    3. int i = 0;
    4. for (i = 1; i <= 9; i++)
    5. {
    6. int j = 0;
    7. for (j = 1; j <= i; j++)
    8. {
    9. printf("%d*%d=%-2d ", i, j, i * j);
    10. }
    11. printf("\n");
    12. }
    13. return 0;
    14. }

    %-2d为左对齐,没有负号的时候为右对齐,下面看一下打印的效果:

    以上就是C语言的基础编程题了,如果这些题你都能准确快速的写出来,那你的C语言功底还是很扎实的,希望我的文章对你有所帮助,欢迎👍点赞 ,📝评论,🌟关注,⭐️收藏 。

  • 相关阅读:
    element-ui中获取el-divider的组件的ref时为空
    什么是云计算?应用场景有哪些?
    6.28U-Net深度学习基准模型特点与应用
    Java学习笔记5.3.1 Set接口 - HashSet类
    深入理解:Spring监听器使用方法与监听器的底层原理
    实战二十五:基于R-NET算法的答案抽取代码+数据 (可作为毕设)
    Text2SQL之不装了,我也是RAG
    【Java】数据类型转换入门
    造轮子之自定义授权策略
    【分析笔记】Linux 4.9 backlight 子系统分析
  • 原文地址:https://blog.csdn.net/qq_63179783/article/details/123963226