好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言程序设计实例教程(第2版)丁爱萍 第2章 数据类型和表达式.ppt

112页
  • 卖家[上传人]:E****
  • 文档编号:89347716
  • 上传时间:2019-05-23
  • 文档格式:PPT
  • 文档大小:813KB
  • / 112 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第2章 数据类型和表达式,2.1 标识符、常量和变量 2.2 基本数据类型 2.3 运算符和表达式 习题2,2.1 标识符、常量和变量,2.1.1 标识符 1. 标识符的定义 编写程序,需要使用相应的计算机语言,而语言主要是由它所限定的符号表示一些字、词、命令、变量及数据等这些符号组成了语言,标识符指的就是用来标识变量名、符号常量名、函数名、文件名以及一些具有专门含义的有效字符序列通俗地说,标识符就是一个名字2. 标识符的规定 在C语言中使用标识符有如下规定 (1) 合法的标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线 (2) 大写字母和小写字母被视为两个不同的字符如sum、SUM被认为是两个不同的标识符 (3) 标识符的长度(即一个标识符允许的字符个数)一般规定取前8个字符为有效字符,多余的将不被识别如student_name、student_num被认为是相同的标识符student_ 例如:sum、area、aver.PI、_above、L_1_2_3、S12是合法的标识符;而A.B.C、A.123、13、3area、a+b是不合法的标识符3. 标识符的分类 在C语言中,标识符分为3类,即关键字标识符、预定义标识符和用户自定义标识符。

      1) 关键字标识符 关键字又称为命令符,在程序中具有特定的含义,不能另作它用,其他字符又无法直接替代例如,程序中用来说明变量类型的标识符int、char及选择结构中的if、else等,都是关键字标识符C语言中的关键字标识符包括: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while,2) 预定义标识符 在C语言中,预定义标识符一般是指C语言提供的库函数名和预编译处理命令(如printf、scanf、define)等C语言允许这类标识符(函数名)另作它用,但这将使这些标识符失去系统规定的原意为了编程时方便、可靠、避免误解,一般把这些标识符固定使用 3) 用户自定义标识符 用户在进行编程时,需要自己对变量、函数、数组、文件和常量等进行命名,命名规则前面已有说明,这类由用户根据需要自己定义的标识符称为用户自定义标识符。

      在使用用户自定义标识符时应注意以下3点:,(1) 最好根据其含义选用英文缩写及汉语拼音作标识符,这样便于阅读程序 (2) 决不能与关键字相同,否则编译时给出错误信息 (3) 如果与预定义标识符相同,系统并不报错,则程序仍能运行,只是预定义标识符失去原来的含义,代之以用户确认的含义,这样会造成编程混乱现象,应避免发生2) 符号常量 使用常量可以提高程序运行速度,提高程序执行的效率,而使用标识符常量则可提高程序的易读性、可修改性,便于调试程序,减少出错机会 如果在程序中多次出现一些很大的数字或很长的字符串,为了改进代码的可读性和可维护性,则可以给某一特定的值赋予一个名字,以后用到这个值时就用名字代表,这样便于程序修改和阅读,这个名字就是符号常量符号常量有点像变量,但不能像对变量那样修改符号常量,也不能对符号常量赋以新值下面看一个符号常量的例子 【例2-1】定义一个符号常量PI,表示圆周率,然后使用符号常量PI计算圆的面积 #include “stdio.h“ #define PI 3.1415926 /* 定义符号常量PI,其值为3.1415926 */ main( ) { float radius; /* radius圆的半径 */ float area; /* area圆的面积 */,printf(“Please input radius:“); scanf(“%f“, } 从该例中可以看出,程序用#define命令行定义PI代表常量3.141 592 6,程序在编译时将用3.1415926替代PI,有关#define命令的用法将在后面的章节中进行详细介绍。

      使用符号常量时,应注意以下几项: (1) 符号常量不同于变量,它的值在其作用域(本例中为主函数)内不能改变,也不能再被赋值,例如在程序中出现下面的语句就是错误的 PI=3.14; (2) 习惯上,符号常量名用大写,变量名用小写 (3) 使用符号常量的好处有两个一是含义清楚,如在本例中,可以看出PI代表圆周率二是在需要修改常量值时比较方便,例如可以用#define PI 3.14替代原有命令行以达到修改圆周率的目的2. 变量 1) 变量的定义 程序运行过程中,其值可以改变的量叫变量程序中使用的变量,属于用户自定义标识符,任何一个变量名必须先定义(即确定变量名和变量的类型)后使用 一个变量实质上是指计算机内存中某个存储一定类型数据的单元,变量名实质上是这个数据存储单元的符号表示对变量进行的操作就是对该存储单元进行操作,对变量赋值就是将数据存入该变量所代表的内存单元中程序中的变量与数学上的变量概念不同:变量中的“变”体现的是这个存储单元可以存放不同的数据,但每一时刻只具有惟一的值,即新放入的数据将覆盖原有的数据变量也有类型之分,常用的有整型变量、实型变量和字符型变量等变量因类型不同在内存中所占的存储空间也不同,系统在编译时能根据所定义的变量类型为其分配相应数量的存储单元。

      2) 定义变量的一般形式 定义变量的一般形式为 数据类型 变量名1, 变量名2, 变量名3, … ;,【例2-2】用price代表商品单价,num代表商品数量,然后计算商品的总价total注意程序中只是定义了变量total,而没有定义变量price和num #include “stdio.h“ main( ) { int total; num=5; /* 此处变量num没有先定义而使用,编译时会出错 */ price=3; /* 此处变量price没有先定义而使用,,编译时会出错 */ total=price*num; printf(“total=%d“,total); } 从例2-2可以看出,对变量使用前必须先定义,这样可以保证变量在使用中的正确性 说明: 变量的数据类型决定了变量的取值范围和占用内存空间的字节数,变量名表示具有同一数据类型变量的集合C语言这样要求的目的有以下3点1) 凡是未被事先定义的,不能作为变量名,这样做能保证程序中变量名的正确使用例如,在定义部分写成int st; 而在语句中错写成stu,在编译时会检查出stu未被定义,不能作为变量名,这样便于用户发现错误,避免变量名在使用时出错。

      (2) 每个变量被定义为一个确定数据类型,在编译时能为其分配相应的存储空间例如定义x为int型,则编译程序将为变量x分配两个字节的存储空间,并按照整型方式存储3) 每个变量属于一定的数据类型,便于编译时据此检查该变量所进行运算的合法性例如,整型变量x和y可以进行求模运算:x%y,%是求模运算符,得到x除以y的整余数如果将x和y定义为浮点型变量,则不允许进行“求模”运算,在编译阶段就会指出有关的出错信息2.2 基本数据类型,在设计一个程序时,首先要确定采用什么类型的数据,对不同的问题,采用的数据类型应不同例如,在统计全校有多少学生时就应该用整型数据,而不应使用带小数的数据或其他数据数据是程序的必要组成部分,是程序处理的对象由于数据类型体现了数据结构的特点,高级语言所提供的数据类型越丰富,由其数据类型所表现的数据结构就越丰富、复杂,因而,这种高级语言的功能和所处理问题的能力就越强C语言规定,程序中所用到的任何一个变量和数据都必须指定其数据类型 C语言中的数据类型如图2.1所示图中括号内所注是程序中使用的类型名图2.1 C语言中的数据类型,2.2.1 整型数据 1. 整型常量 整型常量,即整型常数。

      C语言整型常量可用以下3种形式表示 1) 十进制整型常数 十进制整型常数,如+156,-253,121,0等 2) 八进制整数 八进制整数是以0开头(注:不是英文字母O而是数字零)的数,在数学领域内0123和123表示两个值相同的整数,而在C语言中,0123表示八进制的123,它的十进制值应是 1×82+2×81+3×80=64+16+3=83,使用八进制数时应注意以下几项: (1) 在八进制中不允许出现8和9; (2) 在程序中出现的八进制数一定要以0开头,但当程序的输出结果为八进制数时,前面的0消失 3) 十六进制整数 十六进制整数是以0x开头的数,如0x1230x123的十进制数为 0x123=1×162+2×161+3×160=256+32+3=291 使用十六进制数时应注意以下几项: (1) 大于9时可依次用a,b,c,d,e,f表示;,(2) 在程序中出现的十六进制数一定要以0x开头,但当程序输出结果为十六进制时,前面的0x消失 十进制与二进制、八进制、十六进制的转换见表2-1表2-1 数制转换表,表2-1 数制转换表,2. 整型变量 1) 整型变量的分类 整型变量可分为以下4种整型类型: (1) 基本型,以int表示; (2) 短整型,以short表示; (3) 长整型,以long表示; (4) 无符号整型,以unsigned表示。

      unsigned可以加在int、short和long的前面,分别表示无符号整型、无符号短整型和无符号长整型 在IBM-PC机及兼容机中,以上整型类型的数据所占的字节数和所表示的范围见表2-2表2-2 各种整型变量数据的存储长度及表示范围,2) 整型变量的定义和使用 变量必须先定义,后使用对于变量的定义,一般放在一个函数开头的声明部分 整型变量定义的格式如下: 类型标识符 变量名1, 变量名2, 变量名3, … ; 类型标识符可以是int、short、long、unsigned,或是它们的组合,例如: int x,y; . /* 指定变量x,y为整型变量 */ long c,d; /* 指定变量c,d为长整型变量 */,unsigned age, weight; /* 指定变量age,weight为无符号整型变量 */ int a=3 , b=4 ; /* 定义a , b为整型变量同时将3和4分别赋予a和b */ 3. 整型数据在内存中的存放形式 任何数据在计算机内部都以二进制形式存放一般情况下,8位二进制数组合在一起称为一个字节(byte),大量的字节按序组合在一起构成存储器。

      在C语言中,一个整型数通常占用2个字节,低位在前一个字节,高位在后一个字节 下面举例说明1) 整数9在存储单元中的存储形式 (1) 整数9作为有符号正数时(即int型),最高位用0表示正数,而不表示数值 0 0000 000 0000 1001 (2) 整数9作为无符号数时(即unsigned型),所有二进制位都有确定的值 0000 0000 0000 1001 注意:无符号数最大值为65 535,其存储形式为 1111 1111 1111 1111,2) 负整数在存储单元中的存储形式 负整数在存储单元中是以补码形式存放的以-1为例,-1的补码应为其原码除符号位不变外,其余各位求反后加1,即对1000 0000 0000 0001求反再加1故-1在存储单元中的存放形式为 1 111 1111 1111 1111 注意: (1) 负整数在存储单元中的存放形式与它的真值有极大差别 (2) 负整数不能用无符号数表示3) 存储单元中,若最高位为0,即为正数,该数可理解为无符号数,也可理解为有符号数,其值是相等。

      点击阅读更多内容
      猜您喜欢
      MATLAB仿真在通信与电子工程中的应用 第二版 徐明远 第3章 MATLAB的仿真测量仪器 第3章 MATLAB的仿真测量仪器.ppt 工艺员年终总结报告例文.docx Director 11多媒体开发应用教程 教学课件 ppt 作者 978-7-302-29610-2 charpter07.ppt 高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟第一章 1-2.ppt Linux基础教程 教学课件 ppt 作者 朱居正 ch07.ppt 工艺品设计师简历样本推荐.docx Linux基础教程 教学课件 ppt 作者 朱居正 ch05.ppt 高等数学 上 教学课件 ppt 作者 张圣勤 黄勇林 姜玉娟第五章 5-4.ppt Cimatron E 8.0中文版机械设计与加工教程 高级 教学课件 ppt 作者 谭雪松 张延敏_ 项目8.ppt 项目七 商务谈判报价与磋商.ppt MATLAB基础与编程入门 张威 封面及目录.ppt Java实用教程(薛亮) 第5章.ppt 工艺技术员工作总结格式.docx Linux基础教程(第3版) 教学课件 ppt 作者 Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter01.ppt 电工电子技术上 下册第2版 肖志红第5章.ppt Java实用教程(薛亮) 第10章.ppt DOS Windows汇编语言程序设计教程 7-302-11082-4k 第二章 第二章(2).ppt Cimatron E 8.0中文版机械设计与加工教程 高级 教学课件 ppt 作者 谭雪松 张延敏_ 项目9.ppt Linux基础教程(第3版) 教学课件 ppt 作者 Linux基础教程(第3版) 教学课件 ppt 作者 978-7-302-28872-5 chapter11.ppt C语言程序设计实例教程(第2版)丁爱萍 第1章 C语言程序设计概述.ppt
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.