C语言入门教程 | 第一讲C语言零基础入门教程第一个程序到变量运算详解本文专为C语言初学者打造通过详细的代码示例和注释带你从零开始掌握C语言基础知识1. 为什么选择C语言C语言被誉为编程语言之母学好C语言就像练武先练基本功一样重要。它不仅能让你理解计算机的底层工作原理还是学习其他编程语言的坚实基础。无论你将来想做游戏开发、嵌入式系统还是系统编程C语言都是必不可少的技能2 . 第一个C程序Hello World1经典的Hello Worl#include // 包含标准输入输出库 int main() // 主函数程序的入口点 { printf(Hello micu\n); // 输出文本并换行 return 0; // 返回0表示程序正常结束 }程序结构解析2注释的使用技巧#include int main() { printf(Hello micu\n); // 单行注释输出问候语 // printf(Hello may\n); // 这行被注释掉了不会执行 /* * 多行注释 * 可以写很长的说明文字 * 用于详细解释复杂的代码逻辑 */ printf(Hello micu \\n Hello may); // 输出Hello micu \n Hello may return 0; }注释最佳实践3. ️ 变量程序的数据容器1基本数据类型详解整型intint age 25; // 存储整数通常占4个字节 int temperature -10; // 可以存储负数 int count 0; // 初始化为0浮点型floatfloat height 175.5f; // 存储小数f后缀表示float类型 float weight 65.8f; // 精度约为6-7位有效数字 float pi 3.14159f; // 常用于科学计算双精度浮点型doubledouble precise_pi 3.141592653589793; // 更高精度的小数 double distance 384400.0; // 地球到月球的距离公里2变量命名规则与最佳实践#include int main() { // 正确的变量名 int student_age; // 使用下划线分隔单词 float totalScore; // 驼峰命名法 int count1, count2; // 可以包含数字 char _temp; // 可以以下划线开头 // 错误的变量名示例这些会编译错误 // int 2count; // 不能以数字开头 // int int; // 不能使用关键字 // int student-age; // 不能使用连字符 // int student age; // 不能包含空格 // 推荐的命名风格 int studentAge 20; // 驼峰命名法推荐 float average_score 85.5f; // 下划线命名法 return 0; }命名建议3变量的声明与初始化#include int global_var 100; // 全局变量在整个程序中可见 int main() { // 声明并初始化推荐方式 int local_var 50; float grade 88.5f; // 先声明后赋值 int number; number 42; // 一次声明多个变量 int x 1, y 2, z 3; // 修改变量值 local_var 60; // 原来是50现在变成60 printf(全局变量%d\n, global_var); // 输出100 printf(局部变量%d\n, local_var); // 输出60 printf(成绩%.1f\n, grade); // 输出88.5 return 0; }4. 算术运算符详解1基本运算符实战#include int main() { int a 17, b 5; // 定义两个整数 float x 17.0f, y 5.0f; // 定义两个浮点数 // 整数运算 printf( 整数运算 \n); printf(%d %d %d\n, a, b, a b); // 17 5 22 printf(%d - %d %d\n, a, b, a - b); // 17 - 5 12 printf(%d * %d %d\n, a, b, a * b); // 17 * 5 85 printf(%d / %d %d\n, a, b, a / b); // 17 / 5 3整数除法 printf(%d %% %d %d\n, a, b, a % b); // 17 % 5 2取余 // 浮点数运算 printf(\n 浮点数运算 \n); printf(%.1f %.1f %.1f\n, x, y, x y); // 17.0 5.0 22.0 printf(%.1f / %.1f %.2f\n, x, y, x / y); // 17.0 / 5.0 3.40 // 混合运算的注意事项 printf(\n 混合运算 \n); printf(整数除法%d / %d %d\n, 7, 3, 7/3); // 结果2 printf(浮点除法%.1f / %.1f %.2f\n, 7.0f, 3.0f, 7.0f/3.0f); // 结果2.33 return 0; }2运算符优先级#include int main() { int result; // 运算符优先级演示 result 2 3 * 4; // 先算乘法2 12 14 printf(2 3 * 4 %d\n, result); result (2 3) * 4; // 括号优先5 * 4 20 printf((2 3) * 4 %d\n, result); result 10 / 3 * 2; // 从左到右10/33, 3*26 printf(10 / 3 * 2 %d\n, result); return 0; }优先级记忆口诀 括号最高乘除其次加减最后同级从左到右。5. 输入输出详解1printf强大的格式化输出#include int main() { int age 20; float height 175.8f; char grade A; // 基本格式化输出 printf(年龄%d 岁\n, age); // %d整数 printf(身高%f 厘米\n, height); // %f浮点数 printf(成绩等级%c\n, grade); // %c字符 // 控制输出格式 printf(身高%.1f 厘米\n, height); // 保留1位小数175.8 printf(身高%8.2f 厘米\n, height); // 总宽度8小数2位 175.80 printf(年龄%5d 岁\n, age); // 总宽度5右对齐 20 printf(年龄%-5d 岁\n, age); // 总宽度5左对齐20 // 多个变量同时输出 printf(姓名小明年龄%d身高%.1f\n, age, height); return 0; }2scanf获取用户输入#include int main() { int age; float weight; char initial; // 单个变量输入 printf(请输入您的年龄); scanf(%d, age); // 注意变量前必须加符号 printf(请输入您的体重kg); scanf(%f, weight); printf(请输入您的姓名首字母); scanf( %c, initial); // 注意%c前面有个空格用来跳过换行符 // 多个变量同时输入 printf(请输入身高和年龄用空格分隔); float height; int new_age; scanf(%f %d, height, new_age); // 输出结果 printf(\n 您的信息 \n); printf(年龄%d 岁\n, age); printf(体重%.1f 公斤\n, weight); printf(姓名首字母%c\n, initial); printf(身高%.1f 厘米年龄%d 岁\n, height, new_age); return 0; }scanf使用要点6. 综合实战项目1项目1智能计算器#include int main() { float num1, num2, result; char operator; printf( 简单计算器 \n); printf(请输入第一个数字); scanf(%f, num1); printf(请输入运算符、-、*、/); scanf( %c, operator); // 注意空格 printf(请输入第二个数字); scanf(%f, num2); // 根据运算符进行计算 switch(operator) { case : result num1 num2; printf(%.2f %.2f %.2f\n, num1, num2, result); break; case -: result num1 - num2; printf(%.2f - %.2f %.2f\n, num1, num2, result); break; case *: result num1 * num2; printf(%.2f * %.2f %.2f\n, num1, num2, result); break; case /: if(num2 ! 0) // 检查除零错误 { result num1 / num2; printf(%.2f / %.2f %.2f\n, num1, num2, result); } else { printf(错误除数不能为零\n); } break; default: printf(错误不支持的运算符\n); } return 0; }2项目2BMI健康指数计算器#include int main() { float weight, height, bmi; printf( BMI健康指数计算器 \n); printf(请输入您的体重公斤); scanf(%f, weight); printf(请输入您的身高米); scanf(%f, height); // 计算BMI体重(kg) / 身高(m)² bmi weight / (height * height); printf(\n 计算结果 \n); printf(您的BMI指数为%.2f\n, bmi); // 健康状况判断 printf(健康状况); if(bmi 18.5) printf(偏瘦\n); else if(bmi 24.0) printf(正常\n); else if(bmi 28.0) printf(偏胖\n); else printf(肥胖\n); printf(\n 健康小贴士\n); printf(- 正常BMI范围18.5 - 23.9\n); printf(- 建议保持均衡饮食和适量运动\n); return 0; }7 . 预处理指令#define宏定义1基础宏定义#include // 定义数学常量 #define PI 3.14159f #define E 2.71828f // 定义程序常量 #define MAX_STUDENTS 100 #define PASSING_GRADE 60 // 定义字符串常量 #define SCHOOL_NAME 清华大学 #define VERSION v1.0 int main() { float radius 5.0f; float area, circumference; // 使用宏定义的常量 area PI * radius * radius; circumference 2 * PI * radius; printf( 圆形计算器 %s \n, VERSION); printf(学校%s\n, SCHOOL_NAME); printf(半径%.1f\n, radius); printf(面积%.2f\n, area); printf(周长%.2f\n, circumference); printf(最大学生数%d\n, MAX_STUDENTS); printf(及格分数%d\n, PASSING_GRADE); return 0; }2函数式宏定义#include // 定义函数式宏 #define SQUARE(x) ((x) * (x)) // 计算平方 #define MAX(a,b) ((a) (b) ? (a) : (b)) // 求最大值 #define MIN(a,b) ((a) (b) ? (a) : (b)) // 求最小值 #define ABS(x) ((x) 0 ? -(x) : (x)) // 求绝对值 int main() { int num1 5, num2 -3; float x 2.5f; printf( 宏函数演示 \n); printf(%d 的平方 %d\n, num1, SQUARE(num1)); printf(%.1f 的平方 %.2f\n, x, SQUARE(x)); printf(%d 和 %d 的最大值 %d\n, num1, num2, MAX(num1, num2)); printf(%d 的绝对值 %d\n, num2, ABS(num2)); return 0; }宏定义的优点8. 终极挑战多功能几何计算器#include // 定义数学常量 #define PI 3.14159f // 定义功能宏 #define SQUARE(x) ((x) * (x)) #define CUBE(x) ((x) * (x) * (x)) int main() { int choice; float length, width, height, radius; float area, volume, perimeter; printf( 多功能几何计算器 \n); printf(1. 长方形面积和周长\n); printf(2. 长方体体积\n); printf(3. 圆形面积和周长\n); printf(4. 球体体积\n); printf(请选择功能1-4); scanf(%d, choice); switch(choice) { case 1: // 长方形计算 printf(\n 长方形计算 \n); printf(请输入长度); scanf(%f, length); printf(请输入宽度); scanf(%f, width); area length * width; perimeter 2 * (length width); printf(长方形面积%.2f\n, area); printf(长方形周长%.2f\n, perimeter); break; case 2: // 长方体计算 printf(\n 长方体计算 \n); printf(请输入长度); scanf(%f, length); printf(请输入宽度); scanf(%f, width); printf(请输入高度); scanf(%f, height); volume length * width * height; printf(长方体体积%.2f\n, volume); break; case 3: // 圆形计算 printf(\n 圆形计算 \n); printf(请输入半径); scanf(%f, radius); area PI * SQUARE(radius); // 使用宏函数 perimeter 2 * PI * radius; printf(圆形面积%.2f\n, area); printf(圆形周长%.2f\n, perimeter); break; case 4: // 球体计算 printf(\n 球体计算 \n); printf(请输入半径); scanf(%f, radius); volume (4.0f / 3.0f) * PI * CUBE(radius); // V 4/3 * π * r³ printf(球体体积%.2f\n, volume); break; default: printf( 无效选择请输入1-4之间的数字。\n); } printf(\n感谢使用几何计算器\n); return 0; }9. 扩展知识点1变量的存储类别#include // 全局变量外部存储 int global_count 0; int main() { // 局部变量自动存储 int local_var 10; // 静态局部变量保持值 static int static_var 0; static_var; printf(全局变量%d\n, global_count); printf(局部变量%d\n, local_var); printf(静态变量%d\n, static_var); return 0; }2常见编程错误及解决方案#include int main() { int num; // 常见错误1忘记初始化变量 // printf(%d\n, num); // 可能输出垃圾值 // 正确做法初始化变量 num 0; // 或者在声明时初始化int num 0; printf(初始化后的值%d\n, num); // 常见错误2整数除法精度丢失 int a 7, b 3; printf(整数除法%d / %d %d\n, a, b, a/b); // 输出2 // 正确做法使用浮点数 printf(浮点除法%d / %d %.2f\n, a, b, (float)a/b); // 输出2.33 return 0; }