版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据类型、运算符和表达式掌握C语言各种数据类型的定义及使用;了解各种类型数据在计算机内的存储方式;各种运算符的运算规则及结合律、优先级;各种表达式的组成。教学目的:本章重点:
常用数据类型常用运算符、变量、表达式教学内容:标识符的概念及作用C语言的基本数据类型,各种数据类型的定义、表示、存储与使用各种数据类型的转换C语言的运算符和表达式2.1C语言字符集与标识符任何高级语言都有它自身的一套字符集和使用规则,C语言也不例外。字符是组成语言的基本单位,C语言字符集由字母、数字、下划线、空白符、标点符号和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。(1)数字:0,1,…,9。(2)字母:大、小写字母各26个:a,b,…,z和A,B,…,Z。C语言中大、小写字母是有区别的,表示不同的字符。(3)空白符:空格符,制表符(跳格),换行符(空行)的总称。空白符除了在字符,字符串中有意义外,编译系统忽略其它位置的空白。空白符在程序中只是起到间隔作用。在程序的恰当位置使用空白将使程序更加清晰,增强程序的可读性。2.1.1C语言字符集(4)下划线:_。(5)标点符和特殊字符。
+-*/%++--<>=>= <===!=!||&&^~|&<< >>()[]{}\“‘?:.,;(6)转义字符(如下图)。字符形式字符名含义\n换行把打印(显示)位置移到下一行的起始位置\t水平制表把打印位置移到当前的下一个制表点(通常移动8个字符的间隔),间隔的字符个数与实现有关\v垂直制表把打印位置移到下一行制表点起始位置\b退格把打印位置在当前行上向后退一个字符位置\r回车不换行,光标移到行首\f换页把打印位置移到下一个逻辑页开头的起始位置\?问号问号字符\\反斜杠反斜杠字符本身“\”
\'单引号单引号字符
\"双引号双引号字符\a报警产生可听或可见的报警(嘀声),位置不变\0空字符空值
\ddd八进制1-3位8进制数对应的ASCII值代表的字符
\xhh十六进制
1-2位16进制数对应的ASCII值代表的字符2.1.2标识符
C语言中用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符(Identifier),实际上标识符就是一个名字。C语言的标识符分为三类:预定义标识符、关键字标识符、自定义标识符。
1预定义标识符:预定义标识符主要有库函数名(如main,printf,scanf,sin,abs等)、预编译命令(如define)。
2关键字标识符:C语言中规定的具有特定含义的标识符。
3自定义标识符
(1)标识符由字母、数字、下划线组成,且第一个字符必须为字母或下划线,不能是数字。例如:合法的标识符:james,student,_total,count_1_2_3,PRICE。不合法的标识符:L.Jiang,$123,?xyz,45A3,x>y。
(2)大小写敏感。标识符的大小写是有区别的,如a和A是不同的标识符。
C语言中变量一般用小写,常量一般用大写,但也不是绝对,像windows编程中,常用匈牙利表示法(大小写混用,每个单词第一个大写,其余小写,单词之间没有空格,如WinMain,GetCurrentTime)。
(3)标识符长度:ANSIC标准没有限制标识符长度(字符个数),不同编译系统都有自已的规定。如TurboC规定为32个字符,MicrosoftC规定为8个字符。
(4)自定义标识符不能与关键字标识符同名,虽然可与预定义标识同名,但强烈建议不要与之相同,以免造成混淆,影响程序可读性。
注意:标识的命名应做到“见名知意”
2.2常量和变量在程序运行中,其值不可改变的量称为常量。用标识符命名的常量,称为符号常量,通常用大写字母。C语言中使用符号常量,有两种声明符号常量的方法:(1)用预处理命令#define来声明一般形式:#define符号常量名常量值例如:
#definePI3.1416/*结尾处没有分号*/
(2)用const声明一般形式:const类型符号常量名=常量值;
例如:程序中多处用到π的值,可以声明符号PI来表示。
constfloatPI=3.1416;
/*结尾处有分号*/2.2.1常量例2-1符号常量的使用。程序代码如下:
#include<stdio.h> #definePI3.14 /*声明符号常量PI*/ voidmain() { constfloatR=5.0;/*声明符号常量R,后面有分号*/ floatr,area1,area2; /*声明变量r,area1,area2*/
printf("r=");
scanf("%f",&r); /*用输入函数scanf输入半径r的值*/ area1=PI*r*r; /*用圆面积计算公式PI*r*r的值并赋值给
area1*/
/*此处半径是变量r*/ area2=PI*R*R; /*此处半径是符号常量R*/ printf(“area1=%f,area2=%f\n”,area1,area2);/*输出面积的值,\n表 示换行*/ }2.2.2变量
在程序运行中,其值可以改变的量称为变量。一个变量必须有一个名字(即标识符),在内存中占据一定的存储单元。在该存储单元中存放变量的值。注意区分变量名和变量值这两个不同的概念。变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。见图2-1。图2-1变量值与变量名区别在C语言中,变量必须遵循“先定义,后使用”的原则。关于变量的定义、使用及赋初值将在2.3节中结合数据类型介绍。i变量名变量值存储单元教室编号:3栋2013桌椅2.3基本数据类型
2.3.1C语言的数据类型单精度实型(float)双精度实型(double)整型(int)字符型(char)数组类型结构体类型(struct)共用体类型(union)枚举类型(enum
)实型(浮点数)基本类型构造类型指针类型空类型(void)数据类型基本数据类型如下表说明:数据类型所占字节数随机器硬件不同而不同,上表以IBMPC机为例:类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsigned
int0~65535320~4294967295unsigned
longunsigned
short160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127无unsignedchar80~2552.3.2整型数据
1整型常量三种形式:
十进制整数:由数字0~9和正负号表示.如123,-456,0。
八进制整数:由数字0开头,后跟数字0~7表示.如0123,011
十六进制整数:由0x或0X开头,后跟0~9,a~f,A~F表示。
如0x123,0Xff2整型变量
整型变量使用前必须先定义,定义后系统为整型变量开辟存储空间,用于存储变量值。整型数据在内存中是以二进制补码形式存放的。例如:定义一个整型变量i:
inti; /*定义整型变量*/
i=5; /*给i赋以整数5*/
整型变量的基本类型符为int,也可根据数值范围将变量定义为基本整型、短整型或长整型。在int之前加上修饰符:short(短型)或long(长型),也可在前面加上signed(有符号数)和unsigned(无符号数)。标准C语言的整型类型及取值范围
关键字VisualC++6.0环境TurboC2.0环境所占字节取值范围所占字节取值范围int4-2147483648~21474836472-32768~32767unsigned[int]40~429496729520~65535short[int]2-32768~327672-32768~32767signed[int]4-2147483648~21474836472-32768~32767unsignedshort[int]20~6553520~65535signedshort[int]2-32768~327672-32768~32767long[int]4-2147483648~21474836474-2147483648~2147483647unsignedlong[int]40~429496729540~4294967295例2-2整型变量的定义与使用。程序代码如下:
#include<stdio.h> voidmain() {
int
a,b,c,d; /*指定a、b、c、d为整型变量*/ unsignedu; /*指定u为无符号整型变量*/a=5;b=-6;u=20; c=a+u;d=b+u;
printf("a+u=%d,b+u=%d\n",c,d);/*整型在VC++中占内存的字节数*/
printf("%d,%d,%d\n",sizeof(short),sizeof(int),sizeof(long)); }
3整型数据的溢出例2-3整型数据的溢出。程序代码如下:
#include<stdio.h> voidmain() { shortint
a,b,c; a=32767;/*最大值赋给a*/ b=a+2;/*a+2并不等于32769,而是-32767*/ c=-a-3; /*-a-3并不等于-32770,而是32766*/
printf("a=%d,a+2=%d,-a-3=%d\n",a,b,c); }
观察如下运行结果。
运行结果:
a=32767,a+2=-32767,-a-3=32766说明:
a+2为什么等于-32767而不是32769?这是由于整型数据在溢出时会“循环”取值,即当变量达到整型数据的最大值(或最小值)时,会从最小值(或最大值)一端移动取值,如下图所示。
-327670……0……32766327672.3.3实型数据1实型常量
小数形式:它是由数的符号(+,-)、数字和小数点组成(注意:必须有小数点)。如-1.25、3.0、3.3等都是合法的实型小数形式。
指数形式:它是由尾数(整数或小数)、阶码标示(E或e)和阶码组成。尾数不可缺省(是一整数或小数),阶码必须为整数。如1.25E-3、1e-5、-3E2等都是合法的指数形式,分别表示1.23*(10^(-3)).1*(10^(-5)),-3*(10^(2))
实型常量分为单精度、双精度和长双精度三种类型。实型常量如果没有任何说明,则表示为双精度常量,实型常量后加上F或f则表示单精度常量,实型常量后加上L或l则表示长双精度常量。
2实型变量与实型常量一样,C语言中的实型变量也分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类,不同类型在不同的编译系统下取值范围也是不是同的。标准C语言的实型类型及取值范围
关键字VisualC++6.0环境TurboC2.0环境所占字节取值范围所占字节取值范围float4-3.4×10-38~+3.4×10384-3.4×10-38~+3.4×1038double8-1.7×10-308~+3.4×103088-1.7×10-308~+3.4×10308longdouble16-1.2×10-4932~+3.4×10493216-1.2×10-4932~+1.2×1049322.3.4字符型数据
1字符常量字符型常量是由一对单引号括起来的单个字符。它分为一般字符常量和转义字符。一个字符常量在计算机的存储中占据一个字节。(1)一般字符常量:一般字符常量是用单引号括起来的一个普通字符,其值为该字符的ASCII码值。如‘a’、‘A’、‘0’、‘?’等都是字符常量,‘a’的值为97,‘A’的值为65,‘0’的值为48,‘?’的值为63。(2)转义字符:C语言允许用一种特殊形式的字符常量,它是以反斜杠(\)开头的特定字符序列,表示ASCII字符集中控制字符(如\n表示换行)、某些用于功能声明的字符和其他字符。
2字符串常量用双引号括起来的字符序列称为字符串常量也称字符串。如“c”、“”、“12345”,“Ateacher”等都是合法的字符串常量。字符或字符串在内存中存储的字符形式“Ateacher”Ateacher\0“c”c\0‘c’c“”\0
注意:字符串会在最后自动加上一个字符‘\0’,作为字符串结束标志,所以字符串实际占用字节数要比字符串中字符的个数(长度)多1个。
3字符变量
字符变量用来存放字符常量,请注意只能存放一个字符,不能存放一个字符串。字符变量的定义如下:
charc1,c2;
它表示c1和c2为字符型变量,各存放一个字符。可为字符变量赋值:c1=‘a’;c2=‘b’。除可以为字符变量赋字符常量外,还可以直接赋以整数。 例2-5向字符赋值 程序代码如下:
#include<stdio.h> voidmain() { charc1,c2; c1='a';c2='b'; printf("c1=%d,c2=%d\n",c1,c2); c1=65;c2=66; printf("c1=%c,c2=%c\n",c1,c2);}2.3.5变量赋初值
类型说明符变量1=值1,变量2=值2,……;
如:inta=1,b=2,c=3;表示定义了三个变量a,b,c,并分别赋值1,2,3。但要注意不能写成inta=b=c=3;
也可使被定义的变量的一部分赋初值。如:int
a,b,c=3;表示定义了变量a,b,c,只对c初始化,c的值为3。 需要注意的是,初始化并不是在编译阶段完成的,而是在程序运行时执行本函数时赋予初值的,相当于一个赋值语句。如:
inta=5;相当于:
inta; /*指定a为整型变量*/ a=5/*赋值语句,将5赋给a*/2.4运算符和表达式运算符是表示实现某种运算的符号,C语言几乎所有基本操作(除了控制语句和输入输出)都作为运算符处理。表达式是由运算符、常量、变量、函数、圆括号等按一定的规则组成的式子。每一个表达式也都具有一定的值。 简单表达式:如:i,j,a,f。 复杂表达式:如:a+b,100+200,(a-b)*(c+d)。
C语言提供了13类,共34种运算符。C语言的运算符分类归纳如下:
(1)算术运算符:+-*/%++--
(2)关系运算符:><==>=<=!=
(3)逻辑运算符:!&&‖2.4.1运算符和表达式概述
(4)位运算符:<<>>~|∧&
(5)赋值运算符:=及其扩展赋值运算符
(6)条件运算符:?:
(7)逗号运算符:,
(8)指针运算符:*&
(9)求字节数运算符:sizeof
(10)强制类型转换运算符:(类型)
(11)分量运算符:.和->
(12)下标运算符:[]
(13)其他:函数运算符()
C语言运算符需要从运算符的功能,运算对象的数据类型及个数,运算符的优先级,运算的结合性等方面掌握。
(1)据运算符的运算对象的个数,C语言的运算符又分为单目运算符、双目运算符和三目运算符。例如单目运算符++,双目运算符(+,-,*,/等),三目运算符?:。
(2)运算符的优先级运算符的优先级是指不同的运算符在表达式中进行运算的先后次序。例如,算术运算符*、/的优先级高于+、-的优先级。
(3)运算符的结合性当一个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。运算符的结合性分为左结合和右结合两种。在C语言中,运算对象先与左面的运算符结合称左结合,如+、-、*、/的结合方向为自左向右;运算对象先与右面的运算符结合称右结合,如单目运算符++、--的结合方向是自右向左。实际上,只有单目运算符、三目运算符和赋值运算符的是右结合的,其他都是左结合。2.4.2算术运算符及算术表达式1.基本算术运算符:基本算术运算符包括:+、-、*、/、%。2.自增、自减运算符:自增(++)和自减(--)运算符是单目运算符,其功能是使变量的值增1或减1。它们既可以作前缀运算符,如++i,--i;也可以作后缀运算符,如i++,i--。作为前缀和后缀运算符的处理方法是不同的:
++i,--i在使用i之前,先使i的值加(减)1。若i值为5,x=++i,则x为6,i值为6。
i++,i--在使用i之后,使i的值加(减)1。若i值为5,x=i++,则x值为5,i值为6。
自增或自减运算符在使用时,需要注意以下几点:(1)运算符的操作对象,只能是变量,而不能作用于常量或表达式。(2)运算符的优先级高于基本算术运算符,结合性是“自右向左”右 结合。
3.算术表达式算术表达式:用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子,称为算术表达式。运算对象可以是常量、变量、函数等。说明:
(1)C语言算术表达式的乘号(*)不能省略。例如:数学式,相应的C表达式应该写成:x*y。
(2)C语言表达式中只能出现字符集允许的字符。例如:数学上求圆的面积s=π*r^2,相应的C表达式应该写成:PI*r*r(其中PI是已经声明的符号常量)。
(3)C语言算术表达式只使用圆括号改变运算的优先顺序(不能用{}和[])。可以使用多层圆括号,此时左右括号必须配对,运算时从内层括号开始,由内向外依次计算表达式的值。例2-7算术运算符表达式的使用。程序代码如下:
#include<stdio.h>voidmain(){
inta,b,c,x1,x2,x3,x4; floatd,e,y1,y2; d=6.4; e=9.6; y1=d+e/d-e; y2=(d+e)/(d-e); printf("y1=%f,y2=%f\n",y1,y2); a=5; b=2; c=6; x1=a+b*c-a/b+b%c*a; x2=(a+b)*c-(a/b)+(b%c)*a; x3=a%b; x4=a/b; printf("x1=%d,x2=%d,x3=%d,x4=%d\n",x1,x2,x3,x4);}
例2-7中,y1和y2,x1和x2均使用相同的运算符和变量,但在程序的可读性上y1,x1明显不如y2,x2,因此在平时编写代码时要尽量减少复杂表达式的使用,如果实在需要,可以添加括号,使程序具有更好的可读性。当然加了括号会改变表达式的计算顺序,从而改变表达式的结果。上例x4的值可以看到,如果运算符“/”两边都是整型时,其结果也是整型。例2-8自增自减的作用。程序代码如下:
#include<stdio.h>voidmain(){
int
i,j; floatx,y,y1,y2,y3; i=5; x=3.6; j=++i; /*前缀*/ y=++x; /*前缀*/
printf("i=%d,j=%d,x=%f,y=%f\n",i,j,x,y); j=i++; /*后缀*/ y=x++; /*后缀*/
printf("i=%d,j=%d,x=%f,y=%f\n",i,j,x,y); i=5,x=3.5; y1=++i+x*i+++i;/*复杂表达式1*/ printf("y1=%f\n",y1); i=5,x=3.5; y2=(++i)+x*i+(++i);/*复杂表达式2*/ printf("y2=%f\n",y2); i=5,x=3.5; y3=(++i)+x*(i++)+i;/*复杂表达式3*/ printf("y3=%f\n",y3);}
例2-8中,j和y的值可以看出自增自减运算中前缀和后缀的区别,前缀是先加减后赋值,而后缀是先赋值后加减。从y1,y2,y3可知,y1和y3的计算顺序是相同的,为什么y1和y2的值不同呢,即x*i+++i的结合顺序是x*(i++)+i而不是x*i+(++i),这是因为++、--运行算的优先级高于+运算符,因此前面两个“+”结合在一起,成为“(++)+”的形式。需要说明的是,这种形式在实际应用中尽量不要使用,因为程序的可读性不好。2.4.3关系运算符及关系表达式
1.关系运算符关系运算是逻辑运算中比较简单的一种。所谓“关系运算”实际上是“比较运算”。关系运算符是对两个值进行比较运算,判定两个数据是否符合给定的关系。若符合给定的关系,则关系成立,取真值(1),否则取假值(0)。
C语言中的关系运算符有6种,按优先级分为两组:优先级6:>(大于),<(小于),>=(大于等于),<=(小于等于)
优先级7:==(等于),!=(不等于)
2.关系表达式用关系运算符将两个表达式连接起来的符合C语法规则的式子称为关系表达式。关系表达式的运算结果是一个逻辑值,即“真”或“假”。在C语言中关系运算结果为真,以整数1表示,结果为假,以整数0表示。例如:有intx=2,y=3;
则有:表达式表达式的值
x==y0
x+y>50x!=51
关系运算符的优先级低于算术运算符的优先级,且等于(==)和不等于(!=)的优先级低于另外四种运算符的优先级。关系运算符的结合性是左结合性。例2-9关系运算表达式。程序代码如下:
#include<stdio.h>voidmain(){
int
a,b,c,d,x,y; a=3,b=2,c=1,d=0; x=(a>b); y=(a>b>c);
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
printf("a>b的值为%d\na>b>c的值为%d\n",x,y); x=(d==c); y=(d=c);
printf("d==c的值为%d\nd=c的值为%d\n",x,y);}
例2-9中,a>b即3>2结果为真,其值为1。a>b>c,即3>2>1的值却为0,因为“>”运算符的结合方向是自左向右,先执行“a>b”得1,再执行“1>c”得0。“d==c”的值为0,而“d=c”的值为1,因为判断是否等于要用“==”运算符,而“=”是赋值运算符,表示将d的值赋值给c,得到1,赋给y。2.4.4逻辑运算符及逻辑表达式1.逻辑运算符运算符运算名称运算法则结合性&&逻辑与当两个操作对象都为“真”时,运算结果为“真”,其他情况运算结果都为“假”。左结合||逻辑或只有当两个操作对象都为“假”,运算结果才为“假”,其他情况运算结果都为“真”。左结合!逻辑非当操作对象为“真”时,运算结果为“假”;当操作对象为“假”时,运算结果为“真”。右结合2.逻辑表达式
逻辑表达式中如果包含多个逻辑运算符,如:!a&&b||x>y&&c
(1)!(非)→&&(与)→||(或),即“!”为三者中最高的。(2)逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符。逻辑运算的真值表如下ab!a!ba&&ba||b0011000非01001非000101非0非000112.4.5条件运算符及条件表达式
1.条件运算符
条件运算符是“?:”,是C语言中唯一的三目运算符。可以代替if--else语句的完成简单的条件求值。
2.条件表达式 由条件运算符将两个表达式连接起来的符合C语法规则的式子称为条件表达式。 条件表达式的一般构成形式:
表达式1?表达式2:表达式3
运算过程:先计算表达式1的值,若为“真”,则计算表达式2的值,整个条件表达式的值就是表达式2的值;若表达式1的值为“假”,则计算表达式3的值,整个条件表达式的值就是表达式3的值。
思考:max=(x>y)?x:y;max=?
例2-11大小写字母转换。输入一个字符,如果是大写字母,则转换成小写字母,如果是小写字母,则转换成大写字母,其他字符不变。 程序代码如下:
#include<stdio.h> voidmain() { charch,c1,c2,c3;
scanf("%c",&ch); c1=(ch>='A'&&ch<='Z')?ch+32:ch; /*只做大写转小写*/ c2=(ch>='a'&&ch<='z')?ch-32:ch;/*只做小写转大小*/
/*大写转小写,小写转大写*/
c3=(ch>='A'&&ch<='Z')?ch+32:((ch>='a'&&ch<='z')?ch-32:ch); printf("%c,%c,%c\n",c1,c2,c3); }
分析以上程序,运行并观察运行结果。2.4.6赋值运算符及赋值表达式
1.赋值运算符 C语言的赋值运算符为“=”,其作用是将赋值运算符右侧的表达式的值赋给其左侧的变量。例如:
x=4; /*将4赋给变量x*/y=2*x*x+4*a;/*将表达式之值赋给变量y*/
2.赋值表达式
由赋值运算符将一个变量和一个表达式连接起来的式子称作赋值表达式。 它的一般形式为:
变量=表达式
运算过程:先计算赋值运算符右侧的“表达式”的值,将赋值运算符右侧“表达式”的值赋值给左侧的变量,整个赋值表达式的值就是被赋值变量的值。 例如:a=b=c=5;则a=5,b=5,c=5。3.复合赋值运算符及其表达式
C语言允许在赋值运算符“=”之前加上其他运算符,构成复合运算符。
C语言可使用的复合赋值运算符有10种。它们是:
+=、-=、*=、/=、%=(与算术运算符组合)
<<=、>>= (与位移运算符组合)
&=、∧=、|= (与位逻辑运算符组合) 复合赋值表达式的一般形式为:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 郑州西亚斯学院《学前儿童社会教育》2023-2024学年第一学期期末试卷
- 郑州西亚斯学院《新媒体项目课程一》2023-2024学年第一学期期末试卷
- 郑州西亚斯学院《外国文学》2023-2024学年第一学期期末试卷
- 郑州西亚斯学院《税收理论与实务》2023-2024学年第一学期期末试卷
- 个性化定制服装销售合同
- 房屋建筑安全合同范本
- 银行无担保贷款合同协议书
- 2024年度大豆购货协议书
- 消防安全联动协议
- 广告印刷委托协议书
- 港口项目商业计划书
- 皮带机基础知识培训讲义
- 小学六年级数学100道题解分数方程
- 保洁服务应急响应能力预案
- 红外耳温计黑体校准规范
- 危重症患者护理与评估
- 危险化学品仓储智能化管理系统
- 消化内镜健康宣教课件
- 铁道运输职业生涯规划书
- 天津美术馆分析报告
- 《PLC技术基础、PLC技术及应用》期末考试B卷
评论
0/150
提交评论