C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式

上传人:E**** 文档编号:89190621 上传时间:2019-05-21 格式:PPT 页数:83 大小:491.50KB
返回 下载 相关 举报
C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式_第1页
第1页 / 共83页
C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式_第2页
第2页 / 共83页
C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式_第3页
第3页 / 共83页
C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式_第4页
第4页 / 共83页
C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式》由会员分享,可在线阅读,更多相关《C语言程序设计应用教程 教学课件 ppt 作者 许勇 第2章 基本数据类型、运算符与表达式(83页珍藏版)》请在金锄头文库上搜索。

1、1,第2章 基本数据类型、运算符与表达式,2.1 数据类型 2.2 数据类型转换 2.3 运算符与表达式 2.4 位操作 2.5 数据的输入与输出,2,2.1 数据类型,3,2.1.1 常量与变量 1.标识符 C语言中的标识符可以分为系统定义标识符和用户定义标识符。 系统定义标识符: 关键字 关键字是C语言系统使用的具有特定含义的标识符,不能作为预定义标识符和用户定义标识符使用。C语言定义了32个关键字,如表2.1所示。 2) 预定义标识符 预定义标识符也是具有特定含义的标识符,包括系统标准函数名和编译预处理命令等,如scanf、printf、define和 include等都是预定义标识符。

2、,4,表2.1 C语言中的关键字,关键字必须用小写字母;不允许使用关键字为变量、数组和函数等操作对象命名。,5,用户定义标识符: 用户定义标识符用于对用户使用的变量、数组和函数等操作对象进行命名。例如将一个变量命名为a,将一个数组命名为date,将一个函数命名为fun等。 用户标识符命名时要注意: (1) C语言对英文字母的大小写敏感,即同一字母的大小写被认为是两个不同的字符。例如total与TOTAL是不同的标识符。 (2) 标识符必须由字母或下划线开头,并且除了字母、数字和下划线外,不能含有其他字符。 (3) 标识符的命名要见名知意,即通过变量名就知道变量值的含义。 (4) 标识符的有效长

3、度随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。,6,说明:,符号常量必须先定义后才能用它表示一个数值。 符号常量的值在其作用域内不能改变,也不能再被赋值。 符号常量名习惯用大写字母表示。,7,2.常量 常量是指在程序运行过程中其值不被改变的量。比如程序中的具体数字, 字符等。常量有5种类型: (1)整型常量的形式 十进制整数 :由数字(0-9)和正负号表示 例如:123、-456、0 等 八进制整数:以0开头数是八进制数 例如: 0123 即(123)8 =( 83) 10 (123) 8=182+2 81+3 80 =( 83) 10 十六进制整数:以0x或0X开头, 例如

4、: 0x123 即 (123) 16 =( 291) 10 main() int a=0123;b=0x123; /*0123是八进制数,0x123是十六进制*/ printf(“a=%d,b=%d“,a,b); 程序运行结果为: a=83,b=291,8,(2)实型常量:有小数表示形式和指数表现形式两种 小数形式 例如:45.3,0.000744,-623.0等 指数形式 例如: 45.3e0 ,4.53e-3 ,-453e-1等 (3)字符常量: 一个字符常量代表ASCII码字符集里的一个字符. 例如: :a,A,p等。 注意:a,A是两个不同的字符常量。,9,3. 变量,1. 变量概念:

5、程序执行期间值可以改变的量。 命名规则: 变量名由标识符表示,只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 例如:以下为不合法的变量名: M.D.Jess , 1add ,age /*定义了整型变量a*/,10,3. 变量的初始化 C语言允许在定义变量的同时给变量赋值,这称为变量的初始化。变量初始化的一般格式为: 数据类型标识符 变量名1=初值1,变量名2=初值2,变量名n=初值n; C语言允许在定义变量的同时初始化变量,如: int a=2; /*指定a为整型变量,初值为2*/ float f=3.45; /*指定f为实型变量,初值为3.45*/ char c=A;

6、 /*指定c为字符变量,初值A*/ 也可以使被定义的变量的一部分赋初值,如: int a=1, b=-3,c;,11,在C语言中,变量必须强制定义,其目的是: 1、凡未被事先定义的,不作为变量名。 2、每一个变量被指定为一确定的类型,在编译时就能为 其分配相应的存储单元。 3、指定每一个变量为一确定的类型,在编译时据此检查 该变量所进行的运算是否合法。 * 选变量名时,要做到“见名知意” 例如:name st_age xm nl class sum * 大小写字母是两个不同的字符,C变量名习惯 用小写字母表示。 * 建议变量名的长度不要超过8个字符。,注意:,12,2.1.2整型数据,基本型:

7、以 int 表示 短整型:以 short int 或 short 表示 1.类型 长整型:以 long int 或 long 表示 (123l、 123L) 无符号基本型(unsigned int) 无符号型 无符号短整型(unsigned short) 无符号长整型(unsigned long),(-3276832767),一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。 int i; /* 变量i 的数值范围: -3276832768 */ unsigned int j; /* 变量j的数值范围:065535 */,1.整型变量的分类,13,整型变量的字长 sh

8、ort型字长16位(2个字节)。 long 型字长32位(4个字节)。 int 型随编译程序而定(可以是2个字节,也可以是4个字节) C要求 long型数据长度不短于int型, short型不长于int型。( short=int=long) long 型可以得到大范围的数据,但同时会降低运算速度,因此除非不得已,不要随便使用long型。,14,整型数据的溢出: main() int a,b; a=32767; b=a+1; printf(“”%d,%d”,a,b); 运行结果:32767,-32767 改进:将变量a和b改成long型,并按 %ld 格式输出。,15,2. 整型变量的定义 前面

9、已提到,C规定在程序中所有用到的变量都必须在程序中指定其类型,即“定义”。这是和BASIC、FORTRAN不同的,而和PASCAL相类似。例如: int a,b; /*指定变量a,b为整型*/ unsigned short c,d; /*指定变量c,d为无符号短整型*/ 1ong e,f; /*指定变量e,f为长整型*/ 对变量的定义,一般是放在一个函数的开头部分(也可以放在程序中间,但作用域只限于某一部分程序)。 例2.4 整型变量的定义与使用。 main() int a,b,c,d; /*指定a,b,c,d为整型变量*/ unsigned u; /*指定为无符号整型变量*/ a=20;b=

10、-40;u=10; c=a+u;d=b+u; printf(“c=%d d=%d“,c,d); ,运行结果为: c30,d= -30,16,1. 实型常量的类型 多数C编译系统对实型常量按双精度(double)类型处理,以 提高运算精度。此时系统为实型常量分配8个字节的存储空间。 如果在实型常量后加字母f或F,则强调表示该数是float型 常量,这时系统会为其分配4个字节的存储空间。 2. 实型变量 实型变量可分为: 单精度(float型) 如: float x , y ; 双精度型(double型) 如:double a , b , c ;,2.1.3 实型数据,17,说明: (1). fl

11、oat 型变量在内存中占4个字节;double 型变量在内存中占8个字节。 (2). 单精度实数提供7位有效数字;双精度实数提供1516位有效数字。 (3). 一个实型常量不分float 和 double 型, 一个实型常量 可以赋给一个float 型或 double 型变量,并根据变量的类型截取实型常量中相应的有效位数字。 例如: float a; double b; a=123456.789e5 ; b=123456.789 ; 例2.5 float型数据的有效位。 main() float x; x=0.1234567890; printf(“%20.18f”,x); 运行结果: 0.1

12、23456954956054690- 在这个例子中由于x是float类型,所以x只能接受7位有效数字。在printf语句中,使用格式符号%20.18,表示printf语句在输出x时总长度为20位,小数点位数占18位,输出的结果显示了20位数,但只有0.123456共7位有效数字被正确显示出来,后面的数字是一些无效的数值。,18,1 .字符常量:用单引号括起来的一个字符。 例如: a B # ! 2. 转义字符 :指不能用符号直接表示的字符常量。 将反斜杠()后面的字符转变成另外的意义。 如n中的“n”不代表字母n而作为“换行”符。 例如: n 换行 t 横向跳格(水平制表) b 退格 v 竖向

13、跳格(垂直制表) r 回车 f 走纸换页 a 报警 0 空字符 main() printf(“Yb=n“); 运行结果: 程序运行时在屏幕上显示结果:= 程序运行时在打印机上输出结果:,2.1.4 字符数据,19,注意: 字符常量首尾的单引号是定界符,不占存储空间。 在C语言中,a和a是不同的。前者代表字符常量,后者代表一个标识符。 a和A是不同的字符常量。前者存储的是小写字母a的ASCII码值为97,后者存储的是大写字母A的ASCII码值为65。 转义字符代表一个字符,在内存中只占一个字节的存储空间。 转义字符0就是ASCII码值为0的字符,常用于表示字符串结束的标志符。 ddd形式的转义字

14、符是用ASCII码(八进制数)表示的一个字符,例如101代表字符A,012代表“换行”。 xhh形式的转义字符也代表一个字符,反斜杠后必须以小写字母x开头,后面的两位数字为十六进制数。例如,x a和x A都代表回车换行符,等价于转义字符 n 。,20,字符变量 定义形式: char 标识符1,标识符2, ,标识符n 例如: char c1, c2, c3, ch ; c1=a ; c2=b ; c3=c ; ch= d ; 说明: 1、字符变量在内存中占一个字节。 2、在内存中,是把字符对应的ASCII码值放到存储单元中. 3、字符型数据与整型数据之间可以通用.,21,main() char

15、c1,c2; c1=97;c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); 输出结果: a b 97 98,main() int i; char c; i=a; c=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i); 输出结果: a, 97 a, 97,22,2.2 数据类型转换,1. 自动转换 自动转换发生在不同数据类型混合运算时,由编译系统自动完成。用下例来具体说明数据类型的转换。 int m; float n; double b,d; long e; 计算m*n+b+24-d/e C语言的执行和其它语言一样,从左到右进行扫描,该表达式的运算次序是:见下页图. (1)不用考虑,肯定先计算m*n,但m和n类型不一样,首先将其转化为double型,然后在进行计算,m*n的计算结果仍然为double 型。 (2)由于b为字符型,所以,首先将其转换成double型,在和第一步的结果相加,计算结果为double型。 (3)顺序向右运算,24是什么型?对了,它是整型,所以首先将其转化成double型,将它变为24.0000。然后再和第二步的计算结果相加,结果当然是doub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号