1
第一部分 C语言基础知识
1. C程序
高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”,而“编译程序”是指可以把源程序转换成目标程序的软件。
由C语言构成的指令序列称为C源程序,源程序文件的后缀名为.C或.CPP。源程序经过C编译程序编译后生成后缀为.OBJ的二进制文件,然后由连接程序,把OBJ文件与C语言提供的各种库函数连接起来,生成后缀为“.EXE”的可执行文件。 2. 结构化程序
结构化程序的三种结构:顺序结构,循环结构(while、 do-while、for),选择结构(if、if-else、if-else-if、switch)
结构化程序设计的思想:模块化的设计方法。 3. 主函数(main函数)
每个C 语言程序中main 函数有且只有一个。程序的执行从主函数开始,到程序执行完后,从主函数结束。(源程序由主函数和若干个子函数组成,而主函数在源程序的位置可放在任意位置。) 4. 函数的组成
C源程序是由函数组成的。函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能。
C语言提供了极为丰富的库函数(三百多个库函数),如果要使用库函数必须在程序前面加上#include ”库函数名.h”的头文件,头文件一般有stdio.h、math.h、stdlib.h、string.h、process.h、time.h等等。
还允许用户建立自己定义的函数。定义一个函数时,函数由函数首部和函数体组成。
函数定义的一般格式:
类型说明符 函数名(形参列表) /* 函数首部的定义*/ {
说明部分;
执行部分; /*函数体*/ }
函数体通常包括说明部分和执行部分,说明部分和执行部分都由若干条语句组成。C语言的语句由表达式加分号组成,也可以说每条语句都必须以分号结尾。
在函数定义中不可以再定义函数。即不可以嵌套定义函数,但可以嵌套调用函数。 在C语言中可从不同的角度对函数分类。
从函数定义的角度看,函数可分为库函数和用户定义函数两种。
1) 库函数:由C系统提供,用户无须定义,也不必在程序中作类型说明,只需在程
序前包含有该函数原型的头文件即可在程序中直接调用。
2) 用户定义函数:由用户按需要写的函数。对于用户自定义函数,不仅要在程序中
定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。
2
从函数返回值来看,函数可分为有返回值函数和无返回值函数两种。 从参数角度来看,函数可分为无参函数和有参函数两种。 5. 编译预处理
编译预处理不是C语言的一部分,不占运行时间,不加分号。 6. 程序中的注释
C 语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。
编写注释的规则
(1)/*和*/必须成对出现;
(2)/*和*/之间的内容为注释,可以用中文,英文,可以出现在任何位置; (3)不可以再嵌套,也不可能在/和*号之间加内容。 7. 源程序书写格式
一行可以写几个语句,一个语句也可以分写在多行上;每个语句和数据定义的最后必须由一个分号结束; 8. C语言的32个关键字 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
关键字 short int long float double signed unsigned char struct enum union auto register static extern const volatile return break continue for do while switch case default 声明整型变量或函数 含义 声明短整型变量或函数 声明长整型变量或函数 声明浮点型变量或函数 声明双精度变量或函数 声明有符号类型变量或函数 声明无符号类型变量或函数 声明字符型变量或函数 声明结构体类型 声明枚举类型 声明共用体类型 声明自动存储类型 声明寄存器存储类型 声明静态存储类型 声明外部存储类型 声明只读变量 说明变量在程序执行中随时可能发生变化 函数返回语句(可以带值,也可不带值) 跳出当前循环或switch结构 结束当前循环,开始下一轮循环 循环语句 与while构成循环语句 循环语句 多选择语句 与switch构成多选择语句 与switch构成多选择语句 3
27 28 29 30 31 32 goto if else void typedef sizeof 无条件跳转语句 选择语句 与if构成选择条件语句 声明函数无返回值或声明无类型指针 自定义类型 求字节数运算符 注意:在C语言中,关键字都是小写的。
9. 标识符
所谓标识符(用户标识符)就是C语言中的变量名、函数名、数组名、文件名、类型名等。C语言合法标识符的命名规则,由字母、数字、下划线组成,且必须是由字母或下划线开头的非C语言关键字。
标识符严格区分大小写; 不能用关键字。
注意: main 、define、 scanf、 printf 都不是关键字都可以做为用户标识符号。而If 也可以做为用户标识符。因为If 中的第一个字母大写了,所以不是关键字。 10. 整型数据
整型常数
根据整型数据所占的位数,可以计算一个整型数据能表示的数据的取值范围。 通常情况下的常整数按2个字节存储,若按长整型处理,需在数的末尾加小写字母l或大写字母L。
整数的存储是以补码形式存储(原码、反码、补码); 第0位是符号位,如果符号位为0,表示是正整数,从0到15位全为1时表示的数最大。
15
则16bit能表示的最大整数是2 –1 ,即32767。最小的整数是-32768 整型常量(数)的分类 十进制表示
八进制表示 以数字 0开头
一般表示为正整数 十六进制表示 以数字0x开头
注意:如果整型常量超过机器所能表示的范围,则会发生溢出,而在C语言中的整数溢出并不会使程序出错,而是得到一个非正确的值。 整型变量
按照整型变量所占的二进制位数来分类: short(短整型) 2字节 int (普通整型)4字节 long (长整型) 4字节
根据整型变量是否带符号位来分类:
不带符号的整型变量(无符号用关键字unsigned表示,unsigned short、 unsigned int unsigned long ) 带符号的整型变量 11. 实型数据
实型常量(数)
浮点小数形式(不能省略小数点,但小数点前后若为零时可省略零)。如下列实数都是合法的, 210.35 2.345 .345 56.
指数形式 常用形式, aE?b或ae?b 。e(或E)两边都至少有一位数,b必须为整数(范围为1到3位的整数),可以为负或正,正号可以省略。如 0.345E+2、1E-12为合法
4

