已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,C语言程序设计(三),计算机学院裴明涛peimt,2,第三章数据类型与运算规则,3.1数据与数据类型3.2C语言的基本数据类型及其表示3.3算术运算与赋值运算3.4位运算3.5其他运算3.6混合运算及数据类型转换,3,3.1数据与数据类型(1),如何描述上述表达式中的数据、运算符号和运算过程?,4,3.1数据与数据类型(2),数据:是程序加工、处理的对象,也是加工的结果;数据类型:具有同样性质(能够作同样的操作,采用同样的编码方式等)的数据集合称为数据类型;每种数据类型都有固定的表示方式,也就确定了可能表示的数据范围和在内存中的存放形式;C语言为每个类型定义了一个标识符,称为类型名,如整数型用int表示;,5,3.1数据与数据类型(3),6,3.2C语言的基本数据类型及其表示,常量与变量整形类型及其表示实型类型及其表示字符型类型及其表示变量的初始化,7,常量与变量(1),常量:在程序运行过程中,其值不能改变的量;数值常量:整型常量:3,-1实型常量:4.3,1.68字符常量字符常量:A,c字符串常量:“AB”,”hello”,常量与变量(2),符号常量:用标识符来表示常量;使用宏定义命令对符号常量进行定义;定义:#define标识符常量#definePI3.1415926#defineW“windows8”,8,9,常量与变量(3),变量:在程序运行过程中,其值能改变的量;变量名按标识符规则组成:字母或下划线打头的字母、数字或下划线序列;ab,b3,c_7,_max,Int7t,99r,int,变量必须先定义后使用;,10,常量与变量(4),对变量的定义:类型说明符变量名表;例如:inta,b,c;提倡用能说明变量用途的有意义的名字为变量命名;对变量的基本操作:赋值:取值:,11,常量与变量(5),变量的3个属性:变量地址;变量内容;变量名;,12,关于常量和变量的一些编程规范(1),不使用常量的坏处:程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。在程序的很多地方输入同样的数字或字符串,难保不发生书写错误。如果要修改数字或字符串,则会在很多地方改动,既麻烦又容易出错。,13,关于常量和变量的一些编程规范(2),使用常量的规范:常量全用大写的字母,用下划线分割单词。尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串。#definePI3.1415926如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。#defineRADIUS100#defineDIAMETERRADIUS*2,14,关于常量和变量的一些编程规范(3),变量的命名规范:变量名应当直观且可以拼读,最好采用英文单词或其组合,用词应当准确。例如不要把CurrentValue写成NowValue程序中不要出现仅靠大小写区分的相似的变量名,例如x,X,15,关于常量和变量的一些编程规范(4),变量的名字应当使用“名词”或者“形容词名词”。例如:floatvalue,oldValue,newValue;用正确的反义词组命名具有互斥意义的变量例如:intminValue,maxValue;尽量避免名字中出现数字编号,如value1,value2等,除非逻辑上的确需要编号。,16,整形类型及其表示(1),整型常量:十进制整型常量:123,8,-10等;八进制整型常量:以数字0打头的数字序列(0-7)如056,017,078;,十六进制整型常量:以数字0和字母x打头的序列(0-9,a-f)如0 x123,0 x3A,0 x9g;,长整型常量在常量之后加上字母“l”或“L”,如123L,40000L等;,17,整形类型及其表示(2),整型变量:,名称占内存字节表示范围说明方法基本整型2-215215-1inta,b;短整型2同上shorta,b;无符号整型2065535unsigneda,b;长整型4-231-2311longa,b;无符号长整型402321unsignedlonga;,18,整形类型及其表示(3),整型变量:以关键字int为基本类型说明符;配合四个类型修饰符,用来改变和扩充基本类型的含义;整型数据在使用中应注意的问题:变量要先定义后使用;数据溢出;若inta,b;unsignedc;longd;a=123;d=-105000;b=40000;c=105000;常量与变量的类型要匹配;,19,实型类型及其表示(1),实型常量:小数形式:至少有一个小数点和一个数字,如12.3,87.4,-0.25等;指数形式:由十进制整数或小数加上指数部分组成,形式为:十进制小数e(E)指数2.5e356E866e3e21.2e3e1.2,(整数),20,实型类型及其表示(2),实型变量:,名称存储字节表示范围有效位说明方法单精度4-1038-10387floata;双精度8-10308-1030816doublea;长双精度16-10493210493219longdoublea;,21,字符型类型及其表示(1),字符型常量:普通字符:单引号括起来的单个字符,如a,B等;转义字符:以转义标识符“”开始的字符序列,例如:n(换行),t(跳格),b(退格),().ddd(1到3位8进制数表示的字符)xdd(1到2位16进制数表示的字符),22,字符型类型及其表示(2),字符串常量:双引号括起的一串字符,例如“China”,“Beijing”;系统对字符串尾自动加0作为字符串终结符;a与“a”的区别:字符常量a,占1个字节.字符串常量“a”,占2个字节.,a,a,0,23,字符型类型及其表示(3),字符型变量:只存放一个字符的变量,用char说明;一个字符型变量可存放一个字符,占用一个字节,存放字符的ASCII码;chara;intb;a=A;b=a+32;printf(“%c,%d”,b,a);输出:a,65字符型数据与整型数据可以通用?,24,变量的初始化,先说明,再赋值;intx,y;x=10,y=30;说明变量的同时对变量赋初值;intx=10,y=30;不初始化会怎样?,25,3.3算术运算与赋值运算,C语言中的运算规则算术运算符与算术表达式自增、自减运算赋值运算符和赋值表达式组合赋值运算符和组合赋值表达式,26,C语言中的运算规则(1),运算符按照其在表达式中与运算对象的关系可分为:单目运算:连接一个运算对象;双目运算:连接两个运算对象;三目运算:连接三个运算对象;运算符按照其在表达式中所起的作用可以分为:算术运算符:+,-,*,自增自减运算符:+,-关系运算符:,b)?a:b按照运算符在表达式中的作用,表达式可分为:算术表达式如a+b关系表达式如a!=bca赋值表达式如a=3,28,C语言中的运算规则(3),优先级:同一个表达式中不同运算符进行计算时的先后次序;当变量的两边均有运算符时,其优先级高的先运算.a+bd结合性:是指同一个表达式中相同优先级的多个运算应遵循的运算顺序;左结合从左到右(除“=”外的双目运算符)a+bc(a+b)c右结合从右到左(单目或三目运算符)-k+-(k+),29,算术运算符与算术表达式(1),C语言允许的算术运算符包括:加法运算或取正值运算,双目、单目运算符,作为单目运算符时优先级高于双目运算符,如a+b,+5减法运算或取负值运算,双目、单目运算符,作为单目运算符时优先级高于双目运算符,如a-b,-5*乘法运算,双目运算符,如a*b/除法运算,双目运算符,如a/b,13/4=?%模运算(求余运算),双目运算符,要求两个运算对象都为整形,例如5%7=?,7%5=?,8%3.2=?,5,2,3,30,算术运算符与算术表达式(2),算术运算符的优先级及结合性为:,31,算术运算符与算术表达式(3),算术表达式:由算术运算符,常数,变量,函数和括号组成,其基本形式与数学上的算术表达式类似;例如12.45-43*5x/(67-(12+y)*a)双目运算符两侧运算对象的类型如果不一致,系统将自动按转换规律进行转换;使用括号可以改变表达式的运算顺序;,32,自增、自减运算(1),自增“”、自减“”运算:单目运算,其作用是使变量的值增1或减1;优先级高于所有双目运算;应用形式:前缀形式:+i;-i;表示变量在使用前自动加1或减1;后缀形式:i+;i-;表示变量在使用后自动加1或减1;+、-运算只能作用于变量,不能用于表达式或常量;用于+、-运算的变量只能是整型,字符型和指针变量;前缀形式与后缀形式的意义不同;+、-的结合性是自右向左的;,33,自增、自减运算(2),intm,n;m=n+;等价于m=n;n=n+1;m=+n;等价于n=n+1;m=n;m=-n+;等价于m=-(n+);等价于m=-n;n=n+1;,34,自增、自减运算(3),若inta=5,b;b=(a+)+(a+);b=a=b=(+a)+(+a);b=a=b=(-a)+(a-);b=a=,10,7,14,7,8,3,35,自增、自减运算(4),关于,在一行语句中最好只出现一次+,-,多了可读性会很差;C语言中允许编译程序自由重排表达式的顺序,以产生最优代码,因此语句过于复杂时,采用不同的编译程序编译时,可能会产生不同的运算结果。+,-用于float会怎样?,36,赋值运算符和赋值表达式(1),赋值运算符:“”,其功能是计算赋值运算符“”右边表达式的值,并将计算结果赋给“”左边的变量;右结合,优先级倒数第二;,若intk,i,j,a;a=5;k=3+(a=a+2);j=i=a*0.7;则a=k=i=j=,7,10,4,4,37,赋值运算符和赋值表达式(2),赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子;形式:变量名表达式赋值表达式的值就是赋值运算符左边变量的值;类型转换:赋值运算符两边的数据类型不一致时需要进类型转换;转换原则是以“=”左边的变量的类型为准;,38,组合赋值运算符和组合赋值表达式(1),组合赋值运算符:形式:运算符运算符可以是、*、/、%等;组成的组合赋值运算符为、*、/=、等;组合赋值表达式:形式:变量名组合赋值运算符表达式其功能等价于:变量名变量名运算符表达式,39,组合赋值运算符和组合赋值表达式(2),a+=ba=a+ba-=ba=a-ba*=ba=a*ba/=ba=a/b.,若inta=1,b=2,c=3;则a+=b-=ca=a+(b-=c)a=a+(b=b-c)a=a+(b=-1)a=1+(-1),所以a=0b=-1,inta=3,b=4;a*=b5,a=27b=4,40,3.4位运算,位运算符按位逻辑运算移位运算位运算赋值运算符,41,位运算符,位运算的对象是二进制位,有如下操作:,(按位求反)(右移)sizeof(d)=?,8,8,4,49,3.5其他运算(4),()、运算符:()用来改变表达式的运算次序;用于表示数组的下标;-,.运算符:用来引用结构成员的运算符;优先级最高,左结合;,50,3.5其他运算(5),(type)运算符:形式:(类型)表达式功能:将表达式强制转换成指定类型;,(int)(a+2*0.5)(int)a+2*0.5int(a+2*0.5),int,double,3.6混合运算及数据类型转换(1),混合运算:是指在一个表达式中参与运算的对象不是相同的数据类型;数据类型转换:赋值运算中的类型转换;(type)运算符的类型转换;由语言的编译系统自动完成的类型转换;一种“隐式的”自动类型转换;必须了解这种自动转换的规则及其结果,否则会引起对程序执行结果的误解;,51,3.6混合运算及数据类型转换(2),由语言的编译系统自动完成的类型转换:运算中所有的char型数据都转换为int型,float型转换为double型;低级类型转换为高级类型;赋值运算中结果的类型以赋值运算符左边的变量类型为准;,52,3.6混合运算及数据类型转换(3),53,doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024沙盘制作合同
- 2024机器设备修理合同范文
- 2024建筑工程施工扩大劳务分包合同
- 2024影视剧聘用未成年演员合同
- 《微喜帖用户指南》课件
- 深圳大学《中国法律思想史》2023-2024学年第一学期期末试卷
- 深圳大学《药理学实验》2022-2023学年第一学期期末试卷
- 泵站管理员合同(2篇)
- 副高职称评审述职报告(13篇)
- 核电站拆迁协议书(2篇)
- 江苏省南通市2024-2025学年七年级上学期期中英语试卷(含答案解析)
- 2022年甘肃省公务员录用考试《行测》真题及答案解析
- 排球正面上手发球课件
- 中国人民解放军空成立纪念日课件模板
- 2024秋期国家开放大学《公共政策概论》一平台在线形考(形考任务1至4)试题及答案
- 2025年考研政治政治理论时政热点知识测试题库及答案(共三套)
- 大学生生涯发展展示 (修改)
- 电气工程师生涯人物访谈报告
- 康复评定技术说课课程汇报
- 矩阵论同步学习辅导 张凯院 西北工业大学出版社
- 心内科出科考试试题(有答案)
评论
0/150
提交评论