- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C服务器开发面试题
一、选择题(每题5分)1. 链表不具有的特点是( B)。?(A) 不必事先估计存储空间; ? ? ? ? ? ? ? ? (B) 可随机访问任一元素;?(C) 插入删除不需要移动元素; ? (D) 所需空间与线性表长度成正比;?2. 下列数据结构中,按先进后出原则组织数据的是(D)?(A) 线性链表; ? ? ? ? (B) 顺序表; ? ?(C)循环链表; ? (D) 栈;?3. 如果定义一个C++类CDate, 语句“CDate *p = newCDate;”的含义是(A )。?(A) 调用CDate类的缺省构造函数从内存中分配一个CDate类型的对象,并将该对象地址赋值给指针p;?(B) 调用CDate类的拷贝构造函数从内存中分配一个CDate类型的对象,并将该对象地址赋值给指针p;?(C) 调用CDate类的析构函数从内存中分配一个CDate类型的对象,并将该对象地址赋值给指针p;?(D) 从内存中释放指针p所指向的CDate类的对象;?4. 下列关于静态数据成员正确的是( B)?(A) 可以通过this指针访问静态数据; ? ? ?(B) 可以用类名和作用域访问静态数据;?(C) 静态数据在类内声明并初始化; ? ? ? (D)只能由该类的静态成员函数访问;?5. 在TCP/IP协议栈里,如果出现阻塞的情况,下面那种情况最有可能发生? ( A)?(A) 连接错误 ?(B) 释放缓存 (C) 包错误 (D) 丢包?6. 下面的类图表示的是哪个设计模式?(D)??(A) 代理模式(Proxy) ? ? ? ? ?(B) 装饰模式(Decorator)?(C) 桥接模式(Bridge) ? ? ? (D) 观察者模式(Observer)??二、简答题(每题7分)?1. C++中指针和引用有什么区别?答:?1.引用访问一个变量是直接访问,而指针是间接访问。?2.引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有自己的内存空间。?3.引用在开始的时候就绑定到了一个内存空间(开始必须赋初值),所以他只能是这个内存空间的名字,而不能改成其他的,当然可以改变这个内存空间的值.2. C++特点是什么,如何实现多态?画出基类和子类在内存中的相互关系?继承,封装,多态?用虚函数实现多态?子类可以继承父类的非私有数据成员?3. 请写一个算法删除数组[1,1,1,2,2,2,2,2,7,7,1,5,5,5,0]中重复的数字,使其转变成1,2,7,1,5,0?voidNoReplicatedSubstring(int s[],int len)?{??vector int vectTemp;??int nData= s[0];??vectTemp.push_back(nData);??for(int i=1;ilen;i++)??{??if(s[i] == nData)??{? continue;??}??else??{??nData =s[i];??vectTemp.push_back(s[i]);??}??}?}?4. 一次遍历找链表倒数第n个节点,要求通过一次遍历找到链表中倒数第n个节点,链表可能相当大,可使用辅助空间,但是辅助空间的数目必须固定,不能和n有关。?答案:?ListNode*NodeInList(ListNode* pHead,int Num)?{??if(pHead==NULL)??return NULL;??ListNode* pNode=pHead; ? ? ? ? ? //当前结点??ListNode* pMidNode=pHead;//倒数Num个结点??while(Num)??{? if(pNode-m_pNext!=NULL)??pNode=pNode-m_pNext-m_pNext;??Num--;??}??while(pNode-m_pNext!=NULLpNode-m_pNext-m_pNext!=NULL)??{??pNode=pNode-m_pNext-m_pNext;??pMidNode=pMidNode-m_pNext;??}??return pMidNode;?}?5. TCP/IP 建立连接的过程?(3-way shake)?答:?Client与server建立TCP连接时:首先Client向server发SYN(请求),然后server回复(应答请求),最后Client回复,这样TCP就建立一次连接(三次握手)的过程就建立了?6. 使用udp和tcp进程网络传输,为什么tcp能保证包是发送顺序,而 udp无法保证??1.主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的
原创力文档


文档评论(0)