版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面试准备题(涉及高质量c++题)constchar*,charconst*,char*const的区别问题几乎是C++面试中每次都会有的题目。事实上这个概念谁都有只是三种声明方式非常相似很容易记混。Bjarne在他的TheC++ProgrammingLanguage里面给出过一个助记的方法:把一个声明从右向左读。char*constcp;(*读成pointerto)cpisaconstpointertocharconstchar*p;pisapointertoconstchar;charconst*p;同上由于C++里面没有const*的运算符,所以const只能属于前面的类型。---------------------------------下面这个程序执行后会有什么错误或者效果:#defineMAX255intmain(){unsignedcharA[MAX],i;for(i=0;i<=MAX;i++)A[i]=i;}解答:MAX=255数组A的下标范围为:0..MAX-1,这是其一..其二.当i循环到255时,循环内执行:A[255]=255;这句自身没有问题..但是返回for(i=0;i<=MAX;i++)语句时,由于unsignedchar的取值范围在(0..255),i++以后i又为0了..无限循环下去.注:char类型为一个字节,取值范围是[-128,127],unsignedchar[0,255]---------------------------------编写用C语言实现的求n阶阶乘问题的递归算法:longintfact(intn){intx;longinty;if(n<0){printf("error!");}if(n==0)return1;x=n-1;y=fact(x);return(n*y);}--------------------------------二分查找算法:1、递归方法实现:intBSearch(elemtypea[],elemtypex,intlow,inthigh)/*在下届为low,上界为high的数组a中折半查找数据元素x*/{intmid;if(low>high)return-1;mid=(low+high)/2;if(x==a[mid])returnmid;if(x<a[mid])return(BSearch(a,x,low,mid-1));elsereturn(BSearch(a,x,mid+1,high));}2、非递归方法实现:intBSearch(elemtypea[],keytypekey,intn){intlow,high,mid;low=0;high=n-1;while(low<=high){mid=(low+high)/2;if(a[mid].key==key)returnmid;elseif(a[mid].key<key)low=mid+1;elsehigh=mid-1;}return-1;}--------------------------------非递归计算如下递归函数的值(斐波拉契):f(1)=1f(2)=1f(n)=f(n-1)+f(n-2)n>2解:intf(intn){inti,s,s1,s2;s1=1;/*s1用于保存f(n-1)的值*/s2=1;/*s2用于保存f(n-2)的值*/s=1;for(i=3;i<=n;i++){s=s1+s2;s2=s1;s1=s;}return(s);}------------------------------互换两个数,不用第三块儿内存:inta=……;intb=……;a=a+b;b=a-b;a=a-b;-------------------------------Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?1、OSI每层功能及特点a物理层为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有拟定连接设备的电气特性和物理特性等功能。b数据链路层负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。c网络层为了将数据分组从源(源端系统)送到目的地(目的端系统),网络层的任务就是选择合适的路由和互换节点,使源的传输层传下来的分组信息可以对的无误地按照地址找到目的地,并交付给相应的传输层,即完毕网络的寻址功能。d传输层传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。e会话层该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,拟定是双工还是半双工工作。f表达层该层的重要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表达形式转换成网络通信中的标准表达形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表达层的任务。g应用层该层直接面向用户,是OSI中的最高层。它的重要任务是为用户提供应用的接口,即提供不同计算机间的文献传送、访问与管理,电子邮件的内容解决,不同计算机通过网络交互访问的虚拟终端功能等。2、TCP/IPa网络接口层这是TCP/IP协议的最低一层,涉及有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接受IP数据报并通过特定的网络进行传输,或从网络上接受物理帧,抽取出IP数据报并转交给网际层。b网际网层(IP层)该层涉及以下协议:IP(网际协议)、ICMP(InternetControlMessageProtocol,因特网控制报文协议)、ARP(AddressResolutionProtocol,地址解析协议)、RARP(ReverseAddressResolutionProtocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,重要解决数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP协议在TCP/IP协议组中处在核心地位。c传输层该层提供TCP(传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简朴的无连接服务。传输层提供端到端,即应用程序之间的通信,重要功能是数据格式化、数据确认和丢失重传等。d应用层TCP/IP协议的应用层相称于OSI模型的会话层、表达层和应用层,它向用户提供一组常用的应用层协议,其中涉及:Telnet、SMTP、DNS等。此外,在应用层中还包具有用户应用程序,它们均是建立在TCP/IP协议组之上的专用程序。3、OSI参考模型和TCP/IP参考模型的区别:aOSI模型有7层,TCP/IP只有4层;bOSI先于协议出现,因此不会偏向于任何一组特定的协议,通用性更强,但有些功能不知该放哪一层上,因此不得不加入一些子层;TCP/IP后于协议出现,仅是将已有协议的一个描述,因此两者配合的非常好;但他不适合其他的协议栈,不容易描述其他非TCP/IP的网络;cOSI中网络层同时支持无连接和面向连接的通信,但在传输层上只支持面向连接的通信;TCP/IP中网络层只支持无连接通信,传输层同时支持两种通信;d在技术发生变化时,OSI模型比TCP/IP模型中的协议更容易被替换。----------------------------------------Q2:请你具体的解释一下IP协议的定义,在哪个层上面,重要有什么作用?TCP与UDP呢?解:与IP协议配套使用的尚有三个协议:ARP-地址解析协议RARP-逆地址解析协议ICMP-因特网控制报文协议ICMPIP协议-网际协议IP地址、IP包头----------------------------------------Q3:请问互换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?将网络互相连接起来要使用一些中间设备(或中间系统),ISO的术语称之为中继(relay)系统。根据中继系统所在的层次,可以有以下五种中继系统:1.物理层(即常说的第一层、层L1)中继系统,即转发器(repeater)。2.数据链路层(即第二层,层L2),即网桥或桥接器(bridge)。3.网络层(第三层,层L3)中继系统,即路由器(router)。4.网桥和路由器的混合物桥路器(brouter)兼有网桥和路由器的功能。5.在网络层以上的中继系统,即网关(gateway).当中继系统是转发器时,一般不称之为网络互联,由于这仅仅是把一个网络扩大了,而这仍然是一个网络。高层网关由于比较复杂,目前使用得较少。因此一般讨论网络互连时都是指用互换机和路由器进行互联的网络。本文重要阐述互换机和路由器及其区别。第二层互换机和路由器的区别:传统互换机从网桥发展而来,属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由互换机自动进行。路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。因特网的路由选择协议:内部网关协议IGP和外部网关协议EGP第三层互换机和路由器的区别:在第三层互换技术出现之前,几乎没有必要将路由功能器件和路由器区别开来,他们完全是相同的:提供路由功能正在路由器的工作,然而,现在第三层互换机完全可以执行传统路由器的大多数功能。综上所述,互换机一般用于LAN-WAN的连接,互换机归于网桥,是数据链路层的设备,有些互换机也可实现第三层的互换。路由器用于WAN-WAN之间的连接,可以解决异性网络之间转发分组,作用于网络层。他们只是从一条线路上接受输入分组,然后向另一条线路转发。这两条线路也许分属于不同的网络,并采用不同协议。相比较而言,路由器的功能较互换机要强大,但速度相对也慢,价格昂贵,第三层互换机既有互换机线速转发报文能力,又有路由器良好的控制功能,因此得以广播应用。-----------------------------------------------Q4:请问C++的类和C里面的struct有什么区别?c++中的类具有成员保护功能,并且具有继承,多态这类oo特点,而c里的struct没有-----------------------------------------------Q5:请讲一讲析构函数和虚函数的用法和作用?析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载。知识在类对象生命期结束的时候,由系统自动调用释放在构造函数中分派的资源。这种在运营时,能依据其类型确认调用那个函数的能力称为多态性,或称迟后联编。另:析构函数一般在对象撤消前做收尾工作,比如回收内存等工作,虚拟函数的功能是使子类可以用同名的函数对父类函数进行重载,并且在调用时自动调用子类重载函数,假如是纯虚函数,则纯粹是为了在子类重载时有个统一的命名而已。-----------------------------------------------Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?全局变量的生命周期是整个程序运营的时间,而局部变量的生命周期则是局部函数或过程调用的时间段。其实现是由编译器在编译时采用不同内存分派方法。全局变量在main函数调用后,就开始分派,假如是静态变量则是在main函数前就已经初始化了。而局部变量则是在用户栈中动态分派的(还是建议看编译原理中的活动记录这一块)----------------------------------------------Q7:一些寄存器的题目,重要是寻址和内存管理等一些知识。。。。--------------------------------------------Q8:8086是多少位的系统?在数据总线上是怎么实现的?8086系统是16位系统,其数据总线是20位----------------------------------------------------------------------------C++一、请填写BOOL,float,指针变量与“零值”比较的if语句。(10分)请写出BOOLflag与“零值”比较的if语句。(3分)标准答案:if(flag)if(!flag)如下写法均属不良风格,不得分。if(flag==TRUE)if(flag==1)if(flag==FALSE)if(flag==0)请写出floatx与“零值”比较的if语句。(4分)标准答案示例:constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)不可将浮点变量用“==”或“!=”与数字比较,应当设法转化成“>=”或“<=”此类形式。如下是错误的写法,不得分。if(x==0.0)if(x!=0.0)请写出char*p与“零值”比较的if语句。(3分)标准答案:if(p==NULL)if(p!=NULL)如下写法均属不良风格,不得分。if(p==0)if(p!=0)if(p)if(!)二、以下为WindowsNT下的32位C++程序,请计算sizeof的值(10分)voidFunc(charstr[100]){请计算sizeof(str)=4(2分)}charstr[]=“Hello”;char*p=str;intn=10;请计算sizeof(str)=6(2分)sizeof(p)=4(2分)sizeof(n)=4(2分)void*p=malloc(100);请计算sizeof(p)=4(2分)三、简答题(25分)1、头文献中的ifndef/define/endif干什么用?(5分)答:防止该头文献被反复引用。2、#include<filename.h>和#include“filename.h”有什么区别?(5分)答:对于#include<filename.h>,编译器从标准库途径开始搜索filename.h对于#include“filename.h”,编译器从用户的工作途径开始搜索filename.h3、const有什么用途?(请至少说明两种)(5分)答:(1)可以定义const常量(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以防止意外的变动,能提高程序的健壮性。4、在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?(5分)答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为:voidfoo(intx,inty);该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接互换指定符号extern“C”来解决名字匹配问题。5、请简述以下两个for循环的优缺陷(5分)for(i=0;i<N;i++){if(condition)DoSomething();elseDoOtherthing();}if(condition){for(i=0;i<N;i++)DoSomething();}else{for(i=0;i<N;i++)DoOtherthing();}优点:程序简洁缺陷:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化解决,减少了效率。优点:循环的效率高缺陷:程序不简洁四、有关内存的思考题(每小题5分,共20分)voidGetMemory(char*p){p=(char*)malloc(100);}voidTest(void){char*str=NULL;GetMemory(str);strcpy(str,"helloworld");printf(str);}请问运营Test函数会有什么样的结果?答:程序崩溃。由于GetMemory并不能传递动态内存,Test函数中的str一直都是NULL。strcpy(str,"helloworld");将使程序崩溃。char*GetMemory(void){charp[]="helloworld";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}请问运营Test函数会有什么样的结果?答:也许是乱码。由于GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL,但其原现的内容已经被清除,新内容不可知。voidGetMemory2(char**p,intnum){*p=(char*)malloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);}请问运营Test函数会有什么样的结果?答:(1)可以输出hello(2)内存泄漏voidTest(void){char*str=(char*)malloc(100);strcpy(str,“hello”);free(str);if(str!=NULL){strcpy(str,“world”);printf(str);}}请问运营Test函数会有什么样的结果?答:篡改动态内存区的内容,后果难以预料,非常危险。由于free(str);之后,str成为野指针,if(str!=NULL)语句不起作用。五、编写strcpy函数(10分)已知strcpy函数的原型是char*strcpy(char*strDest,constchar*strSrc);其中strDest是目的字符串,strSrc是源字符串。(1)不调用C++/C的字符串库函数,请编写函数strcpychar*strcpy(char*strDest,constchar*strSrc);{assert((strDest!=NULL)&&(strSrc!=NULL));//2分char*address=strDest;//2分while((*strDest++=*strSrc++)!=‘\0’NULL;returnaddress;//2分}(2)strcpy能把strSrc的内容复制到strDest,为什么还要char*类型的返回值?答:为了实现链式表达式。//2分例如intlength=strlen(strcpy(strDest,“helloworld”));六、编写类String的构造函数、析构函数和赋值函数(25分)已知类String的原型为:classString{public:String(constchar*str=NULL);//普通构造函数String(constString&other);//拷贝构造函数~String(void);//析构函数String&operate=(constString&other);//赋值函数private:char*m_data;//用于保存字符串};请编写String的上述4个函数。标准答案://String的析构函数String::~String(void)//3分{delete[]m_data;//由于m_data是内部数据类型,也可以写成deletem_data;}//String的普通构造函数String::String(constchar*str)//6分{if(str==NULL){m_data=newchar[1];//若能加NULL判断则更好*m_data=‘\0’;}else{intlength=strlen(str);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,str);}}//拷贝构造函数String::String(constString&other)//3分{intlength=strlen(other.m_data);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,other.m_data);}//赋值函数String&String::operate=(constString&other)//13分{//(1)检查自赋值//4分if(this==&other)return*this;//(2)释放原有的内存资源//3分delete[]m_data;//(3)分派新的内存资源,并复制内容//3分intlength=strlen(other.m_data);m_data=newchar[length+1];//若能加NULL判断则更好strcpy(m_data,other.m_data);//(4)返回本对象的引用//3分return*this;}-------------------------------winsocket编程#include<Winsock2.h>#include<stdio.h>voidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKETsockSrv=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));listen(sockSrv,5);SOCKADDR_INaddrClient;intlen=sizeof(SOCKADDR);while(1){SOCKETsockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);charsendBuf[100];sprint(sendBuf,"Welcome%sto",inet_ntoa(addrClient.sin_addr));send(sockConn,sendBuf,strlen(sendBuf)+1,0);charrecvBuf[100];recv(sockConn,recvBuf);printf("%s\n",recvBuf);closesocket(sockConn);WSACleanup();}}注:这是Server端;File->New->Win32ConsoleApplication,工程名:TcpSrv;然后,File->New->C++SourceFile,文献名:TcpSrv;在该工程的Setting的Link的Object/librarymodules项要加入ws2_32.lib-------------------------------------------#include<Winsock2.h>#include<stdio.h>voidmain(){WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(1,1);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){return;}if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){WSACleanup();return;}SOCKETsockClient=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_INaddrSrv;addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");addrSrv.sin_family=AF_INET;addrSrv.sin_porthtons(6000);connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));charrecvBuf[100];recv(sockClient,recvBuf,100,0);printf("%s\n",recvBuf);send(sockClient,"Thisiszhangsan",strlen("Thisiszhangsan")+1,0);closesocket(sockClient);WSACleanup();}注:这是Client端;File->New->Win32ConsoleApplication,工程名:TcpClient;然后,File->New->C++SourceFile,文献名:TcpClient;同理,在该工程的Setting的Link的Object/librarymodules项要加入ws2_32.lib--------------------------------------------C++#include<iostream.h>classhuman{public:human(){human_num++;};staticinthuman_num;~human(){human_num--;print();}voidprint(){cout<<"humannumis:"<<human_num<<endl;}protected:private:};inthuman::human_num=0;humanf1(humanx){x.print();returnx;}intmain(intargc,char*argv[]){humanh1;h1.print();humanh2=f1(h1);h2.print();return0;}输出:1100-1-2----------------------------分析:humanh1;//调用构造函数,---hum_num=1;h1.print();//输出:"humanis1"humanh2=f1(h1);//再调用f1(h1)的过程中,由于函数参数是按值传递对象,调用默认的复制构造函数,它并没有对hum_num++,所以hum_num仍=1,所以x.print()输出:"humanis1";在推出f1函数时,要销毁X,调用析构函数(human_num--),输出:"humanis0"(,由于该函数返回一个human对象,所以又调用默认构造函数,创建一个临时对象(human_num=0;),把临时对象赋给h2,又调用默认构造函数(human_num=0);h2.print();//输出:humanis0;//在退出main()函数是,先销毁h2,调用析构函数(human_num--),输出"human_numis-1"然后销毁h1,调用析构函数(--),输出"human_numis-2"-----------------------------冒泡排序:voidBubbleSort(elemtypex[],intn){inti,j;elemtypetemp;for(i=1;i<n;i++)for(j=0;j<n-i;j++){if(x[j].key>x[j+1].key){temp=x[j];x[j]=x[j+1];x[j+1]=temp;}}}-------------------------------c语言文献读写#include"stdio.h"main(){FILE*fp;charch,filename[10];scanf("%s",filename);if((fp=fopen(filename,"w")==NULL){printf("cann'topenfile\n");exit(0);}ch=getchar();while(ch!='#'){fputc(ch,fp);putchar(ch);ch=getchar();}fclose(fp);}-----------------------------------c指针int*p[n];-----指针数组,每个元素均为指向整型数据的指针。int(*)p[n];------p为指向一维数组的指针,这个一维数组有n个整型数据。int*p();----------函数带回指针,指针指向返回的值。int(*)p();------p为指向函数的指针。-----------------------------------Windows的消息机制1Windows是一个消息(Message)驱动系统。Windows的消息提供了应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消息的响应和解决来完毕。Windows系统中有两种消息队列:系统消息队列和应用程序消息队列。计算机的所有输入设备由Windows监控。当一个事件发生时,Windows先将输入的消息放入系统消息队列中,再将消息拷贝到相应的应用程序消息队列中。应用程序的消息解决程序将反复检测消息队列,并把检测到的每个消息发送到相应的窗口函数中。这便是一个事件从发生至到达窗口函数必须经历的过程。必须注意的是,消息并非是抢占性的,无论事件的缓急,总是按照到达的先后派对,依次解决(一些系统消息除外),这样也许使一些实时外部事件得不到及时解决。-----------------------------------Windows的消息机制2Windows中的消息是放在相应的进程的消息队列里的。可以通过GetMessage取得,并且对于一般的消息,此函数返回非零值,但是对于WM_QUIT消息,返回零。可以通过这个特性,结束程序。当取得消息之后,应当先转换消息,再分发消息。所谓转换,就是把键盘码的转换,所谓分发,就是把消息分发给相应的窗口,由相应的窗口解决消息,这样相应窗体的消息解决函数就会被调用。两个函数可以实现这两个功能:TranslateMessage和DispatchMessage。此外,需要注意,当我们点击窗口的关闭按钮关闭窗口时,程序并没有自动退出,而是向程序发送了一个WM_DESTROY消息(其实过程是这样的,一方面向程序发送WM_CLOSE消息,默认的解决程序是调用DestroyWindow销毁窗体,从而引发WM_DESTROY消息),此时在窗体中我们要响应这个消息,假如需要退出程序,那么就要向程序发送WM_QUIT消息(通过PostQuitMessage实现)。一个窗体假如想要调用自己的消息解决函数,可以使用SendMessage向自己发消息。如上所述,大部分(注意是大部分)的消息是这样传递的:一方面放到进程的消息队列中,之后由GetMessage取出,转换后,分发给相应的窗口。这种消息成为存储式消息。存储式消息基本上是使用者输入的结果,以击键(如WM_KEYDOWN和WM_KEYUP讯息)、击键产生的字符(WM_CHAR)、鼠标移动(WM_MOUSEMOVE)和鼠标按钮(WM_LBUTTONDOWN)的形式给出。存储式消息还包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六下品德与社会教育课件
- 医疗行业超融合架构解决方案
- 2019版 华东师大版 高中体育与健康 必修 全一册《第一章 体能》大单元整体教学设计2020课标
- 培训考勤方法讲解
- 《汽车租赁系统 》课件
- 现代家庭插花
- 大班健康活动防暑小妙招
- 产后疾病的预防与护理
- 《先天性心血管病》课件
- 饮食护理评估诊断措施病人的营养和饮食状况影响营养与
- 融资租赁租金计算模板
- (全册)教学设计(教案)新纲要云南省实验教材小学信息技术四年级第3册全册
- 当前房地产市场状况下如何正确运用收益法评估
- 2024届福建省泉州高考一模地理试题(解析版)
- 手术室运用PDCA循环提高手术送检标本规范率PDCA成果汇报
- 安徽对口高考
- 幼儿园大班数学活动分水果
- 绩优学案八年级上册英语
- 海港工程混凝土结构防腐蚀技术规范
- 2.1 流程的探析 课件高中通用技术苏教版(2019)必修《技术与设计2》
- 安全生产、文明施工措施费用明细表台帐清单
评论
0/150
提交评论