C语言程序设计教程课件PPT.ppt_第1页
C语言程序设计教程课件PPT.ppt_第2页
C语言程序设计教程课件PPT.ppt_第3页
C语言程序设计教程课件PPT.ppt_第4页
C语言程序设计教程课件PPT.ppt_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第3章数据描述-数据类型运算符与表达式,预备知识数据类型常量与变量不同类型数据间的转换运算符和表达式,2,3.0预备知识计算机中数的表示及进制转换数码、基与权数码:表示数的符号基:数码的个数权:每一位所具有的值数制,3,各种进制之间的转换二进制、八进制、十六进制转换成十进制方法:按权相加,4,各种进制之间的转换(整数)二进制、八进制、十六进制转换成十进制方法:按权相加,十进制转换成二进制、八进制、十六进制原理:,方法:连续除以基,从低到高记录余数,直至商为0,5,二进制与八进制之间的转换二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制八进制转换成二进制:用3位二进制数代替每一位八进制数,例(1101001)2=(001,101,001)2=(151)8,例(246)8=(010,100,110)2=(10100110)2,00000011010201131004101511061117,6,二进制与十六进制之间的转换二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制十六进制转换成二进制:用4位二进制数代替每一位十六进制数,例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,000000001100102001130100401015011060111710008100191010A1011B1100C1101D1110E1111F,7,字节和位内存以字节为单元组成每个字节有一个地址一个字节一般由8个二进制位组成每个二进位的值是0或1,8,数值的表示方法原码、反码和补码原码:最高位为符号位,其余各位为数值本身的绝对值反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反补码:正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加1,9-5=49+7=16=(14)12,9,负数补码转换成十进制数:最高位不动,其余位取反加1,例补码:11111001取反:10000110加1:10000111=-7,10,浮点表示,十进制数的科学表示法(scientificnotation)156,000,000=1.56*108-0.000,000,28=0.28*10-6浮点表示N=M*REM:尾数,R:基数,E:指数(阶码)数的符号位在M中表示;数的大小在E中表示。,11,11,补码,在给定码长N的情况下,求数-n的补码,就是求一个二进制数n,使得n+n=0=2N对于整数X,设X是其补码表示,N是码长,则补码只有一个0的表示,即+0补=-0补=00000000,12,12,按位求补码,正数补码:和原码相同负数补码:反码加1,13,13,补码运算示例,码长4位,求2-3+2的补码0010-3的补码1101结果1111码长4位,求3-2+3的补码0011-2的补码1110结果0001,14,3.1数据类型数据类型总表,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,15,基本数据类型,整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBMPC机为例:,16,3.2常量与变量标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:最长32个字符命名原则:见名知意不宜混淆如l与I,o与0,例:判断下列标识符号合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3charab_above$123,M.D.John,3days,#33,char,$123,ab,17,一般用大写字母是宏定义预处理命令,不是C语句直接常量:整型常量实型常量字符常量字符串常量,如#definePRICE30,常量定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define符号常量常量,例符号常量举例(ch2_1.c)#definePRICE30main()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);,运行结果:total=300,18,整型常量(整常数)三种形式:十进制整数:由数字09和正负号表示.如123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff,例12与12L,例30000为int型65536为longint型,整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L,认为它是longint型常量,问题:0123=()100 x123=()100Xff=()10,19,实型常量(实数或浮点数)表示形式:十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5,1.2E-3.5,实型常量的类型默认double型在实型常量后加字母f或F,认为它是float型,aaa,20,字符常量定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如101-A012-n376-x61-a60-0483-(),例:A-101-x41-65,如A65,a97,048,n10,如aA?n101,转义字符:反斜线后面跟一个字符或一个代码值表示,例转义字符举例(ch2_001.c,ch2_004.c)main()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);,运行结果:(屏幕显示)ABCIsay:”Howareyou?”CProgramTurboC,例main()printf(“Yb=n”);,运行结果:屏幕显示:=打印机输出:,21,*/%-+-(2)(3)(4),例-i+-(i+)i=3;printf(“%d”,-i+);/-3,例-i+i=3;printf(“%d”,-i+);,Ch2_009.c,29,6.1.2函数调用形式:函数名(实在参数表)以表达式形式调用函数或函数名(实在参数表);以语句形式调用函数调用过程:(1).计算实在参数表中各表达式;(2)将表达式的值(此值可以是一般意义量的值,也可以是指针的值(地址)依次赋给同类型的各形式参数;(3)控制转移到函数体,执行函数体;(4)当遇到return语句中包含表达式时,则将表达式的值送回调用函数;没执行到return语句或虽执行到return语句但不包含表达式时,均没有确定值送回调用函数.对void型函数,return语句不能带表达式.在考察函数调用时,要注意:是以表达式形式调用函数还是以语句形式调用函数;参数传递,是传值还是传地址;有无返回值与函数类型的关系。,30,上述四个函数定义,完整的程序如下:【例6.1】intmax(intx,inty)/*注意不能写成intx,y*/intz;if(xy)z=x;elsez=y;returnz;main()inta,b,c;scanf(%d%d,31,【例6.2】doubles(doublex,doubleeps)intn=1;doublew=0.0,t=1.0;while(fabs(t)=eps)w+=t;t=t*x/(n+);returnw;main()doublex,eps=1e-6;scanf(%lf,/*以表达式形式调用函数*/,32,【例6.3】voidswap(int*x,int*y)inttemp;temp=*x;*x=*y;*y=temp;main()inta,b;scanf(%d%d,voidswap(intx,inty)inttemp;temp=x;x=y;y=temp;,swap(a,b);,程序若作上述改动,结果如何?,改为,改为,注意:实参对形参的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参.,33,【例6.4】voidsort(a,n)inta,n;inti,j,k,w;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(ak3=a的运算顺序为_(填写运算符).(例如C语言计算表达式2+a/2的运算顺序为/+)ii)计算表达式3=!a1的运算顺序为_iii)计算表达式!(a1)|a则a的值是_。10.课本3.9,3.10,42,供课外参考学习-本章补充材料-补码表示法,正数的补码与原码相同,负数的补码是将负数的反码末位加1。模:计量的范围,或称为模数,超出模数即溢出被丢掉。N位字长的整数(包括1位符号位)模值为2N;N位字长的纯小数(包括1位符号位)的模值为2例:4位字长的机器表示的二进制整数为:00001111共16种状态,模为16=24。,43,小数:X=X0.X1X2XnX0是符号位X1-2-nX0x补=2+X=2-|X|0X-1,完成下列数的真值到补码的转换:X1=+0.1011011X2=-0.1011011,X1补=0.1011011,X2补=1.0100101,44,整数:记x补=X0X1X2XnX2n-1X0x补=2n+1+X=2n+1-|X|0X-2n,完成下列数的真值到补码的转换:X1=+01011011X2=-01011011,X1补=01011011,X2补=10100101,45,补码的表示范围:,N位字长纯整数:-2N-12N-1-1当字长N=8时:-1补=11111111+0补=00000000-0补=00000000-128补=28-|-128|=100000000B-10000000B=10000000BN位字长纯小数:-11-2-(N-1)当字长N=8时:-1补=1.0000000,46,46,浮点数,浮点数(floatingpointnumber)既包含整数又包含小数(fraction)小数转换为二进制:反复乘2,47,47,规范化,normalization,如(+10011.1011)这样的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论