• 基础的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语言功底还是很扎实的,希望我的文章对你有所帮助,欢迎👍点赞 ,📝评论,🌟关注,⭐️收藏 。

  • 相关阅读:
    LeetCode:第302场周赛【总结】
    RT-Thread内核学习记录
    Wireshark数据包分析——时间盲注/延时注入攻击
    11988 - Broken Keyboard (a.k.a. Beiju Text) (UVA)
    STM32CUBEMX开发GD32F303(11)----ADC在DMA模式下扫描多个通道
    pg 数据库,在新增的数据的时候,根据字段唯一性去更新数据
    虚拟车衣VR云展厅平台扩大了展览的触达范围
    python爬虫入门教程(非常详细):如何快速入门Python爬虫?
    JAVAEE三层架构详细解释以及代码分层编写
    LeetCode50天刷题计划(Day 14—— 删除链表的倒数第 N 个结点(12.20-13.00)
  • 原文地址:https://blog.csdn.net/qq_63179783/article/details/123963226