commit
This commit is contained in:
commit
611314db2f
123
笔记/第一课.md
Normal file
123
笔记/第一课.md
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
63
笔记/第二课 作业解析.md
Normal file
63
笔记/第二课 作业解析.md
Normal 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
138
笔记/第二课.md
Normal 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
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
运行结果如下图
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
如果程序在运行中出现错误,就会发现程序的返回值跟我们预期的返回值不一样
|
||||||
|
|
||||||
|
```c
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int x;
|
||||||
|
int i = 1 / 0; // 由于程序无法计算1/0的值,所以会出错误,然后在这里就直接结束掉程序了
|
||||||
|
x = 3;
|
||||||
|
return x + 3; // 运行完在程序返回结果那会显示6
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
运行结果如下图
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# 常量
|
||||||
|
|
||||||
|
常量就是直接写在程序里的数据值。他们在程序的运行过程中永远都不会发生改变,故称常量。
|
||||||
|
|
||||||
|
```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);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
运行结果如下:(对比单精度浮点数和双精度浮点数的精度差别)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**实际案例**
|
||||||
|
|
||||||
|
```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);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
运行结果:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# 算术运算符
|
||||||
|
|
||||||
|
\+ (加,或正号)
|
||||||
|
|
||||||
|
\- (减,或负号)
|
||||||
|
|
||||||
|
\* (乘)
|
||||||
|
|
||||||
|
/ (除)
|
||||||
|
|
||||||
|
% (取余数,求模)
|
||||||
|
|
||||||
|
17 % 5 = 2 | 3 % 10 = 3 | -5 % 3 = -2
|
||||||
|
|
||||||
|
在C语言中,提高算式运算的优先级都统一加小括号。
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user