1、软件环境
Vmware
虚拟机,linux系统
toStuUbuntu .rar
linux系统,ubuntu发行版。解压缩,使用VMWare打开。
2、vim 编辑器
对文件的操作:
1.编辑文件(写代码)
vi C语言源文件文件名
vi test.c 文件名不能有中文
vi 是linux下的一个文本编辑器,通过vi命令使用文本编辑器。
如果文件不存在,新建文件。如果文件存在,直接打开。
.c是C语言的文件的后缀。
2.编译文件(把代码翻译成机器码)
gcc test.c
gcc是我们使用的编译器,使用命令gcc能够运行gcc编译器。
test.c是我们要编译的C语言源文件的名字。
什么都没有说明编译成功。
3.执行文件
./a.out 运行刚刚编译好的程序
运行程序
编辑器的使用:
i 键: 进入vi编辑器的编辑模式。当按i之后,屏幕左下角会出现instert。
使用命令时,要保证是英文输入法。
ctrl+空格 或者 直接按shift
esc 键: 退出输入模式
instet没有了,说明已经退出了输入模式
切换输入法:
ctrl+空格 或者 shift
底行模式的常用命令
:wq
保存并退出编辑器
:q! 强制退出
:wq! 强制保存退出
3、hello world代码示例讲解:
#include <stdio.h>
//# 预处理 在编译之前做处理
//编译:计算机看不懂我们写的C语言代码,将我们的C语言代码翻译成计算机能看懂的机器码
//include 包含头文件
//为了做声明,声明就是向编译器解释标识符的含义,在代码中自己起的名字都是标识符
//C语言的标识符需要先声明再使用
//stdio.h std标准 io输入输出 h头文件
//<> 尖括号 去计算机的标准库中找头文件
//
//单行注释 一般是给代码加一些说明
//注释的内容不会被编译
/*
这个是
多
行
注
释
*/
//main函数 mian函数是错误的
//main函数是程序入口
//程序的逻辑开始执行的地方。
//main函数必须只能有一个
int main()
{
//printf输出函数
//""中是printf要输出的内容
//\n换行回车 将光标挪到下一行的行首
printf("hello world");
return 0;//结束程序(暂时的理解)
}
练习:
输出I’m a student
#include <stdio.h>//成对的符号一次敲完
int main()
{//左右花括号要对齐,在同一列
//{}中包含的代码,要用tab建缩进
//;表示一句话写完了
printf("i'm a student\n");
return 0;
}
4、变量
1. 如何定义变量
变量有什么用?变量是用来保存数据的。
y = x+2;变量能描述一种逻辑关系,变量中必须有值。
数据类型 变量名字 ;
整数类型:int
int a; 定义一个整型变量,变量的名字叫a
浮点类型:float
float b; 定义一个浮点型变量,变量的名字叫b
浮点型就是我们熟知小数。
上午 10 11
下午:14:15 15:10 16:05 每次10分钟
2.命名规则(标识符):
-
数字、字母和下划线组成。?/;: #$%^都不可以有 _num1 _person
-
不能以数字开头。 2a 3c 都是错的,因为以数字开头的。
-
严格区分大小写。 A a这是两个名字。 Num num不一样,第一个N不一样
-
不能以关键字起名。int float Include return
-
不要使用拼音。
你不是一个人。中文太难理解了!
将来在开发中,无论是给文件命名,还是在其他编程语言中给变量命名,都按照以上的规范起名,保证不会有问题。
3. 变量赋值
int a;//定义整型变量a,此时变量没有值。
a = 10;//给变量a赋值。此时变量a有值,值是10。
4. 什么是初始化:
定义的同时赋初值。
int age = 21;//初始化变量age,在变量age被定义出来的时候,就有值,值是21。
从结果来说,赋值和初始化没有区别。但是在过程上是有区别的。这个区别在C++中格外重要。
5. 格式符
在printf输出的时候,如果想把一些变量的值输出,怎么办?
可以在printf的""中间加入格式符,占一个位置,在输出的时候,使用指定的变量的值来填充这个位置。
int %d十进制 %o八进制整数 %x十六进制整数
float %f
#include <stdio.h>
int main()
{
int a = 10;
printf("%d\n", a);//在想输出整数的地方写%d,在真正输出的时候,会使用变量a的值来替换%d
return 0;
}
示例:
#include <stdio.h>
int main()
{
int class_number;//定义整型变量
class_number = 301; //给变量class_number赋值301
printf("class_number :%d \n", class_number);//会在输出的时候,使用变量class_number的值替换%d
return 0;
}
练习:
定义一个整型变量x, 定义一个浮点型变量y,
将 -1 赋值给变量x,将3.14 赋值给变量y,打印 x y的值
再将1 赋值给变量x,将-3.14 赋值给变量y,再打印 x y的值
#include <stdio.h>
int main()
{
int x;//程序执行到这里,x已经被创建出来
float y;//程序执行到这里,y已经被创建出来
x = -1;
y = 3.14;
printf("x=%d y=%f\n", x, y);
//int x = 1;//这里不能再定义x,第一个x已经存在了;C语言不允许同一个区域内变量重名。
x = 1;
y = -3.14;
printf("x=%d y=%f\n", x, y);
return 0;
}
6. 注释:
用来解释代码含义,注释的内容,编译器不看。
加注释更多是给自己看。
单行注释
//
多行注释
/*
*/
7. 输入和输出函数:
输入输出函数本身并不是很重要,也不难。现阶段我们的代码是没有界面的,我们想和程序进行交互,需要使用输入输出函数。
输入:
scanf("");//""中写要输入的内容
int a, b;
scanf("%d", &a);//要输入一个整数 &取变量的地址。 将输入的整数存放到变量a中。
scanf("%d%d", &a, &b);//输入两个整数,分别存放到a b中。
\n在scanf中是绝对的禁忌!!!
输出:
printf(“hello world\n”);
#include <stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);//输入的第一个整数放到a中,第二个整数放到b中
printf("a = %d b = %d\n", a, b);
return 0;
}
练习:
请大家分别定义 int float char 类型(%c)变量, char是字符型变量 ; 代码中字符常量的表示方式 ’a’ ‘b’ ‘1’
然后,通过输入来给变量赋值。最后打印输出。
在我们的控制台输入是有缓存的,从按回车那一刻开始,输入的内容才会被放到缓存中。缓存就是一段内存空间。
#include <stdio.h>
int main()
{
int a;
float b;
char c;
scanf("%d%f%c", &a, &b, &c);
printf("a=%d b=%f c=%c\n", a, b, c);
return 0;
}
我们对scanf的学习,主要是在学习期间使用它。没有必要太深入,浪费时间。
#include <stdio.h>
int main()
{
int a;
float b;
char c;
//%f和%c之间加空格,会自动帮我们略过%f后面的\n
scanf("%d%f %c", &a, &b, &c);
printf("a=%d b=%f c=%c\n", a, b, c);
return 0;
}
这个练习,主要是让大家认识scanf的坑,以及避坑的方法。
练习:
输入任意两个整数,求和。
int a;
int b;
a+b; //求两个变量的和。
#include <stdio.h>
int main()
{
int a, b;//定义同一个类型的多个变量,可以写在一行,使用 逗号隔开。
//一般都是逻辑相关联的变量会写在一起。
scanf("%d%d", &a, &b);
printf("%d\n", a+b);
return 0;
}
作业:
默打所有的示例和练习
ain()
{
int a;
float b;
char c;
//%f和%c之间加空格,会自动帮我们略过%f后面的\n
scanf("%d%f %c", &a, &b, &c);
printf(“a=%d b=%f c=%c\n”, a, b, c);
return 0;
}
[外链图片转存中...(img-sW4FvzLA-1645612890560)]
这个练习,主要是让大家认识scanf的坑,以及避坑的方法。
## 练习:
输入任意两个整数,求和。
+
int a;
int b;
a+b; //求两个变量的和。
```C
#include <stdio.h>
int main()
{
int a, b;//定义同一个类型的多个变量,可以写在一行,使用 逗号隔开。
//一般都是逻辑相关联的变量会写在一起。
scanf("%d%d", &a, &b);
printf("%d\n", a+b);
return 0;
}
作业:
默打所有的示例和练习