C语言 05.ppt

上传人:s****8 文档编号:68704292 上传时间:2022-12-29 格式:PPT 页数:57 大小:308KB
返回 下载 相关 举报
C语言 05.ppt_第1页
第1页 / 共57页
C语言 05.ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《C语言 05.ppt》由会员分享,可在线阅读,更多相关《C语言 05.ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第二讲第二讲 基本数据类型基本数据类型教材教材:C程序设计导论程序设计导论1本讲重点本讲重点n掌握掌握C C的几种基本数据类型。的几种基本数据类型。n掌握标识符的概念掌握标识符的概念,熟悉变量和符号常量先定义后使用的熟悉变量和符号常量先定义后使用的特点。特点。n熟练掌握整型、长整型、短整型、无符号整型数据的定义熟练掌握整型、长整型、短整型、无符号整型数据的定义与存储特点。与存储特点。n熟练掌握单精度、双精度浮点数的定义与存储特点。熟练掌握单精度、双精度浮点数的定义与存储特点。n熟练掌握字符型数据的定义与存储特点,并熟悉整型数据熟练掌握字符型数据的定义与存储特点,并熟悉整型数据与字符型数据间的关

2、系。与字符型数据间的关系。n掌握定义变量的同时赋初值的方法。掌握定义变量的同时赋初值的方法。n掌握不同类型数据间的混合运算规则。掌握不同类型数据间的混合运算规则。2一个程序应包括对数据的描述和对数据处理的描述。一个程序应包括对数据的描述和对数据处理的描述。1对数据的描述,即数据结构。数据结构是计算机学对数据的描述,即数据结构。数据结构是计算机学科的核心课程之一,有许多专门著作论述,本课程就不再科的核心课程之一,有许多专门著作论述,本课程就不再赘述。赘述。在在C语言中,系统提供的数据结构,是以数据类型的语言中,系统提供的数据结构,是以数据类型的形式出现的。形式出现的。2对数据处理的描述,即计算机

3、算法。算法是为解对数据处理的描述,即计算机算法。算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。为此,决一个问题而采取的方法和步骤,是程序的灵魂。为此,著名计算机科学家沃思(著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:提出一个公式:数据结构数据结构+算法算法=程序程序 实际上,一个程序除了数据结构和算法外,还必须使实际上,一个程序除了数据结构和算法外,还必须使用一种计算机语言,并采用结构化方法来表示。用一种计算机语言,并采用结构化方法来表示。32.1 字符集及词法约定字符集及词法约定一、字符集一、字符集C语言中可用到的字符集有:语言中可用到的字符集有:n数字:数字

4、:、。、。n字母:字母:大、小写英文字母,注意大、小写英文字母,注意C程序中严格区分大小写字母,如程序中严格区分大小写字母,如 A和和a是不同的字符。是不同的字符。n空白符:空白符:空格符、制表符、换行符和换页符统称为空白符。它们主要用空格符、制表符、换行符和换页符统称为空白符。它们主要用于分隔单词,一般无其它特殊意义。于分隔单词,一般无其它特殊意义。n图形符号:图形符号:29个图形(可见)符号,即个图形(可见)符号,即 !“#%&#%&()*+,-./;:=()*+,-./;:?_|?_|主要用作各种运算符。主要用作各种运算符。n转义字符:转义字符:程序中有时需要用到某些不可见或难以打印的字

5、符,程序中有时需要用到某些不可见或难以打印的字符,C语言语言中采用转义字符来表示,如:中采用转义字符来表示,如:“n”表示一个换行符;字符表示一个换行符;字符“”被称为转义符,表示其后的字符被称为转义符,表示其后的字符“n”具有特定的含义。具有特定的含义。(常用的转义字符及其含义参看课本(常用的转义字符及其含义参看课本2.2.3字符常量字符常量)42.1 字符集及词法约定字符集及词法约定二、词法约定二、词法约定C语言中共有六类单词:注释符、标识符、关键字、常量、运算符和标点符。语言中共有六类单词:注释符、标识符、关键字、常量、运算符和标点符。语言中共有六类单词:注释符、标识符、关键字、常量、运

6、算符和标点符。语言中共有六类单词:注释符、标识符、关键字、常量、运算符和标点符。注释符注释符注释符注释符注释符是以注释符是以注释符是以注释符是以“/*”/*”开头、以开头、以开头、以开头、以“*“*/”/”结束的一个字符串,其作用是对相应程序段的功能结束的一个字符串,其作用是对相应程序段的功能结束的一个字符串,其作用是对相应程序段的功能结束的一个字符串,其作用是对相应程序段的功能作一个注解。作一个注解。作一个注解。作一个注解。标识符标识符标识符标识符用于标识变量名、符号常量名、数组名、函数名、用于标识变量名、符号常量名、数组名、函数名、用于标识变量名、符号常量名、数组名、函数名、用于标识变量名

7、、符号常量名、数组名、函数名、类型名、文件名或其他各种由用户类型名、文件名或其他各种由用户类型名、文件名或其他各种由用户类型名、文件名或其他各种由用户定义的对象名的有效字符序列。定义的对象名的有效字符序列。定义的对象名的有效字符序列。定义的对象名的有效字符序列。标识符的组成:由字母、数字和下划线组成。必须由字母或下划线中任一字符开头。标识符的组成:由字母、数字和下划线组成。必须由字母或下划线中任一字符开头。标识符的组成:由字母、数字和下划线组成。必须由字母或下划线中任一字符开头。标识符的组成:由字母、数字和下划线组成。必须由字母或下划线中任一字符开头。标准标准标准标准C C 规定有效长度为前规

8、定有效长度为前规定有效长度为前规定有效长度为前3131个字符。个字符。个字符。个字符。例如,以下为合法的标识符:例如,以下为合法的标识符:例如,以下为合法的标识符:例如,以下为合法的标识符:namenameNAMENAME_a1_a1x1x1Sum_2Sum_2以下不是合法的标识符:以下不是合法的标识符:以下不是合法的标识符:以下不是合法的标识符:12a12a以数字开头以数字开头以数字开头以数字开头#we#we以以以以#开头开头开头开头num$1num$1包含包含包含包含$字符字符字符字符sum 1sum 1中间有空格中间有空格中间有空格中间有空格5标识符命名规则标识符命名规则(1)有效字符:

9、只能由字母、数字和下划线组成,且以字母或下划线开头。(2)有效长度:随系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。例如,由于student_name和student_number的前个字符相同,有的系统认为这两个变量,是一回事而不加区别。在TC V2.0中,变量名(标识符)的有效长度为个字符,缺省值为。标识符命名的良好习惯标识符命名的良好习惯见名知意见名知意:所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。例 如,name/xm(姓 名)、sex/xb(性 别)、age/nl(年龄)、salary/

10、gz(工资)。62.1 字符集及词法约定字符集及词法约定二、词法约定二、词法约定 关键字关键字关键字关键字 又称保留字,指具有特定含义、专门用作系统的特定成分的一类标识符。又称保留字,指具有特定含义、专门用作系统的特定成分的一类标识符。又称保留字,指具有特定含义、专门用作系统的特定成分的一类标识符。又称保留字,指具有特定含义、专门用作系统的特定成分的一类标识符。C C语言的关键字不能用作变量名。语言的关键字不能用作变量名。语言的关键字不能用作变量名。语言的关键字不能用作变量名。标准语言中共有个关键字,按用途分为类:标准语言中共有个关键字,按用途分为类:标准语言中共有个关键字,按用途分为类:标准

11、语言中共有个关键字,按用途分为类:数据类型:如数据类型:如数据类型:如数据类型:如char char intint等等等等 存储类:如存储类:如存储类:如存储类:如auto returnauto return等等等等流程控制:如流程控制:如流程控制:如流程控制:如if else switchif else switch等等等等 运算符:运算符:运算符:运算符:sizeofsizeof (关键字参看书关键字参看书关键字参看书关键字参看书1616)注意关键字不能用作一般标识符,即不允许用作变量名或函数名等。注意关键字不能用作一般标识符,即不允许用作变量名或函数名等。注意关键字不能用作一般标识符,即

12、不允许用作变量名或函数名等。注意关键字不能用作一般标识符,即不允许用作变量名或函数名等。C C语言的关键语言的关键语言的关键语言的关键字都是小写的字都是小写的字都是小写的字都是小写的。例如。例如。例如。例如elseelse是关键字,但是关键字,但是关键字,但是关键字,但ELSEELSE就不是关键字。就不是关键字。就不是关键字。就不是关键字。常量常量常量常量在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。运算符运算符运算符运算符C C语言中含有相当丰富的运算符。

13、运算符与变量、函数一起组成表达式,表示各种运语言中含有相当丰富的运算符。运算符与变量、函数一起组成表达式,表示各种运语言中含有相当丰富的运算符。运算符与变量、函数一起组成表达式,表示各种运语言中含有相当丰富的运算符。运算符与变量、函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。算功能。运算符由一个或多个字符组成。算功能。运算符由一个或多个字符组成。算功能。运算符由一个或多个字符组成。标点符标点符标点符标点符C C语言中的标点符共有语言中的标点符共有语言中的标点符共有语言中的标点符共有1313个,即:个,即:个,即:个,即:()*,:=;.#.#72.2 常量常量1 1、常量的

14、定义:常量的定义:在程序运行过程中,其值保持不变的量。在程序运行过程中,其值保持不变的量。常量的常量的类型:类型:根据字面形式可将常量区分为不同的类型。根据字面形式可将常量区分为不同的类型。2 2、整型常量:整型常量:n C C语言表示语言表示整型常量的方法有以下三种:整型常量的方法有以下三种:十进制整数:用不带任何修饰的整数表示。如十进制整数:用不带任何修饰的整数表示。如123123、-456-456、0 0等;等;八进制整数:以数字八进制整数:以数字0 0开头的整数。如开头的整数。如01230123、-011-011等;等;十六进制整数:以数字十六进制整数:以数字0 0 x x开头的整数。

15、如开头的整数。如0 x1230 x123、0 x2ef0 x2ef;n C C语言中普通整型常量在机器中占用一个字长,但由于各机器字长不同,语言中普通整型常量在机器中占用一个字长,但由于各机器字长不同,所以整数所能表示的数值范围也不同。所以整数所能表示的数值范围也不同。n 系统根据整型常量的具体数值确定其类型。使用整型常量时要注意是系统根据整型常量的具体数值确定其类型。使用整型常量时要注意是否超出数值表示范围之外,例如在否超出数值表示范围之外,例如在一个一个1616位字长位字长的机器上,十进制整数的机器上,十进制整数的表示范围是的表示范围是-32768-327683276732767,那么,那

16、么02000000200000和和0 x100000 x10000均为超出表示范围均为超出表示范围的长整型常量。的长整型常量。8整型变量整型变量 1.分类 根据占用内存字节数的不同,整型变量又分为类:(1)基本整型(类型关键字为int)。(2)短整型(类型关键字为short int)。(3)长整型(类型关键字为long int)。(4)无符号整型。无符号型又分为无符号基本整型(unsigned int)、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。2.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。

17、在16位操作系统中,一般用字节表示一个int型变量,且long型(字节)int型(字节)short型(字节)。2.2 常量常量9显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1(2n*8-1-1);无符号整型变量的值域为:0(2n*8-1)。例如,PC机中的一个int型变量,其值域为-22*8-1(22*8-1-1),即-3276832767;一个unsigned型变量的值域为:0(22*8-1),即065535。2.2 常量常量103.分类(1)基本整型。在16位机中,用2字节存储,其数据范围与int型变量一样。(2)长整型(在数值后面加

18、“L(l)”)。对超出基本整型值域的整型常量,可使用长整型常量表示,其取值范围可达-(-)。例如,123l、315等。.类型匹配规则类型匹配规则为:一个整型常量,可以赋给能容纳下其值的整型变量。例如,其值在-(-)的整型常量,可以赋给int型变量和long int型变量;其值在-(-)的整型常量,就只能赋给long int型变量。注注意意:常量无unsigned型。但一个非负整型常量,只要它的值不超过相应变量的值域(即取值范围),也可以赋给unsigned型变量。112.2 常量常量n 整型常量后缀整型常量后缀 无符号整型后缀:无符号整型后缀:u u或或U U,如,如986u986u、0 xf

19、edU0 xfedU都是无符号整型常量。都是无符号整型常量。长整型后缀:长整型后缀:l l或或L L,如:如:0234l10234l1、9666L9666L都是长整型常量。都是长整型常量。二者可以同时使用,例如:二者可以同时使用,例如:9999LU9999LU、077777LU077777LU3 3、实型常量(浮点数)实型常量(浮点数)十进制数形式的浮点数:由数字和小数点组成。十进制数形式的浮点数:由数字和小数点组成。如:如:123.456123.456、0.1230.123、123.0123.0、0.00.0、123.123.等。等。指数形式的浮点数:用字母指数形式的浮点数:用字母e e表示

20、十进制指数中的表示十进制指数中的1010。如如:123e3123e3(表示表示123*10123*103 3)、)、6.E56.E5、.123e+4.123e+4都是合法的浮点常量。都是合法的浮点常量。注意:注意:e e字母前必须有数字,且字母前必须有数字,且e e后的指数必须为整型。后的指数必须为整型。如:如:e3e3、2.1e3.52.1e3.5、.e3.e3为不合法。为不合法。浮点常量如不带后缀,如上所示,都是双精度类型(浮点常量如不带后缀,如上所示,都是双精度类型(doubledouble)。)。浮点常量可带后缀浮点常量可带后缀f f或或F F,如,如3.14f3.14f,那么其类型为

21、单精度浮点型那么其类型为单精度浮点型(floatfloat)浮点常量可带后缀浮点常量可带后缀l l或或L L,如,如3.14L3.14L,那么其类型为长双精度型(那么其类型为长双精度型(long long doubledouble)12 语言的实型常量,分为两种:(1)单精度型。类型关键字为float,一般占字节(位)、提供位有效数字。(2)双精度型。类型关键字为double,一般占个字节、提供1516位有效数字。.表示形式实型常量即实数,在语言中又称浮点数,其值有两种表达形式:(1)十进制形式。例如3.14、9.8。(2)指数形式:E(e)。例如3.0+5等。132.2 常量常量4 4、字符

22、常量:字符常量:n C C语言规定以单引号语言规定以单引号包围的单个字符为字符常量。包围的单个字符为字符常量。n 如:如:A A、a a、2 2、!等。等。n 注意:注意:请区别请区别A A和和a a的不同;的不同;中的字符引用的是该字符的中的字符引用的是该字符的ASCIIASCII码值。码值。字符常量的存放形式与整数的存放形式相类似,所以字符常量的存放形式与整数的存放形式相类似,所以C C中的字符数据中的字符数据与整型数据之间具有相通性。与整型数据之间具有相通性。n 转义字符常量转义字符常量(也称控制字符常量)(也称控制字符常量)n 用用 开头的特殊形式的字符常量,用以产生一个动作。开头的特

23、殊形式的字符常量,用以产生一个动作。n 如:如:nn、rr、tt、vv、123123等。等。n 请同学们理解并记忆常用的转义字符,学会其使用方法。请同学们理解并记忆常用的转义字符,学会其使用方法。142.转义字符语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的转义字符。注意注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:、。案例案例2.1 用转义字符输出可打印字符和不可打印字符。/*案例代码文件名:AL_1.C*/*程序功能:用转义字符输出可打印字符和不可打印字符*/main()printf(“x4Fx4Bx21n”);/*等价于printf(“OK!n”);*/pri

24、ntf(“x15 xABn”);程序运行结果如下:!15转义字符常量转义字符常量转义字符转义字符 功能功能 例例AL_2.C :n n 换行换行 void main()void main()t t 横向跳格横向跳格 printf(?ab?c?derftgn);v v 竖向跳格竖向跳格 printf(htbtj?kn);b b 退格退格 r r 回车回车 程序在屏幕上的输出结果为:程序在屏幕上的输出结果为:f f 走纸换页走纸换页 “”字符字符 “”字符字符 注注:横向和纵向跳格均以横向和纵向跳格均以8 8个字符为个字符为1 1格。格。dddddd 1 1至至3 3位八进制数所代表的字符位八进制

25、数所代表的字符 xhhxhh 1 1至至2 2位十六进制数所代表的字符位十六进制数所代表的字符 f gde h j?k165 5、字符串常量字符串常量n C C语言中用双引号将一串字符括起来称为字符串常量。语言中用双引号将一串字符括起来称为字符串常量。如如“aseeasee”、“011”011”、“We are studying C”We are studying C”等。等。n 字符串常量可以看作是一个数组,这个数组的每个元素是一个字符。字符串常量可以看作是一个数组,这个数组的每个元素是一个字符。n 编译程序在编译源程序时自动在每个字符串末尾放空字符编译程序在编译源程序时自动在每个字符串末尾

26、放空字符0,0,作作为字符串结束标记。为字符串结束标记。n 要点:请区别要点:请区别”A A”与与A A的不同。的不同。n 因为它们各自在内存中存放的长度不同。因为它们各自在内存中存放的长度不同。n “A A”A A2.2常量常量AA 0ASCII码为码为0的字符的字符176、符号常量符号常量1)含义:用一个标识符表示的常量。)含义:用一个标识符表示的常量。2)定义方法:)定义方法:#define 符号常量符号常量 数值数值 例:例:#define PRICE 30 作用是定义符号常量作用是定义符号常量PRICE的值为的值为30,在程序任何用到,在程序任何用到PRICE符号常量符号常量的地方,

27、系统将自动用常量的地方,系统将自动用常量30代替。代替。3)使用要点:)使用要点:为区分符号常量与变量的不同,通常符号常量用大写字母表示(但不是为区分符号常量与变量的不同,通常符号常量用大写字母表示(但不是必须)。必须)。例例 2.1 求圆的周长和面积求圆的周长和面积(CH02-01.C)#include#define PI 3.14159 /*宏定义宏定义*/void main(void)/*主函数主函数*/float c,s,i;printf(输入圆的半径:输入圆的半径:);scanf(%f,&i);c=2.0*PI*i;s=PI*i*i;printf(圆的周长:圆的周长:%fn,c):p

28、rintf(圆的面积:圆的面积:%fn,s);2.2常量常量182.3 变量变量1 1、变量的含义:变量的含义:在程序执行过程中,其值可以被改变的量。在程序执行过程中,其值可以被改变的量。变量的构成:变量名、变量值。变量的构成:变量名、变量值。(注意区分变量名和变量值(注意区分变量名和变量值:存储单元地址与存储单元内容)存储单元地址与存储单元内容)1212a a例:例:int a,b,c;/*说明说明a,b,c为整型变量为整型变量*/char cc;/*说明说明cc为字符变量为字符变量*/double x,y;/*说明说明x,y为双精度实型变量为双精度实型变量*/C语言要求,程序里使用的每个变

29、量都必须语言要求,程序里使用的每个变量都必须“先定义,后使用先定义,后使用”。不同类型的变量应分开定义。不同类型的变量应分开定义。在同一程序的同一部分,不允许对同一变量做重复定义,也就是说,在同一程序的同一部分,不允许对同一变量做重复定义,也就是说,不允许有同名的变量。不允许有同名的变量。192.3 变量变量2 2、变量的初始化:变量的初始化:在定义变量同时可以对变量赋予初值。在定义变量同时可以对变量赋予初值。例如:例如:int i1=3,i2=4;float f1,f2=3.5;还可以在定义后赋初值。还可以在定义后赋初值。例如:例如:int i1,i2;/*定义整型变量定义整型变量i1和和i

30、2*/i1=3;i2=4;/*为为i1赋初值为赋初值为3,i2赋初值为赋初值为4*/202.3 变量变量3 3、左值和右值:左值和右值:左值(左值(lvalue):在):在C语言中表示位于赋值运算符左边的值,左值通常语言中表示位于赋值运算符左边的值,左值通常指可以定位的值,即有地址的值,可以用来存储其它的值。指可以定位的值,即有地址的值,可以用来存储其它的值。右值(右值(rvalue):在):在C语言中表示位于赋值运算符右边的值。语言中表示位于赋值运算符右边的值。例:例:int i=5;5 5地址地址 A012HA012H(左左值值)数据内容数据内容(右(右值值)变变量量I I212.3 变量

31、变量3 3、左值和右值:左值和右值:x=5;5=x;C中有些运算符仅仅需要右值,例如中有些运算符仅仅需要右值,例如“+”的两侧、赋值运算符的右边;的两侧、赋值运算符的右边;有些运算符仅仅需要左值,例如赋值运算符有些运算符仅仅需要左值,例如赋值运算符“=”的左边;的左边;有些运算符需要操作数同时有右值与左值的角色,例如有些运算符需要操作数同时有右值与左值的角色,例如+或或-。222.4 基本数据类型基本数据类型C C语言的数据类型语言的数据类型数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型字符型字符型实型实型枚举型枚举型单精度单精度双精度双精度数组数组结构类

32、型结构类型联合类型联合类型(或共用体或共用体)232.4 基本数据类型基本数据类型1 1、整型整型int基本整型基本整型short int 短整型,可简写为短整型,可简写为shortlong int 长整型,可简写为长整型,可简写为long unsigned int 无符号整型,可简写为无符号整型,可简写为unsigned unsigned short 无符号短整型无符号短整型 unsigned long 无符号长整型无符号长整型 整型存储特点:整型存储特点:C语言没有具体规定各类型数据所占内存的字节数,根据机型不同而语言没有具体规定各类型数据所占内存的字节数,根据机型不同而不同,一般以一个机

33、器字长存放一个不同,一般以一个机器字长存放一个int 型数据(型数据(见见P25表表2.2),即),即2Byte。24整型数据可表示的数据范围整型数据可表示的数据范围如果值在如果值在-32768-32768至至3276732767之间,可以赋值给之间,可以赋值给intint,long long intint型变量。型变量。如果值超出上述范围在如果值超出上述范围在-2147483648-2147483648至至21474836472147483647内,可以内,可以赋值给赋值给long long intint型变量。型变量。只有数值后面加上只有数值后面加上“l l”或或“L L”的常量才认为是长

34、整型常的常量才认为是长整型常量,如量,如123L123L。无符号型变量只能存放不带符号的整数,而不能存放负数。无符号型变量只能存放不带符号的整数,而不能存放负数。无符号型整型变量中可以存放的数的范围比一般整型变量无符号型整型变量中可以存放的数的范围比一般整型变量中数的范围扩大一倍。中数的范围扩大一倍。25整型数据的溢出整型数据的溢出例,阅读以下程序例,阅读以下程序(在在TURBO C中运行中运行)(AL_03.C)#include void main(void)int a,b;a=32767;b=a+1;printf(“a=%d,b=%d”,a,b);因为因为a+1a+1的类型为的类型为int

35、int类型,其表示范围为类型,其表示范围为-32768-327683276732767;而而a+1a+1在在1616位计算机中的结果表示成二进制为位计算机中的结果表示成二进制为1000 0000 1000 0000 00000000 00000000,最高位表示符号位,该二进制码是补码形式,是,最高位表示符号位,该二进制码是补码形式,是-32768-32768的补码。的补码。程序运行结果为:程序运行结果为:A=32767,b=-32768A=32767,b=-32768为什么为什么b b的取值不是的取值不是3276832768?26整型数据的溢出整型数据的溢出 /*/*第一种改法第一种改法*/

36、(AL_4.C)/(AL_4.C)#include#include void main(void)void main(void)long a,b;long a,b;a=32767;a=32767;b=a+1;b=a+1;printf(“aprintf(“a=%ld=%ld,b=b=%ld%ldn”,a,b);n”,a,b);如何更改?如何更改?注意注意printfprintf中中%d%d是用于输出是用于输出intint类型数据的,应该改为类型数据的,应该改为%ld.%ld./*/*第二种改法第二种改法*/(AL_5.C)/(AL_5.C)#include#include void main(v

37、oid)void main(void)intint a;long b;a;long b;a=32767;a=32767;b=a+1L;b=a+1L;printf(printf(“a a=%d,b=%ld=%d,b=%ld”,a,b);,a,b);272.4 基本数据类型基本数据类型-字符型字符型2 2、字符字符类型类型 (存储(存储ASCIIASCII码字符或码字符或8 8位二进制数)位二进制数)定义定义变量变量方式:方式:char char 字符变量名字符变量名 如:如:1 1)char c1,c2;char c1,c2;c1=c1=d d;c2=c2=s s;2 2)unsigned ch

38、ar sum;unsigned char sum;字符数据在内存中的存放形式:字符数据在内存中的存放形式:字符数据在内存中存放的是它的字符数据在内存中存放的是它的ASCIIASCII编码,通常占用一个字节。当以字符编码,通常占用一个字节。当以字符格式输出时,输出为字符;当以整型输出时,输出为整型数。格式输出时,输出为字符;当以整型输出时,输出为整型数。charchar数值范围数值范围-128-128127127unsigned charunsigned char 数值范围数值范围0 0255255282.4 基本数据类型基本数据类型-字符型字符型例例CH02_02.C:CH02_02.C:#i

39、nclude void main(void)char c1,c2;c1=a;c2=A;printf(“c1=%c,c2=%cn”,c1,c2);printf(“c1=%d,c2=%dn”,c1,c2);程序输出为:程序输出为:c1=a,c2=A c1=a,c2=A 说明:字符数据与整型数据之间可以相互赋值说明:字符数据与整型数据之间可以相互赋值。c1=97,c2=65 c1=97,c2=65 字符数据可以字符或整型数据两种方式输出。字符数据可以字符或整型数据两种方式输出。29例例:将两个小写字母转换成大写字母。将两个小写字母转换成大写字母。(AL_6.C)#include void main(

40、void)char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“c1=%c,c2=%cn”,c1,c2);程序输出为:程序输出为:c1=A,c2=Bc1=A,c2=B30允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。字符数据的算术运算。/*案例代码文件名:AL_7.C*/*程序功能:字符数据的算术运算*/main()char ch1,ch2;ch1=a;ch2=B;/*字母的大小写转换*/printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32);/*用字符形式输出一个大于256的数值*/printf(ch1+

41、200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200);printf(ch1+256=%dn,ch1+256);printf(ch1+256=%cn,ch1+256);31程序运行结果:ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353ch1+256=a 程序演示程序演示思思考考题题:用字符形式输出一个大于256的数值,会得到什么结果?(见例AL_8.C)2.6.3 字符串常量字符串常量1.字符串常量的概念和字符串长度字符串常量是用一对双引号括起来的若干字符序列。字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都

42、没有的字符串)称为空串,表示为“”(一对紧连的双引号)。32例如,“How do you do.”、“Good morning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。例如:(1)C:msdosv6.22 C:msdosv6.22 (2)I say:Goodbye!I say:Goodbye!“2.字符串的存储字符串的存储C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。注意注意:在源程序中书写字符串常量时,不必加结束字符0,否则画蛇添足。如果有一个字符串为“CHINA”

43、,则它在内存中的实际存储如下所示:最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。CHINA033综上所述,字符常量A与字符串常量A是两回事:(1)定界符不同:字符常量使用单引号,而字符串常量使用双引号;(2)长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数;(3)存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。342.4 基本数据类型基本数据类型-浮点型浮点型3 3、浮点型:用于存放实型(浮点型)数据的变量,其基本关键浮点型:用于存放实型(浮点型)数据的变量,其基本关键字为字为flo

44、atfloat。定义变量方法:定义变量方法:单精度实型变量的定义:单精度实型变量的定义:float float 实型变量名;实型变量名;双精度实型变量的定义:双精度实型变量的定义:double double 实型变量名;实型变量名;长双精度型变量的定义:长双精度型变量的定义:long double long double 实型变量名;实型变量名;如:如:float x,y;float x,y;double z;double z;存储特点:在存储特点:在PCPC机中机中 floatfloat型型变量一般占变量一般占4B4B内存空间,并提供内存空间,并提供6 6位有效数字;位有效数字;double

45、double型型变量一般占变量一般占8B8B内存空间,并提供内存空间,并提供1212位有效数字;位有效数字;long doublelong double型变量一般占型变量一般占16B16B内存空间,并提供内存空间,并提供2424位有效数字。位有效数字。35不同类型数据之间不同类型数据之间的混合运算:的混合运算:排序标准:数据类型所占内存存储空间的长度排序标准:数据类型所占内存存储空间的长度doublefloatlongunsignedintcharshort高低long doubleunsigned longunsigned long36不同类型数据之间的混合运算不同类型数据之间的混合运算一、

46、自动转换的原理一、自动转换的原理1 1、要点:以数据类型所占内存存储空间的长度最大者、要点:以数据类型所占内存存储空间的长度最大者为准。为准。如:如:intint+char+float float+char+float float 2B 1B 4B 4B 2B 1B 4B 4B2 2、例:例:设一表达式中含有设一表达式中含有int,long,unsigned,charint,long,unsigned,char类型的常数和变量,类型的常数和变量,则表达式的最后结果是则表达式的最后结果是 D D 。(A)intA)int (B)char (C)unsigned (D)long (B)char (

47、C)unsigned (D)long Note:int(2B),char(1B),unsigned(2B),long(4B)37二、强制类型转换二、强制类型转换1 1、功能:由用户根据自己的要求来决定数据类型的转换结果。、功能:由用户根据自己的要求来决定数据类型的转换结果。2 2、格式:(类型名)、格式:(类型名)表达式表达式 注意()不可缺少。注意()不可缺少。3 3、应用:、应用:(1 1)为满足运算的要求:)为满足运算的要求:如:如:intint i=3;i=3;float x=13.6;float x=13.6;(int)x%iint)x%i;(13%3=1);(13%3=1)(2 2

48、)提高运算精度:提高运算精度:如:如:intint i=10;i=10;float x;float x;x=i/3+25.5;(3+25.5=28.5)x=i/3+25.5;(3+25.5=28.5)或或 x=x=(float)i/3+25.5;(3.33+25.5=28.83)float)i/3+25.5;(3.33+25.5=28.83)4 4、例:例:38例例(ch02_03.c)(ch02_03.c)#include#include void main()void main()float x;float x;intint i;i;x=3.6;x=3.6;i=(i=(int)xint)x

49、;printf(printf(“x x=%f,i=%d=%f,i=%d”,x,i);,x,i);程序的运行结果为:程序的运行结果为:x=3.600000,i=3x=3.600000,i=3注意:注意:x x本身的值和类型都没有改变,强制类型转换只改变数值的类型本身的值和类型都没有改变,强制类型转换只改变数值的类型和值,不改变变量的类型和值。和值,不改变变量的类型和值。392.5 数据输入输出数据输入输出-输出函数输出函数1、putchar()函数函数 功能:将一个字符输出到标准输出设备。功能:将一个字符输出到标准输出设备。格式:格式:putcharputchar(c c)n使用要点:使用要点:

50、putchar(c)中的中的c可以是字符型或整型数据;可以是字符型或整型数据;c=98;putchar(c)输出字符变量输出字符变量c c的值的值 putchar(a)输出字符输出字符常量常量 putchar(0 x41)输出字符输出字符常量(常量(1616进制)进制)使用输出函数需要调用使用输出函数需要调用C C的标准的标准I/OI/O库函数,故需用预编译命令:库函数,故需用预编译命令:#include#include putchar()也可以输出一个控制字符或其它转义字符。也可以输出一个控制字符或其它转义字符。如:如:putchar(n)输出一个换行符输出一个换行符 putchar(101

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com