下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Cd-3

Cd-3.ppt

Cd-3

呀呀土豆
2011-06-11 0人阅读 举报 0 0 暂无简介

简介:本文档为《Cd-3ppt》,可适用于高等教育领域

第三章第三章数据类型、运算符与表达式C语言程序设计本章要点数据的描述规则数据的操作规则基本符号数据类型运算符和表达式数据类型转换自增运算和自减运算位运算主要内容程序设计语言的基本规则包括常数变量运算符表达式函数什么是语言规则?为什么要有这些规则?把自然语言描述问题的方式转换为C语言的形式表达给计算机表达式常数变量函数运算符问题常数、和的存放空间是否相同?变量a如何表示?如何存放?计算机如何知道和a之间的关系?和sinx如何输入?如何存放?计算机如何识别“=”?运算结果放在哪里?计算机完成上述计算首先要解决数据的输入和存放问题程序的任务是对数据进行处理数据是程序处理的对象而运算符是施加给这些数据的操作。数据和运算符是表达式的基本元素数据的存储数据的操作程序C语言的基本符号C语言的基本符号C语言的基本字符集数字:字母:abc……zABC……Z运算符:*=<><=>=!===<<>>|||^~(){}>!:,“‘特殊符号:(下划线)回车(r)换行(n)制表符(t)ASCII字符集基本字符集名称C语言的标识符基本标识符:变量名、函数名、文件名、数组名、类型名规则:字母或下划线开头后跟字母、数字或下划线组成。callnteststringabccallnteststringc例autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile保留字(个)C语言的关键字用户不能用关键字作标识符!!常量在程序运行中其值保持不变的量称为常量。常量的表示方法:数值常量例如:等符号常量用一个符号代表一个常量必须先定义后使用,习惯用大写字母表示。例如:#definePImain(){floatl,s,r=l=*PI*rs=PI*r*rprintf(“l=d,s=d”,l,s)}常用这种方式简化程序调试但是必须在程序的开头定义要使用的符号常量。称为宏定义。变量在程序执行期间其值可以改变的量。有关变量的规定变量通过变量名标识变量名和内存中的存储单元相对应。编写程序时通过变量名来存、取存储单元。变量必须先定义后使用。变量HHH命名规则:变量名由标识符表示。即:由字母、数字和下划线三种字符组成且第一个字符必须为字母或下划线。说明:*变量要“先定义后使用”定义格式:类型说明符标识符,…,标识符n例如:intx,y,zfloata,b,c,d*选变量名时要做到“见名知义”例如:name,stage,xm,nl,class,sum*变量的初始化即在定义变量的同时为变量指定初值。例如:inta=,b=floatx=,y,z注意:不许对几个变量同时赋同一个初值。如:inti=j=k=C语言数据类型C语言数据类型许多程序设计语言都把它们能处理的数据分成若干类这些类就是数据类型。为什么要划分数据类型?①不同类型的数据在计算机内表示不同②不同类型的数据能执行的运算不同③计算机能处理的问题中的数据是广义的。变量名代表内存中的存储单元变量的类型决定存储单元的大小。C语言数据类型:整型字符型单精度型算术类型实型(浮点型)基本类型枚举类型双精度型指针类型数据类型数组构造类型结构体类型共用体类型规定:在程序中用到的数据,必须指定数据类型。整型数据整型数据整型常量的表示方法(三种)*十进制整数:由数字()和正负号表示例如:、、等*八进制整数:以数字开头后面一串由八进制数字()组成例如:即()=()即()=()()==()*十六进制整数:以x或X开头后面一串由十六进制数字(afAF)组成例如:x即()=()x即()=()xF即(F)=()(F)==()整型变量的形式(TC)共六种基本整型短整型长整型无符号整型无符号短整型无符号长整型intshortintlongintunsignedintunsignedshortunsignedlong在内存中占字节数与所选系统有关占内存字节数整型变量整型变量的形式(VC)共六种基本整型短整型长整型无符号整型无符号短整型无符号长整型intshortintlongintunsignedintunsignedshortunsignedlong占内存字节数VC规定:short型占个字节int和long都占个字节。整型变量的定义例:inti,jlongk,munsignedintx,y格式:类型说明符变量列表C中的所有变量必须先定义后使用!!既不指定signed,也不指定unsigned,则隐含为有符号(signed)思考:j、m、x所占存储容量和取值范围?例:inti,jlongk,munsignedintx,y(TC环境)例:main(){inta,ba=b=c=abprintf("c=dn",c)}变量c没有定义出现溢出!但运行时并不报错!正确如下:main(){longa,b,ca=b=c=abprintf("c=ldn",c)}说明a,b,c是长整型变量按长整型格式输出c的值整型数据在使用中注意:变量要先定义,后使用数据溢出常量与变量的类型要匹配实型数据实型数据实型变量实型变量分类:单精度、双精度和长双精度型。实型变量的有关规则:例:floata,bdoublec,dlongdoublee,f实型常量(实型常数不区分单精度和双精度)两种表示形式:十进制数形式:由数字和小数点及正负号组成。(注意:必须有小数点)例如:指数形式:由数字、小数点、字母e或E及正负号组成。(注:e或E之前必须有数字且后指数必须为整数)例如:EeEeee这些不合法!乘以的次方即乘以的次方即对于超过有效数字位的数据系统存储时自动舍去。注意:实型数据应用中的误差问题由于机器存储的限制使用实型数据会产生一些误差运算次数愈多误差积累就愈大所以要注意实型数据的有效位合理使用不同的类型尽可能减少误差。字符型数据字符型数据字符常量用单引号包含的一个字符是字符型常量只能包含一个字符例如:'a''A''$''!'注:'a'与'A'是不同的字符常量'abc'和a转义字符:转义字符的概念:是一种特殊的字符常量用于表示常用的但却难以用一般形式表示的不可显示字符。转义字符的表示:用一个转义标识符“”开头后面是需要的转义字符。常用的转义字符如下:转义字符是特殊形式的字符常量转义字符表:转义字符功能n换行t水平跳格b退格r回车f走纸换页反斜线字符'单引号字符双引号字符ddd1至3位八进制数表示的字符xdd1至2位十六进制数表示的字符将当前位置移到下一行的开始将当前位置移到本行的开始说明:说明:'ddd'与'xhh'分别表示用八进制数或十六进制数所表示的也是一个字符。 例如:''代表十进制的,字符为A。''代表十进制的,代表换行。由于'"在C语言中都有了特殊的意义故要想在字符串中使用它们须在其前面再加上一个反斜线。例如:反斜线'单撇号"双撇号如:main(){printf("'"")}屏幕输出结果为:'"例:main(){printf("ctlanguagsberCn")printf("istusefxc")’}屏幕输出结果为:Clanguageisuseful()==()(c)==()c转换为十进制为是ASCII的l转换为十进制为是ASCII的u定义形式:char占存储空间:一个变量一个字节字符变量chara,b,ca=''b='B'c='c'例:一个字符变量只能存放一个字符main(){charcc=cprintf(c,c)}运行结果:C题目中有几个c哪些是等价的?例:'A'的ASCII值为内存中存储形式例:ASCII码字符'a'、'A'、''存储为:、、在ASCII范围以内,整型数据与字符型数据可以通用整型变量和字符型变量可以相互赋值字符型数据可以直接与整型数据进行算术运算。整型数内存中存储形式main(){charaintba='A'b=aprintf("c,d,c,d",a,a,b,b)}例:计算字符’A’与整型数据的和。程序运行结果:AZ可见:字符型数据和整型数据是通用的它们可以用字符形式c输出,也可以用整数形式d输出(要求它的值在之内)在ASCII范围内整型数据和字符型数据可以通用!main(){chara,b,cintda=b=c=Ad=printf("a=cb=cc=dcn",a,b,c,d)printf("a=db=dn",a,b)}按字符输出d按整数输出c例:()=(),()=()字符串常量字符串常量是用双引号括起来的一个或多个字符。n个字符组成的字符串常量,占内存空间为n个字节。字符串结束标记“空”字符例:"a"串长"ThisisCstring"串长""(空格)串长""(不含空格)串长字符常量和字符串常量的区别:字符常量和字符串常量的区别:在程序中可以用字符常量或字符串常量表示单个字符例如'a'或"a"两者的区别如下:()字符串"a"在内存中占个字节而字符'a'在内存中占个字节。字符串"a"字符'a'()不能将字符串赋给一个字符变量。例:charch,ch ch='a'*正确*ch="a"*错误*aa以下不合法的变量名为:(A)(B)IF(C)e(D)float指出下列字符串的长度及输出内容:"'""x"cta""ntbab"输出',输出V"ca输出ab十进制为对应”V”"abefg""abefg"ababefg十进制为对应ASCII为”t”练习运算符和表达式运算符和表达式运算符:描述各种操作的符号。算术运算符和算术表达式算术运算符+ -* / %  算术表达式:由算术运算符、常数、变量、函数和圆括号组成。应注意:左右括号必须配对多层括号都用圆括号表示。例如:‘a’‘b’a*bc优先级:* / % 高于 +  -结合性:“左结合性”或称为“自左至右的结合方向”即运算对象先与左边的运算符结合。  例如:abc注意:在“/”运算中若操作数均为整数则执行整除运算舍去小数部分。例如:==是取余数运算符,只能作用于两个整数。运算结果的符号与被除数的符号一致。注意:“%”运算不能用于float和double型数据5%3===而是不允许的。例:值是值是值是值是*值是(*)值是值是值是–值是–值是–值是第一次止第一次止例:将下列数学表达式:写成符合C语言规则的表达式如下:(abc)(sqrt(a)b*(sin(x)sin(y)sin(z)))表达式必须书写在一行其中sqrt(a)和sin(x)、sin(y)、sin(z)都是数学函数的引用(详见附录E)表达式中用了三层括号以保证表达式的运算顺序。强调:对C语言表达式的理解和掌握除了要严格遵循表达式构成的规则还要加强对表达式含义的理解掌握运算符的优先级和结合规则。在此基础上才能灵活地运用表达式有效地对实际问题进行描述。常用的数学库函数:平方根函数:sqrt(x),计算sqrt()的值为绝对值函数:fabs(x)幂函数:pow(xn),计算xn指数函数:exp(x)计算ex以e为底的对数函数log(x),计算lnx赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符(=)“=”就是赋值运算符它的作用是将一个表达式的值赋给一个变量。例如:a=(作用是把常量赋给变量a)复合赋值运算符复合赋值运算符:在赋值符“=”之前加上其它运算符共有种复合赋值运算符==*==%=<<=>>==^=|=与位运算有关例如:a=a=ax*=yx=x*(y)赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子形式:变量名=常量或表达式作用:将右边常量或表达式的值赋给左边的变量例如:a=b=cd说明:赋值表达式的值为被赋值的变量的值例如:a=b=c=(可以连续赋值)a=(b=)(c=)a=(b=)*(c=)赋值表达式中可以包含复合赋值运算符例如:若a=,计算表达式a=a=a*a,运算后a的值第一步: a=a*aa=aa*a=*=第二步: a=a=a()=练习: 指出下列表达式运算后的x值(设xa为整型):x=a=b=x=(c=)x*=(设初值x=)x=x(a)(设初值x=,a=)x*=x=x=xx=x=x=x=x=逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符:即“”优先级:为所有运算符中级别最低的逗号表达式(用逗号运算符连接起来的表达式)形式:表达式表达式……表达式n求解过程:顺次求解表达式表达式……最后求解表达式n逗号表达式的值为:表达式n的值例如:a=*,a*a=*,a*,ax=(a=,a,a*)表达式的值是a的值是表达式的值是a=x=,a=a=*是赋值表达式main(){inta=,b=,cc=(a=b,ab)b=ba,caprintf("b=d,c=dn",b,c)}例:阅读程序程序运行结果:b=,c=注意:表达式的值是,而赋值表达式b等于a=ab不同数据类型数据间的混合运算不同数据类型数据间的混合运算整型和实型数据可以混合运算在C语言中,字符型数据可以与整型通用,因此,整型、实型、字符型数据间可以混合运算。例如:'a'*'b'在运行时不同类型的数据要先转换成同一类型。数据类型转换转换形式:转换形式:隐式转换(由系统自动进行)显式转换(强制类型转换)隐式转换(不同数据类型的数据间的混合运算)隐式转换的转换规则:intunsignedintlongintunsignedlongintdoubleshort,charfloat()float型数据一律转换成double型数据。()char和shortint型数据一律转换成int型数据以上两条转换原则说明:即使两个操作数类型相同但只要它们同属char,shortint或float类型则转换一定发生。形式竖直方向的转换表示一定要发生的转换横向表示操作数的类型转换的方向。若两个操作数类型不同则按箭头所指的级别高低由低向高转换:例如:一个int型数据与一个double型数据运算则直接将int型转换成double型。若一个int型与一个long型数据运算先将int型转换成long型。例:若有:intifloatfdoubledlonge试判断表达式'b'i*fde的类型intunsignedintlongintunsignedlongintdouble低高short,charfloatdouble型显式转换(强制类型转换)形式:(类型名)(表达式) 例如:(double)(ab),(int)c说明:(1)表达式要用括号括起   例如:(int)(xy)假设x是整型,若要得到x的小数部分应写为:(float)x还是float(x)(2)在强制类型转换时得到一个所需类型的中间变量原来变量类型没有发生变化。 例如: floatx=intyy=(int)x它只对x进行了转换它将x之后再转换成实数X类型仍为float型x值仍等于自增、自减运算符 (++、--)自增、自减运算符 (++、--)作用:使变量的值增1或减1如: i,--i(使用之前先使i的值加(减)) i,i--(使用之后使i的值加(减))i 先执行i=i再使用i的值i 先使用i的值再执行i=i例如:inta=,bb=a若inta=,bb=a说明:()为单目运算符()、--只能用于变量而不能用于常量或表达式。例如:++(xy),'a',b中合法的为:()自增、自减运算符为右结合性。例如:-a-(a)main(){inti=,j=ijprintf(“i=d,j=d”,i,j)}()单独作一个语句使用时两种形式的结果一样。()当出现在其它表达式中时两种形式结果不同。main(){inti=,j=,m,nm=in=jprintf("i=d,m=dnj=d,n=d",i,m,j,n)}i=k=iii执行完分号再自增i=k=算一算?首页上页下页节末页结束main(){inta,b,sa=b=s=abprintf(d,d,dn,a,b,s)s=(a)bprintf(d,d,dn,a,b,s)s=abprintf(d,d,dn,a,b,s)s=abprintf(d,d,dn,a,b,s)s=abprintf(d,d,dn,a,b,s)s=abprintf(d,d,dn,a,b,s)}s=ab优先级?s=abs=abs=a(b)例:√C编译系统在处理时尽可能多地(自左向右)将若干个字符组成一个运算符作业第三章作业第三章

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/55

Cd-3

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利