欢迎光临
我们一直在努力

01_基础语法与入门练习

C语言练习大全(一):基础语法与入门练习

🎯 适合零基础新手,从最简单的输入输出、条件判断开始,一步步掌握 C 语言基本语法。


目录

  • 成绩等级判定(if-else)
  • 12小时制与24小时制转换
  • 超速检测(if判断)
  • switch-case 成绩分级
  • 厘米换算英尺和英寸
  • 时间加法计算
  • 三个数求最大值
  • 九九乘法表
  • 斐波那契数列(数组版)
  • 求平均数(循环输入)

  • 1. 成绩等级判定

    知识点: if-else if-else 多分支结构

    根据分数输出对应等级:90+ → A,80+ → B,70+ → C,60+ → D,60 以下 → E。

    #include <stdio.h>
    int main()
    {
    int x = 0;
    scanf("%d", &x);
    if (x >= 90) {
    printf("A");
    } else if (x >= 80) {
    printf("B");
    } else if (x >= 70) {
    printf("C");
    } else if (x >= 60) {
    printf("D");
    } else {
    printf("E");
    }
    return 0;
    }

    新手要点:

    • if-else if 是从上往下依次判断的,一旦命中就不再往下走
    • 所以条件顺序很重要!必须从大到小写(>=90 在前)

    2. 12小时制与24小时制转换

    知识点: 多条件 if-else 嵌套

    #include <stdio.h>
    int main()
    {
    int hour, min;
    scanf("%d %d", &hour, &min);
    if (hour >= 0 && hour < 12) {
    printf("%d:%dAM", hour, min);
    } else if (hour == 12) {
    printf("%d:%dPM", hour, min);
    } else if (hour == 24) {
    printf("%d:%dAM", hour 24, min);
    } else {
    printf("%d:%dPM", hour 12, min);
    }
    return 0;
    }

    新手要点:

    • && 表示"并且",两个条件同时满足
    • 24 小时制的 0 点和 24 点其实是同一个时间

    3. 超速检测

    知识点: 简单 if-else 判断

    输入车速,超过 60 显示超速警告。

    #include <stdio.h>
    int main()
    {
    int V;
    scanf("%d", &V);
    if (V > 60) {
    printf("Speed : %d", V);
    } else {
    printf("speed : %d", V);
    }
    return 0;
    }

    别小看这个程序,它展示了分支判断的核心思想:根据条件走不同的路。


    4. switch-case 成绩分级

    知识点: switch-case 语句

    用 switch 重写成绩分级,体会和 if-else 的区别。

    #include <stdio.h>
    int main()
    {
    int score;
    scanf("%d", &score);
    score /= 10; // 将分数转为 10 分制

    switch (score) {
    case 10:
    case 9:
    printf("A\\n");
    break;
    case 8:
    printf("B\\n");
    break;
    case 7:
    printf("C\\n");
    break;
    case 6:
    printf("D\\n");
    break;
    default:
    printf("E\\n");
    break;
    }
    return 0;
    }

    新手要点:

    • case 10: 和 case 9: 写在一起表示"10 或 9 都执行下面的代码"
    • 每个 case 后面必须加 break,否则会"穿透"到下一个 case
    • default 是"以上都不匹配"时的兜底

    5. 厘米换算英尺和英寸

    知识点: 整数除法与取余

    1 英尺 = 30.48 厘米,1 英尺 = 12 英寸。

    #include <stdio.h>
    int main()
    {
    int cm, foot, inch;
    scanf("%d", &cm);
    foot = cm / 30.48;
    inch = (cm / 30.48 foot) * 12;
    printf("%d %d", foot, inch);
    return 0;
    }

    新手要点:

    • 整数除法会直接丢掉小数部分,这正好用来取"整数部分"
    • 先取整得到英尺,再用余数算英寸——这是常见的分步计算思路

    6. 时间加法计算

    知识点: 取余运算的妙用

    输入一个时间(如 1030 表示 10:30)和要加的分钟数,计算结果时间。

    #include <stdio.h>
    int main()
    {
    int t, t1, minute, minute1, minute2;
    scanf("%d %d", &t, &t1);
    minute = t / 100; // 提取小时
    minute1 = t % 100; // 提取分钟
    minute2 = (minute * 60) + minute1 + t1; // 全部转为分钟再相加
    printf("%d %d", minute2 / 60, minute2 % 60); // 再转回时:分
    return 0;
    }

    新手要点:

    • %(取余)和 /(取整)配合使用,可以拆分一个数的不同位
    • 把复杂问题转成统一单位(分钟),算完再转回来——归一化思想

    7. 三个数求最大值

    知识点: 嵌套 if-else

    #include <stdio.h>
    int main()
    {
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if (a > b) {
    if (c > a) {
    printf("%d", c);
    } else {
    printf("%d", a);
    }
    } else {
    if (c > b) {
    printf("%d", c);
    } else {
    printf("%d", b);
    }
    }
    return 0;
    }

    新手要点:

    • 嵌套 if 就是"在某个条件成立的前提下,再判断另一个条件"
    • 三个数比大小看起来简单,但逻辑要严密,漏掉一种情况就会出错

    8. 九九乘法表

    知识点: 嵌套 while 循环

    #include <stdio.h>
    int main()
    {
    int i = 0, b = 1;
    scanf("%d", &i);
    while (b <= i) {
    int j = 1;
    while (j <= b) {
    printf("%d*%d=", j, b, j * b);
    if (j * b >= 10) {
    printf("%d ", j * b);
    } else {
    printf("%d ", j * b);
    }
    j++;
    }
    printf("\\n");
    b++;
    }
    return 0;
    }

    新手要点:

    • 外层控制行,内层控制列——这是嵌套循环的经典模式
    • 格式化输出用空格对齐,让结果更美观

    9. 斐波那契数列

    知识点: 数组 + 循环

    用数组存储斐波那契数列:1, 1, 2, 3, 5, 8, 13…(每个数等于前两个数之和)

    #include <stdio.h>
    int main()
    {
    int a[20] = {1, 1};
    int i;
    for (i = 2; i <= 20; i++)
    a[i] = a[i 1] + a[i 2];
    for (i = 0; i <= 20; i++) {
    printf("%d ", a[i]);
    if ((i + 1) % 5 == 0)
    printf("\\n");
    }
    return 0;
    }

    新手要点:

    • 数组初始化时只给前两个元素赋值,其余自动为 0
    • a[i] = a[i-1] + a[i-2] 就是斐波那契的核心公式

    10. 求平均数

    知识点: while 循环 + 哨兵值

    持续输入数字,输入 -1 时停止,求所有数字的平均值。

    #include <stdio.h>
    int main()
    {
    int number, sum = 0, count = 0;
    scanf("%d", &number);
    while (number != 1) {
    sum += number;
    count++;
    scanf("%d", &number);
    }
    printf("%f\\n", 1.0 * sum / count);
    return 0;
    }

    新手要点:

    • 用一个特殊值(-1)作为"结束信号",叫做哨兵值
    • 1.0 * sum / count 中乘以 1.0 是为了强制转为浮点除法,否则整数除法会丢小数

    本篇总结

    知识点涉及题目
    if-else 分支 成绩等级、超速检测、求最大值
    switch-case 成绩分级
    取余与整除 时间计算、厘米换算
    while 循环 九九乘法表、求平均数
    for 循环 + 数组 斐波那契数列

    💡 学习建议: 不要只看代码,一定要自己动手敲一遍。试着改改参数,看看输出会怎么变——这才是真正学会的方式。


    下篇预告:《C语言练习大全(二):经典数学问题》— 素数、完数、水仙花数、牛顿迭代法…

    赞(0)
    未经允许不得转载:171主机测评 » 01_基础语法与入门练习
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址