版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序设计基础第八讲 数组、字符串、指针教材:第4版第6章 6.1、6.2、6.6清华大学 郑 莉目录8.1 数组8.2 字符串8.3 指针8.4 小结2数组的概念 数组是具有一定顺序关系的假设干一样类型变量的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。38.1 数组8.1.1 数组的声明与运用 数组的声明48.1 数组类型阐明符 数组名 常量表达式 常量表达式 ;数组名的构成方法与普通变量名一样。例如:int a10; 表示a为整型数组,有10个元素:a0.a9例如: int a53;表示a为整型二维数组,其中第一维有5个下标04,第二维有3个下标02,数组的元素个数为1
2、5,可以用于存放5行3列的整型数据表格。8.1.1 数组的声明与运用(续) 援用必需先声明,后运用。只能逐个援用数组元素,而不能一次援用整个数组例如:a0=a5+a7-a2*3例如:b12=a23/258.1 数组68.1 数组 8.1.1 数组的声明与运用例8-1教材例6-1#include using namespace std;int main() int a10, b10; for(int i = 0; i 10; i+) ai = i * 2 - 1; b10 - i - 1 = ai; for(int i = 0; i 10; i+) cout a i = ai ; cout b
3、I = bi endl; return 0;78.1 数组8.1.2 数组的存储与初始化 一维数组的存储数组元素在内存中依次存放,它们的地址是延续的。例如:a0a1a2a3a4a5a6a7a8a9a数组名字是数组首元素的内存地址。数组名是一个常量,不能被赋值。88.1 数组8.1.2 数组的存储与初始化(续) 一维数组的初始化可以在定义数组的同时赋给初值: 在声明数组时对数组元素赋以初值。例如:static int a10=0,1,2,3,4,5,6,7,8,9; 可以只给一部分元素赋初值。例如:static int a10=0,1,2,3,4; 在对全部数组元素赋初值时,可以不指定数组长度。
4、例如:static int a=0,1,2,3,4,5,6,7,8,998.1 数组8.1.2 数组的存储与初始化(续) 二维数组的存储按行存放例如: float a34;其中数组a的存储顺序为:a0a00 a01 a02 a03a1a10 a11 a12 a13a2a20 a21 a22 a23a可以了解为:a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23108.1 数组8.1.2 数组的存储与初始化(续) 二维数组的初始化 将一切数据写在一个内,按顺序赋值例如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;
5、 分行给二维数组赋初值例如:static int a34 =1,2,3,4,5,6,7,8,9,10,11,12; 可以对部分元素赋初值例如:static int a34=1,0,6,0,0,11;118.1 数组 8.1.3 数组的运用举例例8-2 求Fibonacci数列前20项#include using namespace std;int main() int f20 = 1,1;/初始化第0、1个数 for (int i = 2; i 20; i+) /求第219个数 fi = fi - 2 + fi - 1; for (i=0;i20;i+) /输出,每行5个数 if (i % 5
6、 = 0) cout endl; cout.width(12); /设置输出宽度为12 cout fi; return 0;128.1 数组 8.1.3 数组的运用举例例8-2 (续)运转结果:运转结果:1 11 12 23 35 58 81313212134345555898914414423323337737761061098798715971597258425844181418167656765例8-3 一维数组运用举例循环从键盘读入假设干组选择题答案,计算并输出每组答案的正确率,直到输入ctrl+z为止。每组延续输入5个答案,每个答案可以是a.d。138.1 数组 8.1.3 数组的运
7、用举例例8-3 (续)#include using namespace std;int main() const char KEY = a,c,b,a,d; const int NUM_QUES = 5; char c; int ques = 0, numCorrect = 0; cout Enter the NUM_QUES question tests: endl; while(cin.get(c) if(c != n) if(c = keyques) numCorrect+; cout ; else cout*; ques+; else cout Score static_cast(nu
8、mCorrect)/NUM_QUES*100 %; ques = 0; numCorrect = 0; cout endl; return 0;148.1 数组 8.1.3 数组的运用举例158.1 数组 8.1.3 数组的运用举例例8-3 (续)运转结果:acbba * Score 60%acbad Score 100%abbda * * Score 40%bdcba* Score 0%168.1 数组8.1.4 以数组作为函数参数 数组元素作实参,与单个变量一样。 数组名作参数,形、实参数都应是数组名,类型要一样,传送的是数组首地址。对形参数组的改动会直接影响到实参数组。例8-4教材例6-
9、2运用数组名作为函数参数主函数中初始化一个矩阵并将每个元素都输出,然后调用子函数,分别计算每一行的元素之和,将和直接存放在每行的第一个元素中,前往主函数之后输出各行元素的和。178.1 数组 8.1.4 以数组作为函数参数#include using namespace std;void rowSum(int a4, int nRow) for (int i = 0; i nRow; i+) for(int j = 1(是0吧?; j 4; j+)ai0 += aij; int main() /主函数int table34 = 1, 2, 3, 4, 2, 3, 4, 5, 3, 4, 5,
10、6; /声明并初始化数组18例8-4 (续)8.1 数组 8.1.4 以数组作为函数参数 /输出数组元素for (int i = 0; i 3; i+)for (int j = 0; j 4; j+)cout tableij ;cout endl;rowSum(table, 3);/调用子函数,计算各行和 /输出计算结果for (int i = 0; i 3; i+)cout Sum of row i is tablei0 endl;return 0;19例8-4 (续)8.1 数组 8.1.4 以数组作为函数参数20例8-4 (续)运转结果:1 2 3 42 3 4 53 4 5 6Sum
11、of row 0 is 10Sum of row 1 is 14Sum of row 2 is 188.1 数组 8.1.4 数组作为函数参数218.1 数组8.1.5 对象数组 声明: 类名 数组名元素个数; 访问方法: 经过下标访问 数组名下标.成员名22对象数组初始化 数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。 经过初始化列表赋值。 例:Point a2=Point(1,2),Point(3,4); 假设没有为数组元素指定显式初始值,数组元素便运用默许值初始化调用缺省构造函数。8.1 数组 8.1.5 对象数组23数组元素所属类的构造函数 不声明构造函数,那么采用
12、缺省构造函数。 各元素对象的初值要求为一样的值时,可以声明具有默许形参值的构造函数。 各元素对象的初值要求为不同的值时,需求声明带形参的构造函数。 当数组中每一个对象被删除时,系统都要调用一次析构函数。8.1 数组 8.1.4 对象数组24例8-5教材例6-4 对象数组运用举例/Point.h#ifndef _POINT_H#define _POINT_Hclass Point /类的定义public:/外部接口Point();Point(int x, int y);Point();void move(int newX,int newY);int getX() const return x;
13、int getY() const return y; static void showCount();/静态函数成员private:/私有数据成员int x, y;#endif/_POINT_H8.1 数组 8.1.4 对象数组25例8-5 (续)/Point.cpp#include #include Point.husing namespace std;Point:Point() x = y = 0;cout Default Constructor called. endl;Point:Point(int x, int y) : x(x), y(y) cout Constructor cal
14、led. endl;Point:Point() cout Destructor called. endl;void Point:move(int newX,int newY) cout Moving the point to ( newX , newY ) endl;x = newX;y = newY;8.1 数组 8.1.4 对象数组26例8-5 (续)/6-3.cpp#include Point.h#include using namespace std;int main() cout Entering main. endl;Point a2;for(int i = 0; i 2; i+)
15、ai.move(i + 10, i + 20);cout Exiting main. endl;return 0;8.1 数组 8.1.4 对象数组27例8-5 (续)运转结果:Entering main.Default Constructor called.Default Constructor called.Moving the point to (10, 20)Moving the point to (11, 21)Exiting main.Destructor called.Destructor called.8.1 数组 8.1.4 对象数组288.2 字符串8.2.1 用字符数组存
16、储和处置字符串 字符串常量例:program 各字符延续、顺序存放,每个字符占一个字节,以0结尾,相当于一个隐含创建的字符常量数组 “program出如今表达式中,表示这一char数组的首地址 首地址可以赋给char常量指针: const char *STRING1 = program; 字符串变量 可以显式创建字符数组来表示字符串变量,例如,以下三条语句具有等价的作用: char str8 = p, r, o, g, r, a, m, 0 ; char str8 = program; char str = program;298.2 字符串 8.2.1 用字符数组存储和处置字符串用字符数组表
17、示字符串的缺陷 用字符数组表示字符串的缺陷 执行衔接、拷贝、比较等操作,都需求显式调用库函数,很费事 当字符串长度很不确定时,需求用new动态创建字符数组,最后要用delete释放,很繁琐 字符串实践长度大于为它分配的空间时,会产生数组下标越界的错误 处理方法 运用字符串类string表示字符串 string实践上是对字符数组操作的封装308.2 字符串8.2.2 string类 常用构造函数 string(); /缺省构造函数,建立一个长度为0的串 string(const char *s); /用指针s所指向的字符串常量初始化string类的对象 string(const string&
18、rhs); /拷贝构造函数 例: string s1; /建立一个空字符串 string s2 = “abc; /用常量建立一个初值为abc的字符串 string s3 = s2;/执行拷贝构造函数,用s2的值作为s3的初值318.2 字符串8.2.2 string类(续) 常用操作符 s + t 将串s和t衔接成一个新串 s = t 用t更新s s = t判别s与t能否相等 s != t判别s与t能否不等 s t 判别s能否小于t按字典顺序比较 s t 判别s能否大于t 按字典顺序比较 s = t判别s能否大于或等于t 按字典顺序比较 si 访问串中下标为i的字符 例: string s1
19、= abc, s2 = def; string s3 = s1 + s2;/结果是abcdef bool s4 = (s1 s2);/结果是true char s5 = s21;/结果是e例8-6教材例6-23 string类运用举例32#include #include using namespace std;/根据value的值输出true或false,title为提示文字inline void test(const char *title, bool value) cout title returns (value ? true : false) endl;8.2 字符串 8.2.2 s
20、tring类例8-6 (续)33int main() string s1 = DEF;cout s1 is s1 endl;string s2;cout s2;cout length of s2: s2.length() endl;/比较运算符的测试test(s1 = ABC, s1 = ABC); test(DEF = s1, DEF = s1);/衔接运算符的测试s2 += s1;cout s2 = s2 + s1: s2 endl;cout length of s2: s2.length() 操作符输入字符串,会以空格作为分隔符,空格后的内容会在下一回输入时被读取 用string头文件中
21、的getline可以输入整行字符串,例如: getline(cin, s2); 以其它字符作为分隔符输入字符串 输入字符串时,可以运用其它分隔符作为字符串终了的标志例如逗号、分号 把分隔符作为getline的第3个参数即可,例如: getline(cin, s2, ,);8.2 字符串 8.2.2 string类例8-7教材例6-24 用getline输入字符串35include #include using namespace std;int main() for (int i = 0; i 2; i+)string city, state;getline(cin, city, ,);get
22、line(cin, state);cout City: city “ State: state endl;return 0;8.2 字符串 8.2.2 string类运转结果:Beijing,ChinaCity: Beijing State: ChinaSan Francisco,the United StatesCity: San Francisco State: the United States8.3.1 内存空间的访问方式 内存空间的访问方式 经过变量名访问 经过地址访问368.3 指针8.3.2 指针变量的声明 概念 指针:内存地址,用于间接访问内存单元 指针变量:用于存放地址的变量
23、 声明 例:static int i; static int *ptr = &i; 援用 例1:i = 3; 例2:*ptr = 3;378.3 指针指向整型变量的指针20003ptr*ptri2000内存用户数据区变量 i变量 j变量 ptr3620002000201930108.3.3 与地址相关的运算“*和“& 地址运算符:& 例:int var; 那么 &var 表示变量 var 在内存中的起始地址388.3 指针8.3.4 指针的赋值 指针变量的初始化 语法方式存储类型 数据类型 *指针名初始地址; 例:int *pa = &a; 本卷须知 用变量地址作为初值时,该变量必需在指针初始
24、化之前已声明过,且变量类型应与指针类型一致。 可以用一个已赋初值的指针去初始化另一个指针变量。 不要用一个内部 auto 变量去初始化 static 指针。398.3 指针指针变量的赋值运算指针名指针名= =地址地址“地址中存放的数据类型与指针类型必需相符。地址中存放的数据类型与指针类型必需相符。向指针变量赋的值必需是地址常量或变量,不能是向指针变量赋的值必需是地址常量或变量,不能是普通整数。但可以赋值为整数普通整数。但可以赋值为整数0 0,表示空指针。,表示空指针。指针的类型是它所指向变量的类型,而不是指针本指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值
25、都是身数据值的类型,任何一个指针本身的数据值都是unsigned long intunsigned long int型。型。允许声明指向允许声明指向 void void 类型的指针。该指针可以被赋类型的指针。该指针可以被赋予任何类型对象的地址。予任何类型对象的地址。例:例: void void * *general; general; 408.3 指针 8.3.4 指针的赋值例8-8教材例6-5指针的声明、赋值与运用#include using namespace std;int main() int i;/定义int型数iint *ptr = &i;/取i的地址赋给ptri = 10;/in
26、t型数赋初值cout i = i endl;/输出int型数的值cout *ptr = *ptr endl;/输出int型指针所指地址的内容return 0;418.3 指针 8.3.4 指针的赋值运转结果:i = 10*ptr = 10例8-9教材例6-6 void类型指针的运用#include using namespace std;int main() /!void voidObject; 错,不能声明void类型的变量void *pv;/对,可以声明void类型的指针int i = 5;pv = &i;/void类型指针指向整型变量int *pint = static_cast(pv)
27、; /void类型指针赋值给int类型指针cout *pint = *pint endl;return 0; 428.3 指针 8.3.4 指针的赋值指向常量的指针 不能经过指针来改动所指对象的值,但指针本身可以改动,可以指向另外的对象。 例:int a;const int *p1 = &a; /p1是指向常量的指针int b;p1 = &b;/正确,p1本身的值可以改动*p1 = 1;/编译时出错,不能经过p1改动所指的对象438.3 指针 8.3.4 指针的赋值指针类型的常量 假设声明指针常量,那么指针本身的值不能被改动。 例:int a;int * const p2 = &a; p2 =
28、 &b;/错误,p2是指针常量,值不能改动448.3 指针 8.3.4 指针的赋值8.3.5 指针运算 指针变量的算术运算 指针变量的关系运算458.3 指针指针变量的算术运算 指针与整数的加减运算 指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。 这种运算的结果值取决于指针指向的数据类型。 p1n1等价于*(p1 + n1) 指针加一,减一运算 指向下一个或前一个数据。 例如:y=*px+ 相当于 y=*(px+) (*和+优先级一样,自右向左运算)468.3 指针 8.3.5 指针运算papa-2pa-1pa+1pa+2pa+3*(pa-2)或pa-2*pa或pa
29、0*(pa+1)或pa1*(pa+2)或pa2*(pa+3)或pa3*(pa-1)或pa-1short *pa478.3 指针 8.3.5 指针运算pb-1pbpb+1pb+2*(pb-1)或pb-1*pb或pb0*(pb+1)或pb1*(pb+2)或pb2long *pb488.3 指针 8.3.5 指针运算指针变量的关系运算 关系运算 指向一样类型数据的指针之间可以进展各种关系运算。 指向不同数据类型的指针,以及指针与普通整数变量之间的关系运算是无意义的。 指针可以和零之间进展等于或不等于的关系运算。 例如:p=0或p!=0 赋值运算 向指针变量赋的值必需是地址常量或变量,不能是普通整数。
30、但可以赋值为整数0,表示空指针。498.3 指针 8.3.5 指针运算8.3.6 用指针处置数组元素 声明与赋值 例:int a10, *pa; pa=&a0; 或 pa=a; 经过指针援用数组元素 经过上述声明及赋值后: *pa就是a0,*(pa+1)就是a1,. ,*(pa+i)就是ai. ai, *(pa+i), *(a+i), pai都是等效的。 不能写 a+,由于a是数组首地址是常量。508.3 指针例8-10教材例6-7516.2 指针 6.2.6 用指针处置数组元素设有一个int型数组a,有10个元素。用三种方法输出各元素:运用数组名和下标运用数组名和指针运算运用指针变量例8-1
31、0 (续) 运用数组名和下标526.2 指针 6.2.6 用指针处置数组元素#include using namespace std;int main() int a10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ;for (int i = 0; i 10; i+)cout ai ;cout endl;return 0;例8-10 (续) 运用数组名指针运算536.2 指针 6.2.6 用指针处置数组元素#include using namespace std;int main() int a10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ;for (i
32、nt i = 0; i 10; i+)cout *(a+i) ;cout endl;return 0;例8-10 (续) 运用指针变量546.2 指针 6.2.6 用指针处置数组元素#include using namespace std;int main() int a10 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ;for (int *p = a; p (a + 10); p+)cout *p ;cout endl;return 0;8.3.7 指针数组 数组的元素是指针型 例:Point *pa2;由pa0,pa1两个指针组成 558.3 指针例8-11教材例6-8利
33、用指针数组存放单位矩阵568.3 指针 8.3.7 指针数组#include using namespace std;int main() int line1 = 1, 0, 0 ;/矩阵的第一行int line2 = 0, 1, 0 ;/矩阵的第二行int line3 = 0, 0, 1 ;/矩阵的第三行/定义整型指针数组并初始化int *pLine3 = line1, line2, line3 ;例8-11(续)578.3 指针 8.3.7 指针数组cout Matrix test: endl; /输出单位矩阵for (int i = 0; i 3; i+) for (int j = 0;
34、 j 3; j+) cout pLineij ; cout endl;return 0;输出结果为:Matrix test:1,0,00,1,00,0,1例8-12教材例6-9 二维数组举例588.3 指针 8.3.7 指针数组#include using namespace std;int main() int array233= 11, 12, 13 , 21, 22, 23 , 31, 32, 33 ; for(int i = 0; i 3; i+) for(int j = 0; j 3; j+) cout *(*(array2 + i) + j) ;/逐个输出二维数组第i行元素值 co
35、ut endl; return 0;59例8-12 (续)运转结果:11 12 1321 22 2331 32 338.3 指针 8.3.7 指针数组60指针数组 vs 二维数组8.3 指针 8.3.7 指针数组pLine0 pLine1 pLine2(a) 指针数组array20array21array22array2二维数组pLine8.3.8 用指针作为函数参数 以地址方式传送数据,可以用来前往函数处置结果。 实参是数组名时形参可以是指针。618.3 指针例8-13教材例6-10628.3 指针 8.3.8 用指针作为函数参数标题:读入三个浮点数,将整数部分和小数部分分别输出#inclu
36、de using namespace std;void splitFloat(float x, int *intPart, float *fracPart) /取x的整数部分 *intPart = static_cast(x); /取x的小数部分 *fracPart = x - *intPart;例8-13 (续)638.3 指针 8.3.8 用指针作为函数参数int main() cout Enter 3 float point numbers: endl; for(int i = 0; i x; splitFloat(x, &n, &f);/变量地址作为实参 cout Integer Pa
37、rt = n Fraction Part = f endl; return 0;64例8-13 (续)运转结果:Enter 3 floating point numbers 4.7Integer Part = 4 Fraction Part = 0.78.913Integer Part = 8 Fraction Part = 0.913-4.7518Integer Part = -4 Fraction Part = -0.75188.3 指针 8.3.8 用指针作为函数参数例8-14 输出数组元素的内容和地址658.3 指针 8.3.8 用指针作为函数参数#include #include u
38、sing namespace std;void arrayPtr(long *p, int n) cout In func, address of array is p endl;cout Accessing array using pointers endl;for (int i = 0; i n; i+) cout Address for index i is p + i; cout Value is *(p + i) endl;例8-14 (续)668.3 指针 8.3.8 用指针作为函数参数int main() long list5=50, 60, 70, 80, 90;cout In
39、 main, address of array is list endl;cout endl; arrayPtr(list,5);return 0;67例8-14 (续)运转结果:In main, address of array is 0012FF50In func, address of array is 0012FF50Accessing array using pointersAddress for index 0 is 0012FF50 Value is 50Address for index 1 is 0012FF54 Value is 60Address for index 2
40、is 0012FF58 Value is 70Address for index 3 is 0012FF5C Value is 80Address for index 4 is 0012FF60 Value is 908.3 指针 8.3.8 用指针作为函数参数例8-15 指向常量的指针做形参688.3 指针 8.3.8 用指针作为函数参数#includeusing namespace std;const int N = 6;void print(const int *p, int n);int main() int arrayN; for (int i = 0; i arrayi; prin
41、t(array, N); return 0;void print(const int *p, int n) cout *p; for (int i = 1; i n; i+) cout , *(p+i); cout endl;8.3.9 指针型函数 当函数的前往值是地址时,该函数就是指针形函数。 声明方式存储类型 数据类型 *函数名()698.3 指针8.3.10 指向函数的指针 声明方式存储类型 数据类型 (*函数指针名)(); 含义: 数据指针指向数据存储区,而函数指针指向的是程序代码存储区。708.3 指针例8-16教材例6-11 函数指针718.3 指针 8.3.10 指向函数的指针#
42、include using namespace std;void printStuff(float) cout This is the print stuff function. endl;void printMessage(float data) cout The data to be listed is data endl;void printFloat(float data) cout The data to be printed is data 成员名ptr-getx() 相当于 (*ptr).getx();748.3 指针例8-17教材例6-12运用指针来访问Point类的成员/6_
43、12.cpp#include using namespace std;class Point /类的定义public:/外部接口Point(int x = 0, int y = 0) : x(x), y(y) /构造函数int getX() const return x; /前往xint getY() const return y; /前往yprivate:/私有数据int x, y; 758.3 指针 8.3.11 对象指针的普通概念例8-17 续76int main() /主函数Point a(4, 5);/定义并初始化对象aPoint *p1 = &a;/定义对象指针,用a的地址将其初始
44、化cout getX() endl;/利用指针访问对象成员cout a.getX() x;788.3 指针 8.3.11 对象指针指向类的非静态成员的指针 经过指向成员的指针只能访问公有成员 声明指向成员的指针 声明指向公有数据成员的指针 类型阐明符 类名:*指针名; 声明指向公有函数成员的指针 类型阐明符 (类名:*指针名)(参数表);798.3 指针 8.3.11 对象指针指向类的非静态成员的指针(续) 指向数据成员的指针 阐明指针应该指向哪个成员指针名 = &类名:数据成员名; 经过对象名或对象指针与成员指针结合来访问数据成员对象名.*类成员指针名或: 对象指针名-*类成员指针名808.
45、3 指针 8.3.11 对象指针指向类的非静态成员的指针(续) 指向函数成员的指针 初始化指针名=&类名:函数成员名; 经过对象名或对象指针与成员指针结合来访问函数成员(对象名.*类成员指针名)(参数表)或:(对象指针名-*类成员指针名)(参数表)818.3 指针 8.3.11 对象指针例8-18教材例6-13访问对象的公有成员函数的不同方式82int main() /主函数 Point a(4,5);/声明对象APoint *p1 = &a; /声明对象指针并初始化 /声明成员函数指针并初始化int (Point:*funcPtr)() = Point:getX; /(1)运用成员函数指针访问成员函数cout (a.*funcPtr)() endl; /(2)运用成员函数指针和对象指针访问成员函数cout *funcPtr)() endl; /(3)运用对象名访问成员函数cout a.getX() endl; /(4)运用对象指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商务合同范本-工程合同模板
- 品牌策划合作协议-合同范本
- 合伙协议书范文
- 2024房屋租赁居间合同
- 2024运输合同物流运输合同纠纷案例
- 2024设立有限责公司出资协议模板
- 2024年冷库转让协议合同书
- 深圳发展银行委托贷款操作流程
- 2024年学校食堂用工合同协议书样本
- 北京借款合同的范本2024年
- 抖音旅行社商家境外游直播活动策划方案旅行社抖音直播教程
- 大宇迷你破壁机说明书
- 金属非金属矿山矿山法律法规
- 王慧文清华大学《互联网产品管理课》
- 圆的周长计算练习公开课一等奖市赛课一等奖课件
- QC提高市政闭水试验质量合格率
- 人教版九年级化学教案(全册)
- TD-T 1041-2013 土地整治工程质量检验与评定规程
- 基恩士FS-N18N放大器常用调试说明书
- 保洁人员排班表
- 2023年安徽省交通控股集团招聘笔试题库及答案解析
评论
0/150
提交评论