c语言教程第3章数据类型、运算符与表达式

上传人:san****019 文档编号:70612713 上传时间:2019-01-17 格式:PPT 页数:81 大小:605.01KB
返回 下载 相关 举报
c语言教程第3章数据类型、运算符与表达式_第1页
第1页 / 共81页
c语言教程第3章数据类型、运算符与表达式_第2页
第2页 / 共81页
c语言教程第3章数据类型、运算符与表达式_第3页
第3页 / 共81页
c语言教程第3章数据类型、运算符与表达式_第4页
第4页 / 共81页
c语言教程第3章数据类型、运算符与表达式_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《c语言教程第3章数据类型、运算符与表达式》由会员分享,可在线阅读,更多相关《c语言教程第3章数据类型、运算符与表达式(81页珍藏版)》请在金锄头文库上搜索。

1、3.1 C语言的数据类型 3.2 常量与变量 3.3 整型数据 3.4 浮点型数据 3.5 字符型数据 3.6 变量赋初值,第3章 数据类型、运算符与表达式,3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式 习题,3.1 C语言的数据类型,单精度型 float (占4字节),双精度型 double (占8字节),3.2 常量与变量,3.2.1 常量和符号常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 如:12,-90 (2)实型常量 如:1.72,-9.73

2、, 3.65e-6 (3)字符常量 如:a, +, n, 0 (4)字符串常量 如:“max”, “good”, “123” (5)符号常量 习惯上其常用大写字母。 常量的类型,可通过书写形式来判别。,例3.1 (TL3-1.C) #include #define PRICE 30 void main( ) int num, total; num=10; total =num * PRICE; printf(“total = %dn”, total); ,程序演示,3.2.2 变量 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须

3、有一个名字变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。,用户标识符可以作为:,1. 变量名 2. 符号常量 3. 数组名 4. 自定义的函数名 5. 指针变量名 6. 结构体类型名 7. 共用体类型名 8. 枚举类型名 9. 文件指针变量名等,.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前个字符相同,有的系统认为这两个变量,是一

4、回事而不加区别。 在Turbo C 中,变量名(标识符)的有效长度为32个字符,缺省值为32。,(3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符 (即C语言区分大小写字母) 。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 关键字必须用小写。,思考题: 在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗?,标识符命名的良好习惯见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。 例如,name

5、/xm(姓名)、 sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。,在C语言程序中,所用的变量必须先定义、后使用。 (P16.C) 变量的分类: (1)整型变量(可用来存放整型常量) (2)实型变量(可用来存放实型常量) (3)字符型变量(可用来存放字符型常量) 注意:C语言中没有字符串变量,程序演示,4.变量的定义与初始化 (1)变量定义的一般格式 存储类型 数据类型 变量名1, 变量名2; 例如: float max, min,length, area; int sum,num1,num2; char c1,c2; double x,y,z;,3.3 整型数据,3.

6、3.1 整型常量的表示方法 .三种表示形式 整型常量即整常数,在语言中可用三种形式表示: 十进制整数 例如10、36。 八进制(以数字开头)。 例如012。 十六进制(以数字+小写字母x开头)。例如0x36。,3.3.2 整型变量,1. 整型数据在内存中的存放形式 数据在内存中是以二进制补码形式存放的。 如果定义了一个整型变量i: int i; /* 定义为整型变量 */ i=10; /* 给 i 赋以整数10 */,负数的补码,2. 整型变量的分类,三种整型变量: (1) 基本整型,以 int 表示。 (2) 短整型, 以short int表示,或以 short 表示。 (3) 长整型, 以

7、 long int 表示,或以 long 表示。,归纳起来,可以用以下6种整型变量,即: 有符号基本整型 signed int 无符号基本整型 unsigned int 有符号短整型 signed short int 无符号短整型 unsigned short int 有符号长整型 signed long int 无符号长整型 unsigned long int,整型变量的分类,int a; unsigned int b;,一个整数(以13为例)在存储单元中的存储情况,3. 整型变量的定义,int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无

8、符号短整型) long e,f; (指定变量e、f为长整型),例3.2整型变量的定义与使用。,#include void main( ) int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn“,c,d); 运行结果为 a+u=22,b+u=-14,4. 整型数据的溢出,例3.3 整型数据的溢出。 main( ) int a,b; a=32767; b=a+1; printf(“%d,%d“,a,b); ,运行结果为 3276

9、7,-32768,3.3.3 整型常量的类型,注意以下几点: (1) 一个整数,如果其值在-32768+32767范围内,认为它是int型,它可以赋值给 int型 和 long int 型变量。,注意以下几点:,(2) 一个整数,如果其值超过了上述范围,而在-2147483648+2147483647范围内,则认为它是长整型,可以将它赋值给一个long int型变量。,注意以下几点:,(3) 如果某一计算机系统的c版本(例如turbo c)确定short int与int型数据在内存中占据的长度相同,则它的表数范围与int型相同。因此,一个int型的常量也同时是一个short int型常量,可以

10、赋给int型或short int型变量。,注意以下几点:,(4) 一个整常量后面加一个字母u,认为是unsigned int型,如12345u,在内存中按unsigned int规定的方式存放(存储单元中最高位不作为符号位,而用来存储数据,见图2.4(b)。如果写成-12345u,则先将-12345转换成其补码53191,然后按无符号数存储。,注意以下几点:,(5) 在一个整常量后面加一个字母 l或 L,则认为是 long int 型常量。,3.4 浮点型数据,3.4.1 浮点型常量的表示方法 实数有两种表示形式: (1) 十进制小数形式。 它由数字和小数点组成(注意必须有小数点)。 .123

11、、 123.、 123.0、 0.0 都是十进制小数形式。,(2) 指数形式。,如 123e3 或 123E3 都代表123103。但注意字母 e (或 E )之前必须有数字,且e后面的指数必须为整数。 如 e3、2.1e3.5、e3、 e 等都不是合法的指数形式。,3.4.2 浮点型变量,1. 实型数据在内存中的存放形式,2. 实型变量的分类,C实型变量分为以下三类: 单精度 ( float 型 占4B) 双精度 ( double 型 占8B ) 长双精度型 ( long double 占8B/10B),对每一个实型变量都应在使用前加以定义,float x,y, (指定x、y为单精度实数)

12、double z; (指定z为双精度实数) long double t; (指定t为长双精度实数),3. 浮点型数据的舍入误差,例3.4实型数据的舍入误差。 main( ) float a,b; a = 123456.789e5; b = a + 20 ; printf(“%f“,b); ,3.4.3 浮点型常量的类型,C编译系统将实型常量作为双精度来处理。,3.5 字符型数据,3.5.1 字符常量 C的字符常量是用单引号(即撇号)括起来的一个字符。 如 a,x,d,?, 等都是字符常量。注意,a和A是不同的字符常量。,转义字符,C还允许用一种特殊形式的字符常量,就是以一个“”开头的字符序列。

13、 n, t, 0 ddd, xhh,3.5.2 字符变量,字符型变量用来存放字符常量,请注意只能放一个字符,不要以为在一个字符变量中可以放一个字符串(包括若干字符)。字符变量的定义形式如下: char c1,c2; c1=a;c2=b;,3.5.3 字符数据在内存中的存储形式及其使用方法,字符的相应的ASCII代码放到存储单元中,例3.6向字符变量赋予整数。,main( ) char c1,c2; c1=97; c2=98; printf(“%c %cn“,c1,c2);/*以字符形式输出*/ printf(“%d %dn“,c1,c2);/*转换为整数形式输出*/ ,字符型数据和整型数据是通

14、用的,例3.7大小写字母的转换。,main( ) char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“%c %c“,c1,c2); 运行结果为 A B,字符数据与整型数据可以互相赋值,如: int i; char c; i=a; c=97; printf(“%c,%dn“,c,c); printf(“%c,%dn“,i,i); 输出: a,97 a,97,3.5.4 字符串常量,字符串常量是一对双引号括起来的若干字符序列。如: “how do you do.”, “CHINA”, “a”, “123.45”, “” 可以输出一个字符串,如:

15、printf( “how do you do.“);,注意:,不要将字符常量与字符串常量混淆。a是字符常量,“a”是字符串常量,二者不同。 假设 c 被指定为字符变量: char c; c=a; 是正确的。而 c=“a“; 是错误的。 c=“CHINA“ 也是错误的。,字符串结束标志,C规定以字符0作为字符串结束标志。0是一个ASCII码为0的字符,从ASCII代码表中可以看到ASCII码为0的字符是“空操作字符”,即它不引起任何控制动作,也不是一个可显示的字符。,字符串常量与字符常量的区别,例如:a 与 “a” (1)定界符不同:字符常量使用单引号,而字符串常量使用双引号; (2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数; (3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,3.6 变量赋初值,C语言允许在定义变量的同时使变量初始化。 如: int a=3; /* 指定a为整型变量,初值为3 */ float f=3.56; /* 指定f为实型变量,初值为 3.56 */ char c=a; /* 指定c为字符变量,

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

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

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