版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章数据类型和表达式,C语言编程,第二章,本章的主要内容,本章介绍了C语言的基础,包括:数据类型运算符和表达式是编程的基础知识,为什么要讨论这些知识?通常,程序应该操作和处理数据:处理的对象是由操作符和表达式操作的数据,3例如,例2.1计算半径为5厘米的圆的面积。程序如下:主()浮动r,区域;r=5;面积=3.14 * r * rprintf (%fn,面积);计算结果是输出圆的面积:78.500000,程序中使用的数据:r,面积,5,3.14。数据的计算:*,=,4,分析:当计算机运行和处理时,有必要完成以下任务:在内存中为半径r和计算结果区域打开存储空间并存储它们的值。应该留出多少空间来
2、存储它们的价值?数据5和3.14不同于R和area,因为它们在程序编写时被赋予了确定的值,并且在操作过程中不会改变。如何处理这样一台数字计算机?当用计算机存储时,整数5和小数3.14之间有区别吗?涉及数据类型的基本知识,5。C语言的数据类型和C数据类型。本章讨论基本类型数据的类型,6,2.1.1整数数据和1整数数据,包括基本整数数据int、分配2字节短整数数据短int、分配2字节长整数数据长int和分配4字节整数数据,所有这些都以二进制补码的形式存储。问题:我们为什么要用补语?如何表达?7,在计算机中表示正数和负数,例如:109 (1101101)2区分:109和109该方法是将符号数字化,即
3、正符号用0表示,负符号用1表示,计算机中的数字表示方法是:符号位二进制值(以8位为例)109 110 1101 0110 1101 109 110 1101 1110 1101,8。问题是计算机计算复杂,例如,(-19) (22) 1001 0011 0001 0110。解决方法是:判断符号是否相同:如果相同,结果的符号保持不变,绝对值相加;如果它们不同,则取绝对值较大的数字符号,并减去绝对值,9,原码、补码和补码,正数:原码、补码和补码的相同符号为0,数值为相应的二进制数。109,01101101 original=01101101 reverse=01101101补码负数:原码的符号位为1
4、,该值为绝对值的二进制数。10911101101原始反码符号位为1,带有绝对值的二进制数被反转。10910010010补码的符号位为1,其值为绝对值的二进制数改变1。10910010011增补,10,2。有符号和无符号整数数据,有符号整数数据区别在于最高位被视为符号位还是数据位。例如,当1111110101000用作有符号数时,最高符号位为负。该值为:-88(再次补码),当用作无符号数时,最高值为带数据位的无符号数,该值为:65448,11,例如:main()无符号int m;m=65448printf(nm=%dn,m);printf(m=%un,m);输出结果:m=-88 m=65448,
5、按有符号数和无符号数输出,12,整数数据类型和规则,方括号表示可选整数分配2字节,长分配4字节,13,2.1.2实数数据,1类型实数数据,单精度实数数据浮点,4字节双精度实数数据双精度,分配存储8字节2实数数据,单精度实数数据,索引部分,小数部分,十进制符号位,索引符号位,14,实数数据类型和规则。c标准没有规定各种实际数据所占用的字节数,也没有规定特定小数和指数部分的位数。一般来说,小数部分位数较多,数据代表的有效位数较多,所以准确性较高;但是,如果索引部分有更多的数字,数据范围将会更大。,有效数字的含义是什么?15,2.1.3字符数据,字符,1字节字符数据的分配指的是字母、数字、各种符号和
6、其他用ASCII值表示的字符。例如,A是一种字符类型的数据,它被称为字符常量,存储:0.1100001,2.1.4空类型,通常与指针或函数结合使用。16,2.2常量,变量和标准函数,主要内容:常量变量标准库函数,17,2.2.1常量,程序运行过程中值保持不变的量1整数常量十进制:09八进制:07,十六进制从0: 09开始,AF/af,从0 x或0X开始,例如:100-8 0 123 010 024 0100 0730x38 0X 10 0X 10 0X 10 0X ff0x 0A,18,1。整数常量,整数常量的类型:根据值大小的默认类型。如果在整数常量后加上l或l,则认为是长整型,例如:123
7、L,0L,432l,0 x100l。注意:十六进制常量中可以使用大写字母af或小写字母AF。数字8或9不能出现在八进制常量中,例如:018,0921是非法的,19,2。实数常数,十进制1.0 1。12.0 -12.0 0.0指数形式1e3 1.8e-3 -123E-6 -.1E-3,指数只能是整数,尾数可以是整数或小数。指数和尾数都不能省略,例如:1e,E5,E3。默认情况下,非法实数常量的类型是双精度的,后跟f(或f),它强调数字是浮点型的,例如:3.5f,1e2F,20,3。字符常量。可视字符常量用单引号括起来的单个可视字符,例如:转义字符常量A、A、3等。与单引号中的可视字符结合使用,如
8、:21,4。字符串常量,用双引号括起来的字符序列,例如:ABC,123,A,nt nGood早晨字符串常量长度:字符串常量存储模式中包含的字符数:占用的存储单元数:字符串长度1,例如:字符串结束标记,22,5。符号常数,由标识符表示的常数是预先编译的。预处理命令定义的定义在编译时被系统表示的常数代替,然后被编译。例如,#定义LEN 2.5主()浮动a,b;a=2 * 3.14 * LENb=3.14 * LEN * LENprintf(a=%f,b=%fn,a,b);编译前被系统替换,23,5。符号常数,主()浮点a,b;a=2 * 3.14 * 2.5b=3.14 * 2.5 * 2.5pr
9、intf(a=%f,b=%fn,a,b);define是一个编译预处理命令,它必须以“#”开头,将在第7章中讨论。替换为、24,2.2.2变量,1。变量的相关概念在程序运行过程中其值发生变化的数据称为变量,由标识符表示,称为变量名。使用前必须定义变量。系统为变量分配存储单元并存储它们的值。编写程序时,变量值由变量名存储和获取。例如,有一个值为510,25,2的变量A。变量定义,变量定义的一般格式:数据类型描述符变量列表;例如:int i,j;long k,m;浮动x,y;char ch1,ch2、必须使用合法标识符作为变量名,并且不能使用关键字来命名变量。26,3。变量初始化:描述变量时,允许
10、给变量赋值初始值。例如:int a=5,b=10 2;双x=23.568,y;char ch1=a,ch2=66,ch3=142意味着定义变量并将值分配给变量存储位置。初始化错误:int a=3 b,b=5;浮子m=n=23.16,27,2.2.3标准库函数,一种由c编译系统定义的函数,存储在系统库函数中。用户可以根据需要随时调用常用函数,如printf、scanf、fabs、sqrt、sin(参见教科书P418附录中的常用数学函数)。函数调用形式:函数名称(参数表)如putchar(a) sqrt(x. 28,2.3运算符和表达式,主要内容:算术运算符和算术表达式赋值运算符和赋值表达式关系运
11、算符和关系表达式逻辑运算符和逻辑表达式按位运算符和按位运算符条件运算符和条件表达式逗号运算符和逗号表达式其他运算符及其操作,29,运算符的相关概念,函数:完成指定的操作数操作类型:按操作数:单眼、双目和三眼;按函数:算术、赋值、关系、逻辑条件、逗号、位、其他、30;操作员的优先级和组合;优先级是指各种操作符号的操作优先级顺序;例如,算术运算优先于关系算术运算。组合性是指操作数和操作数的组合方向,分为从左到右(左组合)和从右到左(右组合)。例如,算术运算符是左组合a-b 4赋值运算符是右组合A=B=5(见教材P41语言规定表2.5),31,本章涉及的运算符,-*/%-=-=*=/=%=A=1表达
12、式的值是5,a=6,B=5,37。描述:和-的操作数只能是变量(或有变量运算结果的表达式),不能是常量(或有数值运算结果的表达式)。例如:5。(a 2)是非法的。具有右绑定属性,绑定方向从右向左。例如:A相当于-(a)如果多个操作符连续出现,C系统将从左到右尽可能多的字符组合成一个操作符。例如,i j等于(i) j -i -j等于-(i) (-j),38,main()int a=5;printf(%d %dn,a,a);说明(续):功能参数评估顺序:Turbo C系统先计算最右边的参数值,然后依次计算左边的参数值。示例2.5有多个函数参数,同一变量是自增的。输出结果:6 5,39,描述(续):
13、例2.6有多个函数参数,同一变量多次自增。main()int a=5;printf(%d%dn,a,(a)(a);输出结果:7 11,40,赋值操作,赋值运算符(右组合)=-=*=/=%=printf(%d %dn,a),输出结果:8 102-11,0000 0000 1010 printf (%d% dn,ab-1),输出结果:40 9,请自己分析运行结果,53,条件表达式操作,条件运算符:条件表达式表达式1的一般形式?表达式2 :表达式3示例:m=10个字符;你可以把变量a,ch和学生的x翻倍;printf(%d %d,sizeof(int),sizeof(a);printf(%d %d,sizeof(double),sizeof(x);printf(%d %dn,sizeof(float),sizeof(char);输出结果:2 2 8 8 4 1,59,2.4运算中的数据类型转换,2.4.1自动数据类型转换原理:自动将低精度、小表示范围的操作数类型转换为高精度、大表示范围的操作数类型,例如,有定义:int a;char ch表达式:a-ch*2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年租赁合同租金支付与租赁物描述
- 2024隗蓉与科技公司关于物联网设备研发的合同
- 2024版住宅小区物业经理聘任协议版
- 2025年度除尘设备节能效果评估合同3篇
- 2024某科技公司与某大学关于科研合作的合同
- 2024版婚内财产公证的协议书范本
- 二零二五年度金融信托补充协议3篇
- 西湖大学《人体形态与结构》2023-2024学年第一学期期末试卷
- 西安健康工程职业学院《小学语文课标解读与教材分析》2023-2024学年第一学期期末试卷
- 二零二五年社会福利机构劳动合同员工保障与社保合同2篇
- 张家界喀斯特地貌
- 让学生看见你的爱
- 销售礼盒营销方案
- 领导沟通的艺术
- 发生用药错误应急预案
- 南浔至临安公路(南浔至练市段)公路工程环境影响报告
- 绿色贷款培训课件
- 大学生预征对象登记表(样表)
- 主管部门审核意见三篇
- 初中数学校本教材(完整版)
- 父母教育方式对幼儿社会性发展影响的研究
评论
0/150
提交评论