版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面试准备题(c++题constchar*,charconst*,char*constC++BjarneTheC++ProgrammingLanguage里面给出过一个助记的方法:char*constcp;*pointertocpisaconstpointertocharconstchar*pisapointertoconstcharconst*C++const*const#defineMAX255intmain()unsignedcharA[MAX],i;for(i=0;i<=MAX;i++)A的下标范围为:0..MAX-1,这是其一其二.i255时,循环内执行这句本身没有问题..for(i=0;i<=MAX;i++)语句时unsignedchar的取值范围在(0..255),i++i0了..无限循环下去注:char类型为一个字节,取值范围是[-128,127],unsignedchar[0Cn阶阶乘问题的递归算法:longintfact(intintx;longinty;return1;return(n*y);1intBSearch(elemtypea[],elemtypex,intlow,int/*lowhighaintif(low>high)return-1;if(x==a[mid])returnmid;if(x<a[mid])return(BSearch(a,x,low,mid-1));elsereturn(BSearch(a,x,mid+1,high));2intBSearch(elemtypea[],keytypekey,intintlow,high,mid;if(a[mid].key==key)returnmid;elseif(a[mid].key<key)low=mid+1;elsehigh=mid-1;return-f(n)=f(n-1)+f(n-2)intf(intintinta=……;intb=a=a+b=a-a=a-Q1OSITCP/IP的五层结构图?1、OSI每层功能及特点(源端系统)送到目的地(目标端系统,网络层的任务就是传输层传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它表示层该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机OSI2、网络接口层这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,IP数据报并转交给网际层。网际网(IP层) Protocol,因特网控制报文协议、ARP(AddressResolutionProtocol,地址解析协议、(ReverseAddressResolutionProtocol,反向地址解析协议。该层负责相同或不同网络中计算机之间的通信,IP层中,ARPIP地址转换成物理地址,RARPIP地址,ICMP协议用于报告差错和传送控制信息。IPTCP/IP协议组中处于核心地位。传输层该层提供TCP(传输控制协议)UDP(UserDatagramProtocol,用户数据报应用层TCP/IPOSI模型的会话层、表示层和应用层,它向用户TCP/IP协议组之上的专用程序。3、OSITCP/IPaOSI7层,TCP/IP4bOSI先于协议出现,因此不会偏向于任何一组特定的协议,通用性更强,但有些功能不知该放哪一层上,因此不得不加入一些子层;TCP/IP后于协议出现,仅是将已有协议的一个TCP/IP的网cOSI中网络层同时支持无连接和面向连接的通信,但在传输层上只支持面向连接的通信;TCP/IP中网络层只支持无连接通信,传输层同时支持两种通信;d在技术发生变化时,OSITCP/IPQ2IP协议的定义,在哪个层上面,主要有什么作用?TCPIP协议配套使用的还有三个协议IP协议-网际协议IP地址、IPQ3(repeater2(bridge(router网桥和路由器的混合物桥路器(brouter)在网络层以上的中继系统,即网关IGPEGPQ4:C++Cstructc++oocstructQ5:main函数调用后,main函数前就已经初始化了。而局部变量则是在用户栈中动态分配看编译原理中的活动记录这一块Q7:Q8:8086是多少位的系统?在数据总线上是怎么实现的?80861620位BOOLfloat,“零值”if(10分)请写出BOOLflag与“零值”比较的if(3分)if(flag)if(!flagif(flag==if(flag==1if(flag==FALSE)if(flag==0)请写出floatx与“零值”比较的if(4分constfloatEPSINON=if((x>=-EPSINON)&&(x<=if(x==0.0)if(x!=char*p与“零值”if(3分if(p==NULL)if(p!=if(p==0)if(p!=0)if(p)ifWindowsNT32C++sizeof的值(10分voidFunc(charsizeof(str)=4(2分charstr[]=“Hello”;char*p=str;intn=sizeof(str6(2分)sizeof(p)=4(2分)sizeof(n)=4(2分)void*p=malloc(100);sizeof(p)=4(2分三、简答题(25分1ifndef/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)constconst修饰的东4C++Cextern“C”(5分)答:C++语言支持函数重载,CC++编译后在库中的名字C语言的不同。假设某个函数的原型为:voidfoo(intx,inty);C编译器编译后在库中的名字为_fooC++_foo_int_intC++Cextern“C”5for循环的优缺点(5分for(i=0;i<N;if(condition)iffor(i=0;i<N;i++)for(i=0;i<N;i++)N-1次逻辑判断,并且四、有关内存的思考题(520分voidGetMemory(charp=(charvoidchar*str=NULL;strcpy(str,"helloworld");Test函数会有什么样的结果?GetMemory并不能传递动态内存,Test函数中的str一直都是NULL。strcpy(str,"helloworld");将使程序崩charcharp[]="helloworld";returnp;voidchar*str=NULL;str=GetMemory();Test函数会有什么样的结果?GetMemory返回的是指向“栈内存NULL,但其原voidGetMemory2(char**p,int*p=(charvoidchar*str=NULL;GetMemory(&str,100);strcpy(str,"hello");Test函数会有什么样的结果?voidchar*str=(char*)malloc(100);strcpy(str,“hello”);if(str!=strcpy(str,“world”);Test函数会有什么样的结果?free(str);之后,strif(str!=NULL)strcpy函数(10分)strcpy函数的原型是char*strcpy(char*strDest,constcharstrDest是目的字符串,strSrcC++/Cstrcpychar*strcpy(char*strDest,constchar*strSrc);assert((strDest!=NULL)&&(strSrcNULL));2分char*address=strDest;//2分while((*strDest++*strSrc++)!=‘\0’)//2分NULL;returnaddress2strcpystrSrcstrDestchar*类型的返回值?答:为了实现链式表达式。//2分intlength=strlen(strcpy(strDest,“helloworld”)String的构造函数、析构函数和赋值函数(25分)String的原型为:classString(constchar*strNULL);//String(constString&other);//~String(void);//String&operate=(constString&other);//char*m_data;//String4个函数。StringString::~String(void)3delete[]//m_data是内部数据类型,也可以写成deleteStringString::String(constchar*str)6m_datanewchar[1];//若能加NULL*m_data=intlength=m_datanewchar[length+1];//若能加NULLstrcpy(m_data,//String::String(constString&other)3intlength=m_datanewchar[length+1];//若能加NULLstrcpy(m_data,//String&String::operate=(constString&other)13(1)//4if(this==&other)return*this;(2)//3delete[]//(3)//3intlength=m_datanewchar[length+1];//若能加NULLstrcpy(m_data,//(4)//3returnwinsocket#include<Winsock2.h>#include<stdio.h>voidWSADATAwsaData;intwVersionRequested=err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){SOCKETSOCKADDR_INaddrSrv;SOCKADDR_INaddrClient;intSOCKETsockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);charsendBuf[100];sprint(sendBuf,"Welcome%sto",charrecvBuf[100];ServerFile->New->Win32ConsoleApplicationTcpSrvFile->New->C++SourceFile,文件名:TcpSrvSettingLinkObject/librarymodulesws2_32.lib#include<Winsock2.h>#include<stdio.h>voidWSADATAwsaData;intwVersionRequested=err=WSAStartup(wVersionRequested,&wsaData);if(err!=0){if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){SOCKETSOCKADDR_INaddrSrv;charrecvBuf[100];send(sockClient,"Thisiszhangsan",strlen("Thisis注:这是Client端;File->New->Win32ConsoleApplication,工程名:TcpClient;然后,File->New->C++SourceFile,文件名:TcpClient;同理,在该工程的SettingLink的Object/librarymodulesws2_32.lib#include<iostream.h>classhumanhuman(){human_num++;};staticinthuman_num;voidcout<<"humannumis:inthuman::human_num=humanf1(humanreturnintmain(intargc,char*humanh1;humanh2=f1(h1);returnhumanh1; //调用构造函数,---hum_num1;h1.print();//输出:"humanis1"humanh2=//再调用f1(h1)的过程中,由于函数参数是按值传递对象,调用默认的复制构造函数,hum_num++,hum_num仍=1,x.print()输出:"humanis1";在f1函数时,X,调用析构函数(human_num--),输出:"humanis0"(,由于该函数返回一human对象,所以又调用默认构造函数,创建一个临时对象(human_num=0;),给h2,又调用默认构造函数(human_num=0); //输出:humanis0;//main()函数是,h2,调用析构函数(human_num--),"human_numis-h1,调用析构函数(--),输出"human_numis-voidBubbleSort(elemtypex[],intinti,j;elemtypec#include"stdio.h"FILEcharch,filename[10];printf("cann'topenfile\n");cint int pnint int pWindowsWindows是一个消息(Message)驱动系统。Windows的消息提供了应用程序之间、应用程Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠Windows系统中有两种消息队列:系统消息队列和应用程序消息队列。计算机的所有Windows监控。当一个事件发生时,Windows先将输入的消息放入系统消息队WindowsWindowsGetMessage取得,并且对WM_QUIT消息,返回零。可以通过这个特的消息处理函数就会被调用。两个函数可以实现这两个功能:TranslateMessage和WM_DESTROY消息(WM_CLOSE消WM_QUIT消息(PostQuitMessage实现)。SendMessageGetMessage取出,转换后,分发给对应的窗口。这种消息成为存储式消息。存储式消(WM_CHAR)(WM_MOUSEMOVE)(WM_TIMER(WM_QUITWinMain调用CreateWindow时,Windows
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人贷款协议样本(2024年度版)版
- 2025年度电商客服外包服务满意度调查合同4篇
- 二零二五年度充值卡充值业务合作伙伴协议4篇
- 2025年度船舶船员聘用及船舶动力系统维护合同4篇
- 二零二五年度工业地产承包招商合作协议书3篇
- 23-24年项目部治理人员安全培训考试题附下载答案可打印
- 2023年-2024年新员工入职前安全教育培训试题附完整答案(夺冠)
- 二零二五年度电力设备安装工程师劳动合同范本3篇
- 2023年员工三级安全培训考试题及参考答案一套
- 二零二五年度畜牧机械租赁及售后服务合同4篇
- 2024-2030年中国光电干扰一体设备行业发展现状与前景预测分析研究报告
- 小学三年级下册奥数题100道附答案
- 湖南省岳阳市岳阳楼区2023-2024学年七年级下学期期末数学试题(解析版)
- 农村自建房安全合同协议书
- 杜仲叶药理作用及临床应用研究进展
- 4S店售后服务6S管理新规制度
- 高性能建筑钢材的研发与应用
- 无线广播行业现状分析
- 汉语言沟通发展量表(长表)-词汇及手势(8-16月龄)
- 高速公路相关知识讲座
- 儿科关于抗生素使用的PDCA
评论
0/150
提交评论