




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据数据(shj)描述描述 第一页,共43页。语言程序设计 第二章数据描述C第1页/共43页第二页,共43页。10012345259212120212121111011)()(例10012894868381136)()(例1001231679781610162161516121)()(例AF语言程序设计 第二章数据描述C第2页/共43页第三页,共43页。v各种进制之间的转换(zhunhun)(整数)v二进制、八进制、十六进制转换(zhunhun)成十进制v方法:按权相加l 十进制转换成二进制、八进制、十六进制(sh li jn zh)l 原理:的余数是2)2.22(222.22).(00012
2、110011112011NaaaaaaaaaaaaaNnnnnnnnnnnu 方法:连续除以基,从低到高记录余数(ysh),直至商为0例 把十进制数59转换成二进制数5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余余例 把十进制数159转换成八进制数1598198280(159)10=(237)82 3 7 余 7余 3余 2例 把十进制数459转换成十六进制数4591628161160(459)10=(1CB)161 C B 余11余12余 1语言程序设计 第二章数据描述C第3页/共43页第四页,共43页。l 二进制与八进制之间的转
3、换(zhunhun)l 二进制转换(zhunhun)成八进制:从右向左,每3位一组(不足3位左补0),转换(zhunhun)成八进制l 八进制转换(zhunhun)成二进制:用3位二进制数代替每一位八进制数例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7语言程序设计 第二章数据描述C第4页/共43页第五页,共43页。l 二进制与十六进制之间的转换(zhunhun)l 二进制转换(zhunhun)成十六进制:从右向左,每4位一组
4、(不足4位左补0),转换(zhunhun)成十六进制l 十六进制转换(zhunhun)成二进制:用4位二进制数代替每一位十六进制数例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F语言程序设计 第二章数据描述C第5页/共43页第六页,共43页。0123
5、4567012345678910.语言程序设计 第二章数据描述C7643251第6页/共43页第七页,共43页。(yun m)取反,再对整个数加1语言程序设计 第二章数据描述C第7页/共43页第八页,共43页。原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000数的范围0111111111111111(-127+127)0111111110000000(-127+127)0111111110000000(-128+127)(用一
6、字节表示数)v负数补码(b m)转换成十进制数:最高位不动,其余位取反加1例 补码(b m):11111001 取反:10000110 加1: 10000111=-7语言程序设计 第二章数据描述C第8页/共43页第九页,共43页。C数据类型基本类型构造类型指针类型空类型void定义类型typedef字符类型char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1. 数据占内存字节数2. 数据取值范围(fnwi)3. 其上可进行的操作语言程序设计 第二章数据描述C第9页/共43页第十页,
7、共43页。 基本(jbn)数据类型类型符号关键字数的表示范围所占位数整型字符(z f)型实型有无(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同(b
8、tn)而不同(b tn),上表以IBM PC机为例:语言程序设计 第二章数据描述C第10页/共43页第十一页,共43页。见名知意不宜混淆 如l与I, o与0例:判断(pndun)下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123M.D.John3days#33char$123ab语言程序设计 第二章数据描述C第11页/共43页第十二页,共43页。 一般用大写字母 是宏定义预处理命令(mng lng),不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量如
9、#define PRICE 30 常量 定义:程序运行时其值不能改变的量(即常数(chngsh)) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量例 符号(fho)常量举例(ch2_1.c)#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);运行结果:total=300语言程序设计 第二章数据描述C第12页/共43页第十三页,共43页。&整型常量(chngling)(整常数)&三种形式:&十进制整数:由数字09和正负号表
10、示.如 123,-456,0&八进制整数:由数字0开头,后跟数字07表示.如0123,011&十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff例 12 与 12L例 30000 为int型 65536 为long int 型v 整型常量的类型v 根据其值所在范围确定其数据类型v 在整常量后加字母(zm)l或L,认为它是long int 型常量问题:0123 = ( )100 x123 = ( )100Xff = ( )1083291255问题(wnt):0123 = ( )100 x123 = ( )100Xff = ( )10语言程序设计 第二
11、章数据描述C第13页/共43页第十四页,共43页。&实型常量(实数或浮点数)&表示(biosh)形式:&十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123.&指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 v实型常量(chngling)的类型v默认double型v在实型常量(chngling)后加字母f或F,认为它是float 型语言程序设计 第二章数据描述C第14页/共43页第十五页,共43页。&字符常量(chngling)&
12、;定义:用单引号括起来的单个普通字符或转义字符. v 字符(z f)常量的值:该字符(z f)的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如 101 -A 012 -n 376 - x61 -a 60 -0 483 -()例:A-101-x41-65如 A65, a97, 048 , n10如 a A ? n 101v转义字符(z f):反斜线后面跟一个字符(z f)或一个代码值表示例 转义字符举例(ch2_001.c,ch2_004.c) main()
13、 printf(101 x42 Cn); printf(I say:How are you?n); printf(C Programn); printf(Turbo C);运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C例 main() printf(“Yb=n”); 运行结果:屏幕显示:=打印机输出:第15页/共43页第十六页,共43页。v 字符(z f)常量与字符(z f)串常量不同&字符串常量&定义:用双引号(“”)括起来的字符序列(xli)&存储:每个字符串尾自动加一个 0 作为字符串结束标志h e l l
14、o 0例 字符串“hello”在内存中a a 0例 a“a”例 空串 “”0例: char ch; ch=“A”; 例: char ch; ch=A; 语言程序设计 第二章数据描述C第16页/共43页第十七页,共43页。编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1, b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数v 变量(binling)初始化:定义时赋初值 例: int a,b,c; float data;决定(judng)分配字节数和数的表示范围合法标识符例: int a=2,b,c=4; float data=3.67; char ch=A; in
15、t x=1,y=1,z=1; int x=y=z=1;v变量的使用:先定义,后使用例1 int student; stadent=19; /Undefined symbol statent in function main 例2 float a,b,c; c=a%b; /Illegal use of floating point in function main v 变量定义位置:一般放在函数开头main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);变量定义可执行语句main() int a,b=2
16、; a=1; float data; data=(a+b)*1.2; printf(“data=%fn”,data);Ch2_005.c语言程序设计 第二章数据描述C第17页/共43页第十八页,共43页。&实型变量(binling)&float:占4字节,提供7位有效数字&double:占8字节,提供1516位有效数字&字符型变量(binling)&字符变量(binling)存放字符ASCII码&char与int数据间可进行算术运算例 float a;a=111111.111; /* a=111111.1*/double b;b=111111.1
17、11; /* b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */没有字符串变量,用字符数组存放Ch2_006.c语言程序设计 第二章数据描述C第18页/共43页第十九页,共43页。例 /*ch2_003.c*/ #define PRICE 12.5 main() int num=3; float total; char ch1,ch2=D; total=num*PRICE; ch1=ch2-A+a; printf(“total=%f,ch1=%cn”,total,ch1); 宏定义变量定义输出结果
18、运行(ynxng)结果:total=37.500000, ch1=d语言程序设计 第二章数据描述C第19页/共43页第二十页,共43页。函数调用转换-实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型语言程序设计 第二章数据描述C第20页/共43页第二十一页,共43页。doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例 char ch; int i; float f; double d;ch/i + f*d - (f+i)intintdoubledoubledoubledoubledoubledoub
19、leintintdoubledoubledoubledoubledoubledouble10+a +i*f - d/l例 int i; float f; double d; long l;第21页/共43页第二十二页,共43页。例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果(ji gu):x=3.600000,i=3精度(jn d)损失问题较高类型向较低类型转换时可能发生Ch2_007.cCh2_008.c语言程序设计 第二章数据描述C第22页/共43页第二十三页,共43页。C运算符算术运算符:(+ -
20、 * / % + -)关系运算符:( = !=)逻辑运算符:(! & |)位运算符 :( | &)赋值运算符:(= 及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(* &)求字节数 :(sizeof)强制类型转换:(类型)分量运算符:(. -)下标运算符:()其它 :(( ) -)语言程序设计 第二章数据描述C第23页/共43页第二十四页,共43页。语言程序设计 第二章数据描述C第24页/共43页第二十五页,共43页。l%要求两侧均为整型数据例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2
21、 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()语言程序设计 第二章数据描述C第25页/共43页第二十六页,共43页。例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4语言程序设计 第二章数据描述C第26页/共43页第二十七页,共43页。v自增、自减运算符+ -v作用:使变量值加1或减1v种类(
22、zhngli):v前置 +i, -i (先执行i+1或i-1,再使用i值)v后置 i+,i- (先使用i值,再执行i+1或i-1)l 说明:l + - 不能用于常量和表达式,如5+,(a+b)+l + -结合(jih)方向: 自右向左l 优先级:- + - -* / % -+ -l (2) (3) (4)例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 j+k; (j+)+k;例 -i+ i=3; printf(“%d”,-i+); Ch2_009.c语言程序设计 第二章数据描述C第27页/共43页第二十八页,共43页。v复合赋值运算符v种类(zhngli):+
23、= -= *= /= %= = = &= = |=v含义: exp1 op= exp2 exp1 = exp1 op exp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=3; d=func(); c=d+2;语言程序设计 第二章数据描述C第28页/共43页第二十九页,共43页。l 赋值表达式的值与变量值相等(xingdng),且可嵌套l 赋值转换规则:使赋值号右边表达式值自动(zdng)转换成其左边变量的类型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i;则 f=10.0例 int i; i=2.56; /结果i=
24、2;例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2)/表达式值为5,a,b,c值为5/ b=5;a=5/表达式值11,c=6,a=11/表达式值10,a=10,b=4,c=6/表达式值5,a=5,b=10,c=2语言程序设计 第二章数据描述C第29页/共43页第三十页,共43页。v 说明(shumng):v 结合方向:自右向左v 优先级: 12v 左侧必须是变量,不能是常量或表达式l 赋值表达式的值与变量值相等(xingdng),且可嵌套l 赋值转换规则:使赋值号右边(yu bian)表达式值自动转换成其左边变量的类型例: a=
25、12; a+=a-=a*a例: int a=2; a%=4-1; a+=a*=a-=a*=3; /a=-264 等价于a=a+(a=a-(a*a)/a=0 等价于a=a+(a=a*(a=a-(a=a*3)语言程序设计 第二章数据描述C第30页/共43页第三十一页,共43页。例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3) x=a=3,6*a例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); /a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18
26、/逗号(duho)表达式,表达式值18,x=3/1,2,3/3,2,3语言程序设计 第二章数据描述C第31页/共43页第三十二页,共43页。 逗号运算符和表达式 形式(xngsh):表达式1,表达式2,表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中例:/*ch2_6.c*/#include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);运行(ynxng)结果:x=3语言程序设计 第二章数据描述C第32页/共43页第三十三页,共43页。=!=优先级6(高)优先级7
27、(低)例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)l 关系(gun x)表达式的值:是逻辑值“真”或“假”,用1和0表示例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表达式值1/表达式值1/表达式值0/d=1/f=0语言程序设计 第二章数据描述C第33页/共43页第三十四页,共43页。例 若a=0; b=0.5; x=0.3; 则 a=x278在C中是允许(ynx)的, 值为0例 int i=1, j=7,a; a=i+(j%4!=0); 则a=2例 a0 结果(ji gu)为 A100 结果(ji
28、 gu)为10语言程序设计 第二章数据描述C第34页/共43页第三十五页,共43页。l 关系运算(yn sun)注意:例 注意(zh y)区分“=”与“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);例 应避免对实数(shsh)作相等或不等的判断如 1.0/3.0*3.0=1.0 结果为可改写为:fabs(1.0/3.0*3.0-1.0)1e-60语言程序设计 第二章数据描述C第35页/共43页第三十六页,共43页。ab!a!ba&ba|b真假真假假假真真l C语言中,运算量
29、: 0表示(biosh)“假”,l 非0表示(biosh)“真”,l 运算结果: 0表示(biosh)“假”,l 1表示(biosh)“真”,真假假假假假真真假假真真真假真真语言程序设计 第二章数据描述C第36页/共43页第三十七页,共43页。! (2)& (11)| (12)高低例 a=x & xb&xy a=b|x=y !a|abl优先级:l结合(jih)方向:! :从右向左& :从左向右| :从左向右/ (a=x) & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)语言程序设计 第二章数据描述C第37页/共43页第三十八页,
30、共43页。! (2)& (11)| (12)高低l优先级:l结合(jih)方向:! :从右向左& :从左向右| :从左向右例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|84-!0 c&d值为1值为0值为1值为1值为1值为1/(53)&2|(8(4-(!0) 值为1语言程序设计 第二章数据描述C第38页/共43页第三十九页,共43页。! (2)& (11)| (12)高低l优先级:l结合(jih)方向:! :从右向左& :从左向右| :从左向右l 短路特性(txng):逻辑表达式求解时,并非所有的逻辑运算符都被执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国光催化涂料行业市场发展趋势与前景展望战略研究报告
- 学校秋季素质教育方案计划
- 社团经费管理与使用规划计划
- 城市电力管理重点基础知识点
- 2025江苏南通市崇川区潜慧恒馨企业发展有限公司招聘100人笔试参考题库附带答案详解
- 大数据与智能数据传输技术重点基础知识点
- 2025年芜湖市劳动保障人力资源有限公司招聘10人(十二)笔试参考题库附带答案详解
- 2025年孝感货运上岗证模拟考试题
- 商场大厦施工合同协议
- 作业治疗技术的分类
- 中医内科临床诊疗指南-肺动脉高压
- 三氯化硼-安全技术说明书MSDS
- DB11T 1518-2018 人民防空工程战时通风系统验收技术规程
- 交互设计全流程解析(17章)课件
- T∕CGMA 033001-2018 压缩空气站能效分级指南
- DB34T1589-2020 《民用建筑外门窗工程技术标准》
- 磨煤机检修步骤工艺方法及质量标准
- 辽宁省高中毕业生登记表含成绩表学年评语表体检表家庭情况调查表完整版高中档案文件
- 壁饰设计(课堂PPT)
- 钢管扣件进场验收记录
- 安徽合肥住宅工程质量通病防治导则
评论
0/150
提交评论