C语言程序设计第二章课件_第1页
C语言程序设计第二章课件_第2页
C语言程序设计第二章课件_第3页
C语言程序设计第二章课件_第4页
C语言程序设计第二章课件_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计,第2章项目中的数据类型与数据运算,1,PPT学习交流,C语言的基本数据类型常量和变量运算符和表达式数据类型转换本章小结,2.2理论知识,2,PPT学习交流,C语言的基本数据类型基本类型指针类型构造类型空类型,整型int字符型char实型枚举型,单精度浮点型float双精度浮点型double,数组类型结构体类型共用体类型,2.2理论知识,3,PPT学习交流,2.2理论知识,C语言的基本数据类型整数类型,不同的整数类型表示的数值范围不同,在编程时,应根据程序对整数范围的实际需要,灵活选择上述的整数类型。,inta,b,sum;a=32768;,4,PPT学习交流,2.2理论知识,C语言的基本数据类型实数类型,0.56544780.565447854656516516,5,PPT学习交流,2.2理论知识,C语言的基本数据类型字符类型,返回,6,PPT学习交流,2.2理论知识,常量和变量常量在程序执行过程中,其值不能改变的量直接常量和符号常量直接常量指在程序中不需要任何说明就可直接使用的常量符号常量指需要先说明或定义后才能使用的常量,7,PPT学习交流,2.2理论知识,常量和变量直接常量整型常量实型常量字符常量字符串常量,8,PPT学习交流,2.2理论知识,常量和变量直接常量整型常量十进制整数如10八进制整数如010十六进制整数如0 x10,9,PPT学习交流,2.2理论知识,常量和变量直接常量实型常量十进制小数形式:数字和小数点组成如3.141,10,PPT学习交流,2.2理论知识,常量和变量直接常量实型常量指数形式:小数和指数两部分组成如123.45可以表示为0.12345e+31.2345E+212345.0e-2规范化的指数形式,在字符e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字在使用指数形式时,一定要注意在字母e或E之前必须要有数字,且字母e或E之后的指数必须为整数,如e6,.e5,-2.4E0.5,5.2e(3+6),(规范化的指数形式),11,PPT学习交流,2.2理论知识,常量和变量直接常量字符常量字符常量是用一对单引号括起来的单个字符如A、5、+,单引号只是分界符,表示字符常量的起止范围,inta,b,c;a=97;b=a;/数据类型的自动转换c=1.2547;/1.2547=1;c=1intm,n;M=;,12,PPT学习交流,2.2理论知识,常量和变量直接常量字符常量转义字符:以反斜杠“”开头的字符,13,PPT学习交流,2.2理论知识,常量和变量直接常量字符常量将一个字符常量存放到内存中,并不是把该字符本身存放到内存单元中,而是将该字符相应的ASCII码存放到该存储单元中。,如字符a,在内存中的实际存储形式为,14,PPT学习交流,2.2理论知识,常量和变量直接常量字符常量字符型数据和整型数据之间可以相互转换。一个字符数据既可以字符形式输出,也可以整数形式输出。,15,PPT学习交流,举例:#includevoidmain()charc1,c2;Scanf(“%d,%d”,2.2理论知识,字符型输出格式符,整型输出格式符,Scanf(),16,PPT学习交流,运行结果:,2.2理论知识,17,PPT学习交流,举例:#includevoidmain()charc1=97,c2=98;printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);,charc1=a,c2=b;,2.2理论知识,c1和c2还可以怎样进行初始化化?,18,PPT学习交流,2.2理论知识,常量和变量直接常量字符常量可以将整型量赋值给字符变量可以将字符量赋值给整型变量可以对字符数据进行算术运算,19,PPT学习交流,举例:#includevoidmain()charc1=a,c2=b;unsignedcharc=c1+c2;printf(“c=%dn”,c);,2.2理论知识,unsignedcharc=c1+c2;,20,PPT学习交流,运行结果:,2.2理论知识,21,PPT学习交流,2.2理论知识,常量和变量直接常量字符串常量字符串常量是用一对双引号括起来的零个或多个字符如,Hello,world!,123等,双引号仅起定界作用,本身并不是字符串中的内容,22,PPT学习交流,2.2理论知识,常量和变量直接常量字符串常量字符串的长度指一个字符串中所包含的字符个数C语言规定在存储字符串常量时,由系统在字符串的末尾自动加一个0作为结束标志,0在内存中占一个字节,它不引起任何控制动作,也不可显示,只用于系统判断字符串是否结束。,长度为n的字符串常量,在内存中占用nl个字节。,23,PPT学习交流,2.2理论知识,常量和变量直接常量字符串常量字符串中若有转义字符,则应把它视为一个整体,当作一个字符来计算,字符串“Hello,world!n”的在内存中占据的字节数为,14,24,PPT学习交流,2.2理论知识,字符常量与字符串常量的主要区别1.定界符不同字符常量使用,而字符串常量使用“”2.占用内存大小不同字符常量占一个字节,而字符串常量除了要存储有效的字符外,还要存储一个结束标志03.长度不同字符常量只能是单个字符,字符串常量则可以包含零个或多个字符,25,PPT学习交流,2.2理论知识,字符常量与字符串常量的主要区别,charc1=“a”;,=a;,不符合语法规则,为什么呢?,字符型变量(char)只占一个字节,97,0,a,0,字符串常量“a”在计算机内占两个字节,C语言没有专门的字符串变量,如果想将一个字符串存放在变量中,可以使用字符数组。,26,PPT学习交流,2.2理论知识,常量和变量符号常量用符号表示的常量在使用之前必须先定义define标识符常量不是C语句,不必在行末加分号放在程序开头,函数体之外“标识符”是以字母或下划线开头“标识符”是由字母、数字和下划线组成的字符序列,;,27,PPT学习交流,例2.1:符号常量的使用,2.2理论知识,#definePI3.1415/定义符号常量PI,表示圆周率main()floatr,area;r=5.0;area=PI*r*r;printf(area=%fn,area);,area=78.539815,运行结果:,PI,28,PPT学习交流,2.2理论知识,符号常量的两个好处1.修改程序方便2.见名知意,便于理解程序,符号常量的使用1.其值在它的作用域内不能改变,也不能再被赋值2.符号常量名用大写,变量名用小写,以示区别,29,PPT学习交流,2.2理论知识,举例:#definePI3.1415voidmain()voidmain()intPI;PI=3.1415;PI=3.1415;PI=3.14159;,30,PPT学习交流,2.2理论知识,常量和变量变量在程序执行过程中,其值可以被改变的量保存程序执行过程中的输入数据、中间结果以及最终结果在使用变量之前,必须先对其进行定义三个基本要素,即变量类型、变量名和变量的值,如:intchoose=1;charyes_no=y;,31,PPT学习交流,2.2理论知识,常量和变量变量的定义“类型说明符”用来指定变量的数据类型当有多个变量时,彼此间要用逗号分隔,类型说明符变量1,变量2,变量n;,32,PPT学习交流,2.2理论知识,注意:1.变量定义不是可执行语句,必须出现在可执行语句之前2.同一变量只能定义一次,不能重复3.变量名不能是C语言的关键字,要见名知意,并尽可能简短4.变量的类型应根据变量的取值范围来选择,以占用内存少、操作简便为优5.C语言没有提供字符串类型,字符串是用字符数组或指针来处理的,33,PPT学习交流,举例:分期付款的计算贷款D元,每月还款P元,月利率R,问:多少个月M能还清?计算M的公式为:若D=324500元,P=3245元,R=0.8%,编程求M。,2.2理论知识,logP-log(P-DR),log(1+R),M=,34,PPT学习交流,思路:1.D和P都是整数,R是小数,M根据公式计算出来也不一定是整数,因此将R,M定义为实型变量2.M的计算公式中,2.2理论知识,log(1+R),#include,C的库函数,35,PPT学习交流,#include#includevoidmain()intd=324500,p=3245;floatr=0.008,m;m=(log(p)-log(p-d*r)/log(1+r);printf(“month=%fn”,m);printf(“total=%fn”,m*p);,2.2理论知识,36,PPT学习交流,2.2理论知识,常量和变量变量的赋值在定义变量时赋值“先定义后赋值,floatdata1=1.5,data2=2.6;,floatdata1,data2;/变量定义部分data1=1.5;data2=2.6;/变量赋初值,返回,37,PPT学习交流,运算符和表达式描述各种不同运算的符号称为运算符运算符分类一元(单目)运算符、二元(双目)运算符、三元(三目)运算符赋值运算符条件运算符逻辑运算符算术运算符关系运算符,2.2理论知识,!,b=a+;c=+a;,a=6;+a;b=+a;c=a;,a+;a=a+1;b-;b=b-1;,38,PPT学习交流,运算符和表达式运算符优先级当一个表达式中出现多个不同的运算符时运算的先后顺序单目运算符双目运算符!+,-算术运算符关系运算符逻辑运算符条件运算符赋值运算符逗号运算符,2.2理论知识,39,PPT学习交流,#includemain()Inta=7,b;b=a!=7;printf(“b=%dn”,b);结果:,a=3;b=4,c;c=a!=b;c=+a!=b;c=a-=b;,40,PPT学习交流,运算符和表达式运算符结合性当一个表达式中出现两个以上优先级相同的运算符时,运算的方向是从左到右还是从右到左赋值运算符和条件运算符是从右往左结合除此之外的双目运算符都是从左往右结合的,2.2理论知识,a=5,b=2,c=9,d=10,f=6,e=-f=7,g=0;X=ab?c:(da)c=a/b;运行结果c=?,1,如:inta=-5,b=3,c;c=a/b;运行结果c=?,-1,43,PPT学习交流,运算符和表达式算术运算符及其表达式双目运算符求余运算,两侧均应为整型数据,余数的符号与被求余数符号相同,2.2理论知识,如:inta=5,b=3,c;c=a%b;运行结果c=?,2,如:inta=-5,b=3,c;c=a%b;运行结果c=?,-2,注意:C语言中的算术表达式b2-4ac需写成b*b-4*a*c的形式。,8.5%2.58%2=0,44,PPT学习交流,举例:鸡兔同笼设鸡与兔同笼,已知鸡与兔的总头数为h=16,总脚数f=40,试编写C语言程序分别求出鸡的头数x与兔的头数y。,2.2理论知识,45,PPT学习交流,2.2理论知识,思路:1.x,y,h,f都是整数2.由数学知识可知:x+y=h2x+4y=f3.由代数知识可得y=(f-2h)/2x=h-f,46,PPT学习交流,#includevoidmain()inth,f,x,y;h=16;f=40;y=(f-2*h)/2;x=h-y;printf(“%d%dn”,x,y);,2.2理论知识,程序清单:,y=(f-2*h)/2;,47,PPT学习交流,运算符和表达式算术运算符及其表达式单目运算符自增运算使单个变量的值增1自减运算使单个变量的值减1,2.2理论知识,自增“+”、自减“-”,inti=3,a;a=+i;运行结果:i=4;,inti=3,a;a=i-;运行结果:i=2;,48,PPT学习交流,运算符和表达式算术运算符及其表达式单目运算符前置运算,运算符放在变量之前先增减,后运算,2.2理论知识,j=+i;i=i+1;j=i;,49,PPT学习交流,运算符和表达式算术运算符及其表达式单目运算符前置运算,运算符放在变量之前先增减,后运算,2.2理论知识,inti=3,j;j=+i;运行结果:i=j=?;,inti=3,j;j=-i;运行结果:i=j=?;,4,2,50,PPT学习交流,运算符和表达式算术运算符及其表达式单目运算符后置运算,运算符放在变量之后先运算,后增减,2.2理论知识,j=i+;j=i;i=i+1;,51,PPT学习交流,运算符和表达式算术运算符及其表达式单目运算符后置运算,运算符放在变量之后先运算,后增减,2.2理论知识,inti=3,j;j=i+;运行结果:i=4;j=3;,inti=3,j;j=i-;运行结果:i=2;j=3;,52,PPT学习交流,运算符和表达式算术运算符及其表达式单目运算符自增、自减运算常用于循环语句以及指针变量中。它使循环控制变量加(或减)1,或使指针指向下(或上)一个地址。自增、自减运算符不能用于常量和表达式。,2.2理论知识,如,5+,-(a+b),a+a=a+15+5=5+1,53,PPT学习交流,运算符和表达式赋值运算符及其表达式简单运算符复合运算符,2.2理论知识,=,+=,-=,*=,/=,%=,54,PPT学习交流,运算符和表达式赋值运算符及其表达式赋值运算符的优先级比算术运算符、关系运算符和逻辑运算符低结合性为自右向左先求表达式的值,然后将表达式的值赋给变量,2.2理论知识,如:inta=5;a+=5;运行结果a=?,10,如:inta=5;a*=5;运行结果a=?,25,a=a+5;,55,PPT学习交流,运算符和表达式关系运算符及其表达式用于比较两个操作数之间的关系,若关系成立,则返回一个逻辑真值“1”,否则返回一个逻辑假值“0”,2.2理论知识,“”,“=”,“b;运行结果c=?,1,如:inta=2,b=3,c;c=ab;运行结果c=?,0,56,PPT学习交流,运算符和表达式关系运算符及其表达式前四种运算符的优先级相同,后两种运算符的优先级相同前四种运算符的优先级高于后两种关系运算符的优先级比算术运算符低,2.2理论知识,“”,“=”,“a+b等价于c(a+b);,a=6,b=9,c=2;x=a=(b-)=c,57,PPT学习交流,运算符和表达式关系运算符及其表达式关系运算符的优先级比赋值运算符高,2.2理论知识,c=ab等价于c=(ab);,58,PPT学习交流,运算符和表达式关系运算符及其表达式,2.2理论知识,#includevoidmain()intx=2,y=3,i,j,k;i=x=y-;j=x=y;k=1;printf(i=%d,j=%d,k=%dn,i,j,k);,运行结果:i=0,j=1,k=1,59,PPT学习交流,注意:1.等于运算符“=”由两个等号组成,中间不能有空格2.在实际编程时,常用表达式i%2=0判断整数i的奇偶性,2.2理论知识,#includevoidmain()intx=2;if(x%2=0)printf(%d是偶数n,x);elseprintf(%d是奇数n,x);,=,60,PPT学习交流,运算符和表达式逻辑运算符及其表达式返回逻辑真值(1)或逻辑假值(0)!:当操作数的值为真时,运算结果为假;当操作数的值为假时,运算结果为真,2.2理论知识,非“!”、与“c=!a;运行结果c=?,0,如:inta=0,c;c=!a;运行结果c=?,1,61,PPT学习交流,运算符和表达式逻辑运算符及其表达式用逻辑运算符将一个或多个表达式连接起来的式子c=a运行结果c=?,1,如:inta=0,b=5,c;c=a运行结果c=?,0,62,PPT学习交流,运算符和表达式逻辑运算符及其表达式用逻辑运算符将一个或多个表达式连接起来的式子|:当且仅当两个操作数的值都为假时,运算结果为假,否则为真,2.2理论知识,非“!”、与“c=a|b;运行结果c=?,0,如:inta=0,b=5,c;c=a|b;运行结果c=?,1,63,PPT学习交流,注意:1.逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其他任何类型的数据,如实型、字符型等,但这些值都要根据规则看成是逻辑值,2.2理论知识,cx=(m=ab),运行结果:m=0,n=6,x=0,65,PPT学习交流,注意:3.对于逻辑“或”运算,如果第一操作数被判定为真,系统不再判定或求解第二操作数,2.2理论知识,#includevoidmain()inta=1,b=2,c=3,d=4,m=5,n=6,x=7;x=(m=ad);printf(m=%d,n=%d,x=%dn,m,n,x);,运行结果:m=1,n=6,x=1,66,PPT学习交流,注意:4.a大于b且b大于c表达式,2.2理论知识,abc,(ab)x=!a|ab=b|c,等价于x=(!a)|(ab)=b)|c,68,PPT学习交流,运算符和表达式条件运算符及其表达式三目运算符表达式格式如果表达式1的值为非0(即逻辑真),则运算结果等于表达式2的值;否则,运算结果等于表达式3的值,2.2理论知识,“?:”,表达式1?表达式2:表达式3,69,PPT学习交流,运算符和表达式条件运算符及其表达式,2.2理论知识,#includevoidmain()inta=88,b=456,c=147,min;min=(ab)?a:b;printf(min=%dn,min);,运行结果:min=88,70,PPT学习交流,运算符和表达式逗号运算符及其表达式表达式格式自左至右依次计算各表达式的值,“表达式n”的值即为整个逗号表达式的值,2.2理论知识,“,”,表达式1,表达式2,表达式n,V=(a=3,b=4,c=5,a*b*c)60,并不是任何地方出现的逗号,都是逗号运算符,很多情况下,逗号仅作分隔符,inta=3,b=5,c=7;,71,PPT学习交流,运算符和表达式sizeof运算符及其表达式表达式格式返回变量、常量的类型在内存中占用的字节数,2.2理论知识,sizeof(类型名或表达式),72,PPT学习交流,运算符和表达式sizeof运算符及其表达式,2.2理论知识,#includevoidmain()inta,b,c;a=sizeof(int);b=sizeof(float);c=sizeof(“Hellot);printf(a=%d,b=%d,c=%dn,a,b,c);,运行结果:a=4,b=4,c=7,返回,73,PPT学习交流,数据类型转换自动类型转换,2.2理论知识,74,PPT学习交流,数据类型转换自动类型转换字节少的数据转换成字节多的赋值号右边的类型转换为左边的类型,不会四舍五入,2.2理论知识,inta;floatb=1.45a=b;,75,PPT学习交流,数据类型转换强制类型转

温馨提示

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

评论

0/150

提交评论