C程序设计第三谭浩强著实用教案

上传人:s9****2 文档编号:569817342 上传时间:2024-07-31 格式:PPT 页数:44 大小:6.51MB
返回 下载 相关 举报
C程序设计第三谭浩强著实用教案_第1页
第1页 / 共44页
C程序设计第三谭浩强著实用教案_第2页
第2页 / 共44页
C程序设计第三谭浩强著实用教案_第3页
第3页 / 共44页
C程序设计第三谭浩强著实用教案_第4页
第4页 / 共44页
C程序设计第三谭浩强著实用教案_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C程序设计第三谭浩强著实用教案》由会员分享,可在线阅读,更多相关《C程序设计第三谭浩强著实用教案(44页珍藏版)》请在金锄头文库上搜索。

1、 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式3.1C的数据类型C数据类型基本类型构造类型指针类型空类型void字符型char整型实型(浮点型)单精度型float双精度型double数组类型结构体类型共用体类型短整型short长整型long整型int枚举类型enum数据类型决定:1.数据占内存字节数2.数据取值范围3.可以进行的操作第1页/共43页第一页,共44页。常量和符号常量定义:程序运行过程中,其值不能被改变的量(常数)分类(fn li):直接常量、符号常量3.2常量(chngling)与变量类型示例整型常量12 、 0 、 -3实型常量4.6 、 -1.23字

2、符常量a 、 b 符号常量PRICE 、 PI C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第2页/共43页第二页,共44页。l符号常量:用标识符代表常量l一般用大写字母: PRICE 、 PIl定义(dngy)格式: #define 符号常量 常量l其值在作用域内不能改变和再赋值。例3.1符号(fho)常量举例#definePRICE30#includevoidmain()intnum,total;num=10;total=num*PRICE;printf(total=%dn,total);total=300运行结果:符号常量的优点是:见名知意、一改全改 C语言程序

3、设计(chn x sh j) 第三章数据类型、运算符与表达式第3页/共43页第三页,共44页。变量 定义:其值可以改变的量。 定义格式:数据类型 变量名; 变量应该有名字(mng zi),并在内存中占据一定的存储单元。 变量名和变量值有不同的含义变量名实为一个符号地址 a3例变量(binling)的使用main()inta;a=3;printf(“a=%d,a);变量名变量值存储单元 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第4页/共43页第四页,共44页。标识符定义:标识变量名、符号常量名、函数名、数组名、 文件名的字符串序列名字。命名规则:只能由字母、数字、下

4、划线组成,且第一个字符必须是字母或下划线大小写字母含义不同,一般用小写不能使用关键字尽管VC最长可以(ky)255,建议长度不超过8个字符使用:先定义、后使用标识符应该“见名知意”,如 total , max标识符应该“不宜混淆”,如 l与1 , O与0这些(zhxi)标识符合法吗?1A、M.D.John、¥123、#33、Tatol、int、max C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第5页/共43页第五页,共44页。3.3整型数据(shj)整型常量(整常数)的三种表示方法十进制整数:由数字09和正负号表示.如123,-456,0八进制整数:由数字0开头,后

5、跟数字07表示.如0123,011十六进制整数:由0x(0X)开头,后跟09,af(AF)表示.如0x123,0xff C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第6页/共43页第六页,共44页。补充(bchng)知识: C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式位:一位二进制数在计算机中称为(chnwi)1位(bit,比特)1 Byte(字节)= 8 bit1 KB = 1024 Byte1 MB = 1024 KB1 GB = 1024 MB 第7页/共43页第七页,共44页。字节:内存(nicn)以字节为单元组成每个字节有一个地址一

6、个字节一般由8个二进制位组成(1byte=8bit)每个二进位的值是0或101234567012345678910.7643251 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第8页/共43页第八页,共44页。 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式计算机中常用的数制、数据与编码方式在计算机中对信息的处理就是对数据的处理,数据是信息在计算机内部的表示形式人们(rnmen)通常使用的是十进制计数制,例如:555.55=5X102+5X101+5X100+5X10-1+5X10-2第9页/共43页第九页,共44页。进位制 二进制 八进制 十

7、进制 十六进制(sh li jn zh)规则 逢二进一 逢八进一 逢十进一 逢十六进一基数 R=2 R=8 R=10 R=16数码 0,1 0,1,2.,7 0,1,2.,9 0,1,2,.9, A,B,C,D,E,F 权 2i 8i 10i 16i 计算机中常用的各种进位(jnwi)计数制 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第10页/共43页第十页,共44页。0000010001200103001140100501016011070111810009100110(A)101011(B)101112(C)110013(D)110114(E)111015(F)

8、111100001001201030114100510161107111十六进制(shlijnzh)八进制说明(shumng): C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第11页/共43页第十一页,共44页。在计算机中十进制数:数据的输入(shr)和输出二进制数:数据的存储和运算常识(chngsh):八进制、十六进制(sh li jn zh)数:一种计数方法,以弥补二进制数在书写位数过长的不足以0开头以0x开头 C语言程序设计 第三章数据类型、运算符与表达式第12页/共43页第十二页,共44页。数值的表示方法原码、反码和补码原码:最高位为符号位,其余各位为数值本身

9、的绝对值反码:正数(zhngsh):反码与原码相同负数:符号位为1,其余位对原码取反补码:正数(zhngsh):原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加1 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第13页/共43页第十三页,共44页。原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-1271111111110000010-12810000000(用一字节表示数)数的范围(-128+127)100000001000000

10、1-1261111111010000001v负数(fsh)补码转换成十进制数:最高位不动,其余位取反加1例原码(yunm):10000111取反:11111000加1:11111001=-7 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第14页/共43页第十四页,共44页。整型变量整型数据在内存中的存放(cnfng)形式数据在内存中以二进制补码形式存放(cnfng)每一个整型变量在内存中占4个字节(32位,VC6.0编译系统)10的原码反码补码-10的原码反码补码00000000000000000000000000000000000000000000000010000

11、0000000000011111111111111111111111111111111整数(zhngsh)的最左二进制位是符号位,0正、1负v整型变量(binling)的分类v三类整型变量(binling)有符号无符号基本型(简称整型)intunsignedint短整型short或shortintunsignedshort长整型long或longintunsignedlongl整数类型(lixng)和取值范围v整型变量(binling)的定义v先定义后使用强制类型定义vinta,b;(指定变量(binling)a、b为整型)vunsignedshortc,d;(指定变量(binling)c、d

12、为无符号短整型)vlonge,f;(指定变量(binling)e、f为长整型)00000000000011010000000000000000000000000000110100000000000011010000000000000000000000000000110100000000000011010000000000001101short型short型int型unsignedshort型Unsignedshort型unsignedint型符号位例3.2整型变量(binling)的定义与使用#includevoidmain()inta,b,c,d;unsignedu;a=12;b=-24;u

13、=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn,c,d);指定(zhdng)abcd为整型变量指定u为无符号整型变量定义放在函数开头的声明部分作用域不同类型混合运算,类型自动转换结果:a+u=22,b+u=-14定义与赋值同时进行:inta=12;v短整型数据的溢出(ych)v此情况称为“溢出(ych)”,运行时不报错,编程时要注意0111111111111111短整型变量(binling)最大值327671000000000000000加1后是32768的补码(bm)形式例3.3整型数据的溢出#includevoidmain()shorta,b;a=32767;

14、b=a+1;printf(%d,%dn,a,b);32767,-32768运行结果:改为:int b;结果是什么?整型常量的类型整型常量的值在-32768+32767范围(fnwi)内,编译器认为是short类型整型常量的值超过上述范围(fnwi),而在2147483648+2147483647范围(fnwi)内,编译器认为是int类型当系统定义int与long占内存长度相同,则两种类型常量均可以赋给int和long型变量在整型常量后面加大写L或小写l,则告诉编译器,把该整型常量作为long类型处理。例:123L、0L在整型常量后面加u,则按无符号整型方式存放,负数转换成补码再按无符号整型方式

15、存放。 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第20页/共43页第二十页,共44页。3.4浮点型数据浮点型常量的表示方法浮点数(float)又称为实数(shsh)(real)两种表示方法:十进制小数形式:必须有小数点如0.123、.123、123.0、0.0、123.指数形式:e或E之前后必须有数字;指数必须为整数如123.456e0、12.3456e1、1.23456e2、0.123456e3、0.0123456e4等规范化指数形式只有一位非零整数的指数形式是指数的输出形式6.28e-2表示(biosh)6.2810-2-3.0824e4表示(biosh)3.

16、0824104 C语言程序设计 第三章数据类型、运算符与表达式第21页/共43页第二十一页,共44页。浮点型变量浮点型数据在内存中的存放形式(xngsh)浮点型数据在内存中占4个字节(32位)在内存中分成3部分,指数为2的幂次+.3141591数符小数(xiosh)部分指数(zhsh)v浮点型变量的分类(VC环境)单精度 float 32位6双精度 double 型64位15长双精度long double型64位15类 型位数有效数字floatx,y;(指定x、y为单精度浮点型变量)doublez;(指定z为双精度浮点型变量)longdoublet;(指定t为长双精度浮点型变量)v浮点型数据的

17、舍入误差v数据超过有效位数,则产生误差v要避免(bmin)一个很大的数与一个很小的数加减例3.4浮点型数据(shj)的舍入误差#includevoidmain()floata,b;a=123456.789e5;b=a+20;printf(%fn,b);舍入误差使1.0/3*3的结果并不等于1!12345678848.000000运行结果:浮点型常量(chngling)的类型浮点型常量(chngling)一般按双精度64位处理,数后加F或f按单精度浮点型常量(chngling)不分float和double3.5字符(zf)型数据字符(zf)常量定义:用单引号括起来的单个字符(zf)或转义字符(z

18、f)字符(zf)常量的值:该字符(zf)的ASCII码值定义格式:char变量名=值转义字符(zf):反斜线后面跟一个字符(zf)或一个代码值表示如aAnt如 a97 ,A65 n10, t9charch=65与charch=A与char=101是等效(dnxio)的表3.3转义字符及其含义转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车(不换行)响铃单引号3位8进制数代表的字符水平制表(右移8格)退格换页反斜杆双引号2位16进制数代表的字符例3.5转义字符的使用(shyng)#includevoidmain()printf(“abctderftgn”);printf(“h

19、tibbjk”);fgdehjk显示结果:打印结果:fabgdehjik字符(zf)变量存放字符(zf)常量,占用一个字节,存放一个字符(zf)定义形式:赋值:charc1,c2;c1=a;c2=b;字符数据在内存中的存储形式及其使用(shyng)方法以二进制存放字符的ASCII码值(0255整数)与整数的存储形式类似以字符或整数形式输出例3.6向字符(zf)变量赋整数#includevoidmain()charc1,c2;c1=97;c2=98;printf(“%c%cn,c1,c2);printf(“%d%dn,c1,c2);ab9798运行结果:输出形式取决于printf函数中的格式符格

20、式符为“%c”时输出的变量值为字符格式符为“%d时输出的变量值为整数对字符数据进行(jnxng)算术运算实质是对其ASCII值进行(jnxng)算术运算例3.7大小写字母的转换(zhunhun)#includevoidmain()charc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%c,c1,c2);AB运行结果:字符(zf)型与整型间互相赋值例:互相赋值#includevoidmain()intc1;charc2;c1=a;c2=98;c1=c1-32;c2=c2-32;printf(“%c%c,c1,c2);小写字母比大写字母的小写字母比大写字母

21、的ASCIIASCII码大码大(32)(32)1010字符串常量定义:用双引号(“”)括起来的字符序列“Howdoyoudo”,“CHINA”,“a”,“$123.45”存储(cnch):每个字符串尾自动加一个0作为字符串结束标志hello0例 字符串“hello”在内存中例空串“”0v字符常量(chngling)与字符串常量(chngling)不同aa0例a“a”例:charch;ch=“A”;例:charch;ch=A;没有字符没有字符(z f)(z f)串变量,串变量,只能用字符只能用字符(z f)(z f)数组存放数组存放3.6变量(binling)赋初值变量(binling)的使用:

22、先定义,后使用变量(binling)定义位置:一般放在函数开头变量(binling)初始化:可以在定义时赋初值例:inta=1,b=-3,c;floatdata=3.67;charch=A;intx=1,y=1,z=1;intx=y=1;()编译程序根据变量定义为其分配指定字节的内存单元.地址abc4字节4字节4字节地址地址.内存1-3随机数错!inta=b=c=33.7各类数值型数据间的混合运算(ynsun)整型、实型、字符型数据间可以混合运算(ynsun)自动转换什么情况下发生运算转换-不同类型数据混合(hnh)运算时赋值转换-把一个值赋给与其类型不同的变量时输出转换-输出时转换成指定的输

23、出格式函数调用转换-实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换例charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+a+i*f-d/l例inti;floatf;doubled;longl;强制(qingzh)转换(见P56强制(qingzh)类型

24、转换运算符部分)一般形式:(类型名)(表达式)例:(int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制(qingzh)转换得到 所需类型的中间变量, 原变量类型不变 例3.8#includemain()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果(jigu):x=3.600000,i=3精度损失精度损失(snsh)(snsh)问题问题较高类型向较低类型转换时可能发生强制类型转强制类型转换运算符换运算符表达式仅一个变表达式仅一个变量时,括号可以量时,括号可以省略省略 3.8算术(sunsh)

25、运算符和算术(sunsh)表达式C运算符算术运算符:(+ - * / % + -)关系运算符:( = !=)逻辑运算符:(! & |)位运算符 :( | &)赋值运算符:(= 及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(* &)求字节数 :(sizeof)强制类型转换:(类型)分量运算符:(. -)下标运算符:()其它 :(( ) -)学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型(lixng)运算符优先级别结合方向结果的类型(lixng)算术运算符和算术表达式基本算术运算符: + - * / %结合方向:从左向右优先级: - -* / % - + -

26、(2) (3) (4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据+ - * / 运算的两个(lin )数中有一个数为实数,结果是double型例5/2=-5/2.0=例5%2=-5%2=1%10=5%1=5.5%2例5/2=2-5/2.0=-2.5例5%2=1-5%2=-11%10=15%1=05.5%2() C语言程序设计(chn x sh j) 第三章 程序的灵魂算法v自增、自减运算符+ v作用:使变量值加1或减1v种类:v前置 +i, -i (先执行i+1或i-1,再使用(shyng)i值)v后置 i+,i- (先使用(shyng)i值,再执行i+

27、1或i-1)例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,j=4/3,j=3/c=20,a=4/c=15,a=4l几点说明(shumng):例 -i+ i=3; printf(“%d”,-i+); -(i+)/-3 u+ - 不能用于常量和表达式,如 5+,(a+b)+u+ - 结合方向: 自右向左u优先级:- + - -* / % -+ -u (2) (3) (4)u该运算符常用(chn yn)于

28、循环语句中,使循环变量加减1v有关表达式使用中的问题(wnt)说明v不同系统对运算符和表达式的处理次序不同,尽可能写通用性强的语句v不要写有歧义和不知系统如何执行的程序3.9赋值运算符和赋值表达式v简单赋值运算符v符号: =v格式: 变量标识符=表达式v作用:将一个(y )数据(常量或表达式)赋给一个(y )变量v左侧必须是变量,不能是常量或表达式例 a=3; d=func(); c=d+2;例 3=x-2*y; a+b=3; ()v赋值表达式v形式(xngsh):v赋值表达式的值与变量值相等,且可嵌套例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(

29、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=23.10逗号运算符和逗号表达式形式:表达式1,表达式2,表达式n结合性:从左向右优先级:15,级别最低逗号表达式的值:等于表达式n的值用途:常用(chnyn)于循环for语句中例a=3*5,a*4a=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,表达

30、式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号(duho)表达式,表达式值18,x=3/1,2,3/3,2,3例:逗号(duho)表达式使用main()intx,y=7;floatz=4;x=(y=y+6,y/z);printf(x=%dn,x);X=3运行结果:本章的内容散乱而复杂,但却是程序设计的基础,要认真看书,通过编程序才可以深入理解。课后作业P6668页习题:3.2,3.5(思考)3.3,3.4,3.9,3.12(写出答案(dn))上机:实验教材:实验2(1,2,4,(5)预习第四、第五章 C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式第42页/共43页第四十二页,共44页。感谢您的欣赏(xnshng)!第43页/共43页第四十三页,共44页。内容(nirng)总结C语言程序设计(chn x sh j) 第三章数据类型、运算符与表达式。printf(total=%dn,total)。数值的表示方法原码、反码和补码。short或short int。printf(%f n,b)。c1=c1-32。c1=c1-32。算术运算符和算术表达式。自增、自减运算符+ 。感谢您的欣赏第四十四页,共44页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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