c语言课程设计2

上传人:e****s 文档编号:243360280 上传时间:2024-09-21 格式:PPT 页数:55 大小:797.50KB
返回 下载 相关 举报
c语言课程设计2_第1页
第1页 / 共55页
c语言课程设计2_第2页
第2页 / 共55页
c语言课程设计2_第3页
第3页 / 共55页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,共 47页 第,*,页,第二章,数据类型及其表达式,2024/9/21,1,第一节,C,语言数据类型简介,第二节 基本数据类型,第三节 运算符与表达式,第四节 不同类型数据间的转换,第二章 数据类型、运算符与表达式,2,2.1,C,语言数据类型简介,二、什么是数据结构,计算机的别名:,数据处理机;,数据元素:,数据的最小单位;,数据结构:,数据元素的组织形式.,把需要解决的问题用,计算机能完全理解的,方式描述给计算机。,一、什么是程序设计,程序设计,数据结构,算法,方法,工具,程序设计,编程,数据结构包括数据的逻辑结构和物理结构,它关系到软件或程序的复杂程度。,数据结构,数据类型,3,数据的描述,数据的操作,程序,类型,运算符,算法,数据结构,程序的任务是对数据进行处理,,数据是程序处理的对象,,而运算符是施加给这些数据的操作。数据和运算符是表达式的基本元素。,2.2,数据与,数据类型,4,三、,C,语言数据类型,2.1 C语言数据类型简介,5,关于类型的含义,存储空,间,,且采取不同的,存储形式。,取值范围。,操作。,2.2,基本数据类型,6,按照数据在程序中的取值:,值保持不变-常量,x=2 * y,值随程序运行变化-变量,基本类型,整型,int,字符型,char,实型(浮点型),2.2,基本数据类型,7,一、常量,1. 在程序运行中,其值保持不变。,2. 表示方法:,整型 100,125,-100,字符型 ,a, b,字符,串常量 “,string”,3.符号常量: #,用指定的标识符表示某个常量,2.,2.1,常量与变量,2.2,基本数据类型,8,二、变量,3. 变量通过变量名标识,1. 在程序运行中,值发生变化,2. 必须先定义,再使用,int a,,b,;,类型 变量名表,变量,memory,a,8,26,3,变量名和内存中的存储单元相对应。编写程序时通过变量名来存、取存储单元。,2.2,基本数据类型,9,(1)以字母或下划线开头,(2)不能用系统中的关键字作为变量名,规 定,int a,b A123,_b;,int a;,.,A=5;,4. 有关变量名的,规定,(3),变量名中的字母是,区分大小写,的。,sum,、stu_name、_age、Lts_1_2、a2,32,NAME name,表示两个不同的标识符。,不提倡大小写混合使用,2.2,基本数据类型,10,一、整型常量,有三种表,示形式,十进制,八进制,十六进制,1234,加前导,0,01234,0125,加前导,0,x 0x123,0xffff,整型数据包括,整型常量,和,整型变量,,整型数据以二进制补码形式存储,例,100、-8、0;010、024;0,x38、0X1F,2.3.2 整型数据,2.2,基本数据类型,11,二、整型变量,掌握要点,1 有几种定义形式,2 每种形式占存储空间的大小,3 取值范围,4 输入输出格式,2.2,基本数据类型,12,1. 定义形式,共七种,基本整型,长整型,短整型,无符号整型,无符号短整型,无符号长整型,双长整型,int,long int,short int,unsigned int,2. 占存储空间,一个变量,4,4,2,4,字节,unsigned short,unsigned long,long long int,2,4,8,2.2,基本数据类型,13,2.2,基本数据类型,类型,所占字节,数据的范围,int,4,-,2 147 483 648,2 147 483 647,short int(short),2,-,32 768,32 767,long int(long),4,-,2 147 483 648,2 147 483 647,unsigned int,(,unsigned,),4,0,4 294 967 295,unsigned short,2,0,65 535,unsigned long,4,0,4 294 967 295,long long int(long long),8,-,9 223 772 036 854 775 808,9 223 772 036 854 775 807,14,int,型数的表示范围:,存储长度16位二进制(2,Byte),0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,1,0 0 0 0 0 0 0 0 0 0 0 0 0 0,1 1,0,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,上面的数再加1是多少?,例,int,型表示数的范围,:,- 32768,32767,4. 输入输出形式 :,%,d,%ld,%x,%o,%u,2.2,基本数据类型,15,包括实型常量和实型变量,一、实型常量,有两种表,示形式,小数,指数,3,e-3,实型常量只能用十进制形式表示,不能用八进制和十六进制,1,e5、1e-3.2、e、.e-03,2.,2.3,实型数据,用指数表示实型常量的规则,:,e,或,E,之前,之后,必须有数字;指数必须为整数,2.2,基本数据类型,16,1. 定义形式,共三种,单精度,双精度,长双精度,float,double,long double,2. 占存储空间,一个变量,4,8,8,字节,二、实型变量,实型常量不区分单精度和双精度,2.2,基本数据类型,17,3. 变量的取值范围,4.输入输出形式 %,f,类型 长度 数的范围 有效数字,单精度,float,4,10,-38,10,38,6-,7,位,双精度,double,8,10,-308,10,308,15-16,位,长双精度,long double,8,10,-308,10,308,18-19,位,2.2,基本数据类型,18,实型数据在计算机中以,指数形式,存储,单精度实型变量用一个字节存放指数部分, 其余三个字节存数值部分 。,7位二进制,23位二进制,单精度实型,2,-23,= |,尾数,| = 1-2,-23,尾数,指数,2.2,基本数据类型,19,包括字符型常量和字符型变量,一、字符常量,1. 用单引号包含的一个字符,2 .只能包含一个字符,a, A, 1,abc,“a”,2.,2.4,字符型数据,2.2,基本数据类型,20,字符常量,定义,:,用,单引号,括起来的单个,普通字符,或,转义字符,.,字符常量的,值,:该字符的,ASCII,码,值,转义字符及其含义:,转义字符,含义,n,v,r,a,ddd,t,b,f,“,xhh,转义字符,含义,换行,垂直制表,回车,响铃,单引号,3,位,8,进制数代表的字符,水平制表,退格,换页,反斜线,双引号,2,位,16,进制数代表的字符,如 ,101 -A 012 -n,376 -, x61 -a,60 -0 483 -(,),例,:,A-101-x41-65,b),?,a,:,b,目,关系,不同类型的变量,所,允许的操作不同,单目运算符,双目运算符,三目运算符,2.,3,运算符与表达式,28,*优先级:,运算符的执行顺序,*结合性:,优先级相同时的结合方向,*运算结果的类型,X=5+8,a100,X=a+,b*c,a+b-c,572,a=b=5,结果?,单目运算符的优先级高于双目运算符,单目运算符从右向左结合,双目运算符从左向右结合,2.,3,运算符与表达式,29,2.4.2 算术运算符和算术表达式,1.,共有5个,:+,-,*,/,,%,2 “-”作为 负号时为单目,单目: -,双目:*, /, %,双目:+,-,4. 优先级:,5. 结合性,:,从左向右,3.,%,运算只适用于,整型数,取模(求余数),a=10%4,a,的值为,2,2.,3,运算符与表达式,30,2.4.3 自增、自减运算符,1. 变量自身加(减)1,k =k+1,k +,先使用变量,k,的值,再加 1,+ k,先加1,再使用变量,k,的值,k = k-1,k - -,先使用变量,k,的值,再减 1,- -,k,先减1,再使用变量,k,的值,k=3; printf( “%d”, k +);,输出 3 后,k,的值为 4,i=3; printf( “%d”, + i);,输出4,2.,3,运算符与表达式,31,2. 只能用于,变量,,不能用于,表达式,和,常量,3. 优先级:,高,于双目算术运算符,4. 结合性:,从右向左,(,i+k),+ , - -,3,i=3; k=i+ + i+ + i+;,i=?,k=?,i=3; k= (+i) + (+i) + (+i);,2.,3,运算符与表达式,32,例:,m,ain( ), int a , b , s ;,a = 5 ; b = 5 ;,s=,a+b,; printf(“%d,%d,%dn”,a,b,s);,s=,a+ +b;,printf(“%d,%d,%dn”,a,b,s);,s=,+a+,b,;,printf(“%d,%d,%dn”,a,b,s);,s=,- -a +b;,printf(“%d,%d,%dn”,a,b,s);,s=,a- - +b;,printf(“%d,%d,%dn”,a,b,s);,s=,a + b;,printf(“%d,%d,%dn”,a,b,s);,2.,3,运算符与表达式,33,s = a + b ;,s = a+ +b ;,s = +a +b ;,s = - -a +b ;,s = a- - +b ;,s = a + b ;,a=5, b=5,5+5=10,5+5=10,7,+5=12,6,+5=11,6,+5=11,5+5=10,a b s,5,5,10,6,5,10,7,5,12,6,5,11,5,5,11,5,5,10,题目分析,2.,3,运算符与表达式,34,2.3.3,关系运算符和表达式,关系运算符,种类,:,= !=,结合方向:自左向右,优先级别:,=,=,!=,优先级,6,(高),优先级,7,(低),例,ca+b /c(a+b),ab!=c /(ab)!=c,a=bc /a=(bc /a=(bc),关系表达式的值:是逻辑值“真”或“假”,用,1,和,0,表示,例,int a=3,b=2,c=1,d,f;,ab,(ab)=c,b+cb,f=abc,/,表达式值1,/,表达式值1,/,表达式值0,/d=1,/f=0,2.,3,运算符与表达式,35,关系运算注意:,例 若,a=0; b=0.5; x=0.3;,则,a,=x278,在,C,中是允许的,,值为,0,例,int i=1, j=7,a;,a=i+(j%4!=0);,则,a=,2,例 ,a0,结果为,A100,结果为,1,0,2.,3,运算符与表达式,36,关系运算注意:,例,注意区分“,=,”,与“,=,”,int a=0,b=1;,if(a,=,b),printf(“a equal to b”);,else,printf(“a not equal to b”);,例,应避免对,实数,作相等或不等的判断,如,1.0/3.0*3.0=1.0,结果为,可改写为:,fabs(1.0/3.0*3.0-1.0)1e-6,0,2.,3,运算符与表达式,37,a,b,!a,!b,a&b,a|b,真,假,真,假,假,假,真,真,逻辑运算符和表达式,逻辑运算符,种类:,! & |,逻辑运算真值表,C,语言中,运算量,:,0表示“假”,,非0表示“真”,运算结果:,0表示“假”,,1表示“真”,真,假,假,假,假,假,真,真,假,假,真,真,真,假,真,真,2.,3,运算符与表达式,38,!,(2),&,(11),|,(12),高,低,例,a=x & xb&xy,a=b|x=y,!a|ab,优先级:,结合方向:,!,:,从右向左,& :,从左向右,| :,从左向右,/ (a=x) & (xb)&(xy),/(a=b)|(x=y),/(!a)|(ab),2.,3,运算符与表达式,39,!,(2),&,(11),|,(12),高,低,优先级:,结合方向:,!,:,从右向左,& :,从左向右,| :,从左向右,例,a=4;b=5;,!a,a&b,a|b,!a|b,4&0|2,53&2|83)&2|(8(4-(!0) 值为1,2.,3,运算符与表达式,40,!,(2),&,(11),|,(12),高,低,优先级:,结合方向:,!,:,从右向左,& :,从左向右,| :,从左向右,短路特性,:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符,例,a&b&c,/,只在,a,为真时,才判别,b,的值;,只在,a,、,b,都为真时,才判别,c,的值,例,a|b|c,/,只在,a,为假时,才判别,b,的值;,只在,a,、,b,都为假时,才判别,c,的值,例,a=1;b=2;c=3;d=4;m=1;n=1;,(m=ab)&(n=cd),/,结果,m=0,n=1,2.,3,运算符与表达式,41,条件运算符与表达式,一般形式:,expr1 ? expr2 : expr3,执行过程,功能:相当于条件语句,但不能取代一般,if,语句,例,if (ab),printf(“%d”,a);,else,printf(“%d”,b);,printf(“%d”,ab?a:b);,例 求,a+|b|,printf(“a+|b|=%dn”,b0?a+b:a-b);,expr1,取,expr2,值,取,expr3,值,非,0,=0,例,(a=b)?Y:N,(x%2=1)?1:0,(x=0)?x:-x,(c=a & c0?1:(xb?a:cd?c:d, ab?a:(cd?c:d),expr1,、,expr2,、,expr3,类型可不同,表达式值取较高的类型,例,x?a:b /x=0,表达式值为,b; x0,表达式值为,a,xy?1:1.5 /xy ,值为1.0;,xy ,2.,3,运算符与表达式,42,2.,3.6,赋值运算符赋值表达式,1. 将一个常量或一个表达式的值赋给一个变量称为赋值,x = 5 y = x + 10,2. 可以将一个实型赋给一个整型,或将一个整型赋给一个实型,int x, x=5.3; x,的值为 5,float y, y=5; y,的,3. 赋值运算的优先级,比算术运算低,4. 赋值运算的结合性,从右向左,X = y = 5,2.,3,运算符与表达式,43,说明,:,结合方向:,自右向左,优先级,:,14,左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则,:,使赋值号右边表达式值,自动,转换成其左边变量的类型,例,3=x-2*y;,a+b=3;,例,float f;,int i;,i=10;,f=i;,则,例,int i;,i=2.56; /,结果,i=2,;,例,: a=b=c=5,a=(b=5),a=5+(c=6),a=(b=4)+(c=6),a=(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=2,44,复合赋值运算符和复合赋值表达式,赋值运算符两侧出现相同的变量,x=x+n,x=x-n,x=x*n,x=x/n,x=x%n,x + = n,x - = n,x * = n,x / = n,x% = n,算术运算与赋值运算相结合,X,与,n,均,为整数,x=x+n,n,为常数,x+=n,2.,3,运算符与表达式,45,说明,:,结合方向:自右向左,优先级,: 14,左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则,:,使赋值号右边表达式值,自动,转换成其左边变量的类型,例:,a=12;,a+=a-=a*a,例,: int a=2;,a%=4-1;,a+=a*=a-=a*=3;,/a=-264,等价于,a=a+(a=a-(a*a),/a=0,等价于,a=a+(a=a*(a=a-(a=a*3),复合赋值运算符和复合赋值表达式,46,main( ),int a, b, c, d, e;,a=2; b=5 ;c= 6;d=10;,a + =b; b- =c;,c * =d; d / =a;,a%=c;,printf(“%d,%d,%d,%dn”, a , b , c , d);,结果?,7,-1,60,1,2.,3,运算符与表达式,47,一、逗号运算符,(表达式 1,表达式 2,表达式 3,表达式,n,),用于连接几个表达式,二、求解过程,顺序求解几个表达式,三、优先级,逗号运算符的优先级最低,四、结合性,从左向右,五、逗号表达式,逗号表达式的值为最后一个表达式的值(表达式,n,的值),X =,(,(,a=4*5 , a*2,), a+6,),a,为?,20,x,为?,26,2.,3.7,逗号运算符,2.,3,运算符与表达式,48,2.,4,不同类型数据间的转换,不同数据类型需先转换成同一类型,然后进行运算,方式,自动进行-隐式转换,强制进行-显式转换,一、隐式转换(算术转换),级别低的向级别高的转换,double float,long,unsigned,int char, short,int i; float f; double d; long e;,表达式:,10+,a+i*f-d/e,的结果为:,double,49,二、显式转换(强制转换),一般形式:,(,类型名,),(表达式),例,(int)(x+y),(int)x+y,(double)(3/2),(int)3.6,说明:强制转换得到所需类型的中间变量,原变量类型不变,例,main(), float x;,int i;,x=3.6;,i=(int)x;,printf(“x=%f,i=%d”,x,i);,结果:,x=3.600000,i=3,精度损失问题,较高类型向较低类型转换时可能发生,2.,4,不同类型数据间的转换,50,一 、,C,中的基本数据类型,每一种类型的定义方式,(关键字),在存储空间中所占的字节数,存储形式,取值范围。,二、,C,中的运算符的几个要点(功能,与运算分量的关系,优,先级 ,结合性,运算结果的类型,)。,三 、算术运算符中的%只使用在,int,类型。,第二章 总结,四、 自增,自减运算的特点,灵活使用,k+,+k。,五 、复合的赋值运算规则。,七、 不同类型数据转换时的优先顺序,八、单目运算,双目运算的优先级和结合性特点,熟记基本概念和规则!,51,二 、 补充习题:,1、C,语言规定,在源文件中,,main(),的位置,: ( ),A、,必须在最开始,B、,必须在库函数后,C、,可以在任意位置,D、,必须在所有函数最后,2、一个,C,程序的执行是从: ( ),A、,从主函数开始,在主函数中结束;,B、,从第一个函数开始,到最后一个函数结束;,C、,从主函数开始,到最后一个函数结束;,D、,从第一个函数开始,到主函数中结束。,3、下面选项中,全为不合法的用户标识符的选项是: ( ),一、课后习题,第三章 习题,52,A)、 A B)、 float C)、 b-a D)、-123,p_0 1a0 goto temp,do _a int INT,4、,以下叙述种不正确的是: ( ),A、,在,C,程序中,逗号运算符优先级最低;,B、,在,C,程序中,,AHP,和,ahp,代表两个不同的变量;,C、,若变量,a、b,类型相同,则表达式,a=b,是将,b,的值放入,a,中,而,b,不变;,D、,输入数据时,整型变量只能输入整数,实型变量则只能输入实数。,5、设有说明:,char w; int x; float y; double z;,则表达式:,w*x+z-y,的值的类型为 : ( ),A、 float B、char C、int D、double,第二章 习题,53,6、,在,C,语言中,,int,型数据在内存中占用2字节存储单元,则,int,型数据的取值范围为:_。,7、,若,a,为,int,型变量,则如下表达式的值为:_。,(a=4*5), a+=5, a+6,8、,若有如下定义:,int b=7; float a=2.5, c=4.7;,则表达式:,a+(int)(b/3*(a+c)/2)%4,的值为:_。,第二章 习题,54,int,型数的表示范围:,存储长度16位二进制(2,Byte),0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,1,=2,15,-1=32767,0 0 0 0 0 0 0 0 0 0 0 0 0 0,1 1,0,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,=1,=3,上面的数再加1是多少?,=-2,15,=-32768,例,补码表示,int,型表示数的范围,:,- 32768,32767,4. 输入输出形式 :,%,d,%ld,%x,%o,%u,2.2,基本数据类型,55,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!