Linux部分
由于前面已经学习了Linux,所以在这里只做简单的补充;
vi编辑器三种模式
命令行模式:
用户在用vi编辑时文件时,最初进入的该模式。课以进行复制、粘贴等操作。
插入模式:
进行文件编辑,按ESC键可以回到命令行模式。
底行模式:
光标位于屏幕底行。可以进行文件的保存、退出、查找、替换、列出行号等。
Vi光标命令
命令 | 功能 |
---|---|
h | 方向键,向左移动光标一个字符的位置,相当于键"←" |
j | 方向键,向左移动光标一个字符的位置,相当于键“↓” |
k | 方向键,向左移动光标一个字符的位置,相当于键“↑” |
l | 方向键,向左移动光标一个字符的位置,相当于键“→” |
:N | y移动光标到第N行 |
1G | 移动光标到文件的第1行 |
G | 移动光标到文件的最后一行 |
Vi的查找命令
/string 查找字符串
n继续查找
N方向继续查找
支持正则表达式
Vi替换命令
利用:s
命令可以实现字符串的替换
:s/str1/str2/ #s当前行
:s/str1/str2/g #g全部替换
:.,$s/str1/str2/g #.,$从该行到末尾
:1,$s/str1/str2/g #1,$从第一行到最后一行(全部)
:%s/str1/str2/g #%全部
:n1,n2s/str1/str2/g #从n1到n2行
Vi复制和剪切命令
y0:将光标至行首的字符考入剪贴板
y$:将光标至行尾的字符考入剪贴板
d0:将光标至行首的字符剪切入剪贴板
d$:将光标至行尾的字符剪切入剪贴板
:n1,n2y:块复制
:n1,n2d:块剪切
计算机结构
冯 . 诺依曼模型
计算机硬件由五部分组成:输入、输出、存储器、运算器、控制器
存储程序的思想:系统的运行过程就是按照一定的顺序不断执行存储器中的程序指令的过程。
存储器的分类
主存储器即内存。程序中待处理的数据和处理的结构都存储在内存中。
外存储器是用来长期保存数据的大容量存储器。
寄存器是CPU内部的高速存储器,速度快,数目少。
什么是程序
广义上讲,为了实现一个特定的目标而预先设计的一组可操作的工作步骤,称之为一个程序。
程序就是系统可以识别的一组有序的指令(二进制)。储存在磁盘上,被加载到内存中执行。
程序设计语言的发展
机器语言
汇编语言
高级语言
程序设计步骤
计算机数据表示
送入计算机的数字、字母、符号等信息必须转换成0、1组合的数据形式才能被计算机识别。
能够进行算术运算得到明确数值概念的信息称为计算机数值数据,其余的信息成为非数值数据。
数值数据的表示
十进制、二进制、十六进制、八进制
基数和各数位的权
非数值数据表示
非数值数据包括文字、符号、图像、语言和逻辑信息等,也都是以0、1形式存在。
字符数据在机器内也被变换成二进制编码的形式。国际上普遍采用的一种编码是美国国家信息交换标准代码,简称为ASCII码。
ASCII
man ASCII
程序的编译和调试
gcc编译器
gcc(GNU compiler)是GNU推出的多平台编译器,可将C、C++源程序编译连接成可执行文件,支持以下后缀:
.c | c语言源代码 |
---|---|
.h | 程序所包含的头文件 |
.i | 已经预处理过的C源代码文件 |
.s | 汇编语言源代码文件 |
.o | 编译后的目标文件 |
gcc -o hello hello.c
或gcc hello.c -o hell
-Wall 查看警告
-o 输出可执行文件
-c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件
-g 用于调试
./hell 查看输出结果(执行)
程序调试
利用_FILE_
,_LINE_
,_FUNCTION_
实现代码跟踪调试
#include<stdio.h>
int main(int argc,char **argv)
{
printf("%s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__);
return 0;
}
C语言基础
一个程序应当包含两个部分:
对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构
对操作的描述。即操作步骤,也就是算法
算法的基本概念:
做任何事都有一定的步骤。步骤要按照一定的顺序进行,缺一不可,次序也不能错。广义的说,为解决一个问题而采取的方法和步骤就称之为算法。