版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2 2章章 数据类型和运算数据类型和运算34main( ) float=* *printf (%fn ,) ; 56C数据类型数据类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型枚举类型枚举类型指针类型指针类型构造类型构造类型7表2-1字符型数据的类型及规定类型名称类型标识符长度(字节)取值范围字符型char10255有符号字符型signed char1-128127无符号字符型unsigned char102558 标准C语言没有具体规定各种类型的整型数据所占字节数,在不同的运行环境下编译系统的处理方式是不同的。 本书将以VC+6.0环境为基础描述数据类型。补码补码l1、在计
2、算机系统中,数值一律用补码来表示(存储)。、在计算机系统中,数值一律用补码来表示(存储)。 主主要原因:使用补码,可以将符号位和其它位统一处理;同时要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补,减法也可按加法来处理。另外,两个用补 码表示的数相加码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。时,如果最高位(符号位)有进位,则进位被舍弃。 l2、补码与原码的转换过程几乎是相同的。、补码与原码的转换过程几乎是相同的。l3、补码系统的最大优点是可以在加法或减法处理中,不需、补码系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用
3、不同的计算方式。只要一种加法电路因为数字的正负而使用不同的计算方式。只要一种加法电路就可以处理各种有符号数加法,而且减法可以用一个数加上就可以处理各种有符号数加法,而且减法可以用一个数加上另一个数的补码来表示,因此只要有加法电路及补码电路即另一个数的补码来表示,因此只要有加法电路及补码电路即可完成各种有号数加法及减法,在电路设计上相当方便。可完成各种有号数加法及减法,在电路设计上相当方便。l求给定数值的补码表示分以下两种情况:求给定数值的补码表示分以下两种情况:正数的补码正数的补码与原码相同。与原码相同。负数的补码负数的补码负数的补码是对其原码逐位取反,但符负数的补码是对其原码逐位取反,但符号
4、位除外;然后整个数加号位除外;然后整个数加1。1011+25和和-25在计算机内在计算机内存中的表现形式是如存中的表现形式是如何计算的?何计算的?12 111 1111 1010 1000 作为作为使用时,最高为符号位使用时,最高为符号位为负数,值是:为负数,值是:(再求一次补)(再求一次补) 作为作为使用时,最高为数据位使用时,最高为数据位为无符号的数,值是:为无符号的数,值是:13main( ) int m; m= ; printf(m=n,m); printf(m=n,m); 按有符号数输出按有符号数输出按无符号数输出按无符号数输出1415小数的符号位小数的符号位指数的符号位指数的符号位
5、16171819字符串字符串结束标记结束标记202122 指数只能是整数,而尾数则可以是整数也可以是指数只能是整数,而尾数则可以是整数也可以是小数小数 ,无论指数或尾数均不能省略,无论指数或尾数均不能省略例如:例如: 非法非法 实型常量的类型:默认为实型常量的类型:默认为型,后面加型,后面加(或或 ),),则强调表示该数是则强调表示该数是float类型类型例如:例如:3.5 、1e2 尾数尾数指数指数232425程序中需要使用多个变量,为了加以区分,需要程序中需要使用多个变量,为了加以区分,需要给变量命名。为变量命名的字符序列成为标识符,给变量命名。为变量命名的字符序列成为标识符,标识符可以用
6、于程序中的常量、函数、数组、自标识符可以用于程序中的常量、函数、数组、自定义类型等命名。定义类型等命名。C语言规定:标识符只能由字母、数字和下划线组语言规定:标识符只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。成,且第一个字符必须是字母或下划线。C语言的标识符可以分为语言的标识符可以分为3类:关键字、预定义标类:关键字、预定义标识符、用户定义标识符。识符、用户定义标识符。关键字关键字在在C程序中有特殊含义的英文单词,主要进行程序中有特殊含义的英文单词,主要进行数据类型的定义,用于构成语句。数据类型的定义,用于构成语句。C语言中标识符的关键语言中标识符的关键字一共字一共32个,都
7、是小写。参见个,都是小写。参见P267附录附录B预定义标识符预定义标识符系统的标准函数还使用了大量的符号,系统的标准函数还使用了大量的符号,如如printf、stdio等。等。用户定义标识符用户定义标识符用户自己定义的标识符,如在程序中用户自己定义的标识符,如在程序中定义的变量、函数名等。定义的变量、函数名等。定义标识符要注意:定义标识符要注意:1)C语言区分大小写。如语言区分大小写。如a和和A是不同的标识符。习惯是不同的标识符。习惯上,变量名和函数名用小写表示,符号常量用大写表上,变量名和函数名用小写表示,符号常量用大写表示。示。2)标识符要做到)标识符要做到“见名知意见名知意”。3)在关键
8、字和标识符之间必须要有一个以上的空格符)在关键字和标识符之间必须要有一个以上的空格符间隔,否则会出现语法错误。如间隔,否则会出现语法错误。如int a和和inta.2728例如:例如:int a=5, b=10+2; double x=23.568, y ;表示定义变量并对变量存储单元赋值。表示定义变量并对变量存储单元赋值。变量也可以在声明后再单独赋值:变量也可以在声明后再单独赋值:如如int a; a=5;int a; a=5;注意注意:1 1)当定义一个没有赋初值的变量时,它的值是一个不)当定义一个没有赋初值的变量时,它的值是一个不确定的随机数,直接使用会产生错误的结果。如确定的随机数,直
9、接使用会产生错误的结果。如int a;int a; 2) 2)赋值时不能含有未定义的变量或已定义过但未初始赋值时不能含有未定义的变量或已定义过但未初始化的变量。也不能连续进行初始化。化的变量。也不能连续进行初始化。错误错误的初始化:的初始化: int a=3+b, b=5; int a=1,b=2,c; a=c; float m=23.16,n=23.16; 3) 3)变量的值是可以改变的,变量总是保存最后变量的值是可以改变的,变量总是保存最后一个的赋值。如一个的赋值。如int a,b,c;int a,b,c;a=2;a=2;b=5;b=5;c=a;c=a;a=b;a=b;b=c;b=c;经过
10、几次赋值后,经过几次赋值后,a,b,ca,b,c的值是多少?的值是多少?思考:思考:如果如果a=8,b=9,c=10a=8,b=9,c=10,如何实现将,如何实现将a a的值赋的值赋给给b b,将,将b b的值赋给的值赋给c,c,将将c c的值赋给的值赋给a?a?(在实现数(在实现数的交换的时候,要学会引用中间变量)的交换的时候,要学会引用中间变量)30313233343536373839404142( ) + - + - * / % + - 同级 同级 同级 4445464748495051525354一般形式:一般形式:变量变量=表达式表达式555657m=10 & b-20 a
11、b x=3+a5 100 200 判断表达式判断表达式1,如果为,如果为真,则结果为表达式真,则结果为表达式2,否则为表达式否则为表达式3。23?0:-158 m=10 & b-20 a b x=3+a5 ? 100 : 200等价于:等价于:(m=10 & b-20) a b等价于:等价于:x= ( 3+a5 ) 100 200 )5960 a=5, a+, a* 3 t=1, t+5, t+ x=(a=3*5, a*4 ) 61例如有定义:例如有定义:int a; char ch;表达式:表达式:a-ch*2+35La-ch*2+ 35横向箭头表示必定转换;横向箭头表示必定
12、转换;6263需要将头文件需要将头文件math.h调到程序调到程序中进行编译。中进行编译。例计算例计算PI的的sin值。值。1int abs(int n); 求整数的绝对值。求整数的绝对值。2double fabs(double x); 求实数的绝对值。求实数的绝对值。3double floor(double x); 求不大于求不大于x的最大整数,也的最大整数,也就是向下取整。就是向下取整。4double ceil(double x); 求不小于求不小于x的最小整数,也的最小整数,也就是向上取整。就是向上取整。5double sqrt(double x); 求求x的平方根。的平方根。6double log10(double x); 求求x的常用对数。的常用对数。7double log(double x); 求求x的自然对数。的自然对数。8double exp(double x); 求欧拉常数求欧拉常数e的的x次方。次方。9double pow10(int p); 求求10的的p次方。次方。10double pow(double x, double y); 求求x的的y次方。次方。11double sin(doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学五年级劳动教育教学设计:传统工艺制作-木版画起稿
- 高一体育与健康“快速跑”模块教学设计
- 初中八年级数学《第19章 数据的分析》单元整体教学设计
- 初中音乐八年级《牡丹亭·惊梦》赏析教学设计
- 初中七年级道德与法治教学设计:单元整体视域下“走近老师”深度学习实践
- 高中信息技术选修1《编制计算机程序解决问题》教学设计:从伪代码到Python实现的工程化思维养成
- 高二化学教学设计:烷烃结构与性质的模型构建与思维培育
- 高中英语选择性必修第四册Unit 1 Integrated skills板块深度教学设计:以多元任务驱动学生综合语言运用能力提升
- 初中信息科技七年级《信息检索(一)》教学设计:精准定位与批判甄别
- 高中音乐人音版必修鉴赏《京剧大师梅兰芳》教学设计
- 2026年三轮摩托车驾驶证考试题库科目一(含答案)
- 2026年江西省南昌市考试模拟辅警协警测试卷(含答案)
- 输电线路基础分坑测量技术讲解
- 生产矿井储量管理规程
- 分布式屋顶光伏工程造价编制方案
- 2026年内蒙古执业药师继续教育参考答案
- 110KV电力架构安装施工详细方案
- 虎牙解约协议书
- 产后母乳喂养技巧与问题解决
- 中核集团在线测评试题
- 常用量具培训知识课件
评论
0/150
提交评论