第三章数据类型、运算符.ppt

上传人:sccc 文档编号:5944533 上传时间:2023-09-06 格式:PPT 页数:64 大小:690.04KB
返回 下载 相关 举报
第三章数据类型、运算符.ppt_第1页
第1页 / 共64页
第三章数据类型、运算符.ppt_第2页
第2页 / 共64页
第三章数据类型、运算符.ppt_第3页
第3页 / 共64页
第三章数据类型、运算符.ppt_第4页
第4页 / 共64页
第三章数据类型、运算符.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第三章数据类型、运算符.ppt》由会员分享,可在线阅读,更多相关《第三章数据类型、运算符.ppt(64页珍藏版)》请在三一办公上搜索。

1、第三章 数据类型、运算符与表达式,Types,operatorsand Expressions,31 数据与数据类型,3.1.1 什么是数据和数据类型 数据是程序加工、处理的对象,也是加工的结果。数据类型是程序语言中具有同样的性质的数据集合.,整型int(integer的缩写)字符型 char(character的缩写)单精度型 float 基本类型 实型(浮点型)双精度型 double 数组类数据类型 构造类 结构体 struct 共用体 union 枚举类 enum 指针类 空类型 void,3.2 C语言的基本数据类型及其表示,3.2.1 常量与变量1常量在程序运行中其值不能被改变的量,

2、常量区分为不同类型。如 123,456:整型常量 a,A,b,1,0:字符常量 123.0,3.5:实型常量“123”,“A”:字符串常量,例3_1 已知圆半径r,求圆面积和周长的值。#define 3.14159main()int area,perimeter;int r;r=3;area=*r*r;perimeter=2*r;printf(“area=%dn”,area);printf(“perimeter=%dn”,perimeter);,符号PI代替常量3.14159,称为符号常量符号常量的定义是在编译预处理语句里进行的,称为宏定义符号常量一般用大写 符号常量在其作用域内值不能改变(不

3、能被赋值)PI=35;符号常量在编译时被常量替换,2.符号常量用一个标识符代表一个常量,提高程序的可修改性和灵活性。,定义格式:#define 标识符 常量,3.变量,(1)变量:其值可以改变的量。在内存中占据存储单元,在该单元中存放变量的值,必须先定义,后使用。,程序里的一个变量可以看成是个存储数据的容器,它的功能就是可以存储数据。,变量的定义格式:类型说明符 变量名表;定义的变量名称最好和存放数据的意义对应。,例:int a,b,c;/*说明a,b,c为整型变量*/char cc;/*说明cc为字符变量*/double x,y;/*说明x,y为双精度实型变量*/,#define PRICE

4、 30 main()int num,total;num=3;total=num*PRICE;printf(“total=%dn”,total);num=4;total=num*PRICE;printf(“total=%dn”,total);,90,num,total,对变量的基本操作有两个:1.“赋值”:向变量中存人数据值。2.“取值”:取得变量当前值、以便在程序运行过程中使用。,3,4,120,*同一个变量一旦重新赋值,原来的值就不再存在。,3.2.2 整型数据及其表示,1.整型类型,取值范围:,2.整型常量,十进制:123,-456,0八进制:以0开头(零),01,012 0123=(12

5、3)8=(83)10十六进制:以0 x开头,0 x123=(123)16=(291)10 0 xF=(f)16=(15)10长整型常量:123L,-456l,二进制位(bit):计算机中最小的存储信息单位 字节(Byte):八个二进制位组成的存储单元,是 计算机中最小存取信息单位机器字(word):计算机中存取信息的基本单位,不 同的计算机系统它的长度是不同的,补充:数的存放形式补码,1.正数不变2.负数各位取反后+1,符号位置1(34)10=(0 0100010)2(-34)10=(1011101)2+1(1 1011110)2,4 bytes 数据 x补码 4294967295x+1(-3

6、4)10补码:(4294967295341)10(4294967262)10=(ffffffdf)16=(1111 1111 1111 1111 1111 1111 1101 1110)2,2 bytes 数据 x补码65535x+1(-34)10补码:(65535341)10=(65502)10=(ffdf)16=(1111 1111 1101 1110)2,变量的定义格式:类型说明符 变量名表;,3.整型变量,问题1:c没有定义便使用;,int c;,问题2:c应为 32770,但实际 为 32766,发生溢出;,问题3:c应为long int 类型;,long int c;,3.2.3

7、实型数据及其表示,1.实型类型,实型数据是以浮点数形式存储的,在计算机中按指数形式。如图例:0.12345610-2,(float),(double),(long double),2.实型常量十进制形式:由数字和小数点组成;如:0.123,0.0,-54.0指数形式:由十进制小数形式指数;如:123e3,123E-2 注:e或E的前后面须有数字 不合法的指数形式:e3,2.1e3.5,.e3,e在实数常量尾部用后缀符 f(F)代表单精度实数(7位有效位),l(L)代表双精度实数(1819位有效位);例:2.3f,-0.123f,2e-3f,-1.5e4f 为单精度实常量 1256.34L,-0

8、.123l,2e3L 为双精度实常量,3.实型变量,4.实型数据应用中的误差问题,由于机器存储限制,会使实数产生误差,理想输出:a=12345.6789,b=0.1234567891234567899e15,实际输出:a=12345.678711,b=123456789123456.797000,3.2.3 字符型数据及其表示,1.字符型数据 字符型数据在计算机中存储的是ASCII码,占用1 byte。,字符“A”的存储形式实际上就是一个整型数65;它可以直接与整型数据进行算术运算、混合运算,与整型变量相互赋值,字符型数据以字符或整数两种形式输出。以字符形式:先将ASCII码值转换为相应的字符

9、,再输出;以整数形式:直接将ASCII的值作为整数输出。,n 换行(LF)t 横向跳格(HT)b 退格(BS)v 竖向跳格 f 走纸换页(FF)r 回车(CR)单引号()反斜杠字符()”双引号(“)0,空(不是0)101 字符A(八进制)x41 字符A(十六进制),2.字符型常量:用单引号括起来的一个字符:普通字符:a,A,1等(大小写不同)转义序列:将反斜杠()后面的字符转变为另外的含义。是一种特殊的字符常量。,3.字符型变量:类型名称char:,*错误的字符常量表示:,015,n,”A”,ab,“How do you do.”“CHINA”“$123.45”“a”,4.字符串常量:一对双引

10、号括起来的字符序列,注意:C规定:每个字符串结尾加一“字符串结束”(0)系统自动加上的;“CHINA”:,字符串如果需要存放在变量中,需用字符数组来存放(第7章),a与“a”不同,5.字符数据的应用举例,main()int i;char c;i=a;c=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);,输出结果:a,97 a,97,注意:在一定范围内通用(0-127),3.2.5 指针型数据及其表示,变量与地址的概念,程序中:int i=12;float k;,内存中每个字节有一个编号-地址,内存,编译或函数调用时为其分配内存单元,变量是对程序中数据存

11、储空间的抽象,变量的地址,12,指针型数据:是一个变量在内存中所对应的存储单元的地址值。如2000,2002等,指针变量:用来存放另一存储单元的地址值。,2.指针变量的定义,合法标识符,指针的目标变量的数据类型,表示定义指针变量不是*运算符,例 int*p1,*p2;float*q;static char*name;,注意:1、int*p1,*p2;与 int*p1,p2;2、指针变量名是p1,p2,不是*p1,*p23、指针变量只能指向定义时所规定类型的变量4、指针变量定义后,变量值不确定,应用前必须先赋值,格式:类型说明符*变量名;,3.6.1&与*运算符,含义:*取指针变量所指向单元的内

12、容&取内存变量的地址 互为逆运算,特性:单目运算符 优先级为 2 自右向左结合,int i;int*pc;,pc-指针变量,它的内容是地址量*pc-指针的目标变量,它的内容是数据&pc-指针变量占用内存的地址,3.2.6 变量的初始化 通常一个变量是先说明,然后再赋值给它。例:int x,y;x=10;b=20;C规定:可以在定义变量的同时使变量初始化,例:float x123.45;/*说明x为实型量且赋初值为123.45*/int a,c=10;/*说明整型变量a,c,并仅给c赋初值10*/int a1=10,b1=6;/*说明整型变量a1,b1;分别赋不同初值*/double Pai=3

13、.14;/*说明Pai为双精度实型变量为赋初值为3.14*/char cha;/*说明字符变量ch,并赋初值为a*/注意:对几个变量赋同一个值,必须分别赋值 例:int a=b=c=3;error int a=3;b=3;c=3;ok 说明:变量初始化不是在编译阶段完成的而是在程序执行阶段执行 本函数时赋以初值的 例:int a=3;int a;a=3;例:int a,b,c=5;int a,b,c;c=5;,变量初始化的应用举例,main()int a;int b;b=a+2;printf(“%d,%dn”,a,b);,注意:定义的变量在没有初始化之前有一个不确 定值。,a=3;,3.3 算

14、术运算与赋值语句,3.3.1 c语言中的运算规则1、运算符 分类(按操作数个数分):单目运算:一个运算符连接一个运算对象;(a;!a;+a)双目运算:一个运算符连接两个运算对象;(2312)三目运算:一个运算符连接三个运算对象;ab?a=1:a=-1,分类(作用):,算术运算符+-*/%自增自减运算符+-赋值与赋值组合运算符=+=-=*=/=%=|=&=关系运算符=条件运算符?:逗号运算符,指针运算符*&求字节数运算符 size of 强制类型转换运算符(类型)分量运算符.-下标运算符 其它(),2、表达式,算术表达式 a+b-c自增自减表达式 i+-i关系表达式 a!=b(a+b)(a-b)

15、逻辑表达式 a&(b=c)!a字位表达式 a 2 a&b赋值表达式 a=3 a*=2 a=b=6 逗号表达式(a+b,a-b),3、优先级和结合性(附录A)优先级:同一表达式中不同运算符进行计算时的先后次序 结合性:针对同一优先级的多个运算符而言,指同一表达式 中相同优先级的多个运算应遵循的运算次序。,表达式运算时的关键问题:,(1)算符优先极问题(不同级别算符的计算次序)(2)算符结合次序(优先级平级时的计算次序)(3)算符操作数个数(一目或二目算符)(4)算符对应操作数类型,3.3.2 算术运算符和算术表达式1、算术运算符,说明:“+”,“-”运算符单目运算:取正、负值运算;优先级高 双目

16、运算:加、减运算;优先级低除法运算“/”整数(字符)相除结果是整型(商),小数部分全部舍去 实数相除,所得的商也为实数。例如:1/3=0 只取结果的整数部分0,舍去0.333333 15/43 只取结果的整数部分3,舍去0.75 1.0/30.333333 13/4.03.250000 整数相除时,若不能整除将造成误差,要避免整数直接相除。模运算%也称为求余运算。要求两个运算对象都为整型,其结果是整数除法的余数。例如:5%10=5 10%3=1-10%3-1,算术运算符的优先级及结合性如下:,例如表达式 x/(67-(12+y)*a)的运算顺序是:,2、算术表达式 c语言的算术表达式由算术运算

17、符、常数、变量、函数和园括号组成,其基本形式与数学上的算术表达式类似。例如:3十5 12.3423.65*2-5*(18%4+6)x/(67-(12+y)*a),带函数调用的算术表达式。以数学函数的调用为例,c语言把数学计算中常用的计算公式(或算法)抽象定义为一个个的函数,这些函数的集合构成了C语言的数学库(见附录c),在程序中用到相应的函数时只要直接调用即可。例如,数学表达式:sin(x)+cos(y/2)c语言算术表达式:sin(x)+cos(y/2)函数库:(#include),3.3.3 自增、自减运算符(+、),(1)+i和i+最后都使i=i+1,但顺序不同,意义不同例:int i=

18、3,j;对于j=+i;相当于 i+;j=i;对于j=i+;相当于 j=i;i+;,(2)+,-只能用于变量(不能用于常量和表达式)+3,+(a+b),(x+5)+,+i(-i):先将i的值加(减)1,然后使用i i+(i-):先使用i,然后将i的值加(减)1,开始,结果,(3)用于+,-运算的可以是有序类型的变量(4)+,-的结合性是自右向左的。,例题1:int i=3,k;k=(i+)+(i+)+(i+);则:k=?i=?相当于 k=i+i+i;k=9 i+;i+;i+;i=6,例题2:int i=3,k;k=(+i)+(+i)+(+i);则:k=?i=?相当于 i+;i+;i+;i=6 k

19、=i+i+i;k=18,例题3:若i=3 则printf(“%d”,i+);则:打印?;i=?输出:-3(然后,i增值为4),例题4:若i=3 则printf(“%d”,i+i);则:打印?;i=?1.i+i-取i的地址2.i+i-i值加1为4 3.i+i-1的值(4)+2的值(4)得3的值8。输出:84.表达式计算完成后,求1.i+的i自加1。i增值为:5 一般写为:(i+)+(+i)。,3.3.4 赋值运算符和赋值表达式,1、赋值运算符(=)计算赋值运算符“”右边表达式的值,并将计算结果赋给“”左边的变量。,2、赋值表达式:变量=表达式 计算赋值运算符右边“表达式”的值,将计算结果赋值给赋

20、值运算符左边的“变量”,赋值表达式的值就是赋值运算符左边“变量”的值,3、赋值运算符按自右至左结合顺序(右结合),例1:int a=2,b=3,c=4;a=b=c=5 1.a=b=c=5:c=5,表达式 c=5值为5 2.a=b=c=5:b=5,表达式 b=c=5值为5 3.a=b=c=5:a=5,表达式 a=b=c=5值为5 例2:a=b=4+(c=5)1.a=b=4+(c=5):c=5,表达式 c=5值为5 2.a=b=4+(c=5):表达式 4+(c=5)值为9 3.a=b=4+(c=5):b=9,表达式 b=4+(c=5)值为9 4.a=b=4+(c=5):a=9,表达式 a=b=4+

21、(c=5)值为9,4、赋值时的类型转换 当赋值运算符两侧类型不一致,赋值时要进行类型转换。其转换工作由c编译自动完成。转换原则是以“”左边的变量类型为准,即将“”右边的值转换为与“”左边的变量类型致(类型转换)。例 int b=32769;int i=256;float a=3.5,a1;char c=A;a1=i;i=a;c=i;,则 i=3 a=3.500000 b=-32767 a1=256.000000 c=0,floatint 直接舍去浮点数地小数部分(存储空间缩小)intfloat 按浮点数相应有效位数补小数点后地有效0(扩大)doublefloat 截取前7位double数据给f

22、loat变量(缩小)intchar 截取int数据地低8位给char变量(缩小),3.3.5 组合赋值运算符和组合赋值表达式,1、组合赋值运算符 在赋值符(=)之前加上其它运算符构成组合运算符:运算符 10种:+=,-=,*=,/=,%=,&=,=,|=2、组合赋值表达式 格式:变量名 组合赋值运算符 表达式 功能:变量名=变量名 运算符 表达 例:a+=3 a=a+3 x*=y+8 x=x*(y+8),右边为一整体,而不等于x=x*y+8,5 a=55 c=5,b=c(5),a=b(5)11 c=6,a=11(5+6)10 b=4,c=6,a=b+c=4+6=1024-12 a-=a*a(a

23、=3-3*3=-6)a+=-6(a=a+a=-12),3、赋值运算符按自右至左结合顺序,表达式 表达式值 各变量值求解过程,a=5 a=b=c=5 a=5+(c=6)a=(b=4)+(c=6)a*=3+5 a+=a-=a*a,int a=3,b,c;,a=b=d=x=y=a=c=,*课后作业例:int a=3,b,d=012;char c;float x,y;,表达式 各变量的值,1)a=2.8 2)b=3+d+3)x=3.6+3/5 4)y=(d=4,d+2,d-)5)a+=a-=a*=a6)c=d-2,7)数学表达式,用C语言表达式表达正确的是:(1)a/(b+c)*d(2)a/(b+c)

24、*1/d(3)a/(c+b)/d(4)a/d/(b+c),a,(b+c).d,3.4.1 关系运算符与关系表达式1 关系运算符,3.4 关系运算符和关系表达式,大于=大于等于=等于!=不等于,关系表达式 格式:表达式1 关系运算符 表达式2 例:34 5=4 xx+1关系表达式的值:“真”条件满足,用1表示“假”条件不满足,用0表示,例:若a=3,b=2,c=1 ab(ab)=c b+cb f=abc cd,值“真”1“真”1“假”0d=1f=0“假”0,例:ca+b c(a+b)ab!=c(ab)!=ca=bc a=(bc),如何表示:0=x=20?,3.4.2 逻辑运算符和逻辑表达式,1

25、逻辑运算符和逻辑表达式,&逻辑与:双目运算符 例:(ab)&(xy)|逻辑或:双目运算符 例:(ab)|(xy)!逻辑非:一目运算符 例:!(ab),逻辑运算“真值表”,a和b可以是一个变量、常量或运算表达式,运算符种类 优先次序,!非算术运算符关系运算符&|赋值运算符,1,1,1,1,1,0,(ab)&(xy)ab&xy(y|b)&(y|b)y|b&y|b!a|ab a=10&b&x+a=10|b|x+a|y&+x,例:int a=3,b=1,x=2,y=0;逻辑表达式 值,1,1,(2)逻辑表达式中的运算对象(操作数)可以是0(“假”)或任何非零的数值(“真”),例:5 3&2|84-!0

26、,(3)逻辑表达式求解并非一定要所有的逻辑运算符都被执行,会出现“短路”现象,例:设 a=1,b=2,c=3,d=4,m=1,n=1(m=ab)&(n=cd),例:int a=2,b=3,c=0,d=4;a+,a=3 b=40 c=1 d=4,例:int a=2,b=3,c=0,d=4;a+|b+;c+|d+;,a=3 b=31 c=1 d=5,(4)逻辑表达式的应用例1:判别某一年year是否闰年。能被4整除,但不能被100整除:或 能被400整除:闰年条件:,例2:写出判断变量C的值是否为的 条件表达式 小写字母 数字字符 被3除余2且被5除余1 奇数 偶数,c=a&c=0&c=9c%3=

27、2&c%5=1c%2=1 或 c%2c%2=0 或!(c%2),year%4=0且 year%100!=0,year%400=0,(year%4=0&year%100!=0)|year%400=0,例3、写出判断点在图形内的条件表达式,答案:x=-1&x=-1&y=1,答案:x-4,答案:x4,例4、把下面的数学表达式转化成C语言表达式,|x|4,|x|4,0=x=20,答案:x=0&x=20,3.4.3 条件运算符与条件表达式,2、执行顺序:先计算条件表达式的值,若值为非0,则计算表达式1的值,并将表达式1的值作为整个条件表达式的结果;若条件表达式的值为0,则计算表达式2的值,并将表达式2的

28、值作为整个条件表达式的结果,max=(ab)?a:b(ab)?a+b:a-b,4、结合方向:自右至左ab?a:cd?c:d 等同于 ab?a:(cd?c:d)若a=1,b=2,c=3,d=4,有:,4,例:求一个数的绝对值:,例:将小写字母转换成大写:,x=x=0?x:x;,c=(c=a,3.5 位 运 算,应用:许多计算机硬件设备的状态信息通常是用二进制串表示的,则对硬件设备进行操作,也要送出一个二进制位串的方式 发出的命令。3.5.1 位运算符 一个二进制位只能取值为0或者1;位运算的运算对象只能是整型(int)或字符型(char)的整数;位运算是对运算量的每一个二进制位分别进行操作的;操

29、作符和优先级:,同级左结合,按位求反 按位右移&按位与 按位异或|按位或,3.5.2 按位逻辑运算,1按位与&(1)格式:x&y(2)规则:对应位均为1时才为1,否则为0:3&9=1。例:c=a&b a:1010 1001 0101 0111&b:0000 0000 1111 1011 c:0000 0000 0101 0011(3)用途:将指定位&0,实现清0以屏蔽原先的数据;(例311)将指定位&1,保留原数据对应位(例312)2按位或|(1)格式:x|y(2)规则:对应位均为0时才为0,否则为1:3|9=11。例:c=a|b a:1010 1001 0101 0111|b:1111 11

30、11 1111 1011 c:1111 1111 1111 1111(3)用途:将指定位|1,实现置1;(例313),3按位异或(1)格式:xy(2)规则:对应位相同时为0不同时为1:00=0,01=1,10=1,11=1 例:c=ab a:1010 1001 0101 0111 b:0110 0000 1111 1011 c:1100 1001 1010 1100(3)用途:将指定位1,实现使特定位翻转其余位不变;(例314)4按位取反(1)格式:x(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1;例:c=a a:0000 0000 0000 0111 7 c:1111 111

31、1 1111 1000-8的补码,特点:按位求反整数求负1注意:对 c=-a 有 对 c=!a 有,c=-7 c=0,3.5.3 移位运算1.按位左移(1)格式:x 位数(2)规则:使操作数的各位左移,低位补0,高位溢出:例:52=20 即:00000101 左移2位:0000010100,2按位右移(1)格式:x位数(2)规则:使操作数的各位右移,移出的低位舍弃;高位:1)对无符号数和有符号中的正数,补0;2)有符号数中的负数,补1。例:52=1 即:00000101 右移2位:0000000101 例:-52=-2 即:11111011 右移2位:1111111010,3.5.4 位运算赋

32、值运算符除按位取反运算外,其余5个位运算符均可与赋值运算符一起,构成复合赋值运算符:&=、|+、=、=如:x&=y 相当于:x=x&y x=3 x=x3 x=5 x=x5,例1 a=3*5,a*4 a=3*5,a*4,a+5例2 x=(a=3,6*3)y=(x=123,x+x,x+=100-x)例3 a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表达式值60,/a=15,表达式值20,/赋值表达式,表达式值18,x=18,/表达式值100,y=100,/1,2,3,/3,2,3,3.6.1逗

33、号运算符和表达式形式:表达式1,表达式2,表达式n计算:先求解表达式1,再求解表达式2,结合性:从左向右优先级:15逗号表达式的值:等于表达式n的值用途:常用于循环for语句中,3.6 其他运算,3.6.5 强制类型转换运算符(type),表达式用括号括起来,类型转换方式:自动转换:2+3.5+a 强制转换:其作用是进行数据类型的强制转换。(type)是单目算符。强制转换形式:(类型名)(表达式)注意:若为表达式,应该用括号括起来,例:(double)a(int)(x+y)(float)(5%3),类型转换时得到一个所需类型的中间变量,原来变量的类型并未发生变化,main()float x;i

34、nt i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);,运行结果:x=3.600000,i=3,强制类型转换,X=3.6,3.6.6 sizeof运算符,一般应用形式:sizeof(opr)opr可以是表达式或数据类型名称 其运算的意义是:求出opr在计算机的内存中所占用的字节数量,例:int a,b,c=3;float x,y=4.8;x=y*c;sizeof(a)结果为 2 sizeof(int)结果为 2 sizeof(char)结果为 1 sizeof(x)结果为 4 sizeof(y*c)结果为 8,3.7 各类数值型数据间的混合运算1、整型、实型、

35、字符型数据间可以混合运算 10+a+1.5-8765.1234*b 运算时,不同类型数据要先转换成同一类型,然后运算,2、转换规则:由低向高转换(但不必逐级进行),高 Double float long unsigned低 int char,short,必须转,10+a+e*f-a/d,上述类型转换由系统自动完成,97,int a;float f;double d;long e;,3.8 应用示例,1 3 2 2 1 3 3 2 1 3 3 3 1 3 2 2 1 3 3 2 1 3 3 3,例3_16:已知 x=y=z=2;求值,表达式 表达式值 x y z,+x|+y&+z+x&+y|+z

36、+x&+y&+zx+|y+&z+x+&y+|z+x+&y+&z+,x=6,y=5,z=3a=5,x=6,y=6 z=10,x=6,y=7a=0,例3_18:已知 int x=1,y=2,z=3,a;求值,x+=y+=z;a=x=y,a=8,x=125 b=1,y=1,例3_19:已知 int a=5,b=4,x,y;求值,x=a+*a+*a+;y=-b*-b*-b;,x=0 x0088 x=0 x00ee x=0 x0066,例3_17:已知 int a=0252,b=0 xcc;求x值,x=a,a:0000000010101010b:0000000011001100,a=ab,b=ba,a=ab a=b=,小 结,基本数据类型:整型、实型、字符型 掌握:形式(类型,常量,变量,运算符,显示形式)各类数值型数据间混合运算运算符类型强制转换运算符赋值运算符+,运算符复合赋值运算符关系运算符逻辑运算符逗号运算符和逗号表达式,作业:1.第一和第二大题做在书上,下一节课对答案 2.第三大题的1、2,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号