二章数据类型运算符表达式.ppt
《二章数据类型运算符表达式.ppt》由会员分享,可在线阅读,更多相关《二章数据类型运算符表达式.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c语言程序设计 第二章数据类型、运算符与表达式C二章数据类型运算符表达式 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望c语言程序设计 第二章数据类型、运算符与表达式C2.1 数据类型 C数据类型基本类型构造类型指针类型空类型void字符类型char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型intc语言程序设计 第二章数据类型、运算符与表达式C2.2 常量与变量常量和符号
2、常量v常量:在程序运行过程中,其值不能改变的量 如;12,0,-3,4.6,-1.23,a,cv符号常量:用一个标识符代表一个常量例2.1 符号常量的使用#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(“total=%d”,total);运行结果:total=300c语言程序设计 第二章数据类型、运算符与表达式C符号常量的好处v含义清楚 如 PRICE 代表价格v能做到一改全改 如#define PRICE 35 程序中所有以PRICE代表的价格自动改为35变量v在程序运行过程中,其值可以改变的量v变量有一个名
3、字v变量在内存中占一定的存储单元 3 a 变量值变量名存储单元c语言程序设计 第二章数据类型、运算符与表达式C标识符v定义:用来标识变量、常量、函数等的有效字符序列v组成:l只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线l大小写敏感v命名原则:l见名知意l变量名尽量用小写,符号常量用大写l长度尽量不要超过8个字符l尽量不使用下划线开头l不能用关键字作标识符l避免使用容易认错的字符例:0 o O 1 l I Z z 2例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _a
4、bove$123M.D.John3days#33char$123abc语言程序设计 第二章数据类型、运算符与表达式C变量的使用应“先定义,后使用”v未被事先定义的不作为变量名 例:如果在定义部分写了 int student;而在执行语句中错写成stadent.如:stadent=30;则输出错误“变量stadent未定义”v编译时根据变量的类型为其分配相应的存储单元 如 int为两个字节 float为四个字节v编译时根据变量的类型检查运算是否合法 如%运算只能在整型数据之间进行 如果a,b为两个实型变量,则a%b是错误的c语言程序设计 第二章数据类型、运算符与表达式C2.3 整型数据整型常量的
5、表示方法v十进制整数 如;123,-456,0v八进制整数 以0开头的数 如:0123即(123)8 其值为1*82+2*81+3*80=83v十六进制整数 以0 x开头的数 如:0 x123即(123)16 其值为1*162+2*161+3*160=291要注意各种进制数字的组成注c语言程序设计 第二章数据类型、运算符与表达式Cv各种进制之间的转换l二进制、八进制、十六进制转换成十进制u方法:按权相加c语言程序设计 第二章数据类型、运算符与表达式Cv各种进制之间的转换(整数)l二进制、八进制、十六进制转换成十进制u方法:按权相加l十进制转换成二进制、八进制、十六进制u方法:连续除以基,从低到
6、高记录余数,直至商为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余 1c语言程序设计 第二章数据类型、运算符与表达式Cl二进制与八进制之间的转换u二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制u八进制转换成二进制:用3位二进制数代替每一位八进制数
7、例 (1101001)2=(001,101,001)2=(151)8例(246)8=(010,100,110)2=(10100110)2000 0001 1010 2011 3100 4101 5110 6111 7c语言程序设计 第二章数据类型、运算符与表达式Cl二进制与十六进制之间的转换u二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制u十六进制转换成二进制:用4位二进制数代替每一位十六进制数例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例(4B9E)16=(0100,1011,1001,1110)2=(1
8、00101110011110)20000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 Fc语言程序设计 第二章数据类型、运算符与表达式C字节和位v内存以字节为单元组成v每个字节有一个地址v一个字节一般由8个二进制位组成v每个二进位的值是0或101234567012345678910.7643251c语言程序设计 第二章数据类型、运算符与表达式C整型变量v整型数据在内存中的存放l在内存中以二进制形式存放l一个整型变量在内存中占两个字节 如:int i;i=10;
9、数据在内存中的实际存放情况v补码l正数的补码和其原码形式相同l负数的补码u取-10的绝对值u按位取反u加1 00 1 00 0 0 0 0 0 0 0 10 0 000 1 00 0 0 0 0 0 0 0 10 0 011 0 11 1 1 1 1 1 1 1 01 1 111 1 01 1 1 1 1 1 1 1 01 1 1c语言程序设计 第二章数据类型、运算符与表达式C整型变量的分类v有符号基本整型 signed intv无符号基本整型 unsigned intv有符号短整型 signed short int v无符号短整型 unsigned short int v有符号长整型 sig
10、ned long intv无符号长整型 unsigned long int =3276701 1 11 1 1 1 1 1 1 1 11 1 1符号位11 1 11 1 1 1 1 1 1 1 11 1 1=65535数据的第一位有符号整型变量无符号整型变量c语言程序设计 第二章数据类型、运算符与表达式CANSI标准定义的整数类型类型比特数取值范围sigend int16-3276832767unsigned int16065535sigend short int16-3276832767unsigned short int 16065535sigend long int32-231(231-
11、1)unsigned long int320(232-1)c语言程序设计 第二章数据类型、运算符与表达式C整型变量的定义vint a,b;vunsigned short c,d;vlong e,f 例2.2 整型变量的定义与使用main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);运行结果:a+u=22,b+u=-14c语言程序设计 第二章数据类型、运算符与表达式C整型数据的溢出例2.3 整型数据的溢出main()int a,b;a=32767;b=a+1;printf(“%d
12、,%dn”,a,b);运行结果:32767,-3276801 1 11 1 1 1 1 1 1 1 11 1 1a:3276710 0 00 0 0 0 0 0 0 0 00 0 0b:-32768c语言程序设计 第二章数据类型、运算符与表达式C整型常量的类型v其值在-32768+32767范围内的整数认为它是int 型v其值超出上述范围,在-2147483648+2147483647范 围内,则认为是长整型v一个整型常量后加一个字母u,认为是unsigned int 型 如12345u。如果是-12345u,则先将-12345转换成补码 53191,然后按无符号数存储。v一个整型常量后面加一
13、个字母l或L,认为是long int 型 312691245781011c语言程序设计 第二章数据类型、运算符与表达式C思考题 请写出下列程序的运行结果main()long int a;a=32767+1;printf(“a=%ldn”,a);main()long int a;a=32768;printf(“a=%ldn”,a);c语言程序设计 第二章数据类型、运算符与表达式C2.4 实型数据实型常量的表示方法v十进制小数形式 由数字和小数点组成(必须有小数点)如;.123、123.、123.0、0.0v指数形式 如:123e3或123E3 都代表123*103 字母e之前必须有数字,e后面的
14、指数必须为整数v规范化的指数表示形式 一个实数可以有多种指数表示形式 如123.456可表示为123.456e0、12.3456e1、1.23456e2、0.123456e3等 字母e之前的小数部分中,小数点左边有且只能有一位 非零的数字 c语言程序设计 第二章数据类型、运算符与表达式C实型变量v实型数据在内存中的存放 v实型变量的分类 +.3141591数符小数部分 指数类型比特数有效数字数值范围float326710-371038double64151610-30710308long double80181910-4931104932c语言程序设计 第二章数据类型、运算符与表达式Cv实型数
15、据的舍入误差 例2.4 实型数据的舍入误差main()float a,b;/*double*/a=123456.789e5;b=a+20;printf(“%fn”,b);运行结果:12345678848.000000实型常量的类型 系统将实型常量作为双精度来处理 可在数的后面加字母f或F,按单精度处理c语言程序设计 第二章数据类型、运算符与表达式C2.5 字符常量v定义:用单引号括起来的单个普通字符或转义字符.如 101 -A 012 -n 376 -x61 -a 60 -0 483 -()例:A-101-x41-65如 a A?n 101v转义字符:反斜线后面跟一个字符或一个代码值表示例 转
16、义字符举例main()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”);运行结果:屏幕显示:=打印机输出:字符形式含义ASCII代码n换行,将当前位置移到下一行开头10t水平制表(跳到下一个制表位)9b退格,将当前位置移到前一列8r回车,将当前位置移到本行开头13f换页,将当前位值移到下页开头12反斜杠字符“”92单引号字符39”双引号
17、字符34ddd1到3位8进制数所代表的字符xhh1到2位16进制数所代表的字符c语言程序设计 第二章数据类型、运算符与表达式C例2.5 转义字符的使用main()printf(“ab ct derftgn);printf(“htibbj kn);运行结果:屏幕显示:f gde h j k打印机输出:fab c gde h jik 字符变量l定义形式 char c1,c2;l赋值 c1=a;c2=b;c语言程序设计 第二章数据类型、运算符与表达式C字符数据在内存中的存储l一个字符在内存中占一个字节l字符数据在内存中以ASCII码存储例2.6 向字符变量赋以整数main()char c1,c2;c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式
限制150内