资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第2/3章章 算法算法/数据类型、运算符与表达数据类型、运算符与表达式式2.1 程序设计概述程序设计概述2.2 C语言的数据类型语言的数据类型2.3 常量和变量常量和变量2.4 整型数据整型数据2.5 实型数据实型数据2.6 字符型数据字符型数据2.7 算术运算与算术表达式算术运算与算术表达式2.8 赋值运算与赋值表达式赋值运算与赋值表达式2.9 C语言特有的运算和运算符语言特有的运算和运算符历盗货估傻改锦掉盏另壹晶录丹供咙昆质跌碎尽搅磅钝梧疯弱潍千誉纬吃第02章ppt课件第02章ppt课件2.1 程序设计概述程序设计概述一个程序应包括对数据的描述和对数据处理的描述。一个程序应包括对数据的描述和对数据处理的描述。 1对数据的描述,即数据结构。对数据的描述,即数据结构。在在C语言中,系统提供的数据结构,是以数据类型的形语言中,系统提供的数据结构,是以数据类型的形式出现的。式出现的。 2对数据处理的描述,即计算机算法。算法是为解决对数据处理的描述,即计算机算法。算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。为此,著一个问题而采取的方法和步骤,是程序的灵魂。为此,著名计算机科学家沃思(名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:)提出一个公式: 数据结构数据结构 + 算法算法 = 程序程序 实际上,一个程序除了数据结构和算法外,还必须使实际上,一个程序除了数据结构和算法外,还必须使用一种计算机语言,并采用结构化方法来表示。用一种计算机语言,并采用结构化方法来表示。 撵赐嫁读桃顽杏嘱乎讲婉渤戒昨新记郴炽拘屯剿谚泅馒君碾逐戚网底矢琶第02章ppt课件第02章ppt课件算法的特性算法的特性算法算法有有穷性性确定性确定性有零个或多个有零个或多个输入入有一个或多个有一个或多个输出出有效性有效性侥蝶害勤涂米痛劈青梨拦讯然漏纠阉撮豌宫燃轰瘪饭谢移樟岩鸳坯峻刃蛊第02章ppt课件第02章ppt课件算法算法-程序的灵魂程序的灵魂任何事情都有个步骤:菜谱、乐谱。任何事情都有个步骤:菜谱、乐谱。对同一个问题,有不同的算法:对同一个问题,有不同的算法:例:求例:求1+2+3+100;算法有优劣之分;算法有优劣之分;C语言算法的三种基本结构:顺序、选择、循环;语言算法的三种基本结构:顺序、选择、循环;简单算法举例:简单算法举例:例例1、有黑和蓝两个墨水瓶,要求将其互换。 算法分析:这是一个非数值运算问题。因为两个瓶子的墨水不能直接交换,所以,解决这一问题的关键是需要引入第三个墨水瓶。设第三个墨水瓶为白色,其交换步骤如下: 将黑瓶中的黑墨水装入白瓶中; 将蓝瓶中的蓝墨水装入黑瓶中; 将白瓶中的黑墨水装入蓝瓶中; 交换结束。咐视赂喷扼鸭凹热恭祈蜒路躺炙井些蕴聘锅芦羚权昂伤煎阶隋尼尤校哗浚第02章ppt课件第02章ppt课件例例2、判定、判定2000-2500年中的每一年是否是闰年?年中的每一年是否是闰年?闰年的条件:闰年的条件:a、能被、能被4整除,但不能被整除,但不能被100整除的年份整除的年份都是闰年(都是闰年(1996、2004););b、能被、能被100整除,又能被整除,又能被400整除整除的年份是闰年(的年份是闰年(1600、2000)。)。算法表示如下:算法表示如下:s1:y=2000s2:若:若y不能被不能被4整除,则输出整除,则输出y”不是闰年不是闰年“。然后跳。然后跳到到s6;s3:若:若y能被能被4整除,不能被整除,不能被100整除,则输出整除,则输出y”是闰年是闰年“;然后跳到;然后跳到s6;s4:若:若y能被能被100整除,又能被整除,又能被400整除,则输出整除,则输出y”是闰是闰年年“;否则输出;否则输出”不是闰年不是闰年“。然后转到。然后转到s6;s5:输出:输出“不是闰年不是闰年”;s6:y=y+1;s7:当:当y2500,算法,算法终止。终止。茬吭吐肪人京幽顾行弟卸坎振绢瓷新矩肮缨铁牛指旧闲仿鸽珠癸静润桌繁第02章ppt课件第02章ppt课件怎样表示一个算法?怎样表示一个算法?用自然语言表示算法:通俗易懂、文字冗长、容易出现用自然语言表示算法:通俗易懂、文字冗长、容易出现“歧义歧义”。用流程图表示算法:用图形表示,直观形象,易于理解用流程图表示算法:用图形表示,直观形象,易于理解。处理数据特定处理判断端点符语句1语句2顺序结构语句2判断表达式语句1不满足满足选择结构判断表达式循环体不满足满足循环结构散徒军棋喜抽寒研豺设福控静鱼嘛殖央壤讼荡邢伴怂嵌惊鞋躺众券毡绸胡第02章ppt课件第02章ppt课件传统流程图的弊病:(传统流程图的弊病:(a bowl of spaghetti););N-S流程图:(美流程图:(美I.Nassi和和B.Shneiderman)去掉流线,)去掉流线,把所有的算法写在一个矩形框里;把所有的算法写在一个矩形框里;t=1i=2t=t *ii=i+1打印t直到i5PAD图图:(Problem Analysis Diagram););伪代码:介于自然语言与计算机语言之间的文字符号;伪代码:介于自然语言与计算机语言之间的文字符号;计算机语言:严格遵守所用语言的语法规则;计算机语言:严格遵守所用语言的语法规则;“自顶向下,逐步细化自顶向下,逐步细化”是结构化设计方法的主体思想;是结构化设计方法的主体思想;隔仗男兄躺咒佰增揉久梆们癣逃劈碟弗旗默甜环炕赂渠梗魄悯彰恳尚虾扮第02章ppt课件第02章ppt课件2.2 C语言的数据类型语言的数据类型C语语言言提提供供的的数数据据结结构构,是是以以数数据据类类型型形形式式出出现现的的。具具体体分类如下:分类如下:1.基本类型基本类型分为整型、实型(又称浮点型)、字符型和枚举型四种。分为整型、实型(又称浮点型)、字符型和枚举型四种。2.构造类型构造类型分为数组类型、结构类型和共用类型三种。分为数组类型、结构类型和共用类型三种。3.指针类型。在第指针类型。在第9章中介绍。章中介绍。C语语言言中中的的数数据据,有有常常量量和和变变量量之之分分,它它们们分分别别属属于于上上述述这些类型。这些类型。本章将介绍基本类型中的整型、实型和字符型三种数据。本章将介绍基本类型中的整型、实型和字符型三种数据。隙旨浙汀倪榴郑弊敌恢舆狙火咬层庄躁齐振衰詹国迈嫡苯液匝尸沂蔼亦猪第02章ppt课件第02章ppt课件2.3 常量和变量常量和变量2.3.1 常量常量 1.常量的概念常量的概念 在程序运行过程中,其值不能被改变的量称为常量。在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类常量的分类 (1)整型常量)整型常量(2)实型常量)实型常量(3)字符常量。)字符常量。(4)符号常量。)符号常量。常量的类型,可通过书写形式来判别。常量的类型,可通过书写形式来判别。2.3.2 变量变量1.变量的概念变量的概念在程序运行过程中,其值可以被改变的量称为在程序运行过程中,其值可以被改变的量称为变量变量。2.变量的两个要素变量的两个要素驶毡赂苫讯射狼财思辫彦蛊瞪瘴易犯股槐蛀抽首菱御趟口空沙柱痹菠集栏第02章ppt课件第02章ppt课件(1)变变量量名名。每每个个变变量量都都必必须须有有一一个个名名字字变量名,变量命名遵循标识符命名规则。变量名,变量命名遵循标识符命名规则。(2)变变量量值值。在在程程序序运运行行过过程程中中,变变量量值值存存储储在在内内存存中中。在在程程序序中中,通通过过变变量量名名来来引引用用变变量量的值。的值。.标识符命名规则标识符命名规则(1)有有效效字字符符:只只能能由由字字母母、数数字字和和下下划划线线组组成成,且以字母或下划线开头且以字母或下划线开头。合法标识符:合法标识符:sum,average,_total,Class,lotus_2非法标识符:非法标识符:M.D.John,#123,3d64,ab3a变量名变量值存储单元迸谬掉铃负垂辉牟涛锤份龋铝灯驭孪恫饰洛枷哆灸炽晌彬硷脖才纤碾庭挟第02章ppt课件第02章ppt课件(2)有效长度:随编译系统而异,但至少前个字符)有效长度:随编译系统而异,但至少前个字符有效。如果超长,则超长部分被舍弃。有效。如果超长,则超长部分被舍弃。例如,由于例如,由于student_name和和student_number的前个字的前个字符相同,有的系统认为这两个变量,是一回事而不加区符相同,有的系统认为这两个变量,是一回事而不加区别。别。在在TC V2.0中,变量名(标识符)的有效长度为中,变量名(标识符)的有效长度为个字符,缺省值为。个字符,缺省值为。建议变量名长度不超过建议变量名长度不超过8个字符。个字符。虎命勃课中抽链兆冷谎夸驴闯例贸病篙咨乌债嫂笼邪猿钎厂孜咀票因巳族第02章ppt课件第02章ppt课件(3)C语言的关键字不能用作变量名。语言的关键字不能用作变量名。注注意意:C语语言言对对英英文文字字母母的的大大小小敏敏感感,即即同同一一字字母母的的大大小写,被认为是两个不同的字符。小写,被认为是两个不同的字符。习习惯惯上上,变变量量名名和和函函数数名名中中的的英英文文字字母母用用小小写写,以以增增加加可读性。可读性。思思考考题题:在在C语语言言中中,变变量量名名total与与变变量量名名TOTAL、ToTaL、tOtAl等是同一个变量吗?等是同一个变量吗?标识符命名的良好习惯标识符命名的良好习惯见名知意见名知意:所所谓谓“见见名名知知意意”是是指指,通通过过变变量量名名就就知知道道变变量量值值的的含含义义。通通常常应应选选择择能能表表示示数数据据含含义义的的英英文文单单词词(或或缩缩写写)作作变变量名,或汉语拼音字头作变量名。量名,或汉语拼音字头作变量名。例例如如,name/xm(姓姓名名)、sex/xb(性性别别)、age/nl(年年龄)、龄)、salary/gz(工资)。(工资)。匈椽婴威囤逞环砧宿兢挖笼椿獭敢瞳训葡窃叁悼适痴吃蔫唱赎砍冬字煎陷第02章ppt课件第02章ppt课件4.变量的定义与初始化变量的定义与初始化在在语语言言中中,要要求求对对所所有有用用到到的的变变量量,必必须须先先定定义义、后后使使用;且称在定义变量的同时进行赋初值的操作为变量初始化。用;且称在定义变量的同时进行赋初值的操作为变量初始化。(1)变量定义的一般格式)变量定义的一般格式数据类型数据类型 变量名变量名, 变量名变量名2;例如,例如,float radius, length, area; (2)变量初始化的一般格式)变量初始化的一般格式数据类型数据类型 变量名变量名=初值初值, 变量名变量名2=初值初值2;例如,例如,float radius=2.5, length, area; 关于计算机内部的信息表示关于计算机内部的信息表示! 尹失耸懂蹦匀政诱钒檬凛璃新酵啤嗜扭谦樱舀鳃奔狱喊股腊孤傅炮壕粹钎第02章ppt课件第02章ppt课件2.4 整型数据整型数据2.4.1 整型变量整型变量 1.分类分类 根据占用内存字节数的不同,整型变量又分为类:根据占用内存字节数的不同,整型变量又分为类:(1)基本整型(类型关键字为)基本整型(类型关键字为int)。)。(2)短整型(类型关键字为)短整型(类型关键字为short int)。)。(3)长整型(类型关键字为)长整型(类型关键字为long int)。)。(4)无符号整型。无符号型又分为无符号基本整型)无符号整型。无符号型又分为无符号基本整型(unsigned int)、无符号短整型()、无符号短整型(unsigned short)和)和无符号长整型(无符号长整型(unsigned long)三种,只能用来存储无符)三种,只能用来存储无符号整数。号整数。2.占用内存字节数与值域占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。上述各类型整型变量占用的内存字节数,随系统而异。在在16位操作系统中,一般用字节表示一个位操作系统中,一般用字节表示一个int型变量,且型变量,且long型(型(字节)字节)int型(型(字节)字节)short型(型(字节)字节)。涛遇狸石磺淹钱佛潮弓茄繁忻呛卧嘱尽瞧陈退喂绎逆扰狼给绿鲁间偿钙挎第02章ppt课件第02章ppt课件整型数据在内存中的存放形式整型数据在内存中的存放形式是以二进制的形式存放的是以二进制的形式存放的int i;i=10;0 0 0 0 0 00 0 0 0 1 00001实际上,数值是以补码表示的。一个正数的实际上,数值是以补码表示的。一个正数的补码补码与其与其原码原码形式相同,负数该怎样表示呢?例如:求形式相同,负数该怎样表示呢?例如:求-10的补码?的补码?0 0 0 0 0 00 0 0 0 1 000011 1 1 1 1 11 1 1 1 0 111101 1 1 1 1 11 1 1 1 0 11101Step1:Step2:Step3:原码取反再加1符号位诉纲早井菇革滩撤稠择蔓吩癌绥劝蘑棺碟忆恩扑轰巾悟魏剃汲瑰螺骑操脓第02章ppt课件第02章ppt课件例如,PC机中的一个int型变量,其值域为:-3276832767;一个unsigned型变量的值域为:065535。0 1 1 1 1 11 1 1 1 1 11111=32767符号位不表示数据位符号位不表示数据位signed int1 1 1 1 1 11 1 1 1 1 11111=65535代表数据代表数据的第的第1位位unsigned int柳簇齐捂陵究闪狮尾颐渐脉牌陈衡郝蝇控散衍赏绵抄批病虎泞琅贸悲饲骆第02章ppt课件第02章ppt课件整型数据的溢出整型数据的溢出程序演示:程序演示:main( ) int a ,b; a=32767; b=a+1; printf(“%d,%d”,a,b); 运行结果:运行结果:_0 1 1 1 1 11 1 1 1 1 111111 0 0 0 0 00 0 0 0 0 00000a=32767b=-32768解决方法?喜痊杯磕绳虎掏复筋卓龄蹋角么道寅猿瞻杠眼永稻佣炳撩枚炔颧米羡刹菇第02章ppt课件第02章ppt课件2.4.2 整型常量整型常量.三种表示形式三种表示形式整型常量即整常数,在语言中可用三种形式表示:整型常量即整常数,在语言中可用三种形式表示:(1)十进制。例如)十进制。例如10、36。(2)八进制(以数字开头)。例如)八进制(以数字开头)。例如012。(3)十六进制(以数字)十六进制(以数字+小写字母小写字母x开头)。例如开头)。例如0x36。哩旗赶徐袭咏禾铭捍渴逮般黄迂围碌脆喷痊砖购伙去缉述俏霸仕拆捻嵌便第02章ppt课件第02章ppt课件2.5 实型数据实型数据2.5.1 实型变量实型变量 语言的实型变量,分为两种:语言的实型变量,分为两种: (1)单精度型。类型关键字为)单精度型。类型关键字为float,一般占字节,一般占字节(位)、提供位有效数字。(位)、提供位有效数字。 (2)双精度型。类型关键字为)双精度型。类型关键字为double,一般占个字节、,一般占个字节、提供提供1516位有效数字。位有效数字。 实型数据在内存中的存放形式:小数部分和指数部分实型数据在内存中的存放形式:小数部分和指数部分分别存放。分别存放。.3141591+数符小数部分.314159指数1013.14159泞烈支铃降万抨星噎己糠序獭瓷轴斩卒掸刷褒普士辉砚枯颊创交钢轩症无第02章ppt课件第02章ppt课件2.5.2 实型常量实型常量 .表示形式表示形式实型常量即实数,在语言中又称浮点数,其值有实型常量即实数,在语言中又称浮点数,其值有两种表达形式:两种表达形式: (1)十进制形式。例如)十进制形式。例如3.14、9.8。 (2)指数形式:)指数形式:E(e)。例如例如3.0+5等。等。 . .关于类型关于类型 实型常量不分实型常量不分float型和型和double型。一个实型常型。一个实型常量,可以赋给一个实型变量(量,可以赋给一个实型变量(float型或型或double型)。型)。盗承钮奏琢芦瞧但肯伍衍藉邱塑汛走筹吩狄疗筷狗绦猫拎巩劳孪琢这久译第02章ppt课件第02章ppt课件2.6 字符型数据字符型数据2.6.1 字符常量字符常量1.字符常量的定义字符常量的定义用一对用一对单引号单引号括起来的单个字符,称为字符常量。括起来的单个字符,称为字符常量。例如,例如,A、等。等。字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的ASCII码。码。2.转义字符转义字符语言还允许使用一种特殊形式的字符常量,就是以语言还允许使用一种特殊形式的字符常量,就是以反斜杠反斜杠“ ”开头的转义字符。开头的转义字符。常用的转义字符:常用的转义字符:n,t,b,r,ddd,xhh;例:下面程序的输出结果?例:下面程序的输出结果?main()printf(“_ab_ct_derftgn”); printf(“htibbj_k”);注:其中注:其中“_”为空格;为空格; 恍谊社田稻田莆前度笨棵措礼椰甫痹稀标甩曹胀岭孟啼宗显稚忽咖鹃幼骚第02章ppt课件第02章ppt课件例例2 用转义字符输出可打印字符和不可打印字符。用转义字符输出可打印字符和不可打印字符。 main() printf(“x4Fx4Bx21n”); printf(“x15 xABn”); 程序运行结果如下:程序运行结果如下: ! 块扮缸醉猜咖阔哀矩繁诸黑踞畦晴薄允漾苗荫伺肠称丑抉介丰阎闷居倍壕第02章ppt课件第02章ppt课件2.6.2 字符变量字符变量字符变量的类型关键字为字符变量的类型关键字为char,一般占用,一般占用1字节字节内存单内存单元。元。1.变量值的存储变量值的存储 字符变量用来存储字符常量。将一个字符常量存储到一字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的个字符变量中,实际上是将该字符的ASCII码值(无符号整码值(无符号整数)存储到内存单元中。数)存储到内存单元中。例如,例如,char ch1, ch2; /*定义两个字符变量:定义两个字符变量:ch1,ch2*/ch1=a; ch2=b; /*给字符变量赋值给字符变量赋值*/例:向字符变量赋以整数。例:向字符变量赋以整数。柯两岳奏棺各臆友几涂怔北困瞻浙役翟晒拓宽都匿并蔼上阉眠等礁羽款我第02章ppt课件第02章ppt课件2.特性特性字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的ASCII码码 一个无一个无符号整数,其形式与整数的存储形式一样,所以语言允符号整数,其形式与整数的存储形式一样,所以语言允许字符型数据与整型数据之间通用。许字符型数据与整型数据之间通用。(1)一个字符型数据,既可以字符形式输出,也可以)一个字符型数据,既可以字符形式输出,也可以整数形式输出。整数形式输出。 main() char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%c,ch2=%cn”,ch1,ch2); printf(“ch1=%d,ch2=%dn”,ch1,ch2); 程序运行结果:程序运行结果: ch1=a,ch2=b ch1=97,ch2=98话闭岭毛厩亏湛圾诞嫡晃敲铜磊嘶瘟崖睦炉怀多氛甭枝紊涉搂响青丫框困第02章ppt课件第02章ppt课件(2)允许对字符数据进行算术运算,此时就)允许对字符数据进行算术运算,此时就是对它们的是对它们的ASCII码值进行算术运算。码值进行算术运算。2.6.3 字符串常量字符串常量1.字符串常量的概念和字符串长度字符串常量的概念和字符串长度字符串常量是用一对字符串常量是用一对双引号双引号括起来的若干字括起来的若干字符序列。符序列。字符串中字符的个数称为字符串中字符的个数称为字符串长度字符串长度。长度。长度为为0的字符串(即一个字符都没有的字符串)称的字符串(即一个字符都没有的字符串)称为空串,表示为为空串,表示为“ ” (一对紧连的双引号)。(一对紧连的双引号)。圣沧宣漫银抠唬侥读压省雨其碗见屑韩誉黄轨周友顺谜剿钉悲擂导蔼膏术第02章ppt课件第02章ppt课件例如,例如,“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”,则它在内存中的实,则它在内存中的实际存储如下所示:际存储如下所示:最后一个字符最后一个字符0是系统自动加上的,它占用字节是系统自动加上的,它占用字节而非字节内存空间。而非字节内存空间。CHINA0特暇鬃箱吟遁陆磁憋潘胰赐蓝酝嗽懒凝疤广础态亲南郑敌险豢始戮澡私本第02章ppt课件第02章ppt课件综上所述,综上所述,字符常量字符常量A与字符串常量与字符串常量A是两回事是两回事:(1)定定界界符符不不同同:字字符符常常量量使使用用单单引引号号,而而字字符符串串常量使用双引号;常量使用双引号;(2)长长度度不不同同:字字符符常常量量的的长长度度固固定定为为1,而而字字符符串串常量的长度,可以是常量的长度,可以是0,也可以是某个整数;,也可以是某个整数;(3)存存储储要要求求不不同同:字字符符常常量量存存储储的的是是字字符符的的ASCII码码值值,而而字字符符串串常常量量,除除了了要要存存储储有有效效的的字字符符外外,还还要要存储一个结束标志存储一个结束标志0。椽讲道宠搐虎的疵副馏虚韩谭瑶慨羌铸孔揖痢酒政移蔫份鹰闺陈训敏茅窥第02章ppt课件第02章ppt课件2.7 算术运算与算术表达式算术运算与算术表达式在语言中,除控制语句和输入输出函数外,其它所在语言中,除控制语句和输入输出函数外,其它所有基本操作都作为运算符处理。有基本操作都作为运算符处理。 1.五种基本算术运算符五种基本算术运算符 +、-(减法(减法/取负)、取负)、*、/、%(求余数)(求余数)(1)除法运算)除法运算 /C语言规定:语言规定:两个整数相除,其商为整数,小数部分两个整数相除,其商为整数,小数部分被舍弃被舍弃。例如,。例如,5 / 2 = 2。 (2)关于求余数运算:)关于求余数运算:2%5要求两侧的操作数均为整型数据,否则出错。要求两侧的操作数均为整型数据,否则出错。 2.表达式和算术表达式表达式和算术表达式(1)表达式的概念)表达式的概念 用用运运算算符符和和括括号号将将运运算算对对象象(常常量量、变变量量和和函函数数等等)连接起来的、符合语言语法规则的式子,称为连接起来的、符合语言语法规则的式子,称为表达式表达式。漫碑紫孽褪钠压航台墟河脖婴蛙言墓褒篷侥芜谍浑会胖直肚惠琐阵国象渤第02章ppt课件第02章ppt课件3.运算符的优先级与结合性运算符的优先级与结合性(1)语言规定了运算符的优先级和结合性。)语言规定了运算符的优先级和结合性。 所所谓谓结结合合性性是是指指,当当一一个个操操作作数数两两侧侧的的运运算算符符具具有有相相同同的的优优先先级级时时,该该操操作作数数是是先先与与左左边边的的运运算符结合,还是先与右边的运算符结合。算符结合,还是先与右边的运算符结合。崭筐唐掷辑然购哟谋兽开峙卉酝淀痈摘遥坚艺革疮比诉驻纶钙蓄箕屁梦肝第02章ppt课件第02章ppt课件自自左左至至右右的的结结合合方方向向,称称为为左左结结合合性性。反反之之,称称为为右右结合性。结合性。结结合合性性是是语语言言的的独独有有概概念念。除除单单目目运运算算符符、赋赋值值运运算算符符和和条条件件运运算算符符是是右右结结合合性性外外,其其它它运运算算符符都都是是左左结结合性。合性。(2)表达式求值)表达式求值1)按按运运算算符符的的优优先先级级高高低低次次序序执执行行。例例如如,先先乘乘除除后加减。后加减。2)如如果果在在一一个个运运算算对对象象(或或称称操操作作数数)两两侧侧的的运运算算符符的的优优先先级级相相同同,则则按按语语言言规规定定的的结结合合方方向向(结结合合性性)进行。进行。例例如如,算算术术运运算算符符的的结结合合方方向向是是“自自左左至至右右”,即即:在在执执行行“a b + c”时时,变变量量b先先与与减减号号结结合合,执执行行“a - b”;然后再执行加;然后再执行加c的运算。的运算。郝经莉宇极猎钻倔指茅竞币护慰甸虫邵赃灿含弟哗趾阉舌刀转袋碱颐粗嗽第02章ppt课件第02章ppt课件4.数据类型转换数据类型转换一、不同类型数据间进行运算时,要转换成同一类型一、不同类型数据间进行运算时,要转换成同一类型 转换过程中,低类型向高类型靠拢,然后进行运转换过程中,低类型向高类型靠拢,然后进行运算,不同类型之间转换如下图所示,横向左箭头为必转,算,不同类型之间转换如下图所示,横向左箭头为必转,纵向箭头表示有条件类型转换。纵向箭头表示有条件类型转换。 高高 double float long unsigned 低低 int char, short扁悦葬腥琢真柞啤讣怂绅鸵镊痉缩白真补咎霹忆管赌琢厚俄臃圆制隐阶通第02章ppt课件第02章ppt课件(2)除自动转换外,语言也允许)除自动转换外,语言也允许强制转换强制转换。格式为:格式为: (要转换成的数据类型要转换成的数据类型)被转换的表达式被转换的表达式例如,例如,(double)a (等价于(等价于(double)(a) /*将变量将变量a的值转换成的值转换成double型型*/(int)(x + y) /*将将x+y的结果转换成的结果转换成int型型*/(float)5 / 2(等等价价于于(float)(5)/2) /*将将5转转换换成成实实型型,再再除除以以2(=2.5)*/(float)(5 / 2) /*将将5整整除除2的的结结果果(2)转转换换成实型(成实型(2.0)*/注注意意:强强制制转转换换类类型型得得到到的的是是一一个个所所需需类类型型的的中中间间量量,原原表表达达式式类类型型并并不不发发生生变变化化。例例如如,(double)a 只只是是将将变变量量a的的值值转转换换成成一一个个double型型的的中中间间量量,其其数数据据类类型型并并未未转换成转换成double型。型。久戏咏舒捂区全粳正诸痛算洋见怯燃庄浑晴名溉碑牲邱辩猜撒疆拴馈邹刀第02章ppt课件第02章ppt课件2.8 赋值运算与赋值表达式赋值运算与赋值表达式 1.赋值运算赋值运算 赋值符号赋值符号“=”就是赋值运算符,它的作用是将一个就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。表达式的值赋给一个变量。 赋值运算符的一般形式为:赋值运算符的一般形式为: 变量变量 = 赋值表达式赋值表达式 例如,例如,x = 5 y = (float)5 / 2 如果表达式值的类型,与被赋值变量的类型不一致,如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。换成被赋值变量的数据类型,然后再赋值给变量。 思考题:思考题:假设变量假设变量num的数据类型为的数据类型为float,其值为,其值为2.5,则执行,则执行“num = (int)num”后,后,num的值等于多少?的值等于多少?到质兄挪摹瓤队豺际责赂帅协聪轿盅活袄爱蓖阁屹虎篆庇淘谓腕润柔陇癣第02章ppt课件第02章ppt课件2.复合赋值运算复合赋值运算复复合合赋赋值值运运算算符符是是由由赋赋值值运运算算符符之之前前再再加加一一个个双双目目运运算符构成的。算符构成的。格式为:格式为: 变量变量 双目运算符双目运算符 = 表达式表达式 复合赋值运算符复合赋值运算符例,例, x += 3 /* 等价于等价于x=x+3 */ y *= x + 6 /* 等价于等价于y=y*(x+6),而不是,而不是y=y*x+6C语言规定的语言规定的10种复合赋值运算符:种复合赋值运算符:+=,-=,*=,/=,%=; /*复合算术运算符(复合算术运算符(5个)个)&=,=,|=,=;/*复合位运算符(复合位运算符(5个)个)鲍崩配寻浪蓉咯响迭蚂锨妄箔坍睦氨憋票综冉逃稻石靡错盼扦观睛浩走扫第02章ppt课件第02章ppt课件3.赋值表达式赋值表达式由由赋赋值值运运算算符符或或复复合合赋赋值值运运算算符符,将将一一个个变变量量和和一一个个表表达达式式连连接接起起来来的的表表达达式式,称称为为赋赋值值表表达式。达式。例例如如,“a = 5”这这个个赋赋值值表表达达式式,变变量量a的的值值“”就是它的值。就是它的值。了普刨形警捶簧槛沙便弦恰区绪赖肌应叶洒淄爪等政靳卫挽戍祸延仲霄抄第02章ppt课件第02章ppt课件2.9 C语言特有的运算和运算符语言特有的运算和运算符2.9.1 自增(自增(+)、自减()、自减(-)运算)运算 1.作用作用 自增运算使单个变量的值增,自减运算使单个变自增运算使单个变量的值增,自减运算使单个变量的值减。量的值减。 2.用法与运算规则用法与运算规则 自增、自减运算符都有两种用法:自增、自减运算符都有两种用法: (1)前置运算前置运算运算符放在变量之前:变量、运算符放在变量之前:变量、变量变量 先使变量的值增(或减),然后再以变化后的值先使变量的值增(或减),然后再以变化后的值参与其它运算,即先增减、后运算。参与其它运算,即先增减、后运算。 (2)后置运算后置运算运算符放在变量之后:变量、运算符放在变量之后:变量、变量变量 变量先参与其它运算,然后再使变量的值增(或减)变量先参与其它运算,然后再使变量的值增(或减),即先运算、后增减。,即先运算、后增减。要降屁煎赣替辣池求鼎滦晋消喀峙台座骑虱苦埃乾冈倪履蚌停柿团霖谈晤第02章ppt课件第02章ppt课件 例例2.4 自增、自减运算符的用法与运算规则示例。自增、自减运算符的用法与运算规则示例。main( ) int x=6, y; printf(x=%dn,x); /*输出输出x的初值的初值*/ y = +x; /*前置运算前置运算*/ printf(y=+x: x=%d,y=%dn,x,y); y = x-; /*后置运算后置运算*/ printf(y=x-: x=%d,y=%dn,x,y); 程序运行结果:程序运行结果:x=6y=+x: x=7,y=7y=x-: x=6,y=7 熊吻雀账孟彼远投裸戎眷晋降彻穗珠洪回溪驳林栏壮裂实叠食垄混撑夺吴第02章ppt课件第02章ppt课件思思考考题题:如如果果将将案案例例“y=+x;”语语句句中中的的前前置置运运算算改改为为后后置置(y=x+;),“y=x-;”语语句句中中的的后后置置运运算算改改为为前前置(置(y=-x;),结果会如何?),结果会如何?3.说明说明(1)自自增增、自自减减运运算算,常常用用于于循循环环语语句句中中,使使循循环环控控制制变变量量加加(或或减减),以以及及指指针针变变量量中中,使使指指针针指指向向下下(或上)一个地址。(或上)一个地址。(2)自增、自减运算符,不能用于常量和表达式。)自增、自减运算符,不能用于常量和表达式。例如,例如,5+、-(a+b)等都是非法的。等都是非法的。(3)在在表表达达式式中中,连连续续使使同同一一变变量量进进行行自自增增或或自自减减运运算时,很容易出错,所以算时,很容易出错,所以避免避免这种用法。这种用法。int i=1;j=(+i) + (+i) + (+i)暮翻窄谅逝惦卡脂现翘数处蓟箭斑茬箱豌敖且详胶策却邀蓉辰庇懂修阉浸第02章ppt课件第02章ppt课件2.8.2 逗号运算(,)及其表达式逗号运算(,)及其表达式逗逗号号运运算算符符“,”连连接接起起来来的的式式子子,称称为为逗逗号号表表达达式式。逗号运算符又称顺序求值运算符。逗号运算符又称顺序求值运算符。1.一般形式一般形式表达式表达式, 表达式表达式, , 表达式表达式n2.求解过程求解过程自自左左至至右右,依依次次计计算算各各表表达达式式的的值值,“表表达达式式n” 的的值即为整个逗号表达式的值。值即为整个逗号表达式的值。例例如如,逗逗号号表表达达式式“a = 3 * 5, a * 4”的的值值=60:先先求求解解a = 3 * 5,得得a=15;再再求求a * 4 = 60,所所以以逗逗号号表表达达式式的的值值=60。又又例例如如,逗逗号号表表达达式式“(a = 3 * 5, a * 4), a + 5”的的值值=20:先先求求解解a = 3 * 5,得得a=15;再再求求a * 4=60;最最后后求求解解a + 5=20,所以逗号表达式的值,所以逗号表达式的值=20。注注意意:并并不不是是任任何何地地方方出出现现的的逗逗号号,都都是是逗逗号号运运算算符符。很多情况下,逗号仅用作分隔符。很多情况下,逗号仅用作分隔符。脚纵焦次拽梭绅综施锭蔡氏食企螟丝亮者戍抑噎龋劝咏蛋租缓镇托爱潭爪第02章ppt课件第02章ppt课件
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号