版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、重点重点难点难点一、基本思想:将一个大的程序按功能分割成一些小模块一、基本思想:将一个大的程序按功能分割成一些小模块二、特点:二、特点:a. 各模块相对独立、功能单一、结构清晰、接口简单、容易各模块相对独立、功能单一、结构清晰、接口简单、容易理解理解b. 控制了程序设计的复杂性:每个模块可以独立设计算法,控制了程序设计的复杂性:每个模块可以独立设计算法,单独编写和测试单独编写和测试c. 提高元件的可靠性:一个模块中的错误不易扩散和蔓延到提高元件的可靠性:一个模块中的错误不易扩散和蔓延到其它模块其它模块d. 缩短开发周期:可同时进行集体性开发缩短开发周期:可同时进行集体性开发e. 避免程序开发的
2、重复劳动避免程序开发的重复劳动f. 易于维护和功能扩充易于维护和功能扩充三、开发方法三、开发方法: 自上向下自上向下,逐步分解,分而治之逐步分解,分而治之&一个一个C C程序程序总总由一个由一个mainmain函数和若干个子函数构成;函数和若干个子函数构成;&C C程序执行总是从程序执行总是从mainmain函数开始,调用其他函数开始,调用其他子子函数函数后回到后回到mainmain函数,在函数,在mainmain函数中结束整个程序的函数中结束整个程序的运行。运行。&子子函数不能嵌套定义函数不能嵌套定义, ,可以可以互相互相调用调用。但不能调用。但不能调用mainmai
3、n函数。函数。&一个一个C C程序由一个或多个源文件组成;程序由一个或多个源文件组成;一个源文件一个源文件由一个或多个函数组成,它是一个独立编译单元。由一个或多个函数组成,它是一个独立编译单元。四四函数分类函数分类a.从用户角度从用户角度用户自定义函数用户自定义函数标准函数(库函数):由系统提供标准函数(库函数):由系统提供b.从函数形式从函数形式无参函数无参函数 void main(void)有参函数有参函数 int max(int a, int b)无参数传递无参数传递有参数传递有参数传递使用使用库函数库函数应注意:应注意:1、函数功能、类别、函数功能、类别2、函数参数的数目和顺序
4、,及各参数意义和类型、函数参数的数目和顺序,及各参数意义和类型3、函数返回值意义和类型、函数返回值意义和类型4、需要使用的包含文件、需要使用的包含文件形参列表函数体type functionname(type var,)说明部分说明部分语句部分语句部分一一. . 定义:定义:(现代风格)(现代风格)有参函数(现代风格)有参函数(现代风格)int max(int x, int y) int z; z=xy?x:y; return(z);无参函数无参函数(现代风格)(现代风格)void printstar(void ) printf(“*n”);合法标识符1. 函数类型函数类型:存储类型数据类型存
5、储类型数据类型2. 存储类型:存储类型:extern(缺省缺省)、static3. 数据类型:函数返回值类型,缺省数据类型:函数返回值类型,缺省int型,无返回值型,无返回值void4. 形参不得重名或重复说明,彼此之间用,分隔,形参类形参不得重名或重复说明,彼此之间用,分隔,形参类型应与实参类型一致,个数相同型应与实参类型一致,个数相同二二. 函数说明:函数说明: type functionname( type var,); 告诉编译系统函数类型、参数个数及类型,以便检验告诉编译系统函数类型、参数个数及类型,以便检验说明:说明: 1. 库函数通过库函数通过 #include 形式说明;形式说
6、明; 2. UDF用户自定义函数在调用前必须说明,除非用户自定义函数在调用前必须说明,除非 a. 函数返回值是函数返回值是int /char/void型型(系统自动按系统自动按int型处理型处理) b. 被调用函数定义出现在调用函数之前被调用函数定义出现在调用函数之前 c. 已在程序开始已在程序开始/函数外部函数外部/调用之前加以说明。调用之前加以说明。#include void main() float add(float,float); /*function declaration*/ float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b);
7、 printf(sum is %f,c);float add(float x, float y) float z; z=x+y; return(z);三三. 函数定义和函数说明的比较函数定义和函数说明的比较 1. 函数定义是一个完整的、独立的函数单位函数定义是一个完整的、独立的函数单位 2. 函数说明仅包含函数类型、参数个数及类型,不包含函数体函数说明仅包含函数类型、参数个数及类型,不包含函数体四四. 选用函数的原则选用函数的原则 1. 简化简化main函数,增加它的可读性;函数,增加它的可读性; 2. 程序中存在若干相同或变量不同但算法、语句排列相同程序中存在若干相同或变量不同但算法、语句排
8、列相同的语句组;的语句组; 3. 程序中需要选择、跳转时;程序中需要选择、跳转时; 4. 程序较长,不易分析、调试时。程序较长,不易分析、调试时。五五. . 函数调用函数调用函数名函数名(实参表列实参表列);说明:说明:1. 实参与形参个数相等,类型一致,按顺序一一对应实参与形参个数相等,类型一致,按顺序一一对应2. 实参必须有确定值,一般按自右向左顺序求值。实参必须有确定值,一般按自右向左顺序求值。调用方式小结调用方式小结:1. 语句调用:语句调用: printf(“Hello,World!n”);2. 表达式调用:表达式调用: m=max(a,b)*2;3. 参数调用:参数调用: m=ma
9、x(a,max(b,c);形式参数:形式参数:定义函数时函数名后括弧中的变量名,简称定义函数时函数名后括弧中的变量名,简称形参形参实际参数:实际参数:调用函数时函数名后括弧中的表达式,简称调用函数时函数名后括弧中的表达式,简称实参实参void main(void ) int a,b,c; scanf (“%d,%d,&a,&b); c=max(a,b); printf(“Max is %d”,c);int max( int x, int y) int z; z=xy? x:y; return(z);形参通知形参通知系统要预系统要预留内存留内存 实参在运行时实参在运行时把值传给形
10、参把值传给形参把函数的结果把函数的结果返回给调用者返回给调用者 形参在函数被调用前不占内存,函数调用时为形参形参在函数被调用前不占内存,函数调用时为形参分配内存;调用结束,内存释放分配内存;调用结束,内存释放; 形参是函数的内部变量,只在函数内部才有意义;形参是函数的内部变量,只在函数内部才有意义; 对每个形参必须指明其名字和数据类型;对每个形参必须指明其名字和数据类型; 实参可以是常量、变量或表达式,并且必须实参可以是常量、变量或表达式,并且必须 有确定的值;有确定的值; 实参个数、类型必须与对应的形参一致;若形参与实参个数、类型必须与对应的形参一致;若形参与实参类型不一致,自动按形参类型转
11、换实参类型不一致,自动按形参类型转换; 实参对形参的数据传递是值传递,即单向传递,实参对形参的数据传递是值传递,即单向传递, 只由实参传递给形参,反之不可。调用结束后,只由实参传递给形参,反之不可。调用结束后, 只有形参单元被释放,实参单元中的值不变。只有形参单元被释放,实参单元中的值不变。关于形参、实参的说明关于形参、实参的说明:一一. 形实结合值传递(赋值调用)形实结合值传递(赋值调用)方式:函数调用时,为形参分配内存,将实参的值复制到形参中;调用方式:函数调用时,为形参分配内存,将实参的值复制到形参中;调用结束,形参被释放,实参维持不变结束,形参被释放,实参维持不变特点:单向传递特点:单
12、向传递 形参与实参占用不同的内存,形参的变化不影响实参形参与实参占用不同的内存,形参的变化不影响实参#include void swap( int a, int b) int tmp; tmp=a; a=b; b=tmp;void main( void ) int a=15, b=5; if(ab) swap(a,b); printf(%d, %dn, a, b );/* The answer is:15, 5*/二二. 地址传递(引用调用)地址传递(引用调用)方式:函数调用时,将数据的存储地址作为实参复制给形参方式:函数调用时,将数据的存储地址作为实参复制给形参特点:特点: “双向双向”传递
13、传递 实参和形参必须是地址常量或变量,均指向同一个的实参和形参必须是地址常量或变量,均指向同一个的存储单元,数据可同步更新存储单元,数据可同步更新#include void swap( int *a, int *b) int tmp; tmp=*a; *a=*b; *b=tmp;void main( void ) int a=15, b=5; if(ab) swap(&a,&b); printf(%d, %dn, a, b );/* The answer is:5, 15*/数组元素作函数实参数组元素作函数实参值传递值传递数组名作函数参数数组名作函数参数地址传递地址传递形参与实
14、参均为地址常量或地址变量,类型应一致形参与实参均为地址常量或地址变量,类型应一致形参数组的形参数组的size1可缺省,由实参指定(动态数组)可缺省,由实参指定(动态数组)void sort(int a,int n) int a10; sort(a,10);void sort(int *a,int n) void sort(int a,int n)实参用数组名形参用数组定义三三. 函数的返回值函数的返回值 形式:形式: return(表达式表达式); return 表达式表达式;功能:从被调用函数返回调用功能:从被调用函数返回调用函数,同时把返值带给调用函函数,同时把返值带给调用函数数说明:说明
15、:1. 函数中可有多个函数中可有多个return语句,语句,但只能返回一个值但只能返回一个值2. 若函数与若函数与return表达式的类表达式的类型不一致,按前者为准自动转型不一致,按前者为准自动转换换3. void型函数无型函数无return语句,语句,遇遇时自动返回调用函数时自动返回调用函数/ Program: EG06-07.c/ Description: 试写一函数实现两试写一函数实现两个字符串的比较。个字符串的比较。#include int strcmp(char *s1,char *s2) while(*s1&*s2&*s1=*s2) s1+,s2+; return
16、 *s1-*s2;void main( void ) char s180,s280; gets(s1); gets(s2); printf(strcmp(s1,s2)=%dn, strcmp(s1,s2);/ Program: EG06-09.c/ Description: bubble sort#include #define SIZE 11int aSIZE= 0, 2, 9, 6, 8, 7, 4, 5, 3, 1, 0 ;void sort( void ) int i, j, tmp; for( i=1; iSIZE; i+ ) for( j=1; jaj+1) tmp=aj, aj=
17、aj+1, aj+1=tmp;void main( void )四四. 外部变量外部变量功能:一经说明,可在随后的所有函数中引用。功能:一经说明,可在随后的所有函数中引用。说明:一般不建议使用说明:一般不建议使用 int i; printf(Normal numbers: ); for( i=1; iSIZE; i+ ) printf( %d , ai ); printf(n); sort(); printf(Sorted numbers: ); for( i=1; iSIZE; i+ ) printf( %d , ai ); printf(n);一一嵌套调用嵌套调用C规定:函数定义不可嵌套,
18、但可以嵌套调用函数规定:函数定义不可嵌套,但可以嵌套调用函数1(0,1)!(1)!(1)nnnnnint factorial(int n) if(n0) printf(n0,input error); return -1; if(n=0|n=1) return 1; return factorial(n-1)*n;二二. 递归调用递归调用 a. 定义:函数直接或间定义:函数直接或间 接的调用了自身接的调用了自身b. 优点:程序清晰、简洁,可读性强,代码紧凑优点:程序清晰、简洁,可读性强,代码紧凑c. 缺点:速度缺点:速度 慢、占用内存大,必须收敛慢、占用内存大,必须收敛 每调用函数一次,在内存
19、堆栈区分配空间,用于存放函数变量、每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等,所以递归次数过多,可能引起堆栈溢出返回值等,所以递归次数过多,可能引起堆栈溢出Hanoi塔塔ABC/ Program: EG06-13.c/ Description: 递归法求解递归法求解Hanoi塔问题塔问题#include void move(int num, char one,char two,char three) if(num=1) printf(%c-%cn, one, three); else move( num-1, one, three, two); printf(%c-%cn
20、, one, three); move( num-1, two, one, three); void main( void ) int Num=4; printf(Step to moving %d diskes:n, Num); move(Num,A,B,C);一一指针函数指针函数语法:类型名语法:类型名 *函数名(形参列表)函数名(形参列表) 返回值:返回某一数据的存储地址返回值:返回某一数据的存储地址存储类型:存储类型:extern、static数据类型:对应数据的数据类型数据类型:对应数据的数据类型,两者类型必须一致两者类型必须一致注:调用函数不能使用地址常量接受指针函数返回值注:调用
21、函数不能使用地址常量接受指针函数返回值 指针函数不能返回局部寿命的数据地址指针函数不能返回局部寿命的数据地址二二函数指针:向函数的指针函数指针:向函数的指针 语法:语法:type (*FuctionPointerName)();stdlib.h:void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *);/ Program: EG06-016.C#include #include #define SIZE 8int comp( void *, void *);void main
22、( void ) int i; int array = 5, 6, 8, 2, 9, 1, 3, 0; qsort(array, SIZE, sizeof(int), comp); for (i = 0; i SIZE; i +) printf(%3d, arrayi); printf(b n);int comp( void *p, void *q) return (*(int *)p - *(int *)q);6.7 6.7 局部变量和全局变量局部变量和全局变量 一一. 局部变量局部变量/内部变量内部变量定义:在函数内定义,只在本函数内有效定义:在函数内定义,只在本函数内有效说明:说明:1.
23、 局部变量的存储类型:局部变量的存储类型:auto(默认)(默认) register static2. 不同函数中同名局部变量,占不同内存单元,互不干扰不同函数中同名局部变量,占不同内存单元,互不干扰3. 形参属于局部变量形参属于局部变量4.复合语句中也可定义局部变量,其作用域只在复合语句中也可定义局部变量,其作用域只在 复合语句范围内复合语句范围内二二.全局变量全局变量/外部变量外部变量定义:在函数外定义,有效范围从定义变量的位置开始到本文件结束,及有定义:在函数外定义,有效范围从定义变量的位置开始到本文件结束,及有extern说明的其它源文件说明的其它源文件说明:说明:1. 全局变量的存储
24、类型:全局变量的存储类型:extern(默认)(默认) static2. 若外部变量与局部变量同名,则在局部变量的作用范围内,外部变量若外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被屏蔽被屏蔽 定义 说明u次数: 只能1次 可说明多次u位置: 所有函数之外 函数内或函数外u分配内存: 分配内存,可初始化 不分配内存,不可初始化3. 外部变量定义与外部变量说明不同外部变量定义与外部变量说明不同应尽量少使用全局变量,因为:应尽量少使用全局变量,因为:全局变量在程序全部执行过程中占用存储单元全局变量在程序全部执行过程中占用存储单元降低了函数的通用性、可靠性,可移植性降低了函数的通用性、
25、可靠性,可移植性降低程序清晰性,容易出错降低程序清晰性,容易出错一. 若干概念: 1. 作用域:变量的使用范围(由存储区域和说明的位置决定) 2.可见性:变量可被作用域内语句调用的属性 3.存在性:变量所分配存储空间的可使用属性 4.存储类型:auto-自动型 register-寄存器型 static-静态型 extern -外部型 5. 静态存储:程序运行期间分配固定存储空间 6. 动态存储:程序运行期间根据需要动态分配存储空间 7. 用户内存: 二二. auto自动型自动型/堆栈型变量堆栈型变量(1)存储在堆栈区)存储在堆栈区/动态存储区。动态存储区。(2)auto型变量在函数体内说明或缺
26、省说型变量在函数体内说明或缺省说明;形参缺省说明。明;形参缺省说明。(3)值的暂时性:进入函数时分配堆栈空)值的暂时性:进入函数时分配堆栈空间,退出函数后,空间自动释放,变量不间,退出函数后,空间自动释放,变量不再存在,不得继续访问。再存在,不得继续访问。(4)auto型变量未初始化时,其值无意义,型变量未初始化时,其值无意义,必须先赋初值再引用。必须先赋初值再引用。(5)作用域局部性,仅限于定义它的模块。)作用域局部性,仅限于定义它的模块。(6)可见性与存在性基本一致,但具有一)可见性与存在性基本一致,但具有一定的独立性(在重名变量的作用域上不可定的独立性(在重名变量的作用域上不可见)。见)
27、。void main( void ) int x; float x=2.5; char x=c; printf(1st x=%cn,x); printf(2nd x=%fn,x); printf(3th x=%dn,x);三三. register寄存器寄存器型变量型变量1. register型变量直接将数值存储在型变量直接将数值存储在CPU的通用寄存器中,程序运行时的通用寄存器中,程序运行时无需读写内存即可使用,高效、便捷。无需读写内存即可使用,高效、便捷。2. register型变量只能在函数体内说明、使用;型变量只能在函数体内说明、使用;3.值的暂时性:值的暂时性: register型变量
28、进入函数时临时分配寄存器,退出函数型变量进入函数时临时分配寄存器,退出函数后,寄存器自动释放,变量不再存在,不得继续访问。后,寄存器自动释放,变量不再存在,不得继续访问。4. 变量未初始化时,其值无意义。必须先赋值再使用变量未初始化时,其值无意义。必须先赋值再使用!5.一些系统的通用寄存器字长有限,一些系统的通用寄存器字长有限,register型变量不能为型变量不能为double, float型。型。 6. 由于由于CPU中的通用寄存器个数有限,中的通用寄存器个数有限,register型变量数目太多会自动型变量数目太多会自动转为转为auto型。型。 7.优化的编译系统自动将使用频繁的变量放在寄
29、存器中,不再需要程序优化的编译系统自动将使用频繁的变量放在寄存器中,不再需要程序员指定谁是员指定谁是register型变量。型变量。四四. static静态静态型变量型变量1. 静态静态型变量存储在型变量存储在静态静态存储区存储区2. 静态静态型变量定义在函数内部时型变量定义在函数内部时局局部静态变量,作用域仅限于函数内部;部静态变量,作用域仅限于函数内部;静态型变量定义在函数外部时静态型变量定义在函数外部时外外部静态变量,作用域限于本源程序文部静态变量,作用域限于本源程序文件件(寿命全局寿命全局);3.值的永久性:一经说明分配存储空间值的永久性:一经说明分配存储空间就一直占用该空间直到程序运
30、行结束;就一直占用该空间直到程序运行结束;4. 变量未初始化时自动赋变量未初始化时自动赋0值值!4. 可见性与存在性不一致;可见性与存在性不一致;5.编译时赋初值(仅一次:每次调用时编译时赋初值(仅一次:每次调用时不再赋初值,保留上次调用结束时的不再赋初值,保留上次调用结束时的值!)值!)/ Program: EG06-20.C/ Description: 打印打印110的阶乘数的阶乘数值。值。#include int fac(int n) static int f=1; return f*=n;void main( void ) int i; for(i=1;iy?x:y; return(z
31、);void main() extern int a,b; printf(max=%d,max(a,b);int a=13,b=-8;运行结果:max=13也可写成extern a,b;静态静态动态动态存储方式存储方式程序整个运行期间程序整个运行期间函数调用开始至结束函数调用开始至结束生存期生存期编译时赋初值,只赋一次编译时赋初值,只赋一次每次函数调用时每次函数调用时赋初值赋初值自动赋初值自动赋初值0 0或空字符或空字符不确定不确定未赋初值未赋初值静态存储区静态存储区动态区动态区存储区存储区寄存器寄存器局部变量局部变量外部变量外部变量作用域作用域定义变量的函数或复合语句内定义变量的函数或复合语
32、句内本文件本文件其它文件其它文件u局部变量默认为局部变量默认为autoauto型型、具有局部寿命、局部可见性具有局部寿命、局部可见性uregisterregister型变量个数受限型变量个数受限, ,且不能为且不能为long, double, floatlong, double, float型型u局部局部staticstatic变量具有全局寿命、局部可见性、可继承性变量具有全局寿命、局部可见性、可继承性uexternextern不是变量定义不是变量定义, ,可扩展外部可扩展外部变量作用域变量作用域register局部局部staticauto外部外部static外部外部存储类别存储类别编译预处理
33、语句:编译预处理语句:C编译系统在对程序进行编译之前要先对程序中一些特殊命令进行编译系统在对程序进行编译之前要先对程序中一些特殊命令进行“预处理预处理”,然后将预处理的结果和源程序一起再进行通常的编译处,然后将预处理的结果和源程序一起再进行通常的编译处理生成目标代码。理生成目标代码。一一. . 预处理功能预处理功能 1. 1. 宏定义宏定义: : #define#define 2. 2. 文件包含文件包含: : #include#include 3. 3. 条件编译:条件编译: #if-#else-#endif#if-#else-#endif二二. . 书写格式:书写格式:1.1. 以以“#”
34、#”打头,一般位于文件开始某行行首;打头,一般位于文件开始某行行首;2.2. 一条预处理语句单独占一行;一条预处理语句单独占一行;3.3. 语句不以语句不以“;”;”结尾。结尾。三三. . 作用:作用: 便于程序调试、移植,提高程序看法效率便于程序调试、移植,提高程序看法效率功能:一个源文件可将另外一个源文件的内容全部包含进来。功能:一个源文件可将另外一个源文件的内容全部包含进来。处理过程:预编译时处理过程:预编译时,用被包含文件的内容取代该预处理命令,用被包含文件的内容取代该预处理命令,再对再对“包含包含”后的文件作一个源文件编译后的文件作一个源文件编译 语法:语法:#include “文件
35、名文件名” #include 或或#include “file2.c”file1.cfile2.cfile1.cfile2.cABA一一. 包含文件的查找方法:包含文件的查找方法:#include “文件名文件名” 先在当前目录中查找,若找不到再到标准目录中查找。先在当前目录中查找,若找不到再到标准目录中查找。#include 直接到标准目录直接到标准目录(Microsoft Visual StudioVC98include)中查找中查找二二被包含文件内容被包含文件内容a.源文件源文件(*.c)b.头文件头文件(*.h)宏定义宏定义数据结构定义数据结构定义函数说明等函数说明等#include
36、“file2.c”file1.cAfile3.cC#include “file3.c”file2.c Bfile1.cAfile3.cfile2.c一、不带参数的宏定义一、不带参数的宏定义作用:用指定标识符(宏名)代表程序中的字符串(宏内容)作用:用指定标识符(宏名)代表程序中的字符串(宏内容)宏替换宏替换(宏展开宏展开):预编译时:预编译时,用宏内容替换宏名用宏内容替换宏名-不作语法检查不作语法检查注:注:1. 引号中的宏名不予置换引号中的宏名不予置换 2. 宏定义常引用括号()以保证替换的正确进行宏定义常引用括号()以保证替换的正确进行 3. 宏名习惯上大写,并宏名习惯上大写,并可引用已定
37、义的宏名可引用已定义的宏名宏名宏名宏内容宏内容无;无; #define #define 标识符标识符 字符串字符串#define PI 3.1415926#define R 3+2void main() printf(“PI*R*R=%fn”,PI*R*R);宏展开:宏展开:printf(“PI*R*R=%fn”, 3.1415926*3+2*3+2);*(3+2)*(3+2)R (3+2)注意替换时不求注意替换时不求值,只是字符串值,只是字符串的原样替换的原样替换二、带参数的宏定义二、带参数的宏定义 #define #define 宏名宏名( (形参列表形参列表) ) 字符串字符串宏展开:形参用实参换,其它字符保留宏展开:形参用实参换,其它字符保留说明:宏体及各形参外一般应加括号()说明:宏体及各形参外一般应加括号()不能加空格不能加空格#define SQUARE (x) x*x void main() int a=2, b=3, c; c=SQUARE (a+b)/PF(a+1); printf(nc=%d ,c);c=a+b*a+b/a+1*a+1;c=(a+b)*(a+b)/(a+1)*(a+1);(x)*(x)c=(a+b)*(a+b)/(a+1)*(a+1);(x)*(x)带参宏带参宏函数函数处理过程处理过程不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年及未来5年中国包装检测仪器行业投资分析及发展战略研究咨询报告
- 2025年冷链冷链绿色包装材料分析报告
- 2025年冷链加工企业碳中和碳捕捉技术应用报告
- 基于增强现实的虚拟现实表演交互系统开发-洞察及研究
- 基层医疗服务价格政策对患者满意度的影响-洞察及研究
- 光伏充电站综合能源系统优化-洞察及研究
- 固态电解质界面结构对性能的影响-洞察及研究
- 小学英语单元测试题库与听力材料
- 公司大型展会参展策划与实施方案
- 内分泌疾病健康教育宣传手册
- 货柜装柜管理办法
- GB/T 19310-2025小艇永久性安装的燃油系统
- 加强客户尽职调查-履行反洗钱工作职责
- 学堂在线 心理学与生活 章节测试答案
- 2025年南京市事业单位教师招聘体育学科专业知识试题
- 腹外疝护理课件
- 2025年云南交投集团招聘笔试备考题库(带答案详解)
- 家庭防火安全培训
- 出庭培训课件
- 2025年智能化实验室建设市场分析报告
- 智慧灌溉系统建设方案
评论
0/150
提交评论