c程序设计谭浩强.ppt_第1页
c程序设计谭浩强.ppt_第2页
c程序设计谭浩强.ppt_第3页
c程序设计谭浩强.ppt_第4页
c程序设计谭浩强.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第2章C语言基础,2.1数据类型2.2标识符、常量和变量2.3基本类型数据2.4运算符及表达式,数据类型,基本类型(简单)构造类型指针类型空类型,数组类型结构体类型共用体类型,整型实型字符型,单精度型双精度型,枚举类型,2.1数据类型,2.2标识符、常量与变量,1、字符集C语言字符集由以下几部分组成:字母:大、小写英文字母共52个。数字:09共10个空白符:空格符、制表符、换行符等统称为空白符共3个。标点和特殊字符:+-*/%_.=?:”!#等25个。,标识符是指用来标识变量名、符号常量名、函数名、文件名以及一些具有专门含义的有效字符序列。以字母或下划线(_)开头,由字母、数字、下划线组成的字符序列。如:num,a8,no_13d,no1,xk#1大写字母和小写字母视为两个不同的字符。标识符的长度一般规定取前面8个字符,多余的不被识别。例如student_name和student_num被认为是相同的标识符student_。,2、标识符:,代表固定含义,不能另作它用。,代表特定含义(一般是库函数名和预编译处理命令名),一般不另作它用。,标识符分类,定义用户标识符时注意:大小写有区分。如book,BOOK,Book。标识符做到“见名知意”。如average,sum,length等。关键字不能作为标识符。如do,int,if等。,3、常量:,在程序运行过程中,其值不能被改变的量称为常量。,符号常量:#define符号常量名常量,常量类型:,算术型运算常量:123,3.1415926,字符型常量:a,“hello”,#includestdio.hmain()floatradius;/*radius圆的半径*/floatarea,length;/*area圆的面积*/printf(Pleaseinputradius:);scanf(%f,#definePI3.1415926,PI,PI,【例】计算圆的面积和周长。,程序执行过程中,其值可以被改变的量(1)变量名:既代表某存储空间,又代表该空间存储的数据。,(3)变量的数据类型(内存中占据内存空间的大小和变量的取值范围)C要求:变量必须先声明后使用,指明其数据类型变量定义格式:数据类型标识符变量名表如:inta,b,c;floatd;(4)变量的地址:即变量所占内存空间的首字节的编号。,4、变量:,(2)变量的值:存放在存储单元中的数据(存储单元内容)。,标识符,整型数据类型标识符整型数据有基本型、短整型、长整型和无符号型四种。基本整型(简称整型):类型标识符为int。短整型:类型标识符为shortint或short。长整型:类型标识符为1ongint或1ong。无符号型:表示不带符号的整数。又可分为以下三种:无符号整型:类型标识符为unsignedint。无符号短整型:类型标识符为unsignedshort无符号长整型,类型标识符为usigned1ong。,整型数据,2.3基本类型数据,表2.1各种整型数据所占内存字节数和取值范围,例如:intk;longp,l;unsignedshortn,m;,任何一种数据类型都有常量和变量之分,2、整型变量的定义,变量定义后,只是在内存中申请了相应的空间,此时存储空间中并没有有意义的数据,即变量没有确定的值。,C语言中整型常量可以用3种形式表示:十进制数,如+123,-234,0,23;八进制数,如0234,0777;十六进制数,如0 x234,0 x9A。整型数又分为基本整型、短整型、长整型(后加l或L)和无符号整型数(后加u或U)。前缀、后缀可同时使用以表示不同类型不同进制的整型数。如03456LU表示八进制无符号长整型数。,3、整型常量,二.实型数据,1.实型数据类型标识符实型数据有单精度型和双精度型两种。单精度型:类型标识符为float。双精度型:类型标识符为double。,实型数据存储方式:规范化的指数形式,假设机器字长为32位,其指数(即阶码)部分占8位,尾数占24位,则如图所示。,二进制数据0.00000011101011的存储形式,指其尾数部分为纯小数,即小数点前整数部分小于1,小数点后的第1位大于0,2.实型变量的定义,floatf,f1;/*定义f、f1为单精度实型变量*/doubled;/*定义d为双精度实型变量*/,3.实型常量(又称实数,只有十进制形式),由数字和小数点组成(必有小数点,但其前后0可省)例如:0.246.2465.05.等。,在程序中,实数可以用小数或指数形式表示,但在内存中,实数都以规范化的指数形式存放。,#includestdio.hmain()floatx=123456789;doubley=123456789;printf(nx=%f,y=%f,x,y);程序运行的结果:x=123456792.000000,y=123456789.000000,实型常量不区分float型和double型,可以赋给float型和double型变量,根据变量的类型截取常量中的有效位数字。,【例】将一个有效数字位超过7位的数赋值给实型变量,然后输出实型变量的值。,1.字符型数据类型标识符类型标识符为char,在内存中存储一个字符型数据需要一个字节。,三.字符型数据,说明字符变量用char作标识符如:charx;一个字符变量在内存中占一个字节,一个字符变量只能存放一个字符如:x=a;将字符a赋值给字符变量x实际上是把a的ASCII代码值97放到x对应的内存单元中去,2字符型变量的定义,如:charc1,c2;inti;c1=a;c2=c1-32;i=97;printf(%c,%dn,c1,c1);,=c1=97;,=c2=A;=c2=65;=c2=a-32;,=i=a;,=printf(%c,%dn,i,i);,注意:,*在内存中,字符数据和整型数据的存储形式相似,所以在c语言中二者可以通用。,97,65,97,3.字符型常量,字符常量:用单引号括起来的字符。代表ASCII字符集中的一个字符两种表示形式:由单引号括起来的普通字符常量;如A,a,3,由单引号括起来的转义字符;如n,t,单引号中的大小写字母代表不同的字符常量。如:a,Aa和a的区别是一个字符常量,有一空格,和的区别。单引号中只能包含一个字符只能用表示字符常量,“”表示的是字符串常量C语言规定:字符型常量在内存中占8位(一个字节)。字符常量在内存中实际存储的是其ASCII码的值如:Aa3,一、普通字符常量,字符常量和整型常量是可以混用的。,以一个反斜线开头后跟一个特定的字符,代表某一特定的ASCII字符。又称反斜线字符。如:n,后可跟8进制或16进制数,表示一个ASCII字符如:A也可用101或0101x41表示(后不允许用X,0 x),二、转义字符常量,#includestdio.hmain()printf(nt101);printf(ntbbbb);printf(*hello*);printf(ntx41);,输出结果:A*hello*A,【例】使用转义字符控制输出。,4字符型数据在内存中的存储形式,charc1,c2;c1=A;c2=n,【例2.3】字符型数据的输出。,可对字符数据进行的运算,字符型数据可参与任何整数运算如:算术运算B-A等价于66-65等价于1a+1等价于971等价于98等价于b大小写字母的相互转换:A+32等价于6532等价于97等价于ab-32等价于98-32等价于66等价于B数字字符与相应整数值的相互转换:9-0等价于5748等价于990等价于948等价于9,【例】#includestdio.hmain()charc1,c2;c1=A;c2=b;c1=c1+32;c2=c2-32;printf(c1=%c,c2=%c,c1,c2);,四.字符串常量,用一对双引号括起来的一串字符;如“hello”,“%d%d”C规定:在一个字符串的末尾加一个串结束标志0在内存中占的字节数=字符个数+1,如:“hello”在内存中的存储形式是(该字符对应ASCII码值):,为了能直观理解,以后直接用字符本身表示。上例表示成:,注意:在写字符串时不必加0,否则画蛇添足。0字符是系统自动加上的。,“”和“”的区别字符常量与字符串常量的区别:(b与”b”),注意:C语言中没有字符串变量,字符串存放在字符数组中。,变量赋初值是指在定义变量的同时对变量进行赋值。例如:inta=5;inta,b,c=10;,五.变量赋初值,如果对几个变量赋以同一个初值,不能写成:inta=b=c=8;而应写成:inta=8,b=8,c=8;,运算符:算术运算符、关系运算符、赋值运算符、逗号运算符等表达式:由运算对象(常量、变量、函数)、运算符和括号组成的、有意义的、符合C语言规定的式子。表达式的求值规则:先按运算符的“优先级”由高到底进行,若级别相同,则按运算符的“结合性”处理。,2.5运算符和表达式,结合性,一、算术运算符和算术表达式,1.算术运算符及优先级和结合性双目:+(加法运算符)-(减法运算符)*(乘法运算符)/(除法运算符)%(模运算符或求余运算符),说明:1.除,双目运算对象可以是整型、实型。运算对象只能是整型。2.操作数类型一致时运算结果与操作数类型一致。3.不一致时不能直接运算,数据类型自动转换,整除:整/整整(舍去所有小数部分四舍五入)8/3=2实除:两实数或与一实数相除双精度型。如:8/3.0=2.6666666,整型%整型整型如:8%3=2-19%4=-3(运算量为负数时,在TC中结果的符号与被除数相同),/(除法运算符),%(模运算符或求余运算符),单目:+(正值运算符)+3-(负值运算符)-3,-2.0,注:1.运算符必须出现在运算对象的左边。2.运算对象可以是整型、实型。,2.算术运算符和圆括号的优先级:,()+-*/%+-,结合性:,高,低,优先级,a-b+c,3.算术表达式:算术运算符和括号将运算对象连接起来的、符合C语法规则的式子,常量、变量、函数等2+sqrt(c)*b,求值规律:1)括号可以嵌套多层,但左右括号必须配对。由内向外计算。2)不同级别的运算符,按优先级由高到低运算同一级别运算符,按结合性运算3)若一个运算符两侧数据类型不同,则先进行类型转换,然后计算。,inti=10;floatf=12.0,e=10.0;doubled=12.0;10+i*f-d/e,103,4.基本类型数据间的混合运算,5+b-x/2+y*m,intm=2,floatx=1.2,doubley=4.0,0.600,-,+y*m,+y*m,8.000,1)自动类型转换,功能:将表达式的值转换为指定类型。如:(double)a(把a转换为double类型)(int)(x+y)(把x+y的值转换为整型,)(float)(5%3)(把5%3的值转换为float型)注:1.整型数转换为实型时,补足有效位数;实型数转换为整型时,只取其整数部分。2.(int)x+y(把x转换为整型,然后与y相加)3.表达式为变量时不加()。4.强制类型转换或自动类型转换,只是得到了一个所需类型的中间变量,原变量或表达式的值和类型并不变。5.强制类型转换的优先级高于自动类型转换。,强制类型转换运算符,2)强制类型转换,格式:(类型名)(表达式),【例2.6】强制类型转换示例,1.基本赋值运算符:=如:a=10复合赋值运算符:+=,-=,*=,/=等,二、赋值运算符和赋值表达式,格式:变量赋值运算符表达式作用:把表达式的值赋给一个变量。,a=3a=a+1a+=5a=b=c=1(结合性:自右向左),2.赋值表达式:由赋值运算符组成的表达式,(1)赋值运算符可以是基本的、复合的赋值运算符。赋值运算符的优先级只高于逗号运算符。表达式也可以是一个赋值表达式。,赋值表达式的值与类型=赋值运算符左边变量的值与类型例1:inta,b,c;a=5;a=(b=5);a=(b=5)+(c=3);,(3)在程序中可给一个变量多次赋值,最后赋的值为其当前数据。,(2)赋值运算符左侧必须是变量,不能是常量或表达式。,(4)赋值过程:求出表达式的值,比较表达式值的类型与变量的类型,类型相同时:直接赋值类型不同时:先自动类型转换再赋值。,如:floatf;f=23;则f=23.00000如:doublef;f=23;则f=23.00000000000000b、整型实型:舍弃小数部分,如:inti;i=12.5则i=12,(5)赋值运算中的类型转换,原则:赋值前,自动把右侧表达式值按左边变量类型转换a、实型整型:数值不变,但以浮点数形式存储到变量中,c、整型字符型:,将字符数据(8位)作为整型变量的低8位,高8位的处理有以下两种情况:如果所用系统将字符处理为无符号的量或对unsignedint型变量赋值,则高8位补零。如果所用系统将字符处理为带符号的量,若字符最高位为0,则整型变量高8位补0;若字符最高位为1,则高8位补1.,低位字节照写,高位字节扩展:被转换为有符号型(左边)时:符号位扩展被转换为无符号类型时:0扩展,0000000000001000,1111111111111000,0000000000000000,inta=8;longintb;b=a;,inta=-8;longintb;b=a;,unsignedlong,d、(1)较长的整型变量较短的整数,0000000000001000,(2)较短型整数较长型整数:只截取低位字节位。,inta;longintb=8;a=b;,e.长整型变量无符号的整数:低位赋值,不足的高位补0,-1,unsignedinta=65535;intb;b=a;,同长整型变量无符号的整数:若数据超出范围,则出错,0000000000001000,unsignedinta=8;longintb;b=a;,f.同长无符号整型变量带符号的整数:(符号作为数据传入),例2.7main()unsignedinti;intj=-6;i=j;printf(“%u”,i);,结果:65530,i,j,补码,3.复合赋值运算符,任何双目运算符,若i=2,j=12,k=10则k+=j+=i+8的值是?,=k=k+(j=j+(i+8)值是32,在赋值符“”之前加上其它运算符,构成复合运算符。,注:其它运算符放在“”之前如:a+=3等价于a=a+3x*=y+8等价于x=x*(y+8)x%=3等价于x=x%3,三、自增(+)、自减(-)运算符,如:inti=3,x;x=+i;x=i+;,

温馨提示

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

评论

0/150

提交评论