已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章 指针8.1 地址和指针的概念按变量地址存取变量值的方式,成为“直接访问”方式。“间接访问”将变量的地址存放在另一个变量中。一个变量的地址称为该变量的“指针”。如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”,指针变量就是地址变量(存放地址的变量)。指针变量的值(即指针变量中存放的值)是地址(指针)。8.2 变量的地址和指向变量的指针地址变量的指针就是变量的地址。存放地址的变量是指针变量,它用来指向另一个变量。用“*”表示“指向的对象”。8.2.1 怎样定义指针变量?指针变量的基类型用来指定此指针变量可以指向的变量类型。定义指针变量一般形式为:基类型 *指针变量名;说明:(1)指针变量前的“*”表示该变量的类型为指针类型。(2) 定义指针类型时必须指定基类型。对指针变量赋值时需要注意:(1)指针变量中只能存放地址。(2)赋给指针变量的变量地址不能是任意类型,而只能是与指针变量的基类型具有相同类型的变量的地址。8.2.2 怎样引用指针变量(1) 给指针变量赋值。p=&a;(2) 引用指针变量的值。如:printf(“%o”,p);作用是以八进制输出指针变量p的值,如果p指向了a,就是输出a的地址,即&a。(3) 引用指针变量指向的变量。(1) “&”算去地址运算符。(2) “*”指针运算符。例8.1 通过指针变量访问整型变量#includeint main()int a,b;int *pointer_1,*pointer_2;a=100;b=200;pointer_1=&a;pointer_2=&b;printf(a=%d,b=%dn,a,b);printf(*pointer_1=%d,*pointer_2=%d,*pointer_1,*pointer_2);return 0;例 8.2 输入a,b连个整数,按先大后小的顺序输出a,b。#includeint main()int *p,*p1,*p2;int a,b;printf(please enter a,b:n);scanf(%d,%d,&a,&b);p1=&a;p2=&b;if(ab)p=p1;p1=p2;p2=p;printf(a=%d,b=%dn,a,b);printf(max=%d,min=%dn,*p1,*p2);return 0;8.2.3 指针变量作为函数参数指针变量作函数参数的作用是将一个变量的地址传到另一个函数中。例 8.3输入a,b连个整数,按先大后小的顺序输出a,b。用指针变量作函数参数。#includeint main()void swap(int *,int *);int *p1,*p2;int a,b;printf(please enter a,b:n);scanf(%d,%d,&a,&b);p1=&a;p2=&b;if(ab)swap(p1,p2);printf(a=%d,b=%dn,a,b);printf(max=%d,min=%dn,*p1,*p2);return 0;void swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;不可能通过执行调用函数来改变实参指针变量的值,但是却可以改变实参指针变量所指变量的值。例8.4 输入3个整数a,b,c,要求按大小顺序将它们输出。用函数实现改变这3个变量的值。#includeint main()void exchange(int *,int *,int *);int *p3,*p1,*p2;int a,b,c;printf(please enter a,b,c:n);scanf(%d,%d,%d,&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf(%d,%d,%dn,a,b,c);return 0;void exchange(int *q1,int *q2,int *q3)void swap(int *,int *);if(*q1*q2)swap(q1,q2);if(*q1*q3)swap(q1,q3);if(*q2,*q3)swap(q2,q3);void swap(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;8.3 通过指针引用数组8.3.1 数组元素的指针所谓数组元素的指针就是数组元素的地址。8.3.2 指针的运算说明:(1)P+1指向同一数组中的下一个元素,p-1指向同一数组中的上一个元素。(2) 如果p原来指向a0,执行+p后p的值改变了,在p的原值基础上加d,这样p就指向数组的下一个元素a1.(3) 如果p的初值是&a0,则p+i和a+i就是数组元素ai的地址。(4) *(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即ai.(5) 如果指针变量p1和p2都指向同一数组,如执行p2-p1,结果是两个数组之差,除以数组元素长度。8.3.3 通过指针引用数组元素(1) 下标法,ai。(2) 指针法,*(a+i)。例 8.5 有一个整型数组a,有10个元素,输出数组中的全部元素。(1) 下标法#includeint main()int a10;int i;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)printf(%dt,ai);printf(n);(2) 通过数组名计算数组元素地址,找出元素的值。#includeint main()int a10;int i;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)printf(%dt,*(a+i);printf(n);(3) 用指针变量指向数组元素#includeint main()int a10;int i,*p;for(i=0;i10;i+)scanf(%d,&ai);for(p=a;p(a+10);p+)printf(%dt,*p);printf(n);例 8.6 通过指针变量输出a数组的10个元素。#includeint main()int *p,i,a10;p=a;for(i=0;i10;i+)scanf(%d,p+);p=a;for(i=0;i10;i+,p+)printf(%dt,*p);printf(n);8.3.4 用数组名作函数参数表 以变量名和数组名作为函数参数的比较实参类型变量名 数组名要求形参的类型变量名数组名或指针变量传递的信息变量的值实参数组首元素的地址通过函数调用能否改变实参的值不能能改变是参数组元素的值用变量名作为函数参数传递的是变量的值,当用数组名作为函数参数时,由于数组名代表的是数组首元素地址,因此传递的值是地址,所以要求形参是指针变量。例8.7 将数组a中n个整数按相反顺序存放。#includeint main()void inv(int x,int n);int a10=23,445,6,67,7,67,576,4,3,324,i;printf(The original array:n);for(i=0;i10;i+)printf(%dt,ai);printf(n);inv(a,10);printf(The array has been reversed:n);for(i=0;i10;i+)printf(%dt,ai);return 0;void inv(int x,int n)int temp,i,j,m=(n-1)/2;for(i=0;im;i+)j=n-1-i;temp=xi;xi=xj;xj=temp;归纳起来,如果有一个实参数组要想在函数中改变此数组种元素的值,实参与形参的对应关系有以下4种情况:(1) 形参和实参都有用数组名;(2) 实参用数组名,形参用指针变量;(3) 实参形参都引用指针变量;(4) 实参为指针变量,形参为数组名;例8.8 用实参指针变量改写例8.7.#includeint main()void inv(int *x,int n);int *p,a10=23,445,6,67,7,67,576,4,3,324,i;printf(The original array:n);for(i=0;i10;i+)printf(%dt,ai);printf(n);p=a;inv(p,10);printf(The array has been reversed:n);for(p=a;pa+10;p+)printf(%dt,*p);return 0;void inv(int *x,int n)int temp,*i,*j,*p,m;m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i=p;i+,j-)temp=*i;*i=*j;*j=temp;例8.9 用选择法对十个整数按由大到小排序。#includeint main()void sort(int x,int n);int a10,i,*p;printf(please enter 10 numbers:n);p=a;for(i=0;i10;i+)scanf(%d,p+);p=a;sort(p,10);for(p=a,i=0;i10;i+)printf(%dt,*p);p+;printf(n);void sort(int x,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(xkxj)k=j;if(k!=i)t=xi;xi=xk;xk=t;用指针变量作函数形参:#includeint main()void sort(int *x,int n);int a10,i,*p;printf(please enter 10 numbers:n);p=a;for(i=0;i10;i+)scanf(%d,p+);p=a;sort(p,10);for(p=a,i=0;i10;i+)printf(%dt,*p);p+;printf(n);void sort(int *x,int n)int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(*(x+k)*(x+j)k=j;if(k!=i)t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;8.3.5 通过指针引用多维数组1 多维数组元素的地址多维数组中*(a+i)只是ai的另一种表示形式。二维数组中,a+i指的不是一个数组元素的存储单元。在二维数组中,a+i,ai,*(a+i),&ai,&ai0的值相等,即它们代表同一地址。2. 指向多维数组元素的指针变量例 8.10用指向元素的指针变量输出二维数组各元素的值。#includeint main()int *p,a34=1,2,3,4,5,6,7,8,9,10,11,12;for(p=a0;pa0+12;p+)if(p-a0)%4=0)printf(n);printf(%dt,*p);return 0;例 8.11 输出二维数组任一行任一列元素的值。#includeint main()int a34=1,2,3,4,5,6,7,8,9,10,11,12,i,j;int (*p)4;p=a;scanf(%d,%d,&i,&j);printf(a%d%d=%d,i,j,*(*(p+i)+j);return 0;int(*p)4表示p是一个指针变量,它指向包含4个整型元素的一维数组。p是指向一维数组的指针。p不能指向一位数组中的某一元素。3. 用指向数组的指针作函数参数例8.12 有一个班,3个学生,各学4门课。计算总平均分数以及第n个学生的成绩。#includeint main()void average(float *p,int n);void search(float (*p)4,int n);float score34=65,67,70,60,80,87,90,81,90,99,100,98;average(score,12);search(score,2);void average(float *p,int n)float *p_end;float sum=0,aver;p_end=p+n-1;for(;p=p_end;p+)sum=sum+(*p);aver=sum/n;printf(average=%5.2fn,aver);void search(float (*p)4,int n)int i;printf(The score of NO.%d are:n,n);for(i=0;i4;i+)printf(%5.2ft,*(*(p+n)+i);printf(n); 例 8.13 在例8.12的基础上,查找有一门以上课程不及格的学生,输出他们的全部课程的成绩。#includeint main()void search(float (*p)4,int n);float score34=65,57,70,60,80,7,90,81,90,99,100,98;search(score,3);return 0;void search(float (*p)4,int n)int i,j,flag;for(j=0;jn;j+)flag=0;for(i=0;i4;i+)if(*(*(p+j)+i)60)flag=1;if(flag=1)printf(NO.%d fails,his score are:n,j+1);for(i=0;i4;i+)printf(%5.1ft,*(*(p+j)+i);printf(n);8.4 通过指针引用字符串8.4.1 字符串的表示形式(1) 用字符数组存放一个字符串。例 8.14 定义一个字符数组,对它初始化,然后输出该字符串。#includeint main()char string=I love xiao lei !;printf(%sn,string);return 0;(2) 用字符指针指向一个字符串#includeint main()char string=I love xiao lei !;printf(%sn,string);return 0;例 8.16 将字符串a复制为字符串b。#includeint main()char a=I love miao!,b20;int i;for(i=0;ai!=0;i+)*(b+i)=*(a+i);*(b+i)=0;printf(string a is:%sn,a);printf(string b is:);for(i=0;bi!=0;i+)printf(%c,bi);printf(n);例 8.17 用指针变量来处理例8.16问题。#includeint main()char a=I love miao!,b20;int i;char *p1,*p2;p1=a;p2=b;for(;*p1!=0;p1+,p2+)*p2=*p1;*p2=0;printf(string a is:%sn,a);printf(string b is:);for(i=0;bi!=0;i+)printf(%c,bi);printf(n);8.4.2 字符指针作函数参数例 8.18 用函数调用实现字符串的复制。#includeint main()void copy_string(char *from,char *to);char *a=I am a teacher.;char b=You are a student!;char *p=b;printf(string a=%snstring b=%sn,a,p);printf(copy string a to string b:n);copy_string(a,p);printf(string a=%snstring b=%sn,a,b);void copy_string(char *from,char *to)for(;*from!=0;from+,to+)*to=*from;*to=0;调用函数时实参与形参对应关系实参行参实参形参字符数组名字符数组名 字符数组名字符指针变量字符指针变量字符指针变量字符指针变量字符数组名8.4.3 对使用字符指针变量和字符数组的讨论(1) 字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址,绝不是将字符串存放在字符指针变量中。(2) 赋值方式。对字符数组只能对各个元素赋值。(3) 数组可以再定义时整体赋初值,但不能再赋值语句中整体赋值。(4) 如果定义一个字符数组,在编译时为它分配内存单元,它有确定的地址。(5) 指针变量的值是可以改变的。例 8.19 改变指针变量的值。#includeint main()char *a=I love xiaolei!;a=a+7;printf(%sn,a);return 0;8.5 指向函数的指针8.5.1 什么是函数指针?如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段代码的存储空间的起始地址(又称入口地址)称为这个函数的指针。8.5.2 用函数指针变量调用函数例 8.20 用函数求a和b中的大者。(通过指针变量来访问它指向的函数)。#includeint main()int max(int ,int);int (*p)(int ,int);int a,b,c;p=max;printf(please enter a,bn:);scanf(%d,%d,&a,&b);c=(*p)(a,b);printf(a=%d,b=%d,max=%dn,a,b,c);return 0;int max(int x,int y)int z;if(xy)z=x;elsez=y;return z;int (*p)(int ,int);用来定义p是一个指向函数的指针变量,该函数有两个整型参数,函数值是整型。(1) 指向函数的指针变量一般的定义形式是:数据类型 (*指针变量名)(函数参数列表);(2) “int (*p)(int,int);”表示定义一个指向函数的指针变量p,它不是固定只指向某一个函数,而只是表示定义了这样一个类型的变量,它是专门用来存放函数的入口地址。(3) 如果要用指针调用函数,必须先使指针变量指向该函数。(4) 在给函数指针变量赋值时,只须给出函数名而不必给出参数。(5) 用函数指针变量调用函数时,只须将(*p)代替函数名即可,在(*p)之后的括号内根据需要写上实参。(6) 指向函数的指针变量,p+n,p+,p-等运算是无意义的。例 8.21 输入两个整数,然后让用户选择1或者2,选1时调用max函数,输出两者中的大数,选2时调用min函数,输出两者的小数。#includeint main()int max(int ,int);int min(int ,int);int (*p)(int ,int);int a,b,c,n;printf(please enter a and b:n);scanf(%d,%d,&a,&b);printf(choose 1 or 2:n);scanf(%d,&n);if(n=1)p=max;else if(n=2)p=min;c=(*p)(a,b);printf(a=%d,b=%dn,a,b);if(n=1)printf(max=%dn,c);elseprintf(min=%dn,c);return 0;int max(int x,int y)int z;if(xy)z=x;elsez=y;return z;int min(int x,int y)int z;if(xy)z=x;elsez=y;return z;8.5.3 用指向函数的指针作函数参数例 8.22 输入两个整数,然后让用户选择1或者2,选1时调用max函数,输出两者中的大数,选2时调用min函数,输出两者的小数。选3时,则求a与b之和。#includeint main()int max(int ,int);int min(int ,int);int add(int,int);void func(int,int,int (*p)(int,int);int a,b,c,n;printf(please enter a and b:n);scanf(%d,%d,&a,&b);printf(choose 1 or 2,3:n);scanf(%d,&n);if(n=1)func(a,b,max);else if(n=2)func(a,b,min);else if(n=3) func(a,b,add);return 0;int max(int x,int y)int z;if(xy)z=x;elsez=y;return z;int min(int x,int y)int z;if(xy)z=x;elsez=y;return z;int add(int x,int y)int z;z=x+y;return z;void func(int x,int y,int (*p)(int,int)int result;result=(*p)(x,y);printf(%dn,result);8.6 返回指针值的函数类型名 *函数名(参数列表);a是函数名,调用它以后能得到一个指向整型数据的指针(地址)。例 8.23 有若干个学生的成绩,要求在用户输入函数序号以后,能输出该学生的全部成绩。用指针函数来实现。#includeint main()float score4=60,70,80,90,56,89,67,88,34,78,90,66;float *search(float (*poniter)4,int n);float *p;int i,m;printf(enter the number of student:);scanf(%d,&m);printf(The score of NO.%d student:n,m);p=search(score,m);for(i=0;i4;i+)printf(%5.2ft,*(p+i);printf(n);return 0;float *search(float (*pointer)4,int n )float *pt;pt=*(pointer+n);return pt;8.7 指针数组和多重指针8.7.1 指针数组的概念一个数组,若其元素均为指针类型数据,称为指针数组。类型名 *数组名数组长度;例 8.24 将若干字符串按字母顺序(由小到大)输出。#include#includeint main()void sort(char *name,int n);void print(char *name,int n);char *name=Follow me,Love you,hello,hi,no;int n=5;sort(name,5);print(name,5);return 0;void sort(char *name,int n)char *temp;int i,j,k;for(i=0;in-1;i+)for(j=i+1;j0)temp=namei;namei=namej;namej=temp;void print(char *name,int n)int i;for(i=0;in;i+)printf(%sn,namei);8.7.2 指向指针数据的指针例 8.25 使用指向指针数据的指针变量。#include#includeint main()char *name=Follow me,Love you,hello,hi,no;char *p;int i;for(i=0;i5;i+)p=name+i;printf(%sn,*p);例 8.26 指针数组的元素指向整形数据。#includeint main()int a5=1,3,5,7,9;int *num5;int *p,i;for(i=0;i5;i+)numi=&ai;p=num;for(i=0;i5;i+)printf(%d ,*p);p+;printf(n);return 0;8.8 动态内存分配与指向它的指针变量8.8.1 什么是内存的动态分布?非静态的局部变量(包括形参)是分配在内存中的动态存储区的,这个存储区是一个称为栈(stack)的区域。数据临时存放的一个特别的自由存储区称为堆(heap)区。8.8.2 怎样建立内存的动态分配?1. malloc函数其函数原型是void *malloc(unsigned int size);其作用是在内存中的动态存储区中分配一个长度为size的连续空间。此函数的值(“返回值”)是分配区域的起始地址。此函数是一个指针型函数,返回的指针指向该分配域的开头位置。2.calloc函数其函数原型是void *calloc(unsigned n,unsigned size);其作用是在内存的动态存储区中分配n个长度为size的连续空间。函数返回一个指向分配域起始位置的指针;如果分配不成功,返回NULL。3. free函数其函数原型为void free(void *p);其作用是释放由指针变量p指向的动态空间,使这部分空间能够被其它变量使用。 4.realloc函数void *realloc(void *p,unsigned int size);其作用是如果已经通过了malloc或calloc函数获得了临时分配域,想改变其函数大小,可以用realloc函数重分配。8.8.3 void指针类型例 8.27 建立动态数组,输入5个学生成绩,另外用一个函数检查其中有无低于60分的,输出不合格的成绩。#include#includeint main()void check(int *);int *p1,i;void *p2;p2=malloc(5*sizeof(int);p1=(int *)p2;for(i=0;i5;i+)scanf(%d ,p1+i);check(p1);free(p2);void check(int *p)int i;printf(They are fail:);for(i=0;i5;i+)if(pi60)printf(%d ,pi);printf(n);C语言中三种常见排序算法分析一、冒泡法(起泡法) 算法要求:用起泡法对10个整数按升序排序。 算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。 算法源代码:# include main() int a10,i,j,t; printf(Please input 10 numbers: ); /*输入源数据*/ for(i=0;i10;i+) scanf(%d,&ai); /*排序*/ for(j=0;j9;j+) /*外循环控制排序趟数,n个数排n-1趟*/ for(i=0;iai+1) /*相邻元素比较,逆序则交换*/ t=ai; ai=ai+1; ai+1=t; /*输出排序结果*/ printf(The sorted numbers: ); for(i=0;i10;i+) printf(%d ,ai); printf(n);算法特点:相邻元素两两比较,每趟将最值沉底即可确定一个数在结果的位置,确定元素位置的顺序是从后往前,其余元素可能作相对位置的调整。可以进行升序或降序排序。算法分析:定义n-1次循环,每个数字比较n-j次,比较前一个数和后一个数的大小。然后交换顺序。二、选择法 算法要求:用选择法对10个整数按降序排序。 算法分析:每趟选出一个最值和无序序列的第一个数交换,n个数共选n-1趟。第i趟假设i为最值下标,然后将最值和i+1至最后一个数比较,找出最值的下标,若最值下标不为初设值,则将最值元素和下标为i的元素交换。 算法源代码:# include main() int a10,i,j,k,t,n=10; printf(Please input 10 numbers:); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;in-1;i+) /*外循环控制趟数,n个数选n-1趟*/ k=i; /*假设当前趟的第一个数为最值,记在k中 */ for(j=i+1;jn;j+) /*从下一个数到最后一个数之间找最值*/ if(akaj) /*若其后有比最值更大的*/ k=j; /*则将其下标记在k中*/ if(k!=i) /*若k不为最初的i值,说明在其后找到比其更大的数*/ t=ak; ak=ai; ai=t; /*则交换最值和当前序列的第一个数*/ printf(The sorted numbers: ); for(i=0;i10;i+) printf(%d ,ai); printf(n); 算法特点:每趟是选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序或升序排序。 算法分析:定义外部n-1次循环,假设第一个为最值,放在参数中,在从下一个数以后找最值若后面有比前面假设的最值更大的就放在k中,然后在对k进行分析。若k部位最初的i值。也就是假设的i不是最值,那么就交换最值和当前序列的第一个数三、插入法 算法要求:用插入排序法对10个整数进行降序排序。 算法分析:将序列分为有序序列和无序列,依次从无序序列中取出元素值插入到有序序列的合适位置。初始是有序序列中只有第一个数,其余n-1个数组成无序序列,则n个数需进n-1次插入。寻找在有序序列中插入位置可以从有序序列的最后一个数往前找,在未找到插入点之前可以同时向后移动元素,为插入元素准备空间。 算法源代码:# include main() int a10,i,j,t; printf(Please input 10 numbers: ); for(i=0;i10;i+) scanf(%d,&ai); for(i=1;i=0 & taj ; j- ) /*在有序序列(下标0 i-1)中寻找插入位置*/ aj+1=aj; /*若未找到插入位置,则当前元素后移一个位置*/ aj+1=t; /*找到插入位置,完成插入*/ printf(The sorted numbers: ); for(i=0;i10;i+) printf(%d ,ai); printf(n);算法特点:每趟从无序序列中取出第一个数插入到有序序列的合适位置,元素的最终位置在最后一趟插入后才能确定位置。也可是先用循环查找插入位置(可从前往后或从后往前),再将插入位置之后的元素(有序列中)逐个后移一个位置,最后完成插入。该算法的特点是在寻找插入位置的同时完成元素的移动。因为元素的移动必须从后往前,则可将两个操作结合在一起完成,提高算法效率。仍可进行升序或降序排.几种排序的概念在数据的处理中,数据的排序是相当重要的。它可以使数据更有条理,方便数据的其它处理。在学习生活中,也经常用到数据的排序,如:考完试后个人成绩的排名、运动会上班级总分的排名、常规评比分数的排序。这些排序当然不是人工完成的,它们大多数是用excel软件来代劳的。那么excel软件的排序的本质方法是什么呢?这就是我所要研究学习的内容。通过查阅图书、教材,搜索资料、教程,我了解到:排序的本质其实就是比较。对于任何一种排序方法来说,比较都是其最重要的一个组成部分。但它也是最简单的部分,因为排序方法的好坏、快慢取决于比较的方法、比较的顺序和比较的次数,而与比较本身关系不大。那么,排序具体有那些方法呢?下面介绍几种我研究学习了的算法。一、冒泡排序已知一组无序数据a1、a2、an,需将其按升序排列。首先比较a1与a2的值,若a1大于a2则交换两者的值,否则不变。再比较a2与a3的值,若a2大于a3则交换两者的值,否则不变。再比较a3与a4,依此类推,最后比较an-1与an的值。这样处理一轮后,an的值一定是这组数据中最大的。再对a1an-1以相同方法处理一轮,则an-1的值一定是a1an-1中最大的。再对a1an-2以相同方法处理一轮,依此类推。共处理n-1轮后a1、a2、an就以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学生基础医学 核素检查护理课件
- 医学生基础医学 儿科疾病护理基础护理课件
- 2026年中考语文二轮专项复习:现代文阅读各种题型答题技巧
- 2026浙江春季高考物理考试总复习:牛顿运动定律(知识梳理+考点)原卷版
- 医学生基础医学 X 线检查后护理课件
- 医学妊娠合并糖尿病酮症诊疗案例分析课件
- 2026年体育健康知识竞赛试题库及答案(共300题)
- 2026年深圳中考数学复习分类汇编之解答基础题型:化简求值(解析版)
- TXJBX0114-2025建筑施工扬尘在线监测与防控技术规范
- 2026年北京市高考语文总复习:类文本阅读(巩固篇)解析版
- 英语口语直通车(浙江理工大学)知到智慧树章节答案
- CAD教程-AutoCAD2024全套教程
- 之 第十六讲 文明新路与人类命运共同体-《中华民族共同体概论》大讲堂
- 北京高考语文三年模拟真题(21-23年)知识点汇编-古诗词赏析
- 我们的队歌(三年级中队课)省公开课获奖课件市赛课比赛一等奖课件
- 2024施工现场临时用电规范管理协议版
- 大学生魅力讲话实操学习通超星期末考试答案章节答案2024年
- CJT156-2001 沟槽式管接头
- 2024年民办普通高中行业分析报告
- 伤口造口专科护士进修汇报
- 信号与系统 (第三版) 全套课件(上)
评论
0/150
提交评论