数据类型运算符和表达式zlh.ppt

上传人:s9****2 文档编号:571310681 上传时间:2024-08-10 格式:PPT 页数:65 大小:544KB
返回 下载 相关 举报
数据类型运算符和表达式zlh.ppt_第1页
第1页 / 共65页
数据类型运算符和表达式zlh.ppt_第2页
第2页 / 共65页
数据类型运算符和表达式zlh.ppt_第3页
第3页 / 共65页
数据类型运算符和表达式zlh.ppt_第4页
第4页 / 共65页
数据类型运算符和表达式zlh.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《数据类型运算符和表达式zlh.ppt》由会员分享,可在线阅读,更多相关《数据类型运算符和表达式zlh.ppt(65页珍藏版)》请在金锄头文库上搜索。

1、 高级语言程序设计高级语言程序设计计算机基础教研室计算机基础教研室第第2 2章章 数据数据类型、类型、运算符与表达式运算符与表达式南京邮电大学计算机学院南京邮电大学计算机学院计算机基础教研室计算机基础教研室计计算算机机基基础础教教研研室室本章作业l作业本:作业本:P4546页:页:2.3l课堂练习或直接做在书上:课堂练习或直接做在书上: P45页页2.1、2.23计计算算机机基基础础教教研研室室内容提要lC语言源程序的结构;语言源程序的结构;l基本数据类型;基本数据类型;l常量和变量;常量和变量; l标识符命名;标识符命名; l常用运算符和表达式;常用运算符和表达式;l运算符的优先级与结合性运

2、算符的优先级与结合性 4计计算算机机基基础础教教研研室室例2.1:一个简单的C程序#include/*/*函数功能函数功能:计算两个整数相加之和计算两个整数相加之和 入口参数入口参数:整型数据整型数据a a和和b b 返回值:返回值: 整型数整型数a a和和b b之和之和* */ /intAdd(inta,intb)return(a+b);/*主函数主函数*/main()intx,y,sum=0;printf(Inputtwointegers:);scanf(%d%d,&x,&y);/*输入两个整型数输入两个整型数x和和y*/sum=Add(x,y);/*调用函数调用函数Add计算计算x和和y

3、相加之和相加之和*/printf(sum=%dn,sum);/*输出输出x和和y相加之和相加之和*/标识符号:字符标识符号:字符(字母或者数字字母或者数字等等)组成的序列。组成的序列。( ) , ; /* */ # + = include int returnprintf scanf mainx y sum Add a b05计计算算机机基基础础教教研研室室C语言源程序结构lC语言源程序由一个或多个函数组成,必须有且语言源程序由一个或多个函数组成,必须有且只能有一个只能有一个main( )函数函数l函数应当先定义,然后再被调用函数应当先定义,然后再被调用l函数的定义:由函数首部和函数体两部分组

4、成函数的定义:由函数首部和函数体两部分组成l函数首部:函数返回值类型函数首部:函数返回值类型 函数名函数名(形式参数形式参数类型类型 形式参数名,形式参数名,)l函数体:一对函数体:一对 括起的若干条语句组成,每条括起的若干条语句组成,每条语句以分号结束。语句以分号结束。l程序中还可有注释:在一对程序中还可有注释:在一对/* */中间的内容中间的内容l源程序中大小写字母有区别!源程序中大小写字母有区别!6计计算算机机基基础础教教研研室室2.2 C程序常见符号分类 l关键字(关键字(Keyword) l又称为保留字,又称为保留字,C语言中预先规定的具有固定含义的一些单词语言中预先规定的具有固定含

5、义的一些单词lint,return等等 l标识符(标识符(Identifier)l系统预定义标识符,系统预定义标识符,main,printf 等等 l用户自定义标识符,用户自定义标识符,Add, x, y 等等l运算符(运算符(Operator)l34种,详见附录种,详见附录2 l分隔符(分隔符(Separator) l空格、回车空格、回车/换行、逗号等换行、逗号等 l其它符号其它符号 l大花括号大花括号“”和和“”通常用于标识函数体或者一个语句块通常用于标识函数体或者一个语句块 l“/*”和和“*/”是程序注释所需的定界符是程序注释所需的定界符 l数据(数据(Data)l变量(变量(Vari

6、able) 、常量(、常量(Constant) 7计计算算机机基基础础教教研研室室标识符命名 l l变量名、函数名、常量名变量名、函数名、常量名变量名、函数名、常量名变量名、函数名、常量名l l由英文字母、数字和下划线组成,大小写敏感由英文字母、数字和下划线组成,大小写敏感由英文字母、数字和下划线组成,大小写敏感由英文字母、数字和下划线组成,大小写敏感l不可以不可以是数字开头是数字开头是数字开头是数字开头l l直观,见名知意,便于记忆和阅读直观,见名知意,便于记忆和阅读直观,见名知意,便于记忆和阅读直观,见名知意,便于记忆和阅读l最好使用英文单词或其组合最好使用英文单词或其组合l切忌使用汉语拼

7、音切忌使用汉语拼音 l l下划线和大小写通常用来增强可读性下划线和大小写通常用来增强可读性下划线和大小写通常用来增强可读性下划线和大小写通常用来增强可读性lvariablenamelvariable_namelvariableNamel l不允许使用关键字作为标识符的名字不允许使用关键字作为标识符的名字不允许使用关键字作为标识符的名字不允许使用关键字作为标识符的名字 返回返回lint, float, for, while, if等等l l某些功能的变量采用习惯命名某些功能的变量采用习惯命名某些功能的变量采用习惯命名某些功能的变量采用习惯命名l如:如:for语句所采用的循环变量习惯用语句所采用的

8、循环变量习惯用i, j, kl l最好不要使用系统已经提供的标识符名字最好不要使用系统已经提供的标识符名字最好不要使用系统已经提供的标识符名字最好不要使用系统已经提供的标识符名字lfabs、sin、cos、main、printf、scanf等等Windows 风风格,请采用格,请采用UNIX 风格风格8计计算算机机基基础础教教研研室室例l l不合法不合法不合法不合法l2a s# C$ char l l合法的,但不推荐合法的,但不推荐合法的,但不推荐合法的,但不推荐lxyz xuehao fabs sqrtl l符合语法与习惯符合语法与习惯符合语法与习惯符合语法与习惯lID sum averag

9、e _var boxLengthl l课堂练习:课堂练习:课堂练习:课堂练习: P45P45页页页页 2.1 2.19计计算算机机基基础础教教研研室室2.3 数据类型(Data Type)l数据为什么要区分类型?数据为什么要区分类型?l不同类型的数据代表不同的不同类型的数据代表不同的l数据表示形式数据表示形式l合法的取值范围合法的取值范围l占用内存空间大小占用内存空间大小l可参与的运算种类可参与的运算种类 10计计算算机机基基础础教教研研室室2.3 数据类型(Data Type)数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型实型(浮点型)实型(浮点型)字符

10、型字符型枚举类型枚举类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型单精度实型单精度实型双精度实型双精度实型基本整型基本整型长整型长整型短整型短整型无符号整型无符号整型11计计算算机机基基础础教教研研室室基本数据类型l整型(整型(int)l用来表示整数。用来表示整数。l整型本身也有多种类型。按类型不同在整型本身也有多种类型。按类型不同在VC环境下占环境下占2个或个或4个字节。个字节。l浮点型(浮点型(float、 double)l用来表示实数。用来表示实数。l单精度浮点数,在单精度浮点数,在VC环境下占环境下占4个字节。个字节。l双精度浮点数,在双精度浮点数,在VC环境下占环境下占

11、8个字节。个字节。l字符型(字符型(char)l用来表示字符,一般是用来表示字符,一般是1个字节长。个字节长。l可以表示可以表示256个字符。个字符。l枚举型(枚举型(enum):请自学!):请自学!12计计算算机机基基础础教教研研室室数据类型修饰符lshort/longlshort int,短整数,一般,短整数,一般2个字节长。通常简写为个字节长。通常简写为short。llong int,长整数,一般是,长整数,一般是4个字节长。通常简写为个字节长。通常简写为long。llong double,长双精度(高精度)浮点数。,长双精度(高精度)浮点数。lsigned/unsignedlsigne

12、d用来修饰用来修饰char、int,说明他们是有符号的整数,说明他们是有符号的整数(正整数、(正整数、0和负整数)。一般缺省都是有符号的,所以和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略这个修饰符通常省略lunsigned用来修饰用来修饰char、int,说明他们是无符号的整数,说明他们是无符号的整数(正整数和(正整数和0)13计计算算机机基基础础教教研研室室加修饰符的常见类型l整型整型lsigned short int shortlsigned int intlsigned long int longlunsigned short intlunsigned intlunsigne

13、d long intl实型实型lfloatldoublellong doublel字符型字符型lsigned char charlunsigned char14计计算算机机基基础础教教研研室室2.4 常量(const)在程序中保持固定类型和固定值的数据称为在程序中保持固定类型和固定值的数据称为常量常量。l整型常量整型常量l实型常量实型常量l字符型常量字符型常量l字符串常量字符串常量l宏常量宏常量l枚举常量枚举常量15计计算算机机基基础础教教研研室室整型常量l例题例题Example01_int.cl十进制十进制:18,-31l八进制八进制在前面加上数字在前面加上数字0:023,057l十六进制十

14、六进制在前面加上在前面加上0x或者或者0X:0x1a,0XAllong int型常量后跟型常量后跟l或或L:-456l,123456Llunsigned int型常量后跟型常量后跟u或或U :30 u,256 Ulunsigned long int型常量后跟型常量后跟lu,lU, Lu或或LU :30 lul补充:补充:数制数制16计计算算机机基基础础教教研研室室整型常量在内存中的表示l整型常量在内存中以补码形式存储表示,这样可以整型常量在内存中以补码形式存储表示,这样可以将减法运算统一为加上一个负数。将减法运算统一为加上一个负数。l整数有原码、反码、补码表示整数有原码、反码、补码表示l原码:

15、最高位:原码:最高位:0表示正,表示正,1表示负数,其余各位是表示负数,其余各位是绝对值的二进制表示,板书举例:绝对值的二进制表示,板书举例:11、-11l补码:最高位:补码:最高位:0表示正,表示正,1表示负数,其余各位:表示负数,其余各位:绝对值的二进制表示,再全部取反,最后加绝对值的二进制表示,再全部取反,最后加1,板,板书举例:书举例:11、-1117计计算算机机基基础础教教研研室室实型常量l例题例题Example02_double.cl十进制小数形式:必须有小数点,左右均为纯数十进制小数形式:必须有小数点,左右均为纯数字序列或为空,字序列或为空, 123.45、456.78、.12、

16、34.l指数形式:指数形式:e左边是合法的左边是合法的整数或小数整数或小数形式的实形式的实数,数,e右边必须是一个右边必须是一个整数,整数,1e-2、4.5e3l实型常量缺省为实型常量缺省为double型型l若要强调是若要强调是float型的常量,必须在数据后面加型的常量,必须在数据后面加 F或或f后缀:后缀: 1.25F,-367.23f18计计算算机机基基础础教教研研室室字符(Character)常量l字符常量有两种字符常量有两种l单引号单引号括起来的括起来的一个字符一个字符a、A、5、%、 等。等。l用用开头开头的的转义转义字符。字符。l每个字符都有一个值每个字符都有一个值l在计算机中,

17、每个字符都有一个在计算机中,每个字符都有一个0255之间的数值与之间的数值与之对应。如之对应。如A对应对应 65、a对应对应97等。等。l这个值称为这个值称为ASCII值,可从值,可从ASCII表表(课本附录(课本附录D)中中查出。查出。l计算机存储、读取字符,以计算机存储、读取字符,以ASCII值进行。值进行。19计计算算机机基基础础教教研研室室字符常量l用用开头的开头的转义字符转义字符l一些特殊字符(无法从键盘输入或者另有它用)用转一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示义字符表示l例题例题Example03_char.c20计计算算机机基基础础教教研研室室字符串(stri

18、ng)常量l用用双引号双引号括住的由括住的由0个或多个字符组成的字符序列个或多个字符组成的字符序列lI am a stringl表示空字符串表示空字符串l字符串以字符串以0表示结束表示结束l转义字符也可以在字符串中使用转义字符也可以在字符串中使用l双引号只作为字符串开始和结束的标志双引号只作为字符串开始和结束的标志l除注释外,是唯一可以出现中文的地方除注释外,是唯一可以出现中文的地方l区别:区别:5、5、5与与5.0l5是一个字符串。是一个字符串。l5是一个字符。是一个字符。l5是一个整型数。是一个整型数。l5.0是一个实数,默认是是一个实数,默认是double型。型。21计计算算机机基基础础

19、教教研研室室宏常量l宏常量也称为符号常量,是指用一个标志符号代宏常量也称为符号常量,是指用一个标志符号代替的一个常量。替的一个常量。l格式:格式:l#define 标识符标识符 字符串字符串l编译器在对程序进行编译时,在程序中遇见该标编译器在对程序进行编译时,在程序中遇见该标识符,用字符串替代。识符,用字符串替代。 l课本课本P23例例2.2。22计计算算机机基基础础教教研研室室例2.2 :计算圆的周长和面积 运行结果:运行结果:area=88.247263circumference=33.300854#include#definePI3.14159#defineR5.3main()print

20、f(area=%fn,PI*R*R);printf(circumference=%fn,2*PI*R);23计计算算机机基基础础教教研研室室宏常量l宏常量宏常量一般采用大写。一般采用大写。l宏定义是一种编译预处理命令,而不是一条语宏定义是一种编译预处理命令,而不是一条语句,所以行末不需要加分号。句,所以行末不需要加分号。24计计算算机机基基础础教教研研室室为什么定义宏常量?l例题例题Example04_const.cl如果不定义宏常量,直接使用常数,有什么后果?如果不定义宏常量,直接使用常数,有什么后果?l程序的可读性变差程序的可读性变差l修改麻烦修改麻烦l在需要用常量的地方,不建议直接使用常

21、数,而通在需要用常量的地方,不建议直接使用常数,而通常是用宏定义来定义一个符号常量使用。常是用宏定义来定义一个符号常量使用。25计计算算机机基基础础教教研研室室枚举常量l自阅自阅26计计算算机机基基础础教教研研室室是指用一组固定的符号和规则来表示数值的方法。是指用一组固定的符号和规则来表示数值的方法。按进位的方法进行计数,成为按进位的方法进行计数,成为进位计数制进位计数制。数制的概念27计计算算机机基基础础教教研研室室进位计数制进位计数制l用数字符号排列成数位,按由低位到高位的进位用数字符号排列成数位,按由低位到高位的进位方式来表示数的方法叫方式来表示数的方法叫进位计数制进位计数制,也称为,也

22、称为计数制计数制或或进位制进位制。在日常生活中,人们大量使用着各种不。在日常生活中,人们大量使用着各种不同的进制,如最普遍的同的进制,如最普遍的十进制十进制,还有,还有六十进制六十进制( (如如分秒的计算分秒的计算) ),十二进制十二进制( (如十二个月为一年如十二个月为一年) )等。等。计算机中计算机中数的表示则采用数的表示则采用二进制二进制。28计计算算机机基基础础教教研研室室无论使用何种进制,都包括三个要素: 基数、数符和位权。基数基数l进位计数制允许选用的进位计数制允许选用的基本符号个数基本符号个数称为称为基数基数。lJ J进制的基数就为进制的基数就为J J,包含,包含J J个不同的符

23、号。个不同的符号。l每个数位计满每个数位计满J J后就向高位进后就向高位进1 1,也就是,也就是“逢逢J J进进1 1”。l如最常用的十进制数,基数为如最常用的十进制数,基数为1010,使用,使用0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9共共1010个不同数字来表示所有个不同数字来表示所有数,每位满数,每位满1010则向高位进则向高位进1 1。29计计算算机机基基础础教教研研室室基数、数符和位权 数符数符l进位计数制允许选用的进位计数制允许选用的基本符号基本符号称为称为数符数符。lJ J进制有进制有J J个不同的数符。个不同的数符。l十进制的数符为:十进制的

24、数符为: 0,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9l二进制数的数符为:二进制数的数符为:0 0和和1 1。l八进制的数符为:八进制的数符为: 0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7l十六进制的数符为:十六进制的数符为: 0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9、A(a)A(a)、B(b)B(b)、C( c )C( c )、D(d)D(d)、E(e)E(e)、F(f)F(f)l注意:注意:数符数符不一定只能是数字不一定只能是数字,十以上进制的就,十以上进制的就要用其它符号作数符了,如:十六进制中的字

25、母要用其它符号作数符了,如:十六进制中的字母A A至至F F分别表示该位上从分别表示该位上从1010到到1515的值。的值。30计计算算机机基基础础教教研研室室基数、数符和位权 位权位权l一个符号处在数的不同位时,它所代表的数值是一个符号处在数的不同位时,它所代表的数值是不同的。每个符号所表示的数值等于该符号值乘不同的。每个符号所表示的数值等于该符号值乘以一个与数码所在位置有关的常数,这个常数就以一个与数码所在位置有关的常数,这个常数就叫叫位权位权,也称,也称权权。位权位权的大小是以的大小是以基数为底基数为底,数数符所在位置的序号为指数的整数次幂。符所在位置的序号为指数的整数次幂。l例例 用数

26、符、基数、位权表示十进制数用数符、基数、位权表示十进制数234.18234.18。l234.18=2234.18=210102 2+3+310101 1+4+410100 0+1+11010-1-1+8+81010-2-231计计算算机机基基础础教教研研室室 不同进制之间的等值转换l二进制、八进制、十六进制与十进制之间的转换二进制、八进制、十六进制与十进制之间的转换 (1) R (1) R进制数转换为十进制数进制数转换为十进制数 每一位的数符乘以位权,最后求和。每一位的数符乘以位权,最后求和。l234.1Q=2234.1Q=28 82 2+3+38 81 1+4+48 80 0+1+18 8-

27、1-1=156.125=156.125l1B.2H=11B.2H=116161 1+11+1116160 0+2+21616-1-1=27.125=27.125l1011.11B=11011.11B=12 23 3+0+02 22 2+1+12 21 1+1+12 20 0 +1+12-2-1 1+1+12 2-2 -2 =11.75=11.75 (2) (2) 十进制数转换为十进制数转换为R R进制进制 十进制数转换为十进制数转换为R R进制时,整数部分与小数部分进制时,整数部分与小数部分 换算算法不同,需要分别计算。换算算法不同,需要分别计算。32计计算算机机基基础础教教研研室室十进制整数

28、转换成十进制整数转换成R进制的进制的整数整数“除除R取余取余”法,计算到商为法,计算到商为0时停止,例如:时停止,例如:2 68 2 68 余余 数数 2 34 0 2 34 0 低位低位 2 17 02 17 0 2 8 1 2 8 1 2 4 0 2 4 0 2 2 0 2 2 0 2 1 0 2 1 0 0 1 0 1 高位高位所以所以 68681010100010010001002 2不同进位计数制间的转换 十进制 R 进制33计计算算机机基基础础教教研研室室不同进位计数制间的转换 十进制 R 进制十进制小数转换成十进制小数转换成R进制进制小数小数“乘乘 R 取整取整”法,计算至小数点

29、后为法,计算至小数点后为0止,例如:止,例如: 高位高位 0.31250.31252 = 0 .6252 = 0 .625 0.625 0.625 2 = 1 .252 = 1 .25 0.25 0.25 2 = 0 .52 = 0 .5 0.5 0.5 2 = 1 .02 = 1 .0所以所以 0.31250.31251010 = 0.0101 = 0.01012 2 思考:思考:十进制小数一定能精确转换成十进制小数一定能精确转换成R进制小数吗?进制小数吗?34计计算算机机基基础础教教研研室室不同进位计数制间的转换 二、八、十六进制的相互转换l每位八进制数相当于三位二进制数每位八进制数相当于

30、三位二进制数l每位十六进制数相当于四位二进制数每位十六进制数相当于四位二进制数(1011010.10)(1011010.10)2 2=(=(001001 011011 010010 . .100100) )2 2=(132.4)=(132.4)8 8(1011010.10)(1011010.10)2 2=(=(01010101 10101010 . .10001000) )2 2=(5A.8)=(5A.8)1616(F7)(F7)1616( (11111111 01110111) )2 2(11110111)(11110111)2 2返回返回35计计算算机机基基础础教教研研室室2.5 变量l在

31、程序中可以改变、可以赋值的量称为在程序中可以改变、可以赋值的量称为变量变量。l变量要求变量要求先定义后使用先定义后使用。l变量的定义:变量的定义:类型关键字类型关键字 变量名变量名1,变量名,变量名2, ;l例如:例如:short max;long sum;double score,average;char str;36计计算算机机基基础础教教研研室室变量的初始化l可以同时定义多个变量,定义的同时也可以对可以同时定义多个变量,定义的同时也可以对变量进行初始化。变量进行初始化。intx,y=10,z;表示定义了三个整型变量表示定义了三个整型变量x、y、z,并且,并且y被初始化为被初始化为10,变

32、量变量x和和z只作了定义,无确定值。只作了定义,无确定值。注意:注意:intx;x=5;与与intx=5;概念是不一样的!概念是不一样的!37计计算算机机基基础础教教研研室室变量的属性l定义了一个变量以后,它具有四个属性:定义了一个变量以后,它具有四个属性:名称、名称、类型名、地址、值类型名、地址、值。l例如例如intx=5;l如果不初始化,也有一个值,是个随即值。对如果不初始化,也有一个值,是个随即值。对程序有隐患。程序有隐患。38计计算算机机基基础础教教研研室室程序设计时如何定义变量l根据求解问题确定变量的类型。(字符型、整根据求解问题确定变量的类型。(字符型、整型、实型)型、实型)l估计

33、变量的取值,防止溢出。例题估计变量的取值,防止溢出。例题Example05_scope.c。l给变量取名字,符合标识符给变量取名字,符合标识符命名规范命名规范(课本(课本P20)。)。39计计算算机机基基础础教教研研室室Const修饰的变量l用用const修饰定义的变量为修饰定义的变量为只读变量,只读变量,l特别提醒:特别提醒:教材教材P26认为是常量这一概念有误。认为是常量这一概念有误。l所谓所谓只读变量,只读变量,就是指程序中将来就是指程序中将来只可以引用只可以引用该变该变量的值,量的值,而不能再修改它而不能再修改它。例:。例:lconst float pi = 3.1425926;lpi

34、 = 3.14; /*错,不能改变错,不能改变pi的值的值*/l因此,在需要定义符号常量时,用因此,在需要定义符号常量时,用宏定义宏定义!40计计算算机机基基础础教教研研室室变量所占存储空间大小l同一种类型的变量在不同的机器、不同的编译同一种类型的变量在不同的机器、不同的编译器下所占存储空间大小可能不同。器下所占存储空间大小可能不同。llong int型数据的范围不一定比型数据的范围不一定比int 型的数据大;型的数据大;long double型数据的范围不一定比型数据的范围不一定比double 型型的数据大。的数据大。l如果不熟悉,最好使用如果不熟悉,最好使用sizeof()运算符来确定。运

35、算符来确定。41计计算算机机基基础础教教研研室室sizeof()的使用l它是一个它是一个C语言的关键字,并不是函数。语言的关键字,并不是函数。l通常通过如下两种形式使用通常通过如下两种形式使用lsizeof(变量名变量名)lsizeof(类型类型)l求出的结果为求出的结果为变量所属类型变量所属类型或者或者类型类型占用的字节占用的字节数。数。课本课本P27例例2.3。42计计算算机机基基础础教教研研室室例2.3#includeintmain()printf(DatatypeNumberofbytesn);printf(-n);printf(char%dn,sizeof(char);printf(

36、int%dn,sizeof(int);printf(shortint%dn,sizeof(short);printf(longint%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(double);printf(longdouble%dn,sizeof(longdouble);return0;43计计算算机机基基础础教教研研室室char型与int型数据lint型数据在内存中以二进制形式存储。型数据在内存中以二进制形式存储。char型型数据在内存中也以其数据在内存中也以其ASCII码的二进制形式存储。码的

37、二进制形式存储。l因此,在因此,在ASCII码的取值范围内,码的取值范围内,char型数据和型数据和int型数据可以型数据可以自由自由转换。转换。l例题例题例例2-4.c,将字符以字符型和整型输出将字符以字符型和整型输出l例题例题Example06_char and int.cl例题例题例例2-5.c,大小写字符的转换大小写字符的转换44计计算算机机基基础础教教研研室室实型数据是不精确的lfloat型数据提供型数据提供7位有效数字位有效数字ldouble型数据提供型数据提供16位有效数字位有效数字 l课本课本P50例例2.645计计算算机机基基础础教教研研室室2.6 运算符l算术运算符算术运算

38、符l关系运算符关系运算符l逻辑运算符逻辑运算符l赋值运算符赋值运算符l自增自减运算符自增自减运算符l强制类型转换运算符强制类型转换运算符l位运算符位运算符l逗号运算符逗号运算符47计计算算机机基基础础教教研研室室算术运算符l双目:双目:+,-,*,/ ,%l加、减、乘、除、求余运算运算加、减、乘、除、求余运算运算l四则混合运算中,先算乘除,后算加减,四则混合运算中,先算乘除,后算加减,按从左向右的顺序计算,左结合按从左向右的顺序计算,左结合l单目:单目:- ,指正负数互取反,优先级高于双目,指正负数互取反,优先级高于双目函数名函数名功功 能能函数名函数名功功 能能sqrt(x)计算算x的平方根

39、,的平方根,x应大于等于大于等于0 exp(x)计算算ex的的值fabs(x)计算算x的的绝对值pow(x,y)计算算xy的的值log(x)计算算lnx的的值sin(x)计算算sinx的的值,x为弧度弧度值log10(x)计算算lgx的的值cos(x)计算算cosx的的值,x为弧度弧度值常用的标准数学函数(需要常用的标准数学函数(需要#include )48计计算算机机基基础础教教研研室室算术运算符l注意:注意:l两个整数相除的结果仍为整数。两个整数相除的结果仍为整数。6 / 4 = 1 6.0 / 4 = 1.5l%是求余运算,要求参与运算的两个数都是整数,结果是求余运算,要求参与运算的两个

40、数都是整数,结果的正负号与第一操作数相同的正负号与第一操作数相同12 % 7 = 5l一些复杂的数学运算需要使用系统提供的函数,注意表一些复杂的数学运算需要使用系统提供的函数,注意表达式在达式在C语言中与数学中的表示是不完全一样的。语言中与数学中的表示是不完全一样的。l(课本课本P32),老师板书举例,老师板书举例49计计算算机机基基础础教教研研室室关系运算符l关系运算符一共有六个关系运算符一共有六个 = b 1la b c 050计计算算机机基基础础教教研研室室逻辑运算符l逻辑运算也被称为布尔(逻辑运算也被称为布尔(Boolean)运算)运算l求反求反!l( !a );如果;如果a是是0,结

41、果非,结果非0;如果;如果a是非是非0,结果是,结果是0l并不改变并不改变a的值的值l与运算与运算&:第一运算对象若为第一运算对象若为0,则停止运算,则停止运算la & b当且仅当两者都为真,则结果为真当且仅当两者都为真,则结果为真l( a b & b c);a大于大于b,并且,并且b大于大于cl或运算或运算|:第一运算对象若为第一运算对象若为1,则停止运算,则停止运算la | b只要两者中有一个为真,结果就为真只要两者中有一个为真,结果就为真l( a b | b c); a大于大于b,或者,或者b大于大于cl优先级:优先级:! 高于高于 & 高于高于 | |51计计算算机机基基础础教教研研室

42、室实例lch是英文大写字母是英文大写字母 (ch = A) & (ch bc的值,有什么结论?的值,有什么结论?la = b = 253计计算算机机基基础础教教研研室室复合赋值运算l复合赋值运算复合赋值运算li += 2 等价于等价于 i = i + 2ln *= m+2 等价于等价于 n = n * (m + 2)l+=、-=、*=、/=,%=等运算符都可以按此种方等运算符都可以按此种方式处理式处理l课本课本P45习题习题2.2(7)54计计算算机机基基础础教教研研室室增一和减一运算符lx+,x-,+x,-xl+x; 等价于等价于 x = x + 1;lx+; 等价于等价于 x = x +

43、1;l-x; 等价于等价于 x = x - 1;lx-; 等价于等价于 x = x - 1;l+在变量前面与在变量后面的区别在变量前面与在变量后面的区别:lint n = 3,m;55计计算算机机基基础础教教研研室室增一和减一运算符语句语句与左边语句等与左边语句等价的语句价的语句执行语句后的执行语句后的m值值执行语句后的执行语句后的n值值m= n+;m = n;n = n+1;34m= +n;n = n+1;m = n;44m =n-;m = n; n = n-1;32m= -n;n = n-1;m = n;2256计计算算机机基基础础教教研研室室类型强转(Casting) l强制类型转换,就

44、是把表达式的结果从一种类强制类型转换,就是把表达式的结果从一种类型转换为用户指定的类型。型转换为用户指定的类型。l格式:格式:l(类型)表达式(类型)表达式l例题例题Example07_casting.cl课本课本P39例例2.757计计算算机机基基础础教教研研室室逗号运算符l表达式表达式1, 表达式表达式2, ., 表达式表达式nl逗号表达式可以把多个表达式连接在一起。逗号表达式可以把多个表达式连接在一起。l计算时从左至右依次计算,同时最右边表达式的计算时从左至右依次计算,同时最右边表达式的值是整个逗号表达式的值。值是整个逗号表达式的值。lm = 3, n = m + 4lx = a = 3

45、, 6 * alx = (a = 3, 6 * a)58计计算算机机基基础础教教研研室室优先级l( ) - .l! + - + - * & (类型类型) sizeofl* / %l+ -ll =l= !=l&ll|l&l|l? :l= += -= *= /= %= &= = |= =l,59计计算算机机基基础础教教研研室室结合性l多数运算符为左结合多数运算符为左结合l少数为右结合:少数为右结合:l一元运算符一元运算符l赋值运算符赋值运算符l条件运算符条件运算符60计计算算机机基基础础教教研研室室一种自动类型转换:赋值操作l在进行在进行赋值操作赋值操作时,会发生类型转换,将右侧表达时,会发生类型

46、转换,将右侧表达式的值转换为左则变量的类型式的值转换为左则变量的类型l将取值范围将取值范围小小的类型的类型转为转为取值范围取值范围大大的类型是的类型是安全安全的的l反之是不安全的反之是不安全的l如果如果大大类型的值在类型的值在小小类型能容纳的范围之内,则平安无类型能容纳的范围之内,则平安无事事l但是,浮点数转为整数,会但是,浮点数转为整数,会丢失小数部分丢失小数部分,非四舍五入,非四舍五入l反之,转换后的结果必然是错误的,具体结果与机器和反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用,好的编译器会发出警告实现方式有关。避免如此使用,好的编译器会发出警告61计计算算机

47、机基基础础教教研研室室一种自动类型转换:赋值操作l例:例:lint i;ldouble f = 3.5;li = f;l此种情况下将有信息丢失。此种情况下将有信息丢失。62计计算算机机基基础础教教研研室室另一种自动类型转换:表达式计算l在进行表达式计算时在进行表达式计算时l相同类型的数据,运算结果类型与操作数相同。相同类型的数据,运算结果类型与操作数相同。l不同类型的数据运算时,先要转换成同一种类型(不同类型的数据运算时,先要转换成同一种类型(两种类两种类型中取值范围较大的那一种型中取值范围较大的那一种)。运算结果的类型也是这一)。运算结果的类型也是这一种。种。llong double = d

48、ouble float long int short charl3 / 2 1l3.0 / 2 1.5l转换的规则见课本转换的规则见课本P44图图2-2。63计计算算机机基基础础教教研研室室这一章我们学到了l标识符的命名规则标识符的命名规则l数据类型数据类型l常量的使用常量的使用l如何定义一个变量如何定义一个变量l运算符(运算符( % sizeof( ) )的优先性和结合性)的优先性和结合性l类型转换(强制、自动)类型转换(强制、自动)l技巧:技巧:l如何判断一个数能否被另一个数整除如何判断一个数能否被另一个数整除l如何对一个实数进行取整如何对一个实数进行取整l如何进行大小写字母的转换如何进行

49、大小写字母的转换64计计算算机机基基础础教教研研室室本章学习建议l复习课本第二章的内容、自学枚举常量、位运算符。复习课本第二章的内容、自学枚举常量、位运算符。l预习第三章的内容。预习第三章的内容。l记住记住0-16的十六进制、二进制编码。的十六进制、二进制编码。l记住记住n、r、t等常用的转义字符。等常用的转义字符。l记住空格、记住空格、0、A、a的的ASCII码。码。补充:补充:short与与int型,在型,在VC环境下分别占有环境下分别占有2个字节和个字节和4个字节的存储空间,这两种类型能够表示的数据范个字节的存储空间,这两种类型能够表示的数据范围是多少?围是多少?l建议从网上搜索、阅读建议从网上搜索、阅读李开复给中国学生的第一李开复给中国学生的第一封信封信,目前一共到第六封。,目前一共到第六封。65

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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