版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
预备知识内存:就是内部存储器,是由存储单元组成的。它的特点是存储单元是线性连续的。存储单元的最小单位是字节。
1.内存的概念第七章指针地址:内存区每个字节都有一个编号,这种编号称为内存地址。通过地址我们就能够访问该地址所标识的存储单元。2.地址的概念1变量的地址:
变量在内存中总占用几个连续的字节,开始字节的地址,就是变量的地址。20077.1指针和指针变量7.1.1地址和指针的概念4直接访问与间接访问直接访问:按变量名存取变量值间接访问:通过指针变量间接存取他所指向的变量指针变量…...…...2000200820122010整型变量i10变量i_pointer2002200420062000例*i_pointer=20;-----间接访问202指针的概念指针指针变量变量变量地址(指针)变量值指向地址存入指针变量7.1.2
指针变量的定义和初始化1.指针变量的定义指针变量的定义一般形式:数据类型*变量名;例inti,j;floata,b;
int
*pointer_1,*pointer_2;
注意:1、指针变量前面的”*”,表示该变量的类型为指针变量2、在定义指针变量时必须指定指向类型3、在定义多个指针变量时,不能写成:
int*pointer_1,pointer_2;int*pointer_1,*pointer_2;指针变量的赋值一般形式:数据类型*变量名=初始地址值;例inta;int*p1;p1=&a;说明:1、可对指针变量先进行定义,然后进行赋值;也可以在定义的同时进行初始化例
int*p1=&a;
inta;例inta;int*p1=&a;说明:2、指针变量的初始值必须和指针定义时的指向类型一致例inta;float*p1=&a;3、在赋值过程中,不能将地址以外的值赋给指针,否则系统会将它当成地址来处理,这样会对内存产生误操作.例
int*p1=100;4、可以将一个指针变量的值赋给另外指针变量例inta;int*p1=&a;int*p2=p1;说明:5、定义后赋值,指针变量前不要加”*”例inta;int*p1;p1=&a;例inta;int*p1;*p1=&a;6、在初始化中可以将一个指针初始化为一个空指针例
int*p1=0;&与*运算符含义含义:取变量的地址单目运算符结合性:自右向左含义:
取指针变量所指向的变量单目运算符结合性:自右向左理解7.1.3
指针变量的引用和运算例:通过指针变量访问整型变量main(){inta,b;int*pointer_1,*pointer_2;a=100;b=10;pointer_1=&a;pointer_2=&b;printf(“%d,%d\n”,a,b);printf(“%d,%d\n”,*pointer_1,*pointer_2);}&*pointer_1*&a==&a==pointer_1
==*pointer_1==a例指针的概念main(){inta;
int*pa=&a;a=10;printf("a:%d\n",a);printf("*pa:%d\n",*pa);printf("&a:%x\n",&a);printf("pa:%x\n",pa);printf("&pa:%x\n",&pa);}运行结果:a:10*pa:10&a:f80pa:f80&pa:f84…...…...f80f88f8cf8a整型变量a10指针变量paf82f84f86f80例7-2
指针变量实例。输入a和b两个整数,按先大后小的顺序输出a和bmain(){int*p1,*p2,*p,a,b;scanf("%d,%d",&a,&b);p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf("a=%d,b=%d\n",a,b);printf("max=%d,min=%d\n",*p1,*p2);}运行结果:a=5,b=9max=9,min=5…...…...指针变量p1
指针变量p20002016200420082012
指针变量p2
整型变量b
整型变量a5201292016201220162012例指针变量…...…...2000200820122010整型变量a10变量pointer_12002200420062000(*pointer_1)++;*(pinter_1++);20整型变量b说明:1、指针变量加减一个整数2、指针变量可以自增自减3、指针变量可以赋空值
p=0;
p=NULL;4、两指针变量可以相减5、两指针变量可以进行比较int*p1,*p2,K;inta[10]={1,3,5,7,9,11,13,15,17,19};p1=a;p2=a;p1++;k=*p1;k=*(p1+3);k=*p1+2;if(p1>p2)k=p1-p2;7.2
指针与数组7.2.1指针和一维数组1.指向数组元素的指针例inta[10];int*p;
p=&a[0];//p=a;在定义指针变量的同时可以对其赋初值:或int*p=&a[0];或int*p=a;a[0]a[1]a[2]a[3]a[9]...整型指针p&a[0]p数组名是表示数组首地址的地址常量2.通过指针引用数组元素C规定:如果指针变量已指向数组中的一个元素,则P+1指向同一数组中的下一个元素。P+1所代表地址实际上是P+1×d(一个数组元素所占字节数)若p的初值为&a[0],则:P+i和a+i就是a[i]的地址*(p+i)和*(a+i)是P+i和a+i所指向的数组元素即a[i]P[i]与*(p+i)等价*(p+i)和*(a+i)-----------指针法
p[i]和a[i]-------------------下标法a[0]a[1]a[2]a[3]a[9]...整型指针p&a[0]pa[i]
p[i]
*(p+i)
*(a+i)a[0]a[1]a[2]a[3]a[4]例数组元素的引用方法main(){inta[5],*pa,i;for(i=0;i<5;i++) a[i]=i+1;pa=a;for(i=0;i<5;i++) printf("*(pa+%d):%d\n",i,*(pa+i));for(i=0;i<5;i++) printf("*(a+%d):%d\n",i,*(a+i));for(i=0;i<5;i++) printf("pa[%d]:%d\n",i,pa[i]);for(i=0;i<5;i++) printf("a[%d]:%d\n",i,a[i]);}12345pa数组指针的算术运算:若p1与p2指向同一数组,p1-p2=两指针间元素个数p1+p2无意义例inta[10];int*p=&a[2];p++;*p=1;例inta[10];int*p1=&a[2];int*p2=&a[5];则:p2-p1=3;a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a数组p1p1p2使用指针变量,有几个问题要注意:1、可以改变指针变量的值
P++合法
a++不合法,数组名a始终是数组首元素的地址2、使用指针变量指向数组元素时,应切实保证指向数组中有效的元素3、注意指针变量的运算,如果使P指向数组a首地址(即P=a),则:*P++*(++P)(*P)++++*Pfor(i=0;i<10;i++)printf(“%d”,*p++);main(){inti,*p,a[7];p=a;for(i=0;i<7;i++)scanf("%d",p++);printf("\n");for(i=0;i<7;i++,p++)printf("%d",*p);}例注意指针的当前值p=a;pp58762730123456apppppp指针变量可以指到数组后的内存单元例voidmain(){inta[]={5,8,7,6,2,7,3};inty,*p=&a[1];
y=(*--p)++;printf(“%d”,y);printf(“%d”,a[0]);}输出:56pp58762730123456a例注意指针变量的运算67.2.2指针与二维数组1.二维数组的地址对于一维数组:(1)数组名array表示数组的首地址,即array[0]的地址;(2)数组名array是地址常量(3)array+i是&array[i](4)*(array+i)
array[i]arrayintarray[10];对于二维数组:(1)a是数组名,包含三个元素
a[0],a[1],a[2](2)每个元素a[i]
又是一个一维数组,包含4个元素inta[3][4];a[0]a[1]a[2]200020162032200020042016202020322036a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]对二维数组inta[3][4],有a-----二维数组的首地址,即第0行的首地址a+i-----第i行的首地址*(a+i)
a[i]&a[i][0]
*(a+i)+j
a[i]+j&a[i][j]
*(*(a+i)+j)*(a[i]+j)a[i][j]inta[3][4];a[0]a[1]a[2]200020162032200020042016202020322036a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]aa+1a+2inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]二维数组元素表示形式:(1)a[1][2](2)*(a[1]+2)(3)*(*(a+1)+2)地址表示:a+i&a[i](3)&a[i][j](4)a[i](5)*(a+i)元素指针地址表示:(1)&a[1][2](2)a[1]+2(3)*(a+1)+2行指针4.二维数组的指针变量指向二维数组元素的指针变量例用指针变量输出数组元素的值inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]pmain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int*p;for(p=a[0];p<a[0]+12;p++){if((p-a[0])%4==0)printf(“\n”);printf(“%4d”,*p);}}35711131517192123指向一维数组的指针变量定义形式:数据类型
(*变量名)[元素个数];
例int(*p)[4];()不能少int(*p)[4]与int*p[4]不同p的值是一维数组的首地址,p是行指针可让p指向二维数组某一行如inta[3][4],(*p)[4]=a;inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]aa+1a+2pp+1p+2*(p+1)+2或p[1]+2
*(*(p+1)+2)或*(p[1]+2)指向一维数组指针变量维数和二维数组列数必须相同例一维数组指针变量举例main(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
inti,j,(*p)[4];for(p=a,i=0;i<3;i++,p++)for(j=0;j<4;j++)printf("%d",*(*p+j));printf("\n");}inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]ppp
a[0][j]
a[1][j]
a[2][j]7.3
指针与字符串1.字符串表示形式用字符数组实现例main(){charstring[]=“IloveChina!”;printf(“%s\n”,string);printf(“%s\n”,string+7);}IloveChistring[0]string[1]string[2]string[3]string[4]string[5]string[6]string[7]string[8]string[9]stringstring[10]string[11]string[12]string[13]n!a\0用字符指针实现例main(){char*string=“IloveChina!”;printf(“%s\n”,string);}字符指针初始化:把字符串首地址赋给stringchar*string;string=“IloveChina!”;IloveChistringn!a\0用字符指针实现例main(){char*string=“IloveChina!”;printf(“%s\n”,string);
string+=7;while(*string){putchar(string[0]);string++;}}IloveChistringn!a\0string*string!=0字符指针变量与字符数组char*str=“China”;
与
chara[]=“China”;字符数组a由若干元素组成,每个元素放一个字符;而字符指针变量str中存放字符串首地址
char*str;str=“IloveChina!”;(
)chara[20];a=“IloveChina!”;(
)str是指针变量,可多次赋值;a是数组名,表示地址常量,不能赋值。7.2.3
指针数组指针数组定义:数组中的元素为指针变量定义形式:数据类型*数组名[数组长度];例:char*p[4];由于“[]”比“*”的优先级高,所以数组名先与“[数组长度]”结合,形成数组的定义形式,“*”表示此数组中的每个元素都是指针类型,“数据类型标识符”说明指针的目标变量的数据类型。
charname[5][9]={“gain”,“much”,“stronger”,“point”,“bye”};
char*name[5]={“gain”,“much”,“stronger”,“point”,“bye”};gain\0stronger\0point\0much\0name[0]name[1]name[2]name[3]name[4]bye\0gain\0stronger\0point\0much\0bye\0二维数组与指针数组区别:二维数组与指针数组区别:二维字符数组表示的字符串在存储上是一片连续的空间,但中间可能有很多空的存储单元,因为作为数组定义,需要指定列数为最长字符串的长度加1,而实际上各字符串长度一般并不相等。字符指针数组表示的字符串在空间上是分散的,也可以紧挨着连续存储,只要将每个字符串的首字符地址放入指针数组的每个元素即可。指针数组赋值与初始化Lisp\0Fortran\0Basic\0p[0]p[1]p[2]p[3]0赋值:main(){chara[]="Fortran";charb[]="Lisp";charc[]="Basic";
char*p[4];
p[0]=a;p[1]=b;p[2]=c;p[3]=NULL;……..}或:main(){char*p[4];p[0]="Fortran";p[1]="Lisp";p[2]="Basic";p[3]=NULL;……..}初始化:main(){char*p[]={"Fortran","Lisp","Basic",NULL};……..}Lisp\0Fortran\0Basic\0p[0]p[1]p[2]p[3]0例要求输入1,2,3,4,5,6,7,8,9,10,11,12分别输出:January,February,March,April,May,June,July,August,September,October,November,December字符串main(){char*month[12]={“January”,”February”,”March”,”April”,”May”,”June”,”July”,”August”,”September”,”October”,”November”,”December”};intmonth1;printf(“EntertheNoofmonth:”);scanf(“%d”,&month1);if(month1>=1&&month1<=12)printf(“No.%dmonth---%s\n”,month1,month[month1-1]);}输入:10输出:No.10month---October普通变量作为函数参数voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;scanf("%d,%d",&a,&b);if(a<b)swap(a,b);printf("\n%d,%d\n",a,b);}例
将数从大到小输出…...…...20002010201420042008200C5变量a
变量b(main)9
变量temp
变量y
变量x(swap)55959COPY7.4
指针与函数普通变量作为函数参数voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;scanf("%d,%d",&a,&b);if(a<b)swap(a,b);printf("\n%d,%d\n",a,b);}例
将数从大到小输出值传递…...…...20002010201420042008200C5变量a
变量b(main)9运行结果:5,9voidswap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);
pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}…...20002010201420042008200C2018201C2020...59整型变量a
整型变量b(main)指针pointer_1指针pointer_220002004(swap)指针p1指针p2整型p5920002004COPY5例
将数从大到小输出指针变量作为函数参数——地址传递voidswap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}…...20002010201420042008200c2018201c2020...59整型变量a整型变量b(main)指针pointer_1指针pointer_22000200459例
将数从大到小输出运行结果:9,5地址传递voidswap(int*pt1,int*pt2){inttemp;temp=*pt1;*pt1=*pt2;*pt2=temp;}voidexchange(int*q1,int*q2,int*q3){if(*q1<*q2)swap(q1,q2);if(*q1<*q3)swap(q1,q3);if(*q2<*q3)swap(q2,q3);}main(){inta,b,c,*p1,*p2,*p3;scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("\n%d,%d,%d\n",a,b,c);}例7-12
输入a,b,c三个整数,按大小顺序输出如果想通过函数调用得到n个要改变的值:1、在主调函数中设n个变量,用n个指针变量指向它们2、然后将指针变量做实参,将n个变量的地址传给所调用的函数的形参3、通过形参指针变量,改变主调函数中这n个变量的值4、主调函数中可以使用这n个改变了值的变量若有一个实参数组,想在函数中改变此数组的元素的值,实参和形参的对应关系如下:实参形参数组名指针变量数组名指针变量数组名数组名指针变量指针变量3、数组名作函数参数数组名作函数参数,是地址传递1.形参实参都用数组名main(){inta[10];f(a,10);
}……..……..f(intx[],intn){
}……..a[0]a[1]a[2]a[3]a[9]...x[0]x[9]2.实参用数组名,形参用指针变量main(){inta[10];f(a,10)
}……..……..f(int*x,intn){
}……..a[0]a[1]a[2]a[3]a[9]...整型指针x&a[0]x3.实参形参都用指针变量main(){inta[10];int*p=a;f(p,10)
}……..……..f(int*x,intn){
}……..a[0]a[1]a[2]a[3]a[9]...x,p整型指针x&a[0]整型指针P&a[0]4.实参为指针变量,形参为数组名main(){inta[10];int*p=a;f(p,10)
}……..……..f(intx[],intn){
}……..a[0]a[1]a[2]a[3]a[9]...整型指针P&a[0]P,x[0]
C语言程序设计
第一章程序设计基础两数求最大值的例子:main() /*主函数*/{ /*main函数体开始*/inta,b,c; /*声明部分定义变量*/scanf(“%d,%d”,&a,&b);
c=max(a,b);/*调用max,将调用结果赋给c*/printf(“max=%d”,c);} /*main函数体结束*/intmax(intx,inty) /*计算两数中较大数的函数*/{ /*max函数体开始*/intz; /*声明部分,定义变量*/if(x>y)z=x;elsez=y;returnz; /*将z值返回,通过max带回调用处*/} /*max函数体结束*/7.4.2
指向函数的指针变量函数指针:函数在编译时被分配的入口地址,用函数名表示max…...指令1指令2函数指针变量赋值:如p=max;p=&max;
也可在定义时进行初始化
int(*p)()=max;int(*p)()=&max;函数返回值的数据类型专门存放函数入口地址可指向返回值类型相同的不同函数指向函数的指针变量-------函数指针定义形式:数据类型(*变量名)();
如int(*p)();函数指针变量指向的函数必须有函数定义或声明函数调用形式:c=max(a,b);c=(*p)(a,b);对函数指针变量pn,p++,p--无意义()不能省int(*p)()与int*p()不同例比较两个数大小,求最大值main(){intmax(int,int);inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("a=%d,b=%d,max=%d\n",a,b,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}main(){intmax(int,int),(*p)();inta,b,c;
p=max;scanf("%d,%d",&a,&b);c=(*p)(a,b);printf("a=%d,b=%d,max=%d\n",a,b,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}7.4.3返回指针值的函数——指针函数
返回值为指针的函数称作指针型函数。指针函数定义函数首部的一般形式:
数据类型*函数名(形参数列表)含意:函数的返回值是一个指针,它指向所指定数据类型的数据。例如:int*a(intx,inty);//函数声明含意:a是函数名,调用它以后能得到一个指向整型数据的指针(地址)。定义方法:
例用户输入一个月份号(如10),程序输出对应月份的英文名(October)#include<stdio.h>char*month_name(intn);main(){intn;char*p;printf(“Inputanumberofamonth:\n”);scanf(“%d”,&n);p=month_name(n);printf(“Itis%s\n”,p);}char*month_name(intn){staticchar*name[]={“Illegalmonth”,“January”,”February”,”March”,”April”,”May”,”June”,”July”,”August”,”September”,”October”,”November”,”December”};if(n<1||n>12)return(name[0]);elsereturn(name[n]);}输入:10输出:ItisOctober例编写一个函数match,它的功能是在一个字符串中寻找某个字符,如果找到,把该字符及后面的字符全部输出,否则,返回空指针。#include<stdio.h>char*match(charc,char*s){while(*s!='\0')if(*s==c)return(s);elses++;return(0);}main(){char*cp="ABCDEFGHIJK";printf("%s\n",match('B',cp));printf("%s\n",match('I',cp));printf("%s\n",match('a',cp));}BCDEFGHIJKIJK(NULL)多级指针定义:如果一个指针变量中存放的是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。一级指针(单级间接地址):指针变量中存放目标变量的地址p2&p1&i3P1(指针变量)i(整型变量)二级指针:指针变量中存放一级指针变量的地址例int*p;
inti=3;p=&i;*p=5;&i3P(指针变量)i(整型变量)一级指针单级间接寻址二级指针一级指针目标变量二级间接寻址7.5
指向指针的指针目标变量5定义形式:数据类型**变量名;如char**p;最终目标变量的数据类型*p是p间接指向变量的地址**p是p间接指向的变量例inti=3;
int*p1;
int**p2;p1=&i;p2=&p1;**p2=5;ip1p23&i&p1**p2,*p1*p2多级指针例三级指针int***p;
四级指针char****p;5在定义和使用指向指针的指针变量时应注意: 在定义多级指针变量时要用到多个“*”来定义,是几级指针变量,就要用到几个“*”.int*p1,a;int**p2;int***p3;同类型的同级指针变量间才能相互赋值。
p1=&a;p2=&p1;p3=&p2;通过多级指针变量对最终目标对象赋值时,也必须采用相应个数的指针运算符“*”.a=10;*p1=10;**p2=10;***p3=10;例inti,**p;p=&i;(
)//p是二级指针,不能用变量地址为其赋值20002008200A20022004200612变量a
变量b(main)
指针变量p2000
指针变量q2002例一级指针与二级指针#include<stdio.h>voidswap(int*r,int*s){int*t;t=r;r=s;s=t;}main(){inta=1,b=2,*p,*q;
p=&a;q=&b;
swap(p,q);printf("%d,%d\n",*p,*q);}20022000COPY
指针变量s
指针变量r(swap)
指针变量t20002002200020002008200A20022004200612变量a
变量b(main)
指针变量p2000
指针变量q2002例一级指针与二级指针#include<stdio.h>voidswap(int*r,int*s){int*t;t=r;r=s;s=t;}main(){inta=1,b=2,*p,*q;
p=&a;q=&b;
swap(p,q);printf("%d,%d\n",*p,*q);}输出:1,2例一级指针与二级指针#include<stdio.h>voidswap(int**r,int**s){int*t;t=*r;*r=*s;*s=t;}main(){inta=1,b=2,*p,*q;p=&a;q=&b;
swap(&p,&q);printf("%d,%d\n",*p,*q);}20002008200A20022004200612变量a
变量b(main)
指针变量p2000
指针变量q200220062004
二级指针s
二级指针r(swap)
指针变量t200020022000例一级指针与二级指针#include<stdio.h>voidswap(int**r,int**s){int*t;t=*r;*r=*s;*s=t;}main(){inta=1,b=2,*p,*q;p=&a;q=&b;
swap(&p,&q);printf("%d,%d\n",*p,*q);}20002008200A20022004200612变量a
变量b(main)
指针变量p2000
指针变量q200220002002输出:2,1例一级指针与二级指针#include<stdio.h>voidswap(int**r,int**s){int*t;t=*r;*r=*s;*s=t;}main(){inta=1,b=2,*p,*q;p=&a;q=&b;
swap(&p,&q);printf("%d,%d\n",*p,*q);}abpqbapqabrspqabrspq输出:2,1例用二级指针处理字符串voidmain(){
char**p;char*name[]={"hello","good","world","bye",“ok"};inti;for(i=0;i<5;i++){p=name+i;printf("%s\n",*p);}}name[0]name[1]name[2]name[3]name[4]char*name[5]worldbyeokhellogoodname运行结果:hellogoodworldbyeokp二级指针与指针数组的关系
int**p与int*q[10]指针数组名q是二级指针常量p=q;p+i是q[i]的地址系统只给二级指针p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年三峡旅游职业技术学院单招综合素质考试参考题库附答案详解
- 2026年山东科技职业学院单招职业技能考试模拟试题带答案解析
- 个人家政清洁协议书
- 2026年聊城职业技术学院单招职业技能笔试模拟试题带答案解析
- 2026年山东药品食品职业学院高职单招职业适应性测试备考题库带答案解析
- 2026年长沙商贸旅游职业技术学院高职单招职业适应性测试备考题库带答案解析
- 2026年郑州医药健康职业学院高职单招职业适应性考试模拟试题带答案解析
- 2026年重庆护理职业学院高职单招职业适应性测试备考题库带答案解析
- 劳务队伍安全协议书
- 2026年山东电子职业技术学院单招综合素质考试模拟试题附答案详解
- 2026年尼勒克县辅警招聘考试备考题库必考题
- 2026年广东省高中学业水平考试春季高考语文试卷(含答案)
- 2025年-《中华民族共同体概论》课后习题答案-新版
- 苏少版(五线谱)(2024)八年级上册音乐全册教案
- 2025年龙江森工面试题及答案
- 2024-2025学年成都市高一上英语期末考试题(含答案和音频)
- GA/T 798-2008排油烟气防火止回阀
- 中医舌、脉象的辨识与临床应用 点击吸下载
- 小沈阳《四大才子》欢乐喜剧人台词
- 国开电大员工招聘与配置(试题24道含答案)
- Q∕GDW 12154-2021 电力安全工器具试验检测中心建设规范
评论
0/150
提交评论