《C语言程序设计基础与实训教程》数据类型运算符和表达式

上传人:平*** 文档编号:47630364 上传时间:2018-07-03 格式:PPT 页数:107 大小:790.85KB
返回 下载 相关 举报
《C语言程序设计基础与实训教程》数据类型运算符和表达式_第1页
第1页 / 共107页
《C语言程序设计基础与实训教程》数据类型运算符和表达式_第2页
第2页 / 共107页
《C语言程序设计基础与实训教程》数据类型运算符和表达式_第3页
第3页 / 共107页
《C语言程序设计基础与实训教程》数据类型运算符和表达式_第4页
第4页 / 共107页
《C语言程序设计基础与实训教程》数据类型运算符和表达式_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《《C语言程序设计基础与实训教程》数据类型运算符和表达式》由会员分享,可在线阅读,更多相关《《C语言程序设计基础与实训教程》数据类型运算符和表达式(107页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据类型、运算符和表达式 (时间:3次课,6学时)学习目的与要求:本章是包括C语言的数据类型、运算符和表达 式, 是C语言程序设计最基础的部分。通过这一章 的学习,使学生了解C语言的数据类型,掌握各种 数据类型所占的字节数、使用方法、类型的自动转 换和强制转换,标志符的使用规则;掌握各种常量 的使用,变量的基本概念及定义、初始化和在内存 中的存储形式;掌握算术运算符的使用,运算符的 使用规则、优先级和结合性等。第2章 数据类型、运算符和表达式 第2章 数据类型、运算符和表达式2.1 C的数据类型2.2 常量2.2.1 整型常量2.2.2 实型常量2.2.3 字符型常量和符号常量2.2.

2、4 符号常量2.3 变量2.3.1 变量概述、标志符2.3.2 整型变量2.3.3 实型变量2.3.4 字符变量2.3.4 变量赋初值2.3.5 不同类型数据间的相互转换2.3.6 数值的定点表示形式与浮点表示 形式2.4 运算符和表达式2.4.1 C运算符简介2.4.2 算术运算符和算术表 达式2.4.3 赋值运算符和赋值表 达式2.4.4 逗号运算符和逗号表 达式 2.5 上机实训 2.6 习题第2章 数据类型、运算符和表达式2.1 C的数据类型 在第一章中,我们已经看到程序中使用的 各种变量都应预先加以定义,即先定义,后使 用。对变量的定义可以包括三个方面: 数据类型存储类型 作用域在本

3、章中,我们只介绍数据类型的说明。 其它说明在以后各章会陆续介绍。所谓数据类 型是按被定义变量的性质、表示形式、占据存 储空间的多少和构造特点来划分的。在语言 中,数据类型可分为:基本数据类型,构造数 据类型,指针类型,空类型四大类。见图2-1。 数据类型基本类型构造类型整型(int)字符型( char )实型(浮点型)枚举类型( enum )逻辑型(bool)数组 ( type )结构体( struct )共用体 ( union )单精度型( float )双精度型( double )指针 ( type )空类型 ( void )图图2-1 C语语言的数据类类型1、基本数据类型:基本数据类型最

4、主要的特点 是,其值不可以再分解为其它类型。他包括整型、字 符型、实型(分为单精度型和双精度型)和枚举类型 四种。2、 构造数据类型:构造数据类型是根据已 定义的一个或多个数据类型用构造的方法来定义的。 也就是说,一个构造类型的值可以分解成若干个“成 员”或“元素”。每个“成员”都是一个基本数据类型或 又是一个构造类型。在C语言中,构造类型有以下几 种:数组类型结构体类型共用体(联合)类型3 指针类型:指针是一种特殊的,同时又是具 有重要作用的数据类型。其值用来表示某个变量在内 存储器中的地址。 4 空类型:空类型void只能申明函数的返回值 类型,不能申明变量。在调用函数值时,通常应向调 用

5、者返回某种类型的一个函数值,如果不需要有函数 返回值,则在函数定义前面加上void表示空类型。在 后面函数中还要详细介绍。 在本章中,我们主要介绍基本数据类型中的整型 、浮点型和字符型。其余各种类型以后分别有章节介 绍。 2.2 常量 在程序运行过程中,其值不能改变的量称 为常量。如我们在数学里面的123,0,45为 整型常量,2.8,-0.56等称为实型常量,在C语 言里,还有一种经常用到的常量如a, x等称 为字符常量,“abc“,“123“等称为字符串常量。 下面就各种常量作一些介绍。 2.2.1 整型常量 C语言里面整型常量可以用十进制、八进制和十六 进制三种形式表示。 1 、十进制常

6、量:由数字19开头其余各位由09组 成,各数字间不允许有空格符及其他字符。如123,0等 。十进制里还有一种常量叫长整型常量,占4个字节。一 般在十进制常量后加上L(或l)就变成长整型常量。如 123L。 2、 八进制常量:以0开头,其它位由数字07组成 。如0123等。 3、 十六进制常量:以0x或0X开头,其它位由数字0 9或字母af(或AF,大小写意思相同)组成。如 0x123a,0Xabc等。2.2.2 实型常量 实数(real number)又称浮点数( floating-point number),他有两种表示形式: 1、 十进制小数形式。由数字和一个小数 点组成,且小数点不可缺少

7、。如:3.12、.123、 123.、0.0等均是合法形式。注意:小数点前面 或后面没有数字也是合法的形式。2、 指数形式。任何一个合法的指数形式 的实型常量从左往右都是由数字,字母e(或E )和指数三部分组成。如:45.3e5、-231.23E12 、-0.12e-2、12e0等均是合法形式。 注意:用指数形式表示实数时,e前必须有 数字(如e3错误,系统会将其视为一个变量) ,e后面的指数必须是整数。 一个实数可以有多种指数的表示形式,我们只 要在改变小数点位置时相应的改变指数的值即可。如 231.23E12还可以写成23.123E13、2312.3E11、 2.3123E14、0.231

8、23E15等等,这样就容易造成用户和 系统处理数据的不便,所以C语言有一个“规范化指数形 式”的概念,这种形式规定在字母e(或E)前的小数部分 中,小数点左边应有一位(且只能有一位)非零的数字。 如前面几个例子中,只有2.3123E14是规范化指数形式 ,其他的都不是。一个实数在使用指数形式输出时,是采 用规范化指数形式输出的。 实型常数不分单、双精度,都按双精度double型处理 。当然,如果想使用float型的实型常量,可以在此实数后 加F(或f)表示;同理,实数后加L(或l)表示它是long double类型。2.2.3 字符型常量和字符串常量 一、字符常量和转义字符C的字符常量是用单引

9、号括起来的一个字 符。如a, z, R, #,n等都是字符常量。一个字 符常量中只能存放一个字符。注意,字符可以是字 符集中任意字符,R和r是不同的字符常量。数字 被定义为字符型之后就不能参与数值运算。如3和3 是不同的。3是字符常量,不能当成数字3参与运算 。在字符常量里面,有一种以反斜线 “开头、后跟一个或几个字符的特殊字符常量 ,称为转义字符。转义字符具有特定的含义, 不同于字符原有的意义,故称“转义”字符。 例如,在前面各例题printf函数的格式串中用到 的n就是一个转义字符,其意义是“回车换行 ”。转义字符主要用来表示那些用一般字符不 便于表示的控制代码。以下是常用转义字符表 。转

10、义字符转义字符的意义ASCII代 码 n回车换行10 t横向跳到下一制表位置 9 b退格8 r回车13 f走纸换页12 反斜线符()92 单引号符39双引号符34 a响铃7 ooo13位八进制数所代表的字符 xhh12位十六进制数所代表的字符表2-1 常用的转义字符及其含义在C程序中使用转义字符 d d d或者 x h h 可以方便灵活地表示任意字符。 d d d为斜杠 后面跟三位八进制数,该三位八进制数的值即 为对应的八进制A S C I I码值。 x后面跟两位 十六进制数,该两位十六进制数为对应字符的 十六进制A S C I I码值。例如012 (十进制 ASCII码为10)代表“换行”,

11、 0或000代表 ASCII为0的控制字符,即“空操作字符”,它 将用在字符串中。使用转义字符时需要注意以下问题: 1) 转义字符中只能使用小写字母,每个 转义字符只能看作一个字符。 2) 在C程序中,使用不可打印字符时,通 常用转义字符表示。 见【例2.1】 【例2.1】转义字符的使用。 main() printf(“ ab ctderfn“); printf(“hijktLbMn“); 运行结果如下:f ab c de hijk M二、字符串常量 字符串常量是由一对双引号括起来的字符 序列。例如: “CHINA“ , “welcome!“ , “123“ 等都是合法的字符串常量。 字符串常

12、量和字符常量是不同的量。它们 之间主要有以下区别: 1) 字符常量由单引号括起来,字符串 常量由双引号括起来。 字符常量只能是单个字符,只占一个字节 ,字符串常量则可以含一个或多个字符。 3)可以把一个字符常量赋予一个字符变量 ,但不 能把一个字符串常量赋予一个字符变 量。因为在语言中没有相应的字符串变量,如 果想将一个字符串存放在变量中,必须使用字符 数组,即用一个字符型数组来存放一个字符串, 数组中每一个元素存放一个字符。这将在数组一 章内介绍。 4)字符常量占一个字节的内存空间。字符串 常量 在存放时系统一般会在这个字符串的后面 加上字符0 (ASCII值为0) 即“字符串结束标志”,

13、所以所占的内存字节数等于字符串中字节数加1 。 例如: 字符串 “C program“ 在内存中所占的字节 为:字符常量b和字符串常量“b“虽然都只有 一个字符,但在内存中的情况是不同的。 a在内存中占一个字节,可表示为:“a“在内存中占二个字节,可表示为:Cprogram0bb02.2.4 符号常量 在语言中,可以用一个标识符来表示一个常量, 称之为符号常量。符号常量在使用之前必须先定义,其一 般形式为: #define 标识符 常量 其中#define是一条预处理命令(预处理命令都以“#“ 开头),称为宏定义命令(在后面预处理程序中将进一步 介绍),其功能是把该标识符定义为其后的常量值。符

14、号 常量一经定义就只能代表被定义的那个常量或表达式,不 能再作更改。习惯上符号常量的标识符用大写字母,变量 标识符用小写字母,以示区别。使用符号常量的好处是: 含义清楚;能做到“一改全改”。比如下面例子,如果半径 R变成15,则只需在前面改一处即可。 【例2.2】符号常量的使用。 #define PI 3.1415926 #define R 12 main() float c,s; c=2* PI*R; s=PI*R*R; printf(“c=%f,s=%f”,c,s); 2.3 变量 2.3.1 变量概述、标志符 变量就是运行过程中其值可以改变的量。变量要 有变量名,在内存中占据一定的存储单

15、元,存储单元 里存放的是该变量的值。不同类型的变量存储单元的 大小不同。要区分变量名和变量值是两个不同的概念 ,具体见图2-3。变量名实际上是一个符号地址,代表内存 中一定的存储单元,程序从变量中取值,实际上是通 过变量名找到相应的内存地址,然后从其存储单元中 读取数据。b 变量名 5变量值存储单元 变量名图2-3变量必须先定义后使用,定义变量实际 上是为了在内存里为此变量分配相应的存 储单元。要定义变量,必须给变量命名,和其 他高级语言一样,变量的命名必须符合标志符 的命名规则。标志符(identifier)是一个名字 ,即是用来标志变量名、常量名、函数名、数 组名、数据类型名和程序名等的有效字符序列 。 C语言标志符的命名规则如下:1. 由字母(区分大小写)、数字和下划线 组成; 2. 由字母(区分大小写)或下划线开头 ; 3. 用户标志符不能使用程序中具有特殊 意义的关键字,避免与C语言库函数以及用户 编制的函数名相同(如相同则会造成它们不可 用)。 【例2.3】以下不能定义为用户标识符的是:A)scanf B)Void C)_3com_ D)int 答案:D在使用标志符时,不仅要注意上面的规则,还要注 意不同系统对标志符长度的要求也是不同的,比如我们 常用的Turbo C就允许32个字符;其次,还要注意在选 择变量名和其他标志符时,应尽量做到“见名知意”, 即选有含义

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

当前位置:首页 > 中学教育 > 教学课件

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