一. C语言程序设计
1.预备知识
1.1 计算机运行过程:
计算机:广义上具有逻辑运算功能的设备或机器。
计算机组称:
硬件系统(基础组成):
1. CPU (控制器/运算器)
2. 内存储器
3. 输入设备
4. 输出设备
5. 外存储器
软件系统:
1.2 计算机运行过程:
五大基础组成间的协同工作:
1) 通过输入设备或者外存储器加载数据到内存:
2) CPU 到内存中数据或控制指令来处理或执行;
3) CPU 将处理完成的结果数据放还到内存;
4) 将内存中的结果数据输出到输出设备进行结果展示,或者输出到外存储器进行长期保存。
把握原则: 计算机只能处理内存中的数据。
1.3 计算机语言
1) 机器语言 (0,1指令码) 是计算机唯一可以直接运行的指令
2) 汇编语言 (符号化的指令) 是必须要借助汇编程序来转换为机器语言
3) 高级语言 C,C++,Java,Python.. 必须要经过编译程序来编译转换为机器语言
2. C 语言概述
1. 1973年 C 基于B语言改造的主机完成;
2. 1982年 ANSI成立了一个委员会以确定C语言的标准
3. 1989年 ANSI 发布了第一个完整的C语言标准,称为 ANSI C;
4. 1990年 ISO 沿用 ANSI C,称为"标准C";
5. 1999年 C经过一次修订,称为"C99标准", 引入(内联函数,变长数组,可变大小结构体...)
6. 最新的C语言标准为 2018年6月份发布的 “C18” 引入(泛型机制,原子操作,多线程支持...)
C语言标准:
1. 普遍使用 ANSI C, 标准 C
2. GNU 扩展C标准
3. C语言开发过程。
1. 创建一个源文件(.c),在源文件中编写C语言代码
2. 编译源文件,生成一个计算机可执行的程序文件
3. 运行可执行程序,验证设计目标是否达到。
编译:
工具: GNU -> gcc
编译过程:(检查语法错误)
预处理
编译
汇编
链接
4. C语言的组成
1. 注释性文字 (说明性的文字,并不会被编译器去编译)
/* */: 多行注释
// : 单行注释
注意:注释性的文字在C语言程序中不是必须的,但还是强烈建议在C语言程序中
添加适当的注释性文字,以便提高代码可读性。
2. 预处理指令
#include <stdio.h>
在C程序中使用了非自定的功能模块,需要对使用的功能模块进行显示声明,声明的
最简单方法就是包含相应的头文件,包含头文件的方法,就是借助于预处理指令 #include
注意:如果程序中使用了预处理指令,往往将预处理指令放置在源文件开头处
3. 主函数
C语言程序是由函数组成的,并且有且仅有一个主函数(main),
main函数是作为C程序的入口:
函数的一般格式:
返回类型 函数名(函数参数) // 函数首部 函数头
{
// 函数体
}
返回类型: 就是函数执行完成后结果数据的类型
函数参数: 函数完成功能时需要的数据,函数参数是可以没有的,
也就是函数参数可以省略,但注意函数名后的()不能省;
{} : 表示函数体,函数体内用于提供实现函数功能的C语言的语句。
C语言的语句: 函数是由语句组成的,C语言语句往往是以 ; 结束
5. C语言的标准输入输出
C语言的标准输入输出功能的实现是要借助于 C语言标准库提供的函数。
使用C语言输入输出库函数时,需要包含 #include <stdio.h> 头文件
C语言的标准输出 (printf):
printf函数的使用格式:
printf("格式控制",输出列表);
格式控制:用一双双引号括起来的部分:
1) 普通字符; 作为说明性的文字被printf 原样输出的;
2) 转义字符: 含有'\'和特定的字符组成,例子: \n (换行),\r, \t, \0....
3) 格式化符: 含有'%'和特定的字符组成,例子: %d,%s,%c, %f, %lf....
输出列表:
1) 输出列表可以没有,但是一旦格式控制中存在格式化符,则输出列表就必须提供;
2) 输出列表中的数据可以存在多个,取决于格式化符个数,如果输出列笔数据有多个
用 ,隔开,并且数据的顺序一定要和格式化符一一对应。
C语言的标准输入 (scanf):
scanf函数的使用格式:
scanf("格式控制",地址列表);
课堂案例: 从键盘输入一个圆的半径,求圆的面积并进行输出。
引申知识点:变量定义:
变量定义格式:
数据类型 变量列表;
数据类型:int float char double ....
定义一个变量的过程,其实是系统在内存中申请内存空间的过程,申请内存空间的大小取决于
数据类型,且系统会将变量名当作申请到的内存的标识符,也就是说当要访问内存时,可以通过
变量名访问到对应的内存空间;
变量的命名规范:
变量名可以是数字,字母及下划线的组合,但不能以数字开头,而且不能和系统中已有的标识符冲突;
例如: int 3var; //error
int a,b,c; //OK
6. C编码规范
1. 缩进书写;
2. 充分的注释;
3. 适当的空行;
4. 对齐
5. 一行上尽量只书写一条语句
6. 对标识符的定义尽量做到 见名思义;