C语言设计张捷第三章数据类型、运算符和表达式.ppt

上传人:tia****nde 文档编号:12805555 上传时间:2020-05-25 格式:PPT 页数:49 大小:378KB
返回 下载 相关 举报
C语言设计张捷第三章数据类型、运算符和表达式.ppt_第1页
第1页 / 共49页
C语言设计张捷第三章数据类型、运算符和表达式.ppt_第2页
第2页 / 共49页
C语言设计张捷第三章数据类型、运算符和表达式.ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
1,第三章数据类型、运算符和表达式,2,3.1C语言数据类型,3.1.1C语言数据类型整型字符型实型(浮点型)枚举类型数组结构体类型共用体类型,单精度型双精度型,基本类型,构造类型,指针类型,空类型,数据类型,3,3.1C的数据类型,4,3.2常量与变量,3.2.1常量1.定义:在程序执行期间,其值不可改变的量称为常量2.类型:数值常量例如:10,3,2.68等符号常量即用一个符号代表一个常量例如:#definePI3.1415926main()floatr,l,s;r=2;l=2*PI*r;s=PI*r*r;printf(“l=%d,s=%d”,l,s);,5,说明:,符号常量必须先定义后才能用它表示一个数值。符号常量的值在其作用域内不能改变,也不能再被赋值。符号常量名习惯用大写字母表示。,6,3.2.2变量,1.定义:程序执行期间值可以改变的量。2.命名规则:变量名由标识符表示,只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例如:下列标识符中,不合法的变量名有:M.D.John,12%gf,1add,_ce36,age(每个变量分配4个字节),3,a,7,在C语言中,变量必须强制定义,其目的:1、凡未被事先定义的,不作为变量名。2、每一个变量被指定为一确定的类型,在编译时就能为其分配相应的存储单元。3、指定每一个变量为一确定的类型,在编译时据此检查该变量所进行的运算是否合法。例如:如果变量a,b是整型类型,则可以进行求余运算:a%b而两个实数类型的变量求余是不允许的。,8,*选变量名时,要做到“见名知意”例如:namest_agexmnlclasssum*大小写字母是两个不同的字符,C变量名习惯用小写字母表示。*建议变量名的长度不要超过8个字符。,请注意,9,3.3整型数据,3.3.1整型常量的表示法十进制整数:由数字(0-9)和正负号表示例如:123、-456、0等八进制整数:以0开头数是八进制数例如:0123即(123)8=(83)10(123)8=182+281+380=(83)10十六进制整数:以0 x或0X开头,例如:0 x123即(123)16=(291)10-0 x12即(-12)16=(-18)10,10,3.3.2整型变量整型数据在内存中的存放形式(补码表示法:便于加减运算)inti;i=10;10=(1010)2,2,10,2,5,2,2,2,1,0,余数,0,1,0,1,首位,0000000000001010,0000000000001010,1111111111110101,1111111111110110,10的原码,取反,取反后再加1,得-10的补码,10的表示法,正数的补码等于它的原码,-10,11,2整型变量的分类,基本型:以int表示短整型:以shortint或short表示1.类型长整型:以longint或long表示(123l、123L)无符号基本型(unsignedint)无符号型无符号短整型(unsignedshort)无符号长整型(unsignedlong),(-3276832767),一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。inta;/*变量a的数值范围:-3276832768*/unsignedintb;/*变量b的数值范围:065535*/,12,整型变量的字长short型字长16位(2个字节)。long型字长32位(4个字节)。int型随编译程序而定(可以是2个字节,也可以是4个字节)C要求long型数据长度不短于int型,short型不长于int型。(short5若要得到x/2的小数部分,应写为:(float)x/2还是float(x/2)()在强制类型转换时,得到一个所需类型的中间变量,原来变量类型未发生变化。例如:floatx=8.6;inty;y=(int)x;,34,请看下面程序段:,main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);,输出结果:x=3.600000,i=3,注意:强制类型转换后并不改变原来变量的类型,35,4、自增、自减运算符(、),作用:使变量的值增或减,如:i,i(使用之前,先使i的值加(减)1)i,i(使用之后,使i的值加(减)1)+i先执行i=i+1,再使用i的值i+先使用i的值,再执行i=i+1例如:inta=1,b;b=+a;b=a+;,举例:intj,i=3;j=+i;/*j的值为4,i为4*/j=i+;/*j的值为4,然后i的值变为5*/j=-i+;/*j的值-5,然后i的值变为6*/,36,说明:(1)为单目运算符(2)+、只能用于变量,而不能用于常量或表达式。例如:,(x+y)+,+a,b+中合法的为:(3)自增、自减运算符为右结合性(即自右至左)。例如:a+(a+),4、自增、自减运算符(、),错误的结合(-a)+,37,练习题,设a=2,则执行语句k=+a+a+后的k值为多少?(k=6,a=4)a=(i+)+(i+)+(i+)?printf(“%d,%d”,i,i+)?,请避免这种写法,38,3.9赋值运算符和赋值表达式,1、赋值运算符(=)形式:变量名=常量或表达式作用:将右边常量或表达式的值赋给左边的变量例如:b=c+d,要求:如果表达式类型与左边的变量的类型不匹配,自动进行类型转换。,39,2、类型转换的原则,(1)将实型数据赋给整型变量时,舍弃实数的小数部分如:若a为int型变量,执行a=3.56后,则a的值3,(2)将整型数据赋给实型数据时,数值不变,但以浮点形式存储到变量中。如:若b为float型变量,执行b=35后,则b为35.00000,(3)整型数据赋给字符型变量时,只将低8位原封不动地送到字符变量中(即截断)。,40,(4)字符型数据赋给整型变量时,将字符数据(8位)放到整型变量低8位中。高8位则需要依据“符号扩展”来决定。,41,(5)将带符号数据赋给长度相同的无符号型变量,原样照赋。(6)double赋给float时,截取前面7位有效数字。,42,43,44,P66(3.11)写出下面赋值的结果。格中写了数值的是要将它赋给其它类型的变量,将所有空格添上赋值后的数值。,int9910076536842-1,charcdL5D*X,unsignedint991007653684265535,float99.000000100.00000076.00000053.6568.00000042.00000065535.000000,longint991007653684265535,45,3、复合赋值运算符复合赋值运算符:在赋值符“=”之前加上其它运算符共有10种复合赋值运算符+=,=,&,=,|=,46,例如:a+=3a=a+3x*=y+3x=x*(y+3)4、赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子。形式:变量=表达式说明:赋值表达式的值为被赋值的变量的值。例如:a=b=c=6a=(b=4)+(c=6)a=(b=4)*(c=6),47,练习:写出顺序执行下列表达式运算后的x值:1.x=a=b=102.x=25%(c=3),X=10,X=1,赋值表达式中可以包含复合赋值运算符例如:若a=12,计算表达式a+=a=a*a运算后a的值第一步:aa*aa=a-a*a=12-12*12=-132第二步:a+=-132a=a+(-132)=-264,48,3.10逗号运算符和逗号表达式,1.逗号运算符:即“,”优先级:为所有运算符中级别最低的。2.逗号表达式形式:表达式1,表达式2,表达式n求解过程:顺次求解表达式1,表达式2最后求解表达式n。逗号表达式的值为表达式n的值。例如:a=3*5,a*4a=3*5,a*4,a+5x=(a=4%3,a+1,a*10),60,20,10,49,第三章作业(文字部分请在书上划出,程序部分上机调式)P653.2,3.5,3.6,3.7,3.8,3.9,3.10,3.12第一次上机内容:调式第一章例题第二次及第三次上机内容:1、调试第三章作业2、编写三个程序(1)交换a与b的值(2)求1+2+3+100的值。(参考P32例题)(3)编写一个C程序,输入a、b、c3个值,输出其中最大值。,3,5,a,b,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!