




免费预览已结束,剩余37页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,本章要点,数据的描述规则数据的操作规则,主要内容,2.1标识符2.2常量与变量2.3运算符和表达式2.4标准函数和自定义函数2.5格式输入输出函数,2.3运算符和表达式,的运算符有以下几类:算术运算符(+-*/%)关系运算符(!)逻辑运算符(!|)位运算符(|)赋值运算符(及其扩展赋值运算符)条件运算符(?:)逗号运算符(,),1、运算符的分类(1)、按功能分,指针运算符(*和)求字节数运算符()强制类型转换运算符((类型))分量运算符(-)下标运算符()其他(如函数调用运算符(),(2)按运算对象个数分,单目运算符:只有一个运算对象,如;-(负号)双目运算符:有两个运算对象,如:+(加号)三目运算符:有三个运算对象,如:?:条件运算,(3)学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向运算结果的类型,2、算术运算符和算术表达式,(1)基本的算术运算符:(加法运算符,或正值运算符。如:、)(减法运算符,或负值运算符。如:、)*(乘法运算符。如:*)(除法运算符。如:)(模运算符,或称求余运算符,两侧均应为整型数据,如:的值为)。,结合方向:从左向右(-除外)-(负号)从右向左优先级:-*/%-+-(2)(3)(4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,例5/2=-5/2.0=,例5%2=-5%2=1%10=5%1=5.5%2,例5/2=2-5/2.0=-2.5,例5%2=1-5%2=-11%10=15%1=05.5%2(),(2)算术表达式用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式。运算对象包括常量、变量、函数等。例如:*.5a是一个合法的表达式,(3)自增、自减运算符作用是使变量的值增或减如:,(在使用之前,先使的值加(减),(在使用之后,使的值加(减),i+与+i的区别:是先执行后,再使用的值;是先使用的值后,再执行。例如:;i的值先变成4,再赋给,j的值均为;先将i的值3赋给,的值为,然后变为,注意:(1)自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达式,(2)和的结合方向是“自右至左”。,自增(减)运算符常用于循环语句中使循环变量自动加。也用于指针变量,使指针指向下一个地址,例j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,语言中有的运算符为一个字符,有的运算符由两个字符组成,为避免误解,最好采取大家都能理解的写法。例如:不要写成i+j的形式,而应写成(i+)+j或i+(+j)的形式,(5)有关表达式使用中的问题说明,(6)i+与+i只在表达式中有区别,若只是简单的语句是没有区别的,也就是说:i+;与+i;是没有区别的,例1、以下选项中值为1的表达式是()(2006年9月全国计算机二级考试原题)A、1-0B、1-0C、1-0D、0-0例2、s(s-a)(s-b)(s-c)是合法的C语言表达式。例3、表达式3*5/2和表达式3/2*5等价。例4、在C语言中,表达式(010+2)的值是10。,例6、以下不能正确表示代数式2ab/cd的C语言表达式的是()。(2008年9月全国计算机等考试原题)A、2*a*b/c/dB、a*b/c/d*2C、a/c/d*b*2D、2*a*b/c*d,A,D,例、有以下定义:inta;longb;doublex,y;则以下选项中正确的表达式是A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x,这个表达式正确?,错,2010年9月全国计算机等级考试二级笔试试题,例、以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序分别输出,请填空。#includemain()intx=256;printf(%d-%d-%dn,x%10,_,x/100);,2010年3月国考原题,x/10%10,或x%100/10,3、赋值运算符和赋值表达式,(1)赋值运算符赋值符号“”就是赋值运算符,它的作用是将一个数据赋给一个变量。如“”的作用是执行一次赋值操作(或称赋值运算)。把常量赋给变量。也可以将一个表达式的值赋给一个变量.,(2)类型转换如果赋值运算符两侧的类型不一致,但只能是数值型或字符型进行运算时,在赋值时要进行类型转换。将浮点型数据(包括单、双精度)赋给整型变量时,舍弃浮点数的小数部分。如:为整型变量,执行“i=3.56”的结果是使的值为,以整数形式存储在整型变量中.,将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中如:将23赋给float变量,即执行23,先将23转换成2300000,再存储在中。将23赋给double型变量,即执行23,系统将23补足有效位数字为2300000000000000,然后以双精度浮点数形式存储到变量中。,第一种情况:低位对应、高位补零若将无符号数进行赋值,低位原封不动的进行赋值,高位则全补为0。,第二种情况:符号扩展若将有符号数进行赋值,低位原封不动的进行赋值,高位则全补为数据的符号位。,将一个数据位数少的赋值给一个数据位数多的变量,将一个数据位数多的赋值给一个数据位数少的变量如:将一个int、short、long型数据赋给一个char型变量时,只将其低8位原封不动地送到char型变量(即截断)。例如:inti=289;charc=a;c=i;,c的值为33,如果用“%c”输出c,将得到字符“!”!的ASCII码为33。,赋值情况:,例2.6有符号数据传送给无符号变量。#includevoidmain()unsigned;int;print(n,);,说明:“%u”是输出无符号数时所用的格式符。如果为正值,且在32767之间,则赋值后数值不变。,运行结果:,(3)复合的赋值运算符在赋值符“”之前加上其他运算符,可以构成复合的运算符。例如:等价于*等价于*()等价于,以“”为例来说明,它相当于使进行一次自加()的操作。即先使加,再赋给。,为便于记忆,可以这样理解:a+=b(其中a为变量,b为表达式)a+=b(将有下划线的“a+”移到“=”右侧)|_a=a+b(在“=”左侧补上变量名a),注意:如果是包含若干项的表达式,则相当于它有括号。如:x%=y+3x%=(y+3)|_x=x%(y+3)(不要错写成x=x%y+3),凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值符。,语言规定可以使用种复合赋值运算符:,*,|,例、若有定义语句:intx=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10,2009年9月全国计算机等级考试二级笔试试卷C语言程序设计试题,B,例、表达式a+=a-=a=9的值是A)9B)-9C)18D)0,2010年9月全国计算机等级考试二级笔试试题,D,2010年9月全国计算机等级考试二级笔试试题,C,(4)赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。一般形式为:例如:“5”是一个赋值表达式,对赋值表达式求解的过程是:求赋值运算符右侧的“表达式”的值;赋给赋值运算符左侧的变量。例如:赋值表达式“=3*5”的值为15,执行表达式后,变量a的值也是15。,注意:一个表达式应该有一个值,赋值表达式的值是左侧变量的值。,左值(Lvalue):赋值运算符左侧必须是标识符(变量)变量可以作为左值;而表达式就不能作为左值(如a+b);常变量也不能作为左值,,右值(Rvalue):出现在赋值运算符右侧的表达式(变量、常量或是表达式),赋值表达式中的“表达式”,又可以是一个赋值表达式。例如:a=(b=5),分析:括弧内的“b=5”是一个赋值表达式,它的值等于5。执行表达式“a=(b=5)”相当于执行“b=5”和“ab”两个赋值表达式。赋值运算符按照“自右而左”的结合顺序,因此,“(b5)”外面的括弧可以不要,即“a=(b=5)”和“a=b=5”等价。,请分析下面的赋值表达式(a=3*5)=4*3,分析:先执行括弧内的运算,将15赋给a,然后执行4*3的运算,得12,再把12赋给a。最后a的值为12,整个表达式的值为12。可以看到(a=3*5)出现在赋值运算符的左侧,因此赋值表达式(a=3*5)是左值,注意:在对赋值表达式(a=3*5)求解后,变量a得到值15执行(a=3*5)=4*3时,实际上是将4*3的积12赋给变量a,而不是赋给3*5。,不能写成:a=3*5=4*3,赋值表达式也可以包含复合的赋值运算符。如:a=12;则表达式a+=a-=a*a的值是多少?,分析:此赋值表达式的求解步骤如下先进行“*”的运算,它相当于*,a的值为144132。再进行“”的运算,相当于=a+(-132),a的值为132-132-264。,将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。如:printf(%d,a=b);,分析:如果b的值为3,则输出a的值(也是表达式a=b的值)为3。在一个语句中完成了赋值和输出双重功能。,例1、设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()(2007年4月全国计算机二级考试原题)A、k+B、k+=1C、+kD、k+1例3、若变量均已正确定义并赋值,以下合法的C语言表达式是()(2007年9月全国计算机二级考试原题)A、x=y=5B、x=n%2.5C、x+n=ID、x=5=4+1,(2008年9月全国计算机二级考试原题),A,A,a=a-(a+b),5、关系运算符与逻辑运算符(第三章介绍)6、位运算(第十章介绍)7、其它运算符(1)条件运算符(第三章介绍),(2)逗号运算符和逗号表达式,逗号运算符:将两个表达式连接起来,又称为“顺序求值运算符”如:5,,一般形式:表达式,表达式,求解过程:先求解表达式,再求解表达式。整个逗号表达式的值是表达式的值。,逗号表达式的值为14,例:逗号表达式*5,*,分析:赋值运算符的优先级别高于逗号运算符,因此应先求解*5。,的值为5,然后求解*,得。整个逗号表达式的值为。,一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式如:(*,*)先计算出的值等于,再进行*的运算得60(但值未变,仍为15),再进行得,即整个表达式的值为。,逗号表达式的一般形式可以扩展为表达式,表达式,表达式,表达式它的值为表达式的值。,逗号运算符是所有运算符中级别最低的例:(,*),*3,赋值表达式,将一个逗号表达式的值赋给,的值等于,逗号表达式,包括一个赋值表达式和一个算术表达式,的值为,整个逗号表达式的值为18。,注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如:printf(“%d,%d,%d”,a,b,c);,“,”并不是一个逗号表达式,它是printf函数的3个参数,printf(“%d,%d,%d”,(a,b,c),b,c),“(,)”是一个逗号表达式,它的值等于的值。,例1、设变量已正确定义并赋值,以下正确的表达式是()。(2008年4月全国计算机等考试原题)A、x=y*5=x+zB、int(15.8%5)C、x=y+z+5,+yD、x=25%5.0例2、设变量已正确定义为整型,则表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》复习试题【培优】附答案详解
- 2025年教师招聘之《幼儿教师招聘》押题练习试卷附参考答案详解(达标题)
- 2025呼伦贝尔莫力达瓦达斡尔族自治旗尼尔基第一中学校园引才笔试备考及完整答案详解
- 2025广东广州银行人才招聘考试备考题库及答案解析
- 2025年汽车轻量化材料在汽车轻量化车身制造中的产业布局与市场前景研究报告
- 棚户区改造项目房屋产权分割及购房合同模板-@-3
- 2025年乳腺病学乳房超声影像解读练习答案及解析
- 南阳党建面试题库及答案
- 教师招聘之《小学教师招聘》综合提升试卷及参考答案详解【模拟题】
- 2025年教师招聘之《小学教师招聘》试卷含完整答案详解【夺冠系列】
- (康德卷) 重庆市2026届高三9月开学考联考英语试卷(含答案解析)
- 2025江苏省旅游发展研究中心自主招聘4人考试参考试题及答案解析
- 小学一二三年级劳动与技术《整理书包》课件
- DB225118-2022建筑工程资料管理标准
- 小学语文口语交际教学讲座PPT
- 上海建筑装饰集团发展战略报告(doc 30)
- 《基础统计》教学案例“郑州市大瓶装纯水市场调查”统计应用案例
- DB36_T 1157-2019 瓷土、瓷石矿产地质勘查规范(高清无水印-可复制)
- 《大型企业财务数智化转型白皮书》
- 电子课件-《网络营销(第三版)》-A24-2998ppt课件
- 南瑞继保后台监控使用厂家培训版本
评论
0/150
提交评论