第三章数据类型,运算符与表达式

上传人:飞*** 文档编号:6619710 上传时间:2017-08-08 格式:PPT 页数:45 大小:407KB
返回 下载 相关 举报
第三章数据类型,运算符与表达式_第1页
第1页 / 共45页
第三章数据类型,运算符与表达式_第2页
第2页 / 共45页
第三章数据类型,运算符与表达式_第3页
第3页 / 共45页
第三章数据类型,运算符与表达式_第4页
第4页 / 共45页
第三章数据类型,运算符与表达式_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第三章数据类型,运算符与表达式》由会员分享,可在线阅读,更多相关《第三章数据类型,运算符与表达式(45页珍藏版)》请在金锄头文库上搜索。

1、高级语言程序设计,第三章 数据类型、运算符与表达式莆田学院C语言程序设计精品课程组2005年2月 制作,目录,一、C语言的数据类型二、常量三、变量四、数据间的转换五、算术运算符和算术表达式六、数据的输入和输出,一、C语言的数据类型,C语言的数据类型 P38基本类型 字符型(char) 1字节 整型短整型(short int ) 2字节 基本型(int) 2字节(-3276832767) 长整型(long int ) 4字节(21亿) 实型单精度(float) 4字节 67位有效数字 长单精度(long float) 8字节 1516位有效数字 双精度(double) 8字节 1516位有效数字

2、 长双精度(long double)10字节 20位有效数字,可知对不同数据类型占用的存储空间: charshort=intlong =floatdouble,Lets try,注意 : VC+的基本数据类型,基本类型 字符型(char) 1字节 整型short, unsigned short 2字节(-3276832767) int, unsigned int 4字节(21亿) long, unsigned long 4字节(21亿) 实型单精度(float) 4字节 67位有效数字 长单精度(long float) 8字节 1516位有效数字 双精度(double) 8字节 1516位有效

3、数字 长双精度(long double)10字节 20位有效数字,结果显示: char:1字节 float:4字节,求某一类型数据所占存储字节数,可用运算符: sizeof(类型关键字)Example:main( ) printf(“char:%d字节n”,sizeof(char); printf(“float:%d字节n”,sizeof(float);,注意事项,整型整数 int 的范围: 3276832767Example: #include #include main() int a ; clrscr( ); printf(“Input :”); scanf(“%d”,&a); prin

4、tf(“a=%dn”,a); ,运行结果: Input:12345 a=12345 Input:1234567 a= -10617,Why?!,Because: 12345的补码是 0011000000111001 1234567的补码是 100101101011010000111 截去多余部份(超过2个字节的左边部分)后 其原码为 1010100101111001(-10617)参见教材P44“整型数据的溢出”。,可用下图表示: 32767 32766 32765 -32766 -32767 -32768,有趣的结果,注意事项,数据存储形式 字符型按ASCII码存储,其余以补码存储,补充:

5、二进制数的定点和浮点表示,定点表示法小数点位置是“固定的” 定点数可用于表示整数。整数在机器中用补码表示。 对于 int a=8,b=-8;,0 0000000 00001000,符号位:0正数 1负数,1 0000000 00001000,1 1111111 11110111,正数的原码=正数的补码 负数的原码和补码按以下规则相互转换: 符号位不变,数值位各位取反,未位加1。,0 0000000 00001000,原码,补码,符号位,数值位,a=810=10002,b=- 810=-10002,真值,1 1111111 11111000,补充: 二进制数的定点和浮点表示,浮点表示法小数点位置

6、是“浮动的”。 在计算机中一个浮点数由两部分组成:阶码和尾数,阶码是指数,尾数是纯小数。浮点表示法可用于表示带小数的数。 (110.011)B=1.100112+10=11001.1 2-10 =0.110011 2+11 即: N=数符尾数2阶符阶码 尾数的位数决定数的精度 阶码的位数决定数的范围,0 110011 0 11,阶码和数符:0正数 1负数,注意事项,整型和字符型均可为unsigned (无符号型)P43图3.4 即将符号位亦作为数值位(默认为signed) 此时 int 的范围 065535 char 的范围 0 255 Lets try,?,在C程序中,字符型可与整型(255

7、)互相通用 P50-51,输出结果: a,b,输出结果: 97,98,不变,d,b 100,98,Example: (参见P50例3.6,ACII值见P374) main() main() char c1,c2; char c1,c2; c1=97;c2=98; c1=97;c2=98; printf(“%c,%cn”,c1,c2); printf(“%d,%dn”,c1,c2); ,思 考如果将例中char改成int,结果如何?如果将c1=97改为c1=97+3,结果如何? Lets try,二、常量,整型常量 P41 十进制数 12 -12l 或 -12L 700000ul 八进制数 01

8、2 -012l 十六进制数 0x12 -0x12l实型常量 P45 十进制形式 123.45 2.0 ( 必有小数点) 指数形式 2.45e-4 1.13E3 (e或E前为数,后为整数) 实型常量本身无单或双精度,其机内精度取决于赋给那类变量(影响有效数字位数,见P15示例)字符常量/字符串常量,字符常量 P48,普通字符(可显示字符) A ? (只能单字符单引号) 错误:ABC “A” ” 转义字符(在单引号或双引号中以开头) 如回车符、单引号、反斜杠等 在程序中这些符号用表3.3所示的“转义字符”表示。字符串(用双引号括起) “A” “?” (以0为字符串结束标志)注意:用char定义的字

9、符变量只能接受字符常量,而不能接受字符串常量(C语言中无字符串变量) char a=U ; char b=“U”; (b被置为某随机值),Example:main() char c1=a ,c2; c2=98; printf(“%d,%dn”,c1,c2); ,结果: 97,98,Example:main() char c1=“a” ,c2; c2=98; printf(“%d,%dn”,c1,c2); ,结果: -108,98若让c1分别等于“U”、“ABC”、“A”结果不变,随机值,转义字符例题分析,Example:main() char ch; ch=362; printf(“%c,%d

10、”,ch,ch);运行结果: ,14ch = 3628=24210=111100102 111100102 化为原码为 10001110= 1410,转义字符例题分析,Example:#include main() printf(“%dn”,“an”x41”); printf(“%dn”,strlen(“an”x41”);运行结果: a “A 4注:strlen为求字符串字节数函数(不计结束标志0)。,转义字符例题分析,Example: P49例3.5main() printf( “_ _ a b _ c t _ d e r f t g n ”); printf( “h t I b b j _

11、 _ _ k” );运行结果:,_ _ a b _ c,_ _ a b _ c _ _ _ d e,f _ a b _ c _ _ _ d e,f _ _ _ _ _ _ _ g d e,h,h _ _ _ _ _ _ _ l,h _ _ _ _ _ _ _,h _ _ _ _ _ _,h _ _ _ _ _ _ j _ _ _ k,什么时候要使用转义字符?,转义字符只在特殊情况下才使用:C程序中需要实现某些特定打印或显示动作时 如 printf(“123t56n”);C程序中需要打印或显示以下三个字符时 (斜杠) (双引号) (单引号) 如 printf(“Youre a ”a bad egg!” ” );C程序中需要打印或显示ASCII表中非键盘字符时 如 printf(“ Look 16 and x80 !”);,注意:使用转义字符时,后的八进制或十六进制数不应大于char类型所允许的范围(十进制值256)。,字符串常量有关问题,与“”的区别问题(判断正误): char c=“China”; char c=China;“China”占几个字节?141占几个字节?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号