计算机本科c措辞第三章讲稿[课件

PPT
  • 阅读 43 次
  • 下载 0 次
  • 页数 47 页
  • 大小 600.500 KB
  • 2022-11-13 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
计算机本科c措辞第三章讲稿[课件
可在后台配置第一页与第二页中间广告代码
计算机本科c措辞第三章讲稿[课件
可在后台配置第二页与第三页中间广告代码
计算机本科c措辞第三章讲稿[课件
可在后台配置第三页与第四页中间广告代码
计算机本科c措辞第三章讲稿[课件
计算机本科c措辞第三章讲稿[课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 47
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】计算机本科c措辞第三章讲稿[课件.ppt,共(47)页,600.500 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-5337.html

以下为本文档部分文字说明:

第三章数据类型、运算符与表达式重点:1C程序中的变量及其数据类型2运算符与表达式第1页,共47页。计算机的基本功能是进行数据处理。在C语言中,数据处理的基本对象是常量和变量。运算是对这两种形式的数据进行加工的过程。第2页,共47

页。第一节常量常量是在程序的执行过程中其值不发生变化的量,C中的常量有字面常量、符号常量;其中字面常量和符号常量有三种:数、字符、字符串。如:1230.12‘a’‚abc‛#definePI3.14159第3页,共47页。一、数值常量1整数(整型常量)整数的表示

方法十进制:不能以0开头如67八进制:以0开头如076十六制:以0X或0x开头如0xc9第4页,共47页。整型的类型类型比特数最小取值范围[signed]int16-32768~32767(-215~215-1)Unsigned[int]160~65535

(0~216-1)[signed]shortint16-32768~32767(-215~215-1)Unsignedshort[int]160~65535(0~216-1)long[int]32-2147483648~2

147483647(-231~231-1)Unsignedlong[int]320~4294967295(0~232-1)请大家区分:0123U123l0x21L90ANSI标准定义的整数类型第5页,共47

页。2实数(实型常量)1)小数形式:0.1210.892)指数形式:1e29.5e435e-5e的两侧一定要同时有数字,且右边一定是整数,否则出错;如:e31e1.31e第6页,共47页。二、字符常量1)用一对单引号括起来

的一个字符。如:‘q’‘a’‘s’‘+’‘2’‘0’但不能是如下字符:‘’“”\在C语言中字符常量具有数值,它的值就是该字符的十进制代码(ASCII码P374页);如:‘0’->48‘A’->65字符常量通常用于比较。代码值越大,字符值越大。如:‘a’>’A’‘k’>’a’

‘B’<‘s’第7页,共47页。2)换码序列(转义字符)换码序列是C语言中使用字符的一种特殊表现形式表示:\后跟一个字符或数(1-3位八进制数或1-2位十六进制)。如:\n\t\r\123\x12\12功能:把\后的字符转换成为另一个含义例:‘\‘‘(代码

值96)、‘\\‘(代码值92)、‘\‚‘(代码值34)、‘\123‘例如:“Isay:\“goodby!\””“\\Cprogram\\”代表字符串分别是:Isay:“goodby!”\Cprogram\第8页,共4

7页。三、字符串常量用双引号括起来的一串字符表示。如:“shkhs‛‚2w2fefe‛‚12121214554‛C语言的字符串,在内存中存储时是在一个连续的内存空间里存放每个字符的码值(ASCII码)。同时在其尾部自动追加一个‘\0’,即NU

LL或ASCII码0如字符串“hellow‛第9页,共47页。长度为n个字符的字符串常量,在内存中占用n+1个字节的空间。字符常量和字符串常量在表现形式和存伫形式上都不相同。第10页,共47页。四符号常

量C语言中,常量可以用符号代替,代替常量的符号称为符号常量。为了与一般变量区别,符号常量都使用大写字符。符号常量在使用前必须先定义,其一般格式为:#define符号常量名常量值例:#defineNULL0#defineEOF-1第11页,共4

7页。例:#defineLOWER0#defineLPPER200#defineSTEP20main(){intf;floatc;for(f=LOWER;f<=LPPER;f=f+STEP){c=(5.01*(f-32));p

rintf(“%4d%6.1/n”,f,c);}}第12页,共47页。第二节变量变量是在程序执行过程中,其值发生变化的量;变量在内存中占据一定的存储空间。C语言的变量有三个属性:1、数据类型2、存储类

型3、有效范围C语言中使用变量要先定义。一、变量的定义所有的C变量使用前必须定义。定义的一般格式:[存储类型]数据类型变量名表;如:inti1,i2;第13页,共47页。1)变量的数据类型:整型、实型、字符型等2)在程序中使用一个变量必须先定义,即分配存储空间才能引

用它,即在引用一个变量之前必须先定义变量的类型,在编译时就会根据指定的类型分配给其一定的存储空间,并决定数据的存储方式和允许的操作方式。例inti1,i2;chara;floatx,y;doubled,c,e;第

14页,共47页。二、变量命名的规则如下:1)组成变量名的第一个字符必须为字母或下划横线_,后继字符可以为字母、下划线或者数字。2)变量名的长度不能超过31个字符,超过时只取前面31个字符,后面的字符自动截去。3)变量命名时,大小写字母是加以区分的,如x与X表示不同的变量。第15页,共47

页。4)C语言中的关键字如if、else、int、while、for、float等是保留字,这些字符有特定的含义,不能再用来定义变量等标识符。此外,变量命名时一般要求见名知意,并提倡局部变量特别是循环变量等一般使用短名字。第16页,共47页。三

、数据类型和大小C语言只有少数几种基本数据类型:char字符类型,占一个字节,能保存字符集中的任意字符。int、基本整数类型,反映主机整数自然长度。float单精度浮点数,占4个字节。double双精度浮点数,占8个字节。另外,这些基本数据类型前可以加修饰符。short和lo

ng型可以用来修饰整数类型。如:shortintx,y,counter;/*短整数类型16位*/longintsum,product;/*长整数类型32位*/在上述定义中,一般将int省去。long还可以修饰double类型,指长

双精度,占10个字节。第17页,共47页。修饰符signed和unsigned可以用来修饰char、short、int、long等整数类型,用来表示带符号数和无符号数。无符号数的最高位为数据部分,它总是正数或0,unsignedcharch;ch的八位全是1,即11111111

时其值最大,为255,即28-1,八位全是0时,即00000000时最小,其值为0。而signedcharc;中最高位表示符号位,最高位为0表示正数,最高位为1表示负数,因此,其最大为01111111,即值为127(28-1-1),其最小为10000

000,即值为-128(-28-1)。第18页,共47页。1整型变量1)整型变量的定义和使用main(){inta,b;udsignedu;a=12;b=34;u=a+b;printf(“uis%d\n”,u);}变量必须先定义后使用第1

9页,共47页。2)整型数据在内存中的存放形式intb1,b2;b1=10;b2=-10;实际上,数据在内存中是以二进制的形式存放的,且以补码表示。00000000000010101111111111110110正数的原码和补码形式是相同的求负数的补码的方法是:将该数的绝对值的二进制

形式,按位取反后加1第20页,共47页。3)整型数据的溢出一个int型变量的最大允许值为32767,如果再加1,会出现什么情况呢?main(){inta,b;a=32767;b=a+1;printf(“%d,%d\n”,a,b);}运行结果为:32767,

-327680111111111111111ab1000000000000000第21页,共47页。2字符变量1)字符数据在内存中的存储形式及其使用方法将一个字符常量放到一个字符变量中,实际上将该字符的相应ASCII代码放到存储单元中,既然在内存中

,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似,C语言使字符型数据和整型数据之间可以通用。main(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c

2);}第22页,共47页。四、变量的地址在程序运行时,变量的数值存储在一定的存储单元(以字节为单元)。当变量的类型不同时,对应的存储空间区域和空间大小不同。存储某变量的内存空间的首地址(即变量所对应的存储空间的第一个单元的地址)称为

变量的地址。C语言中,变量的地址用变量名前加&符号表示。例:&ainta,b;scanf(“%d%d”,&a,&b);第23页,共47页。第三节运算符与表达式运算(即操作)是对数据的加工。最基本的运算形式常常可以用一些简洁的符号记述。

这些符号称为运算符或操作符。被运算的对象---数据称为运算量或操作数。表达式描述了对哪些数据,以什么顺序施于什么样的操作。它由运算符与运算量组成。运算量可以是常量、变量、函数等。如a+3t+sin(4)x=a+bPI*r*r一、算术运算符(1)二元(二项)算术运算符+-*/%%为

求模运算符,只有两个整数才可以求余。第24页,共47页。(2)单项运算算术单项运算符:++--作用:使变量的值增1或减1++表示将变量的值加1--表示将变量的值加减1如:++t--t(在使用t之前,先使t的值加1或减1)t++t--(在使用t之后,使t的值加1

或减1)例:nl++x=n++x=++n注意:只能用于变量运算从右至左第25页,共47页。二、赋值运算符功能:将一个表达式的值赋给一个变量赋值符号:=赋值表达式一般格式:变量=表达式执行过程:先计算表达式的值

,再将其赋给左边的变量。赋值表达式的值:为被赋值后变量的值例:a=3+5y=(a=3+5)第26页,共47页。三、复合赋值运算符与表达式如下表达式a=a+2即左边变量在右边立即出现的赋值表达式,可以写成如下紧凑形式a+=2

这里,将+=称之为复合赋值运算符。许多二元运算符都有对应的复合赋值运算符op=,这里op可以为:+-*/%等如果expr1为变量,expr2为表达式,则expr1op=expr2等价于expr1=expr1opexpr2第27页,共47页。四、关系运

算符比较大小称之为关系运算,C语言关系运算符有六个,它们是>>=<<===!=其中后两个关系运算符的级别较前两个低,它们的结合规则都是从左到右。关系运算级别较算术运算级别低。因此,表达式:i<l+t-1实质就是:i<(l+t-1)关系运算结果

为逻辑值1或0,当关系成立时,其值为(真)1,不成立时,其值为(假)0。注意:(1)在数学上,判别是否在[a,b]中时,习惯上写a≤x≤b.而在C语言中a<=x<=b的含义与数学中的含义不同。假设a=0,b=0.5,若x=0.3,则在C语言

中解a<=x<=b时,先求a<=x的值为1,再求1<=b得0。第28页,共47页。(2)表达式5>2>7>8在数学中是不允许的,而在C语言中是可以的。按自左至右的规则求解:5>2值为11>7值为00>8值为0,即整个表达式的值为0(3)关系表达式的值

是整型数0和1,故可看作是整型表达式例:intI=1,j=7,a;a=I+(j%7!=0)a的值为1第29页,共47页。五、逻辑运算符逻辑运算分为:逻辑与&&、逻辑或||和逻辑非!其优先级别是:先非后与再或逻辑与运算1a&&b表示当条件a,b同时成立时,其值为真,否则只

要有一个不成立,其值为假0。2逻辑或运算a||b表示当条件a,b中只要有一个成立时,其值为真1,否则两个都不成立时,其值才为假0。3逻辑非表示:(真)1变为(假)0,(假)0变为(真)1。第30页,共47页。表--4aba&&ba||b!a!b1111

00100101010110000011第31页,共47页。1逻辑运算方向:从左到右执行的。2逻辑短路现象:且如果表达式的真或假能确定的话,则立即停止表达式运算。即a&&b中,如果a为0时,则不计算b,a||b中,如果a值为1,则不计算b

,这一规则,我们称之为逻辑短路。如己知整型量a,b,c的值分别为1,2,3。则执行表达式a||(b=b+1)&&(c=c+2)后a,b,c的值仍为1,2,3,而不是1,3,5。第32页,共47页。六、条件运算符?:1格式:expr1?expr2:e

xpr32运算顺序:首先计算表达式expr1,如果其值非0(真),则只计算表达式expr2,而不计算表达式expr3,并且expr2值即为整个表达式的值。如果其值为0(假),则只计算表达式expr3,而不

计算表达式expr2,并且expr3值即为整个表达式的值。因此,求x为a,b中较大值可以写为x=(a>b)?a:b;3表达式类型:如果expr2与expr3类型不同时,则结果类型默认根据自动类型转换规则确定。如f为浮点型,n为整型,则表达式(n>0)?

f:n第33页,共47页。七、逗号运算符在C语言中,用逗号“,”把若干个表达式结合成一个运算表达式,称为逗号表达式。例:x=1,y=3,y*=x,y=x+y逗号表达式的值为最右边一个表达式的值,所以,x=(y=3,y+1);中y=3,x=4.第34页,共47页。八、类

型转换C语言允许不同类型数据参加混合运算,但在运算前,必须转换为相同类型后才能运算。转换分为算术转换、赋值转换、输入输出转换、强制转换、函数调用转换等五种情况。1.赋值转换当一个赋值表达式的左右两边类型不同时,则先将右边类型转换为左边类型,然后再赋值。

如(Li2.c)inti=98;charch;ch=i;printf("%c",ch);第35页,共47页。2.算术转换不同类型参加算术运算时,总的转换原则是短的(窄的)向长的(宽的)转换,不带符号的

向带符号的转换,具体转换原则见下图示。doublefloatlongintchar,short例:9+„a‟+1.23第36页,共47页。3强制类型转换将一个表达式转换成所需类型(类型标识符)(表达式)(double)ainta;(int)(x+y)floatx,y

;(float)(5%3)第37页,共47页。4输入输出转换:#include<stdio.h>main(){intI=99;printf(“%c\n”,I);}5函数调用转换例子如下:intfun(floatx,floaty){floa

tz;z=(x>y)?x:y;returnz;}main(){floata=1.2,b=3.4;intk;k=fun(a,b);printf(“%d\n”,k);}第38页,共47页。1在C语言中,一个char型数据在内存中所占的字节数为___

______int型数据在内存中所占的字节数为_________float型数据在内存中所占的字节数为_________double型数据在内存中所占的字节数为_________.2若有以下定义,则计算表达式y+=y-=m*=y后的y值是_______.前提是intm=5,y=2

;3若有以下定义s是int,s=6,则下面表达式的值是_________________s%2+(s+1)%2本章练习第39页,共47页。4若a是int型变量,则下面表达式的值为_____(a=4*5,a*2),a+65若x和a均

是int型变量,则计算表达式(1)后的x值为________,计算表达式(2)后的x值为________.(1)x=(a=4,6*2)(2)x=a=4,6*2第40页,共47页。6若a.b.c均是in

t型变量,则计算表达式后,a值为_________b值为_____c值为_________a=(b=4)+(c=2)™若a是int型变量,则计算表达式后a的值为___a=25/3%3™若s.n均是int型变量,且s.n的初值均为5,则计算表达式后的s值为______n值为___s+=n++第41

页,共47页。9若有定义:intb=7;floata=2.5;则下面表达式的值为__________a+(int)(b/3*(int)(a+2)/2)%4™若有定义:charc=„\010‟;则变量c中包含字符个数为_______________™已知字母a的A

SCII码为十进制97,且设ch为字符型变量,则表达式ch=„a‟+‟8‟-‟3‟的值为__第42页,共47页。12假设m是一个三位数,从左到右用a.b.c表示各位的数字,则从左到右各个数字bac的三位数的表达式是_____________13若有定义inta=8,b=5,c;执行语

句c=a/b+0.4后,c的值为______________第43页,共47页。14若定义变量a是int类型,并执行了语句:a=„A‟+1.6;则a的值是?™若a,b,c,d,m,n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2;表达式(m=a>b)&&(n=c>d)

运算后n的值为?™C的运算符可分为以下几类:____运算符,____运算符,____运算符,____运算符,____运算符,____运算符,____运算符,____运算符,____运算符,特殊运算符。第44页,共

47页。17在C语言中,如果下面的变量都是int类型,则输出的结果是__________sum=pad=5;pad=sum++;pad++;++pad;printf(“%d\n”,pad);第45页,共47页。18已知在ASCII代码中,

字母A的序号是65,以下程序的输出结果是__________#include<stdio.h>main(){charc1=„A‟,c2=„Y‟;printf(“%d,%d\n”,c1,c2);}第46页,共47页。本章总结1、数据类型(基本

类型)2、常量(字面常量和符号常量)3、变量(变量的数据类型、变量名、变量的存储空间、变量地址和变量值)4、运算符5、类型转换第47页,共47页。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?