第2章 C语言程序基础.ppt
《第2章 C语言程序基础.ppt》由会员分享,可在线阅读,更多相关《第2章 C语言程序基础.ppt(73页珍藏版)》请在三一文库上搜索。
1、第2章 C 语言程序基础,主要内容,2.1 C程序的基本结构,编译预处理命令 void main(void ) 声明部分 执行部分 类型 子函数名(形参表) 声明部分 执行部分 ,2.2 C语言基本语法成分,2.2.1 C语言的字符集 字符是组成语言的最基本的元素。C语言字符集由字母、数字、空格、标点和特殊字符组成。 1. 字母: 小写字母az共26个,大写字母AZ共26个 2. 数字: 09共10个 3. 特殊符号: ! # % : ? “ ( ) 4. 空白符,标识符,2.2.2 标识符 用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。 也就是说,标识符
2、是一个名字 C语言中的标识符只能由字母、数字和下划线组成 而且第一个字符不能是数字 不能将关键字作为标识符,标识符,C语言中的标识符只能由字母、数字和下划线组成 而且第一个字符不能是数字,问题:下面四个选项中,均是合法的标识符的选项是 (A) a1 b! 12_e (B) min f12 1x (C) a int PI (D) x2 m_nsum min,标识符,标识符的注意事项 C语言区分大小写,大小写不同的标识符是不同的 例如:Student和student是两个不同的标识符 标识符的长度有限制,要注意开发环境的限定 Turbo C 允许的标识符的最大长度是32 标识符的命名用有意义的单词
3、组合 如:student_num表示学号, 不要一味地使用a, b, c等简单的标识符名,易混淆认错的字符:数字1和字母l以及I,数字0与字母O, 数字2与字母Z和z,关键字,2.2.3 关键字 关键字,也叫做保留字,是指在C语言中具有特定的含义的字符,它们由系统定义,不能做为他用。,C语言中的一共有32个关键字:,运算符,2.2.4 运算符 运算符表示各种运算功能。运算符由一个或多个字符组成,如: +、- 、*、/、&等。可以组成以下表达式式 :,a+b; 2*2.1415926*r;,分隔符,2.2.5 分隔符 C语言中,分隔符有逗号、空格、Tab和回车等。 逗号:主要用于在类型说明和函数
4、参数表中分隔各个变量; 空格、Tab和和回车多用于语句和各单词之间的间隔符。,注意:在关键字或标识符之间必须要有一个以上的分隔符作间隔, 否则将会出现语法错误,例如把int a, b; 写成 inta, b; C编译器会把 inta 当成一个标识符处理,其结果必然出错。,2.3 C语言的数据类型,我们上节课讲到: 著名的计算机科学家N. Wirth提出: 程序 = 数据结构(描述数据) + 算法(描述操作) 一个良好的程序,应当综合考虑算法和数据结构 算法处理的对象是数据,而数据是以某种特定的形式存在的 数据结构是指数据的组织形式,C语言的数据类型,C语言的数据结构是以数据类型形式出现的,常量
5、和变量,常量 常量:在程序的运行过程中,其值不能被改变 常量的分类:,0、-2、123,0.2、4.8、1.3e20,A 、g、+、?,(用标识符表示的常量),#include #define PRICE 30 void main(void) int num, total; num = 10; total = num * PRICE; printf(“total=%d“, total) 运行结果:total=300,常量和变量,使用符号常量的优点: 含义清晰(定义时要注意采用合适的常量名) 一改全改,#include #define PRICE 30 void main(void) int n
6、um, total; num = 10; total = num * PRICE; printf(“price=%d, total=%d“, PRICE, total) 运行结果:price=30, total=300,#include #define PRICE 25 void main(void) int num, total; num = 10; total = num * PRICE; printf(“price=%d, total=%d“, PRICE, total) 运行结果:price=30, total=300,#include #define PRICE 25 void ma
7、in(void) int num, total; num = 10; total = num * PRICE; printf(“price=%d, total=%d“, PRICE, total) 运行结果:price=25, total=250,用指定的字符串PRICE来代替“25”,在预编译处理时 会将程序中所有“PRICE”用“25”代替,替换时是做简单地置换,不作正确性检查,常量和变量,使用符号常量的优点: 含义清晰(定义时要注意采用合适的常量名) 一改全改,#include #define PRICE 25 void main(void) int num, total; num =
8、10; total = num * PRICE; printf(“price=%d, total=%d“, PRICE, total) 运行结果:price=25, total=250,宏定义(参见第13章 编译预处理),常量名一般用大写字母,#define命令出现在函数外 有效范围是从定义处到源文件结束,宏定义不是C语句,不需要分号,常量和变量,使用符号常量的优点: 含义清晰(定义时要注意采用合适的常量名) 一改全改,#include #define PRICE 25 void main(void) int num, total; PRICE = 50; num = 10; total =
9、num * PRICE; printf(“price=%d, total=%d“, PRICE, total) 运行结果:price=25, total=250,常量不能被再次赋值,编译时,简单地将“PRICE”替换成“25”,此语句被替换成:25 = 50,常量和变量,变量 变量:在程序的运行过程中,其值可以被改变的量 变量必须用有效的标识符作为名字 变量名实际上是存放变量值的存储单元地址的抽象,int sum;,sum,sum=0;,sum=sum+1;,变量的定义,常量和变量,数据类型 变量名1,变量名2,变量名3;,例如: int sum,total; float score; cha
10、r ch;,常量和变量,变量 C语言要求对所有变量:先定义,后使用(强制定义),保证程序中的变量名使用地正确 如:程序在声明部分声明变量student: int student; 在执行部分错写成studant: studant = 30; 在编译的时候会检查出studant未定义,不做为变量名,编译时分配相应的存储单元 编译时可以检查该变量所进行的运算是否合法 如:在程序的声明部分做了如下定义: int a; float b; 在程序的执行部分有下面运算: a % b,编译时会给出相关的出错信息,整型数据,整型(int型)数据占有4个字节的存储空间,以二进制补码的形式存储,它的取值范围为-2
11、1474836482147483647即-231(231-1),整型数据没有小数部分。,整型数据,整型常量的表示 十进制 如:123,-123,0 八进制 (以 0 开头) 如:0123 表示十进制数83 十六进制(以 0x 开头) 如:0x123表示十进制数291,整型数据,整型变量在内存中的存储 整型变量在内存中是以二进制补码的形式存放的,int i=10;,int j=-10;,取反,加1,以2字节为例(int 型占 4个字节),实型数据,实型(float)数据(也称浮点型)占有4个字节的存储空间,以浮点的形式存储,它的取值范围为(2.410-382.41038)。,实型数据,实型常量的
12、表示 小数形式 如:.123 123. 0.123 0.0 指数形式 如:123e3 123E3 1.23e5 注意:e的前面必须有数字,后面必须是整数 如:e32 1.23e2.3 e 都是不合法的,实型数据,实型变量在内存中的存储 实型变量在内存中以指数的形式存放,一般占4个字节,float f = 3.14159;,3.14159 = 0.314159 101 = 0.1100100 10000111 11100111 101,阶码,小数部分,数符,阶符,实型数据,实型变量的种类 基本类型:float 根据数值的范围分为: float(单精度型) double(双精度型),#includ
13、e void main() float a,b; a = 12345.6789e5; b = a + 20; printf(“a=%fnb=%f“,a,b); ,实型数据,实型常量的类型 C编译系统将一个实数做为double类型处理,#include void main() double a; float b; a = 2.45678 * 4523.65; b = 2.45678 * 4523.65; printf(“a=%fnb=%f“,a,b); ,先按double型计算出 2.456784523.65=1113.612847 然后将前7位数赋值给float型的b 提高计算的精确度,实型数
14、据,实型常量的类型 C编译系统将一个实数做为double类型处理, 这样可以保证计算结果的精度,但是运算速度降低了 可以在实数后面加f或F,表示float型实数, 编译系统会按单精度实数(32位)处理 如:123.456f 456.789F -1.5e4F,字符型数据,在C语言中,字符型数据包括字符和字符串两种。 a 是一个字符,而 “Windows“ 是一个字符串 在内存中,一个字符占一个字节,存储的是ASCII码 (ASCII码表,见P352附录B) ASCII码在形式上就是0127之间的整数, 字符的存储形式实际上就是对应的ASCII码(整数形式) 字符型数据和整型数据在一定范围内是可以
15、通用的,字符型数据,字符常量的表示 用单引号括起的单个字符 如:a B ? 用“”开头的转义字符 (第五章p96),012 或 xa 表示ASCII码为10的“换行” 101 或 x41 表示ASCII码为65的字母A 000 或 x00 表示ASCII码为0的“空操作”字符,问题:已知换行的ASCII码值为10,则下列正确表示换行符的方法是:(ch是字符型变量) (A) ch = n; (B) ch = 10; (C) ch = 12; (D) ch = x10; (E) ch = xa; (F) ch = 10;,字符型数据,字符型数据,字符常量的表示,#include void main
16、() printf(“ ab ct derftgn“); printf(“htibbj k“); ,显示器,a b c d e,f,h i,j,打印机,a b c d e,f,g,h i,j,k,显示器显示结果的特点: 向回返的特殊符号(r b 等),并没有清除原有的内容 向前进的特殊符号(t 空格)或字符修改了原有的内容,字符型数据,字符变量在内存中的存储 一个字符变量只能存放一个字符 定义形式: char c1, c2; 赋值: c1 = a; c2 = n; 字符数据在内存中以ASCII码(二进制)的方式存储 占一个字节,字符型数据,字符变量在内存中的存储 字符数据可以和整型数据通用,#
17、include void main() char ch1, ch2; ch1 = 97; ch2 = 98; printf(“%c, %cn “, ch1, ch2); printf(“%d, %dn “, ch1, ch2); ,字符型数据,字符变量在内存中的存储 字符数据可以和整型数据通用,#include void main() char c; int x; c = 97; x = b; printf(“%c, %dn “, c, c); printf(“%d, %cn “, x, x); ,字符型数据,字符变量在内存中的存储 字符数据可以和整型数据通用,#include void ma
18、in() /*大小写字母转换*/ char c1, c2; c1 = A; c2 = c1+32; c1 = c1 + 3; printf(“%c, %dn “, c1, c1); printf(“%c, %dn “, c2, c2); ,字符型数据,注意: 符常量只能用单引号括起来,不能用双引号。 字符常量只能是一个字符,不能是多个字符。 字符可以是字符集中任意字符。但数字被定义为字符型之后与其本身数值是不相等的。 例如:0和0 是不同的。,字符型数据,字符数据的运算 “+”、“-”和比较运算。 注意:+、-运算相当于为字符的ASCII码加上或减去一个整数值,但运算后的值仍然在ASCII码值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 C语言程序基础 语言 程序 基础
链接地址:https://www.31doc.com/p-4333564.html