This commit is contained in:
y1143597749 2025-02-28 21:48:28 +08:00
commit 611314db2f
3 changed files with 324 additions and 0 deletions

123
笔记/第一课.md Normal file
View File

@ -0,0 +1,123 @@
1. 简单程序(含输出)
```c
// 双斜杠后面的内容代表注释,程序是看不到的,一般用作解释该条语句的作用
#include <stdio.h> // 导入标准的输入输出库
// 程序的主要入口,程序开始的地方,所有程序代码都要写到大括号里
main() { //不要写成mian函数名后加上括号格式要求
// C语言里出现的所有标点符号都用英文状态下的每个语句结尾都需要分号
// \n 转义字符,把他的含义转换为了换行符号。注意斜杠方向不要写错,正斜杠 / . 反斜杠 \
// %d 整数类型的占位符号,有小数会被自动舍弃
// printf 格式化输出 输出的是引号里面的内容。
printf("TO C, or not to C: that is question.");
// 先有个印象在C语言里双引号括起来的内容被叫作为字符串
}
```
2. 变量和赋值
```c
#include <stdio.h>
main() {
// 变量的作用:用于存储数据
// 声明变量时,声明语句一定要放在程序开始的最上方。任何变量在使用前,都需要先声明
// 声明变量的方法:先写变量类型,然后空格,写上变量名称
// 变量类型:四种
// int(整数) | float单精度浮点数
// double(双精度浮点数) | char(字符)
// 变量名称:取名时有以下四种规则
// 1.只能是以数字、字母、下划线组合而成
// 2.不能以数字开头
// 3.区分大小写
// 4.不能使用C语言已经使用的关键词
int a;
int a1, a2; // 多个相同变量一起定义时,可以写成一行,中间用英文逗号隔开即可
float b;
double c;
char d;
// 赋值符号 即等于号
// 作用是将等号右边的算式运算完毕之后,存储到等号左边的变量当中去,
// 所以赋值符号的左边只能是一个变量名,右边最终结果一定是一个值
// 对变量初始化
a = 5;
a = 3; // 注意 新来的值会干掉老数值鸠占鹊巢所以现在变量a里的值就不在是5变成3了
b = 5.2;
c = 3.1415926;
d = 'a' // 字符需要用单引号括起来,多个字符连在一起叫做字符串,字符串需要用双引号括起来,
// 例如printf和scanf函数里使用的双引号括起来的就是字符串内容
printf("%d", a); // 注意在使用变量时,一定要确定变量里有没有值,
// 定义变量没有给变量值,直接使用,最后算出的值一定会有问题
}
```
简单C程序实例
```c
#include <stdio.h>
main() {
int a, b, c;
a = 10;
b = 20;
c = a + b;
printf("%d", c);
}
```
3. 输入
```c
#include <stdio.h>
main() {
int year, month, day;
// scan 扫描(引申为输入) f format 格式化 格式化输入
// 我们用户输入的数据,电脑如若想要使用,则必须把输入的数据保存下来,
// 在编程语言中,有保存储数据能力的只有变量
// 所以我们会把输入搭配变量一起使用
// 注意在使用scanf函数时一定要把占位符号与变量的个数一一对应上有几个占位符
// 后面写时就需要写几个变量名并且在scanf函数里每个变量名前都需要加上 & 符号
scanf("%d.%d.%d", &year, &month, &day);
// 按照我们自己设定的格式去输入,每个数据中间要有.分割
// 如若不设置格式C语言会默认把空格与换行符当做内容的分隔符
printf("生日是%d年%d月%d日", year, month, day);
}
```
4. 作业
```c
/*
打印出来一个勾的图形
*/
#include <stdio.h>
main() {
printf(" *\n");
printf(" * \n");
printf(" * \n");
printf("* * \n");
printf(" * * \n");
printf(" * \n");
}
```
```c
/*
输入两个数字,计算这两个数字的加减乘数结果
*/
#include <stdio.h>
main() {
int a, b; // 多个相同变量一起定义时,可以写成一行,中间用英文逗号隔开即可
scanf("%d%d", &a, &b);
printf("%d + %d = %d\n", a, b, a + b); // 有几个占位符,后面就写几个变量
printf("%d - %d = %d\n", a, b, a - b);
printf("%d * %d = %d\n", a, b, a * b);
printf("%d / %d = %d\n", a, b, a / b);
}
```

View File

@ -0,0 +1,63 @@
# 作业
1. 输入一个数字x(可能包含小数),要求用户计算下列公式的值,并且输出。
((((3x + 2)x - 5)x - 1)x + 7)x - 6
```c
#include <stdio.h>
int main() {
double x;
double y;
printf("请输入x的值");
scanf("%lf", &x);
y = ((((3 * x + 2) * x - 5) * x - 1) * x + 7) * x - 6;
printf("计算出函数的值为:%lf", y);
return 0;
}
```
2. 输入一个数字r代表圆的半径计算圆的周长和面积
周长公式为 3.14 \* r \* 2
面积公式为 3.14 \* r \* r
```c
#include <stdio.h>
int main() {
int r;
double PI = 3.14;
double c, s;
printf("请输入圆的半径r");
scanf("%d", &r);
c = PI * 2 * r; // 计算圆周长
s = PI * r * r; // 计算圆面积
printf("圆的周长为:%lf, 圆的半径为:%lf", c, s);
return 0;
}
```
3. 输入九个数字,把他变成九宫格排列,输入的前三个数在第一行,中间三个数在第二行,后三个数在第三行,并且计算出每行每列的和,计算结果写在每一行每一列的最后一列,
```c
#include <stdio.h>
int main() {
int a1, a2, a3;
int a4, a5, a6;
int a7, a8, a9;
scanf("%d %d %d", &a1, &a2, &a3);
scanf("%d %d %d", &a4, &a5, &a6);
scanf("%d %d %d", &a7, &a8, &a9);
printf("%d %d %d | %d\n", a1, a2, a3, a1 + a2 + a3);
printf("%d %d %d | %d\n", a4, a5, a6, a4 + a5 + a6);
printf("%d %d %d | %d\n", a7, a8, a9, a7 + a8 + a9);
printf("——————\n");
printf("%d %d %d", a1 + a4 + a7, a2 + a5 + a8, a3 + a6 + a9);
return 0;
}
```

138
笔记/第二课.md Normal file
View File

@ -0,0 +1,138 @@
# 函数的概念
在C语言当中main表示主函数。
* main函数必须有且只能有一个。
* main函数可以位于程序函数间的任意位置。
* main函数是程序的入口和出口。
* main必须小写。
* () 不能省略。
主函数返回值
```c
#include <stdio.h>
int main() {
int x;
x = 3;
return x + 3; // 运行完在程序返回结果那会显示6
}
```
运行结果如下图
![屏幕截图 2025-02-28 200413](C:\Users\11435\Pictures\屏幕截图 2025-02-28 200413.png)
如果程序在运行中出现错误,就会发现程序的返回值跟我们预期的返回值不一样
```c
#include <stdio.h>
int main() {
int x;
int i = 1 / 0; // 由于程序无法计算1/0的值所以会出错误然后在这里就直接结束掉程序了
x = 3;
return x + 3; // 运行完在程序返回结果那会显示6
}
```
运行结果如下图
![屏幕截图 2025-02-28 201109](C:\Users\11435\Pictures\屏幕截图 2025-02-28 201109.png)
# 常量
常量就是直接写在程序里的数据值。他们在程序的运行过程中永远都不会发生改变,故称常量。
```c
#include <stdio.h>
#define PI 3.1415926 // define常量定义之后使用PI时都会自动替换成3.1415926
// 使用常量的优点,提高可读性,方便程序的维护修改
int main() {
int a;
a = 10; // 这里的10就是常量程序无论怎样运行这里的10永远都是10
a = 20; // 20也是常量但此刻a就成为了变量因为a的值从10变为了20
printf("%d", a);
return 0;
}
```
# 变量
变量类型所对应的占位符号
| 变量类型 | 含义 | 对应占位符号 |
| -------- | ------------ | ------------ |
| int | 整数类型 | %d |
| float | 单精度浮点数 | %f |
| double | 双精度浮点数 | %lf |
| char | 字符型 | %c |
scanf函数和printf函数搭配变量使用的时候一定要确保变量占位符与变量类型是能对应上的
输出格式,在%f或%lf的中间加上小数点后面写上数字x代表小数点后保留x位小数
```c
#include <stdio.h>
int main() {
int i;
float f;
double d;
char c;
i = 3.99; // 整数类型变量遇到小数的时候会自动舍弃掉小数位
f = 3.1415926;
d = 3.1415926;
c = 'a'; // 字符变量需要用单引号括起来
printf("int类型变量值为%d \n", i);
printf("float类型变量值为%.20f \n", f);
printf("double类型变量值为%.20lf \n", d);
printf("char类型变量值为%c , 它的ASCII码为%d \n", c, c);
}
```
运行结果如下:(对比单精度浮点数和双精度浮点数的精度差别)
![屏幕截图 2025-02-28 203631](C:\Users\11435\Pictures\屏幕截图 2025-02-28 203631.png)
**实际案例**
```c
#include <stdio.h>
int main() {
int i;
float f;
double d;
char c;
printf("请输入整数,小数,小数,字符(中间用空格分开):\n");
scanf("%d %f %lf %c", &i, &f, &d, &c);
printf("int类型变量值为%d \n", i);
printf("float类型变量值为%.20f \n", f);
printf("double类型变量值为%.20lf \n", d);
printf("char类型变量值为%c , 它的ASCII码为%d \n", c, c);
}
```
运行结果:
![屏幕截图 2025-02-28 210826](C:\Users\11435\Pictures\屏幕截图 2025-02-28 210826.png)
# 算术运算符
\+ (加,或正号)
\- (减,或负号)
\* (乘)
/ (除)
% (取余数,求模)
17 % 5 = 2 | 3 % 10 = 3 | -5 % 3 = -2
在C语言中提高算式运算的优先级都统一加小括号。