版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章基本数据类型与表达式张雪英C
语言程序设计1本章主要内容本章介绍C语言的基础,包括:数据类型运算符和表达式均是程序设计的基本知识为什么讨论这些知识?通常程序要对数据进行操作处理:处理的对象是数据通过运算符和表达式进行操作数制之间的转换常用数制:二进制、十进制、八进制、十六进制十进制:0123456789二进制:01八进制:01234567十六进制:0123456789ABCDEF熟悉它们之间的转化各种进制转换成十进制例:(111011)2=1×25+1×24+1×23+0×22+1×21+1×20=(59)10例:(1F2A)16=1×163+15×162+2×161+10×160=(7978)10例:(136)8=1×82+3×81+6×80=(94)10十进制转换成各种进制例:把十进制数459转换成十六进制数
16459余111628余12161余101CB(459)10=(1CB)16二进制与八进制的转换例:(1101001)2=001101001=(151)8例:(246)8=010100110=(10100110)2十进制01234567二进制000001010011100101110111例:(110101011111101)2=0011010101111101=(357D)16例:(4B9E)16
=(0100101110011110)2二进制与十六进制的转换十进制01234567二进制00000001001000110100010101100111十进制89101112131415二进制10001001101010111100110111101111例如:【例2.1】计算圆的面积,半径为5cm。程序如下:main(){float
r,area;
r=5;
area=3.14*r*r;
printf("%f\n",area);}运算结果是输出圆的面积:78.500000程序中用到的数据:r、area、5、3.14对数据进行的运算:*、=分析:计算机操作处理时,要完成以下工作:在内存中给半径r和运算结果area
开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值?数据
5和3.14与r
、area
不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。这样的数计算机怎么处理?对整数5
和小数3.14,计算机存放时是否有区别?涉及数据类型的基本知识2.1C语言的数据类型C数据类型数组类型结构体类型共用体类型枚举类型整型字符型实型(浮点型)空类型单精度型双精度型基本类型指针类型构造类型本章讨论基本类型数据2.1.1整型数据整型数据的类型基本整型数据int,分配2Byte短整型数据shortint,分配2Byte长整型数据longint,分配4Byte整型数据均以二进制补码形式存储问题:为什么要采用补码?如何表示?计算机中正、负数的表示例如:109=(1101101)2要区别:+109和-109方法是:将符号也数码化即: 正的符号+用
0表示 负的符号-用
1表示∴计算机中的数表示方法是:
符号位+二进制数值(以8bit为例)
+109→+1101101→01101101
-109→-1101101→11101101问题:计算机计算复杂化例如计算:
(-5)+(+3)10000101+00000011解决的方法是:使用反码或补码的表示方法(按前述表示的编码称为原码),即能将减法一律转换为加法。需要判断符号是否相同:如果相同,结果符号不变,并进行绝对值相加如果不同,结果取绝对值大的数的符号,并进行绝对值相减原码、反码和补码正数:原码、反码、补码相同符号位为0,数值为对应的二进制数。
+109[01101101]原=[01101101]反=[01101101]补负数:原码:符号位为1,数值为绝对值的二进制数。 -109[11101101]原反码:符号位为1,数值为绝对值的二进制数各位变反。-109 [10010010]反
补码:符号位为1,反码加1。-109[10010011]补计算对比没有采用原码、反码、补码的计算例:(-5)+(+3)=
-5:10000101+3:00000011----------------=:10000010=(-2)
采用原码、反码、补码的计算例:(-5)+(+3)=
-5:11111011+3:00000011----------------=:11111110=(-2)
按位取反,末位加1,转化成原码即可有符号和无符号整型数据有符号的整型数据
signedint无符号的整型数据
unsignedint区别是将最高位看作符号位还是数据位例:
1111111110101000作为有符号数使用时,最高为符号位为负数,值是:-88(再求一次补)作为无符号数使用时,最高为数据位为无符号的数,值是:65448例如:【例2.2】有符号数和无符号数的输出main(){
unsignedintm;m=65448;printf("\nm=%d\n",m);printf("m=%u\n",m);}输出结果:m=-88m=65448按有符号数输出按无符号数输出整型数据的类型及规定方括号表示可选项int分配2Byte,long分配4Byte类型名称类型符bit取值范围整型(短整型)[signed]int[signed]short[int]16215~215-1(-32768~32767)无符号整型(无符号短整型)unsigned[int]unsignedshort[int]160~216-1(0~65535)长整型[signed]long[int]32-231~231-1无符号长整型unsignedlong[int]320~232-1有符号数和无符号整数inta=1;printf(“a=%d”,a);输出:a=1
inta=-1;printf(“a=%d”,a);输出:a=-1
inta=1;printf(“a=%u”,a);输出:a=1
inta=-1;printf(“a=%u”,a);输出:a=65535
unsignedinta=1;printf(“a=%d”,a);输出:a=1
unsignedinta=1;printf(“a=%u”,a);输出:a=1
unsignedinta=-1;printf(“a=%d”,a);输出:a=-1
unsignedinta=-1;printf(“a=%u”,a);输出:a=65535
2.1.2实型数据实型数据的类型
单精度实型数据float,分配4Byte双精度实型数据double,分配8
Byte实型数据的存储单精度实型指数部分小数部分
小数的符号位指数的符号位实型数据的类型及规定C标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更大。有效数字的意义?类型类型符Byte绝对值的范围有效数字单精度型float410-37~10387~8
位双精度型double810-307~1030815~16位2.1.3字符型数据字符型数据char,分配1Byte
字符型数据是指字母、数字、各种符号等用ASCII值表示的字符字符型数据用''括起来
字符:
'A''a''Y''*''!''0'
字符串:
"ABC"
"a"
“123#$%8
“字符型数据在内存中占一个字节。字符ASCII码值为0~127,其中32~126为可打印字符,其余为不可打印字符2.2常量与变量常量:-在运行程序的过程中值保持不变的量常量的类型:2.2.1整型常量整型常量
十进制:由数字0~9组成八进制:由数字0~7组成,以0开头十六进制:由数字0~9、A~F组成,以0x或0X
开头例如:十进制:
100-80+123八进制:0100240100073十六进制:0x380x100X100XFF整型常量整型常量的类型:根据值大小默认类型。整型常量后面加l或L,则认为是longint型
例如:123L、0L、432l、0x100l注意:十六进制常量中可以使用大写字母A~F,也可以使用小写字母a~f。八进制常量中不能出现数字8或9例如:018、0921非法在VC++中,int和long占内存4个字节,shortint占内存2个字节实型常量实型常量十进制形式
例:1.230.563.1519123.指数形式
例:123e3123e21.23e4
指数只能是整数,而尾数则可以是整数也可以是小数,无论指数或尾数均不能省略例如:1e、E.5、E-3
非法实型常量的类型:默认为double型,后面加F(或f),则强调表示该数是float类型例如:3.5f、1e2F
字符型常量可视字符常量
单引号括起来的单个可视字符例如:'a'、'A'、'+'、'3'、''等
转义字符常量
-单引号括起来的
\与可视字符组合,例如字符A可以有以下几种表现形式
'A''\101''\x41'65
\0字符串结束标志\n回车换行\t跳到下一个输出位置\"双引号字符\dddddd为1到3位八进制数所代表的字符\xhhhh为1到2位十六进制数所代表的字符字符串常量用双引号括起的一个字符序列例如:"ABC"、"123"、"a"、"\n\t""\nGoodmorning"字符串常量的长度:所包含的字符个数字符串常量的存储方式:
所占存储单元数:串长度+1字符串结束标记例:输出字符型常量【例2.3】字符型常量的输出main(){
printf("\101\x42C\n");
printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");
}对于在printf()函数中输出如下符号:
\'
"%则必须以此方式输出:
\\\'\"%%
字符串常量与字符常量的区别表示形式上的区别:字符:用'
作为分隔符字符串:用"
作为分隔符存储上的区别:字符常量:占一个字节字符串常量:字符数+1不能将一个字符串常量赋给一个字符变量,C语言没有专门的字符串变量,若要处理一个字符串,必须使用字符数组。符号常量用标识符代表常量定义格式:#definePI3.1415定义后在程序中可用PI代替3.1415一般用大写字母,是宏定义预处理命令,不是C语句,不用加;号使用优点:
-见名知意,含义清楚
-若需修改,可做到“一改全改”符号常量的例子:【例2.4】符号常量的使用#definePI3.1415main(){
floatr=2,l,area;
l=2*r*PI;area=PI*r*r;printf(“周长l=%f\n“,l);printf(“面积area=%f“,area);
}使用符号常量2.2.2
变量
1.变量的有关概念在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量名。变量必须“先定义(声明),后使用”系统为变量分配存储单元,存储变量的值。
编写程序时通过变量名来存、取变量值。a510变量值为变量分配的存储单元变量名例如:有变量a它的值是5102.变量定义变量定义的一般格式:
数据类型说明符变量列表;
例如:inti,j;
longk,m;floatx,y;charch1,ch2;必须使用合法的标识符作变量名不能使用关键字为变量命名整型变量整型变量的分类:
-基本整型:int-短整型:shortint或short-长整型:longint或long-无符号整型:unsignedint(short、long)注意它们的取值范围,在VC中,给int数据分配4个字节的空间。所以int和long的范围一样【例2.5】整型变量的使用main(){
inta,b,c,d;
unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d\n”,c);printf(“b+u=%d”,d);
}整型变量的定义与作用整型数据的溢出0111111111111111【例2.6】整型数据的溢出main(){
shortinta,b;
a=32767;b=a+1;printf(“a=%d\n”,a);printf(“b=%d”,b);
}1000000000000000实型变量实型变量的分类:实型变量的定义例:floata,b,c;doublex,y;字符型变量字符型变量的定义:例:chara=‘*’,b=‘0’,c;由于字符变量与整型变量在内存中的存储形式类似,所以字符型数据和整型数据之间通用,字符型变量可以作为整型变量来处理。
字符型变量与整型变量的例子【例2.7】字符型数据与整型数据main(){
charc1,c2,c3;
inti;c1=97;c2=98;c3=99;i=‘c’;printf(“%c%c%c\n”,c1,c2,c3);printf(“%d%d%d\n”,c1,c2,c3);printf(“%c%d”,i,i);
}3.变量的初始化:允许在定义变量的时候对变量赋初值。
inta=5;/*定义a为整型变量,初值为5*/
floatf=3.2;/*定义f为实型变量,初值为3.2*/charc1=‘a’
/*定义c1为字符型变量,初值‘a’*/
C语言允许对部分变量初始化。
inta=1,b,c=3;但不允许对几个变量同时赋同一个初值
错误:inta=3+b,b=5;
inta=b=c=3;
inta,b,c;a=b=c=3;2.3运算符和表达式主要内容:算术运算符和算术表达式赋值运算符和赋值表达式关系运算符和关系表达式逻辑运算符和逻辑表达式位运算符和位运算表达式条件运算符和条件表达式逗号运算符和逗号表达式其他运算符及其运算运算符的有关概念作用:对运算对象完成规定的操作运算类型:按运算对象分:单目、双目、三目按功能分:算术、赋值、关系、逻辑条件、逗号、位、其他运算符的优先级和结合性优先级指各种运算符号的运算优先顺序例如:算术运算优先于关系运算算术运算中先*/后+-结合性指运算符号和运算对象的结合方向从左向右(左结合)和从右向左(右结合)例如:算术运算符为左结合
a-b+4
赋值运算符为右结合
a=b=5本章涉及的运算符+-*/%++--+-=+=-=*=/=%=&=|=^=>>=<<=><>=<===!=&&||!&|^~<<>>?:,&sizeof(数据类型标识符)类型种类算术运算符赋值运算符关系运算符逻辑运算符位运算符条件运算符逗号运算符其他运算符表达式的有关概念什么是表达式由运算符将运算对象连接成的式子,它描述了一个具体的求值运算过程。例:1+2*3-43>5-7a=b%2计算表达式的值按照运算符的运算规则求值求值时注意运算符的优先级和结合性表达式值的类型自动转换强制转换例如:表达式:150+'b'*2-12.456b=(++a)-2a/=a*=(a=2)f=a>b>c--a||++b&&c++max=a>b?a:ba=3,a+=3,a*a 1/(float)a+6算术运算算术运算符的优先级
()+-++--
*/%
+-
同级同级同级
单目双目
高
低没有乘方运算符,要计算a3要写作a*a*a的连乘,或用标准库函数pow(a,3)“/”:5/2=25.0/2=2.5“%”:要求运算对象必须是整型数据,功能是求两数相除的余数,余数的符号与被除数的符号相同。(若a%b的结果为0,则表示a被b整除)自增自减运算++--是单目运算符有前缀和后缀两种形式
前缀形式:先自增(自减)再引用;后缀形式:先引用再自增(自减);功能:前缀形式++a
等价于
a=a+1
--
a
等价于
a=a–1后缀形式a++
等价于a=a+1
a--
等价于a=a–1表达式的值会不同例如:当a=5时⑴++a表达式的值为6,且
a=6⑵
a++表达式的值为5,且
a=6⑶
b=++a
等价于
a=a+1;b=a表达式的值为6,且a=6,
b=6⑷b=a++等价于
b=a;a=a+1表达式的值为5,且a=6,
b=5
说明:++和--的运算对象只能是变量(或运算结果是变量的表达式),不能是常量(或运算结果是数值的表达式)。例如:
5++、(a+2)++
不合法。具有右结合性,结合方向为从右到左。例如:
–a++
等价于-(a++)
如果有多个运算符连续出现时,C系统尽可能多的从左到右将字符组合成一个运算符例如:
i+++j
等价于(i++)+j
-i+++-j
等价于-(i++)+(-j)
例如:当a=3时⑴b=(++a)+(a++)
b=a=⑵b=(a++)+(a++)b=a=⑶b=(++a)+(++a)b=a=b=8a=5b=6a=5b=10a=5例:a=3时⑴printf(“%d\n”,-a++);⑵printf(“%d”,a);当a=3时(tc运行)⑴b=(++a)+(++a)+(++a)
b=a=⑵b=(a++)+(a++)+(a++)b=a=⑶b=(++a)+(a++)+(++a)b=a=(4)b=(++a)+(a++)+(a++)b=a=例如a=3时(vc运行)⑴b=(++a)+(++a)+(++a)
b=a=⑵b=(a++)+(a++)+(a++)b=a=⑶b=(++a)+(a++)+(++a)b=a=(4)b=(++a)+(a++)+(a++)b=a=16696136126说明:对函数参数的求值顺序:VisualC++系统先计算最右边的参数值,再依次计算左面的参数值。
例:main(){inti,j;i=8;j=10;printf(“%d,%d,%d,%d\n”,i,j,++i,j++);
}①②③④说明:【例2.8】有多个函数参数且为同一变量多次自增的运算处理。main(){inta=5;printf(“%d,%d\n",a,(a++)+(a++));}printf(“%d,%d\n",a,(a++)+(++a));printf(“%d,%d\n",a,(++a)+(++a));printf(“%d,%d\n",a,(a++)+(++a)+(++a));说明:双目运算符两边的运算类型必须一致才能进行操作。所得结果类型与运算类型一致如运算符两边类型不一致,系统将自动把两边转换成相同类型后,进行运算
--整型→实型
--短整型→长整型
--有符号→无符号所有实数均以双精度方式进行。【例2.9】求表达式的值floata=2.0;intb=6,c=3;求:a*b/c-1.5+’a’+fabs(-5)=104.5(double)例:赋值运算赋值运算符(右结合)
=+=-=*=/=%=&=|=^=>>=<<=赋值表达式将表达式的值存入变量对应的内存单元中m=12b=(++a)-2m%=3+n等价于
m=m%(3+n)x*=(x=5)说明:赋值号左边必须是变量,右边可以是C语言任意合法的表达式例如:n=t+2<s合法
a+b=15
不合法赋值运算符仅优先于“,”,且具有右结合性例如:
a=b=b*c>10等价于:a=(b=(
(b*c)>10)
)赋值号与数学中的等号含义不同例如:数学中
a=b
等价于
b=aC语言中
a=b不等价于
b=a说明:将float、double数据赋给整型变量,舍弃实数的小数部分例如:inti;i=3.56/*i=3*/将整型数据赋给float、double变量,数值不变,以浮点数形式存储到变量中例如:
floatf1=23;/*f1=23.00000*/
doublef2=23;/*f2=23.00000000000000*/将double型数据赋给float型数据,注意数值范围,不能溢出说明:将char型数据赋给int变量,字符占1个字节,int占2个字节。例如:charc=‘\376’;/*=254*/inti;
i=c;111111100000000011111110111111101111111111111110Visualc++系统Ci说明将int、short、long数据赋给char变量,将其低8位原封不动地送到char变量中例如:inti=289;charc;
c=i;printf(“%c”,c);000000010010000100100001!
C语言使用灵活,在不同类型数据之间赋值时,常常会出现意想不到的结果,而编译系统并不提示出错,全靠编程者的经验来找出问题,因此,这部分内容不必死记,最好的方法是通过上机实践来掌握例:【例2.10】赋值运算符的运用例:设a=10,计算表达式:a+=a-=a*10a+=a-=a*=10例:main(){inta=1,b=2,c=3;printf(“%d,%d,%d,%d\n”,a=b=c,a=b==c,a==(b=c),a==(b==c));/*结果:-180*//*结果:0*//*结果:3,1,0,0*/关系运算关系运算符(左结合)
>>=<<=
==!=较高较低关系表达式用关系运算符将运算对象连接成的式子例如:12<'C'+1(字符型数据比较ASCII值)a==b>=c等价于a==(b>=c)与(a==b)>=c不等价关系运算符优先于赋值,低于算术说明:关系运算的结果应该是逻辑值。C语言用数值用
1表示逻辑真,0
表示逻辑假例如:7>5的值是1,5>7的值是0
'a'>'b'的值是0,'a'<'b'的值是1即关系表达式的值:0或1实型数可进行大于或小于比较,但通常不进行
==
或
!=
的关系运算例:floata,b;若要判断a与b是否相等
则用:fabs(a-b)<1e-6
来判断说明:不能用数学里习惯的关系运算符连用表示区间关系例如:设x=-2,-3<x<-1
的值是?设x=1,2<x<4的值?例:inti=1,j=7,a;
a=i+(j%4!=0);
则a=?例:‘a’>0结果=?‘A’>100结果=?逻辑运算符逻辑运算符&&||!逻辑运算符的运算规则运算对象逻辑运算结果aba&&ba||b!a非0非0110非000100非001100001逻辑表达式逻辑表达式用逻辑运算符将运算对象连接成的式子
例如:0&&'b'a&&b||c&&da||b-5||c/4!x+y>=z逻辑运算符的优先级和结合性:!是单目运算符,右结合,高于算术&&和||是双目运算符,左结合,高于赋值运算符,低于关系运算符逻辑运算规则从左到右依次进行逻辑计算运算对象为非0表示逻辑真运算对象为0表示逻辑假逻辑运算的结果
-逻辑成立,结果为
1
-逻辑不成立,结果为
0例如:设a=15,b=0,c=-2a&&b&&c/*=0*/a||b||c/*=1*/(a+c)||b&&c/*=1*/逻辑运算规则运算按照从左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算——逻辑运算的短路性质例如设:a=1,b=0,c=-2a&&b&&c(a++)||++b&&--c为0,运算终止,表达式值为0为非0,运算终止,表达式值为1且a为2,b为0,c为-2(b,c保持原值)逻辑运算符举例:【例2.11】逻辑运算符的短路特性例:设a=0,b=1,c;
c=a++&&(b=3);执行后:a=,b=,c=例:inta=1,b=1,c=0,d;d=--a||b--||(c=b+3);
执行后:a=,b=,c=,d=1100001关系与逻辑运算符的应用表示数学公式a>b>c
a>b&&b>c判断a,b,c三条线段能否组成一个三角形a+b>c&&a+c>b&&b+c>aa,b不同时为负
a>=0||b>=0!(a<0&&b<0)(a<0&&b>=0)||(a>=0&&b<0)||(a>=0&&b>=0)关系与逻辑运算符的应用n是小于m的偶数
n<m&&n%2==0year是闰年:能被4整除但不能被100整除,或能被400整除的年是闰年y%4==0&&y%100!=0||y%400==0条件表达式运算条件运算符:?:条件表达式的一般形式
表达式1?表达式2:表达式3例如:a>b?a:ba++>=10&&b-->20?a:b(x=3+a)>5?100:200C语言中唯一的三目运算符,要正确区分用?和:分隔的表达式涉及条件运算符的优先级与结合性条件运算符优先级条件运算符优先级高于赋值、逗号运算符,低于其他运算符条件运算符具有右结合性当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。例如:w<x?x+w:x<y?x:y
与w<x?x+w:(x<y?x:y)等价与(w<x?x+w:x<y)?x:y不等价条件运算符举例:例1:if(a>b)printf(“%d”,a);
ellseprintf(“%d”,b);
可以用条件表达式替代:
printf(“%d”,a>b?a:b);
例2:求a+|b|
printf(“a+|b|=%d\n”,b>0?a+b:a-b);例3:判断是否是小写字母,如是,则转换成大写字母
(c>=‘a’&&c<=‘z’)?c-32:c逗号运算符表达式逗号表达式的一般形式
表达式1,表达式2,……,表达式n逗号表达式的值从左向右,依次对表达式求值,最后得到表达式n
的值就是整个逗号表达式的值例如:
⑴a=5,a++,a*3
表达式值为18,且a=6⑵t=1,t+5,t++表达式值为1,且t=2⑶x=(a=3*5,
a*4
)
表达式值为60,且x=60,a=15逗号表达式运算例1:inta=1,b=2,c=3;
printf(“%d,%d,%d”,a,b,c);/*结果:1,2,3*/
printf(“%d,%d,%d”,(a,b,c),b,c);/*结果:3,2,3*/例2:main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf(“x=%d\n”,x);}长度运算符sizeof为单目运算符运算对象只能是变量名或数据类型标识符
运算结果为该变量或该数据类型的长度
例:main(){inta=5;doublex;
printf("%d%d",sizeof(int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校住宿管理方案
- 园林绿化防火应急方案
- 小学二年级语文上学期工作总结
- 初中学生体质健康提升方案
- 2024年新版房屋买卖合同
- 幼儿园消毒管理制度
- 第二章 抗原课件
- Methyl-streptonigrin-Methyl-bruneomycin-生命科学试剂-MCE
- Methyl-7α-hydroxy-3-ketocholanoate-生命科学试剂-MCE
- Mepiquat-chloride-Standard-生命科学试剂-MCE
- 河北省石家庄2023-2024学年八年级上学期期中数学试题(有答案)
- 强村公司重大事项民主决策实施办法
- 2024民法典知识竞赛题库(含答案)
- JavaWeb程序设计-知到答案、智慧树答案
- 施工组织设计内部审批表
- 2024年《军事理论》考试题库附答案(含各题型)
- 妇科手术的术前准备
- 药物警戒质量管理规范-专业解读课件
- MOOC 大学生创新与创业实践-西南交通大学 中国大学慕课答案
- 三年级上《人、自然、社会》教学计划
- 《开放互动的世界作业设计方案-2023-2024学年初中道德与法治统编版》
评论
0/150
提交评论