《C语言程序设计》-王伟-电子教案 第2章

上传人:E**** 文档编号:89400291 上传时间:2019-05-24 格式:PPT 页数:55 大小:300KB
返回 下载 相关 举报
《C语言程序设计》-王伟-电子教案 第2章_第1页
第1页 / 共55页
《C语言程序设计》-王伟-电子教案 第2章_第2页
第2页 / 共55页
《C语言程序设计》-王伟-电子教案 第2章_第3页
第3页 / 共55页
《C语言程序设计》-王伟-电子教案 第2章_第4页
第4页 / 共55页
《C语言程序设计》-王伟-电子教案 第2章_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《《C语言程序设计》-王伟-电子教案 第2章》由会员分享,可在线阅读,更多相关《《C语言程序设计》-王伟-电子教案 第2章(55页珍藏版)》请在金锄头文库上搜索。

1、第二章 数据类型、运算符和表达式,本章目录,2.1 C语言的数据类型,2.2 常量,2.3 变量,2.4 运算符和表达式,2.5 数据类型的转换,2.1 C语言的数据类型,一个程序应包括数据结构和算法。数据结构是在程序中要指定数据的类型和数据的组织形式。算法是如何对数据结构进行处理达到编程者的目的的想法,由于每个人的想法不一样,所以程序代码有可能不相同,但最后都能达到自己的目的。根据不同的编程语言,程序的概念可以这样表示: 程序=算法+数据结构+程序设计方法+语言环境 C语言的数据结构是以数据类型形式出现的。C的数据类型如下:,2.2常量, 在程序执行过程中,其值始终保持不变的量称之为常量。常

2、量具有一定的类型,类型由其表示形式决定。在C语言中,常量可以分为整型常量、实型常量、字符型常量、字符串常量、符号常量等。,2.2常量,1. 整型常量 整型常量就是整型常数,它是一种从字面即可判断其值的常量。C语言中常量可以用十进制、八进制和十六进制表示。 1十进制整数。由数字09组成但第一个数不能为0的整数 。如:123,-456,0。 2八进制整数。以0开头由07组成的整数。 如0123表示八进制数123。 3十六进制整数。以0x开头由数字09和字母af(AF)组成的的数。如0x123,代表数十六进制的123。 整型常量的写法一定要合法,下面各数不合法:078,3a。 其中078表示八进制数

3、,但包含了07以外的数8。3a表示十进制数,但包含了09以外的字符a。,2.2常量,2 .实型常量 实数又称浮点数,就是日常生活中的带小数点的数。实型常量有两种表示形式: (1)十进进小数形式。它由数字和小数点组成(注意必须有小数点)。如.123、123.、123.0、0.0都是十进制小数形式。其中123.0末尾的数字0可以省略,.123小数点前面的0可以省略,0.0可以省略其中一个0但不能都省略。 (2)指数形式。如123e3或123E3都代表123103。但注意字母e(或E)之前必须有数字,且e后面的指数必须有整数,如e3,2.1e3.5,.e3,e等都不是合法的指数形式。 一个实数可以有

4、多种指数表示形式。例如123.456可以表示为,12.3456e1,1.23456e2,0.123456e3等。把其中的1.23456e2称为“规范化的指数形式”,即在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如,指定将实数5689.65按指数形式输出,必然输出5.68965e+003。,2.2常量,3.字符型常量 由字符组成的、其值不能被改变的量称为字符型常量。根据组成结构的不同,字符型常量可分为字符常量、转义字符和字符串常量。 1字符常量和转义字符 C的字符常量是用单引号()括起来的一个字符。如a

5、,x, D,? , $等都是字符常量。注意,a和A是不同的字符常量。 除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量,就是以一个“”开关的字符序列。例如,前面已经遇到过的,在printf函数中的n,它代表一个“换行”符。这是一种“控制字符”,在屏幕上是不能显示的。在程序中也无法用一个一般形式的字符表示,只能采用特殊形式来表示。“”使后跟的一个字符失去了原有的意义,因此又称作转义字符。如,n中的“n”不代表字母n,而作为“回车换行”符处理。转义字符是一种特殊形式的字符常量,主要用以表示控制代码和图形符号。常用的转义字符见下表:,2.2常量,表中,ddd是用八进制数表示的ASCII码。

6、例如:用八进制数102(相当于十进制数66)代表ASCII字母“B”;用033代表Esc。从ASCII码表中能够查到常用的转义字符。 xhh是用十六进制数表示的ASCII码。例如:用x1B同样可以代替Esc。 由此可知,用转义字符可以表示任一ASCII码;并且任一ASCII码可以有多种表示方法。,2.2常量,有关字符常量的几点说明: 1)单引号本身只作定界符使用,而不是字符常量的一部分。 2)因字符“”和“”在字符常量中有特殊用途,因此,他们不能直接作字符常量使用。若要将这两个字符用作字符常量,应写为和,即在这些字符前再加一个反斜杠“”。 3)英文字母区分大小写。注意,a和A是不同的字符常量。

7、 4)字符常量具有数值,其值对应于ASCII码值,是0-255之间的整数。例如,A的值是65,a为97。因此,字符型常量与整型常量可以混合使用。在不至于引起混淆的情况下,0-255之间的整数可以用字符常量表示。 例如,把63写成A-2,反之亦然。 5)输出字符常量时的输出格式控制符用%c。,2.2常量,例2.1 字符型常量与整型常量混合使用实例。 要求编程输出字符“#”以及其ASCII码值,求a+1的值和输出其ASCII字符,输出整数65以及该数字所对应的ASCII字符。 main() printf(“%c , %d n“ , # , # ) ; printf(“%c , %d n“, a+1

8、, a+1 ) ; printf(“%c , %d n“ , 65 , 65 ) ; 运行结果如下:,2.2常量,2字符串常量 字符串常量是一对双引号括起来的字符序列,如, “How do you do.”, “CHINA”, “a”, “$123.45” 都是字符串常量。可以直接输出一个字符串。如 printf(“How do you do.”); 不要将字符常量与字符串常量混淆。a是字符常量,“a”是字符串常量,二者不同。有人不能理解a和“a”究竟有什么区别?C规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符0作为字符串结束标志。0是一个AS

9、SCII码为0的字符,从ASSCII代码中可以看到ASSCII码为0字符是“空操作字符”,即它不引起任何控制动作,是一个不可显示的字符。如果有一个字符串“CHINA”,实际上在内存中是 它的长度不是5个字符,而是6个字符,最后一个字符为0。,2.2常量,4 符号常量 在程序设计中,对于某些有特定含义的、经常使用的常量可以用标识符来代替。用标识符代表常量,可增加程序的可读性和可维护性。 在C语言中,代表常量的标识符称作符号常量。符号常量在使用之前必须先定义,符号常量定义的一般格式为: #define 标识符 常量 其中#define表示宏定义的一个命令,宏定义必须写在一行上。标识符称为“宏名”,

10、字符串称为“宏体”。其功能是把该标识符定义为其后的常量值。一经定义,在程序中所有出现该标识符的地方均代表该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。,2.2常量,例2.2宏定义的使用 #define PI 3.14159 /*宏定义命令定义PI 为3.14159*/ main() float s,r; /*s,r定义为实型变量用来存放实型数据*/ r=5; /*5赋值给r*/ s=PI*r*r; printf(“s=%fn“,s); 运行结果为:,2.2常量,使用符号常量的好处是: (1)含义清楚。如上面的程序中,看程序时从PI就可知道它代表“”。因此定义符号常

11、量名时应考虑“见名知意”。 (2)在需要改变一个常量时能做到“一改全改”。 在定义符号常量时,应注意以下几点: 如果程序中有多个符号常量,必须用多个命令行分别定义。即一行只能定义一个符号常量。 #define PI 3.1415926 #define TRUE 1 符号常量代表的常量可以是前文介绍的各种形式的常量,还可以代表程序的其他语法成分。,2.2常量,例2.3 #define P printf main() char a,b; a=x; b=y; a=a-32; b=b-32; P(“%c,%cn%d,%dn“,a,b,a,b); 运行结果为:,这里用P代表了库函数名printf, 3)

12、符号常量的定义可以放在程序的任何位置,但必须在使用之前预先定义;因此,一般放在程序的开始位置。,2.3变量,在程序运行过程中,其值可以改变的量称为变量。一个变量 必须有一个名字即变量名,变量名要遵守标识符的命名规则。变量名在内存中占据一定的存储单元。在该存储单元中存放变量的值。 下面各节分别介绍整型、实型(浮点型)、字符型变量。,2.3变量,1.整型变量 1整型变量的分类 整型变量的用来存放整型常量的。根据数值的范围将变量定义为基本整型、短整型或长整型。分别表示: 1)基本整型,以int表示。 2)短整型,以short int表示,或以short表示。 3)长整型,以long int表示,或以

13、long表示。 在Turbo C中一个int型的变量值的范围-215(215-1),即-3276832767。可以将变量定义为“无符号”和“有符号”类型,即加上修饰符unsigned和修饰符signed。如果既不指定为signed,也不指定为unsigned,则隐含为有符号(signed)。归纳起来,可以用以下6种整型变量。即: 有符号基本整型 signed int 无符号基本整型 unsigned int 有符号短整型 signed short int 无符号短整型 unsigned short int 有符号长整型 signed long int 无符号长整型 unsigned long

14、int,2.3变量,标准没有具体规定以上各类数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统自行决定。 Turbo C系统对各类数据分配如下:,表2.2 数据类型,一个unsigned int型的变量值的范围065535。 在计算机内整形数据占2个字节。以2为例,把2转化为二进制之后,它的存储形式为:,2.3变量,2.整型变量的定义 C规定在程序中所以用到的变量都必须在程序中先定义后使用,即“强制类型定义”。每个变量必须要有确定的类型。整型变量定义的一般形式: 整型数据类型名 变量名; 例如: int a,b; (指定变量a、

15、b为整形) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e,f为长整型) 对变量的定义,一般是放在一个函数的开头部分的声明部分(也可以放在函数中某一分程序内,但作用域只限它所在的分程序)。C语言允许在一个定义中定义多个变量,变量之间用逗号隔开。变量定义之后,编译系统就会为其分配相应的存储空间。,2.3变量,例2.4整型变量的定义与使用。 main() int a,b; /*定义a,b为基本整型变量*/ unsigned u; /*定义u为无符号整型变量*/ a=12;u=10; b=a+u; printf(“a+u=%dn“,b); 运行结果为:,可以看到不同种类的整型数据可以进行算术运算。在本例中是int型数据与unsigned int 型数据进行相加相减运算。,2.3变量,3整型号数据的溢出 在Turbo C中一个int 型变量的最大允许值为32767,如果再加1,会出现什么情况? 例2.5 整型数据的溢出。 main() int a,b; a =32767; b=a+1; printf(“%d,%d”,a,b); 运行结果为 :,2.3变量,2.实型变量 1实型变量的分类 C语言中实型变量用来存放实型常量的。实型变量分为单精度(floa

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

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

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