C程序设计-第二章课件_第1页
C程序设计-第二章课件_第2页
C程序设计-第二章课件_第3页
C程序设计-第二章课件_第4页
C程序设计-第二章课件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C程序设计C程序设计-第二章第二章数据类型、运算符与表达式C语言的数据类型常量与变量变量赋初值运算符和表达式目的、要求:掌握C的数据类型、运算符尤其是赋值运算符;掌握标识符的命名规则。C程序设计-第二章3.1C语言的数据类型C数据类型数组类型结构体类型共用体类型枚举类型整型字符型实型(浮点型)单精度型双精度型基本类型指针类型构造类型本章讨论基本类型数据C程序设计-第二章3.2常量与变量常量:其值不随程序的运行而改变的量变量:其值可随程序的运行而改变的量C程序设计-第二章3.2.1常量常量字面常量(或直接常量):如3,4,6.5,’a’,’b’符号常量:以标识符代表常量的符号,一般用大写

#definePI3.1415926不管是字面常量还是符号常量,只要是常量,其值都不能被改变!C程序设计-第二章#definePI3.14main(){……PI=3.15;……}#definePI3.1415926main(){floatr=3,s,v;s=4*PI*r*r;v=4/3*PI*r*r*r;……}C程序设计-第二章3.2.2变量main(){inta,b;/*定义变量a,b为整型*/a=123;b=456;/*赋初值*/……}变量代表内存中的一个存储单元,用来存放数据。ab123456C程序设计-第二章注意:变量名和变量值的区别对应内存地址内存地址中存放的内容

变量名又称为标识符,只能由字母、数字和下划线3种字符组成,且第一个字符必须是字母或下划线。123,def,sum,_y,y&uC程序设计-第二章12.以下正确的C语言标识符是__。(2005-1)A)%xB)a+bC)a123D)test!11.__是合法的用户自定义标识符。(2005-12)A)ah-spksB)doubleC)<ctrl>D)_myapple课堂练习11.以下合法的用户标识符是__。(2006-1)A)1stB)breakC)TwoWordsD)B757C程序设计-第二章(1)C语言中,大、小写字母被认为是两个不同的字符,变量名一般用小写。(2)C语言中,标识符的长度无统一规定,随系统而不同。在写程序时尽量不要超过8个字符。(3)标识符的选取原则:“见名知意”,这也是结构化程序的特征之一。(4)C语言中,变量必须“先定义后引用”,以便在编译时发现错误。注意事项C程序设计-第二章3.3整形数据无符号整型:unsignedint无符号短整型:unsignedshort无符号长整型:unsignedlong基本型:int表示,-32768~+32767短整型:shortint或short表示,同int。长整型:longint或long表示,

-2147483648~+2147483647无符号型10进制8进制:0开头的数字序列16进制:0x开头的数字序列整型常量整型变量整型数据C程序设计-第二章整型变量的定义变量的定义一般放在一个函数的开头部分。[例3.2]:整型变量的定义及不同类型整型数据间的运算main(){inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}C程序设计-第二章[例3.3]:整型数据的溢出

整型数后加l或L表示长整型,其存储空间扩大为4个字节。整数后面加u,按无符号数方式存储,如-12345u,则先将其转换成补码53191,然后按无符号数存储。main(){inta,b;a=32767;b=a+1;printf("%d,%d\n",a,b);}C程序设计-第二章3.4浮点型(实型)数据十进制形式:由数字和小数点组成指数形式:123e3或123E3代表123*103E/e前必须有数字E/e后必须为整数单精度(float型):一般占4个字节(32位),6~7位有效数字双精度(double型):一般占8个字节,15或16位有效数字实型常量实型变量实型数据长双精度(longdouble型):一般占16个字节,18或19位有效数字C程序设计-第二章

计算时,C编译系统自动将实型常量按双精度处理,然后根据变量类型截取相应的有效位数。这样可提高计算精度,但会降低运算速度。

若要按float型运算,在数字后加f或F即可,如1.65f。实型数据的舍入误差:因有效数字位数有限而产生的。[例3.4]:实型数据的舍入误差main(){floata,b;a=123456.789e5;b=a+20;printf(“a=%f\nb=%f\n”,a,b);}运行结果:a=12345678848.000000b=12345678848.000000C程序设计-第二章3.5字符型数据字符常量-单引号括起来的单个字符,如’a’,’x’等转义字符-P48页表3-3字符变量(char)-只能存放一个字符,在内存中占一个字节-字符在内存中以ASCII代码形式存放-字符变量和整型变量可以通用C程序设计-第二章3.5.4字符串常量用双引号括起的一个字符序列例如:"ABC"、"123"、"a"、"\n\t"“Goodmorning”等字符串常量的长度:所包含的字符个数字符串常量的存储方式:

\nGoodmorning\0a\0所占存储单元数:串长度+1例如:字符串结束标记C程序设计-第二章19.设有说明语句:chara=‘\123’;则变量a__。(2005-12)A)包含一个字符B)包含两个字符C)包含三个字符D)说明不合法13.以下属于合法的长整型常量的是__。(2006-1)A)5876B)0LC)2E10D)”5876”课堂练习C程序设计-第二章3.6变量赋初值main(){inta,b;/*定义变量a,b为整型*/a=123;b=456;/*赋初值*/……}C语言中,变量赋值由赋值运算符=来完成,方法为:

变量=表达式

赋值运算符的结合方向:

自右至左

a=b=c=5+3;a+b=5C程序设计-第二章3.6变量赋初值(续)C语言允许在定义变量的同时对变量初始化。如:inta=3;inta;a=3;等价inta,b,c=3;inta,b,c;c=3;等价C程序设计-第二章3.6变量赋初值(续)注意:对几个变量赋同一个初值的方法为:

inta=b=c=5;inta=5,b=5,c=5;main(){inta=b=c=5;printf(“a=%d,b=%d,c=%c”,a,b,c);}main(){inta,b,c;a=b=c=5;printf(“a=%d,b=%d,c=%c”,a,b,c);}C程序设计-第二章3.7各类数值型数据间的混合运算整型、浮点型和字符型数据可以混合运算。

12+’a’+1.7*’b’混合运算时需要进行类型转换,这些转换是由系统自动进行的。类型转换规则如下:doublefloatlongunsignedintChar,short低高C程序设计-第二章3.8.1C语言运算符类型种类算术运算符+-*/%赋值运算符=及其扩展赋值运算符关系运算符><==>=<=!=逻辑运算符!&&||位运算符<<>>~|^&条件运算符?:逗号运算符,其他运算符*、&sizeof.->[]等C程序设计-第二章3.8算术运算符和算术表达式1.基本的算术运算符:+加法运算符,或正值运算符,如4+7,+1-减法运算符,或负值运算符,如5-2,-4

*乘法运算符,如3*4

/

除法运算符,如5/4%

模运算符,或称求余运算符,%两侧均应为整型数据,如7/4C程序设计-第二章说明没有乘方运算符,要计算a3要写作a*a*a的连乘,或用标准库函数pow(a,3)“/”的运算对象可为各种类型数据,但是当进行两个整型数据相除时,运算结果也是整型数据“%”要求运算对象必须是整型数据,功能是求两数相除的余数,余数的符号与被除数的符号相同。9/4=29.0/4=2.259%4=1-9%4=-1C程序设计-第二章2.算术表达式和运算符的优先级与结合性由运算符将运算对象连接成的式子,称为算术表达式。运算符的优先级可以参考附录C。优先级相同的运算符,符合“左结合性”。a+b-ca=123;()+-++--

*/%

+-

同级同级同级

单目双目

低C程序设计-第二章3.强制类型转换运算符一般形式:(类型名)(表达式)

或(类型名)单个变量或常量(int)a(int)2.3(float)(a+b)(float)a+b说明:在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。main(){floatx;inti;i=(int)x;Printf(“x=%f,i=%d\n”,x,i);}C程序设计-第二章4.自增、自减运算符++--是单目运算符有前缀和后缀两种形式前缀形式:先自增(自减)再引用;后缀形式:先引用再自增(自减);功能:前缀形式++a等价于a=a+1--a等价于a=a–1后缀形式a++等价于a=a+1a--等价于a=a–1使变量的值增1或减1C程序设计-第二章4.自增、自减运算符(举例)当a=5时⑴

++a

表达式的值为6,且a=6

a++

表达式的值为5,且a=6⑶

b=++a

等价于a=a+1;b=a

表达式的值为6,且

a=6,b=6⑷

b=a++

等价于b=a;a=a+1

表达式的值为5,且

a=6,b=5

C程序设计-第二章4.自增、自减运算符(说明)++

和--

的运算对象只能是变量(或运算结果是变量的表达式),不能是常量(或运算结果是数值的表达式)。例如:5++、(a+2)++

不合法。具有右结合性,结合方向为从右到左。例如:–a++等价于-(a++)如果有多个运算符连续出现时,C系统尽可能多的从左到右将字符组合成一个运算符例如:i+++j

等价于(i++)+j

-i+++-j

等价于-(i++)+(-j)

C程序设计-第二章3.9赋值运算符和赋值表达式“=”为赋值运算符,如a=3;赋值表达式的一般形式为:

<变量><赋值运算符><表达式>将表达式的值存入变量对应的内存单元中

m=12b=a-2x=(x=5)a3C程序设计-第二章3.9赋值运算符和赋值表达式(说明)赋值号左边必须是变量,右边可以是C语言任意合法的表达式例如:n=t+2<s合法

a+b=15不合法赋值运算符仅优先于“,”,且具有右结合性例如:a=b=b*c>10等价于:a=(b=((b*c)>10))赋值号与数学中的等号含义不同例如:数学中a=b等价于b=aC语言中a=b不等价于b=aC程序设计-第二章3.9赋值运算符和赋值表达式(续)复合运算符:在赋值运算符前加上其它的运算符构成。复合运算符的目的:简化程序和提高编译效率。复合赋值运算符(右结合)

+=-=*=/=%=&=|=^=>>=<<=a+=3a=a+3等价x%=y+3x=x%(y+3)等价C程序设计-第二章3.10逗号运算符和逗号表达式逗号运算符:,逗号表达式:用逗号运算符连接的表达式。一般形式:表达式1,表达式2,…,表达式n

逗号表达式的值为表达式n的值。逗号表达式的优先级是最低的。如:

inta=3;a=3*5,a*4a=?C程序设计-第二章x=(a=3,6*a)赋值表达式,x=18x=a=3,6*a逗号表达式,?并不是任何地方出现的逗号都是作为逗号运算符,如:printf(“%d,%d,%d”,a,b,c);“a,b,c”为函数的3个参数,逗号为参数间的分隔符。

printf(“%d,%d,%d”,(a,b,c),b,c);“(a,b,c)”为逗号表达式,其值等于c的值。C程序设计-第二章课堂练习13.设整型变量a的值为2,下列表达式值为1的是__。(2004-1)A)a%3B)a/3C)--aD)a++14.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是__。(2004-1)A)a=5++B)a=b=c++C)a=%2D)b=a+1=216.下列式中,最终运算结果的数据类型不是单精度的表达式是__。A)(int)(3+3.0)B)1e-3C)(float)(3)D)(int)3.0+3.017.字符串”ab\x41\\34cd\102y”的长度是__。(2004-1)A)10B)12C)14D)18C程序设计-第二章课堂练习(续)18.设整型变量x,y,z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论