C语言学习笔记01
Step1
C语言的第一个程序
| 代码行 | 作用 | 解释 |
|---|---|---|
#include <stdio.h> |
头文件包含 | 引入标准输入输出库(Standard Input/Output)。printf 函数就定义在这个库中。没有它,你就不能在屏幕上打印任何东西。 |
int main() { ... } |
主函数定义 | main 是 C 程序的入口点。操作系统就是从这里开始执行你的程序的。int 表示这个函数执行完毕后会返回一个整数值。 |
printf("Hello, World!\n"); |
核心输出语句 | 调用 printf 函数,将括号内的字符串内容打印到屏幕上。\n 是一个转义字符,表示换行。 |
return 0; |
程序返回 | 告诉操作系统程序已经成功执行完毕。在 C 语言中,return 0 通常表示程序正常退出。 |
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
基础入门与数据类型
- 程序的最小结构与入口所有的 C 语言程序都始于一个核心结构。
头文件包含 (
#include <stdio.h>): 引入标准输入/输出库,让我们能使用printf(输出) 和scanf(输入) 等函数。主函数 (
int main()): 程序的执行入口。程序从这里开始,到return 0;结束。int表示函数执行成功时返回一个整数值(通常是0)。
- 核心 I/O 函数 (输入/输出)
| 函数 | 作用 | 格式控制符 | 示例 |
|---|---|---|---|
printf() |
输出数据到屏幕。 | %d (整数), %f (浮点数), %c (字符), %s (字符串) |
printf("Age: %d", age); |
scanf() |
接收用户从键盘的输入。 | %d, %f, %c, %s |
scanf("%d", &age); |
重点提醒: 使用 scanf 读取变量时,除了字符串之外,变量名前面必须加 & 符号(取地址符)。这是 C 语言中传址调用的基础
- C 语言的基本数据类型数据类型决定了变量存储的数据种类和占用的内存空间大小。
| 类型 (Type) | 存储内容 | 典型大小 | 格式控制符 |
|---|---|---|---|
int |
整数 (Integer) | 4 字节 | %d |
float |
单精度浮点数 (小数) | 4 字节 | %f |
double |
双精度浮点数 (更精确的小数) | 8 字节 | %lf |
char |
字符 (Character) | 1 字节 | %c |
- 变量定义: 在使用任何变量前,必须先定义它,例如:
int score;或float price = 10.5;
运算符 (Operators)
算术运算符用于数学计算。
| **运算符** | **描述** | **示例** |
| --- | --- | --- |
| `+` | 加 | `a + b` |
| `-` | 减 | `a - b` |
| `*` | 乘 | `a * b` |
| `/` | **除** | `a / b` |
| `%` | **取余** (模运算) | `a % b` (只能用于整数) |
**重点陷阱:** C 语言中的**整数除法** (`int / int`) 结果仍然是**整数**,会**舍弃小数部分**。
* 例如:`int result = 10 / 3;` $\Rightarrow$ `result` 是 $3$ 而不是 $3.333$。
* 若想得到浮点结果,至少一个操作数必须是浮点类型:`10.0 / 3` 或 `(float)10 / 3`
- 关系运算符用于比较两个值,结果是真 (1) 或 假 (0)。
| **运算符** | **描述** |
| --- | --- |
| `>` | 大于 |
| `<` | 小于 |
| `>=` | 大于等于 |
| `<=` | 小于等于 |
| `==` | **等于** (注意是两个等号!) |
| `!=` | 不等于 |
- 逻辑运算符 用于组合多个关系表达式。
| **运算符** | **描述** |
| --- | --- |
| `&&` | **逻辑与 (AND)**:两边都为真才为真。 |
| ` | |
| `!` | **逻辑非 (NOT)**:取反。 |
练习 1:算术运算与类型转换
题目: 计算 10 和 3 的和、差、积,以及 10 除以 3 的整数商和浮点数商。
要求: 必须使用 int, float 或 double 至少三种数据类型来完成。
易错: C 语言中的整数除法 (int / int) 结果仍然是整数,会舍弃小数部分
输出:
10 + 3 = 13 10 - 3 = 7 10 * 3 = 30 10 / 3 的整数商是 3 10 / 3 的浮点数商是: 3.333333我的:
#include <stdio.h> int main(){ int num1 = 10; int num2 = 3; float num3 = 10.0; int a = num1 + num2; int b = num1 - num2; int c = num1 * num2; int d = num1 / num2; double e = num3 / num2; printf("10 + 3 = %d\n", a); printf("10 - 3 = %d\n", b); printf("10 * 3 = %d\n", c); printf("10 / 3 的整数商是 %d\n", d); printf("10 / 3 的浮点数商是: %f\n", e); return 0; }标准:
#include <stdio.h> int main() { int num1 = 10; int num2 = 3; // 整数运算 int sum = num1 + num2; int diff = num1 - num2; int product = num1 * num2; int int_quotient = num1 / num2; // 浮点数运算:使用强制类型转换 double float_quotient = (double)num1 / num2; printf("%d + %d = %d\n", num1, num2, sum); printf("%d - %d = %d\n", num1, num2, diff); printf("%d * %d = %d\n", num1, num2, product); printf("%d / %d 的整数商是:%d\n", num1, num2, int_quotient); printf("%d / %d 的浮点数商是:%.6lf\n", num1, num2, float_quotient); return 0; }
练习 2:输入输出与变量
题目: 编写一个程序,要求用户输入他的学号 (整数) 和 体重 (浮点数),然后程序将这两项信息打印出来。
要求:
学号使用
int类型,体重使用double类型。使用
scanf获取输入,使用printf打印输出。输出体重时,要求保留两位小数。
易错:
使用
scanf读取普通变量(如int,double)的值时,必须在变量名前加上&符号(取地址符)。在 C 语言中,要控制浮点数(
float或double)的输出精度,你需要在printf的格式控制符%f或%lf中间加入.符号和所需的位数。
输出:
请输入你的学号: 20251101 <-- 用户输入 请输入你的体重 (kg): 72.5 <-- 用户输入 --- 你的信息是 --- 学号: 20251101 体重: 72.50 kg我的:
#include <stdio.h> int main(){ int a; double b; printf("请输入你的学号:\n"); scanf("%d", &a); printf("请输入你的体重(kg):\n"); scanf("%lf", &b); printf("---你的信息是---\n"); printf("学号:%d\n", a); printf("体重:%.2lf kg\n", b); return 0; }标准:
#include <stdio.h> int main() { int a; // 学号,int 类型 double b; // 体重,double 类型 printf("请输入你的学号: \n"); scanf("%d", &a); printf("请输入你的体重 (kg): \n"); scanf("%lf", &b); // 修正: double 类型的读取格式符是 %lf printf("---你的信息是---\n"); printf("学号: %d\n", a); printf("体重: %.2lf kg\n", b); // 修正: double 类型的输出格式符是 %lf,并保留两位小数 return 0; }
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 yanxi blog!

