往年的深信服笔试题(齐全).doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 往年 深信 笔试 齐全
- 资源描述:
-
· 一,六道选择题 (可以多选) 1 char *p = "hello world"; p存储在()指向 //堆栈 char p[] = "hello world"; p存储在()指向 全局变量 //数据段 static变量 //数据段 分别在哪个地方? 1数据段 2代码段 3堆 4堆栈 (此题可以配合同文件夹下的char.cpp) (二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); 分配得来得10和20字节的区域就在堆区。 strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456" 优化成一个地方。 } 不知道是那个高人怎么想的和我一样,我估计中间应该有错误) 2 % & . && <= = 那个优先级别最高 . & % <= && = 3 4以下哪些通信方式是可靠的通讯方式 1信号2管道3消息4tcp 5udp 6串口I/O 5是(M)?(a++):( a--),此处的M等于 我选C A,M==O,B,M==1,C,M!=O,D,M!=1 6是Unix的启动顺序排序。(6个选项) 二 1是数制转换151转2进制和九进制。10010111 177 2已知0的ASCII码为0x40,那么int 120;在内存中的表示形式是0x__ 78(0的ASCII码为0x40,应该为0x30) 3 1、在linux下,查看目录大小的命令是:du –sh dirname 2、修改文件属性的命令是:chomd/chgrp 3、切换为其他用户身份的命令是:su 4还有一道指针交换数值 int i=0,j=10,int* p=&i, int* q=&j, int fun (**a,*b) {int* temp=a; *a*=10; *b*=10; a=b; b=temp; }最后问调用fun(&p,q)问i、j、p、q的最终值(具体形式大概如此,但中间指针肯定记的错误) 此题主要考察指针指向一个整数,然后利用指针改变变量,最后交换指针 · 5有道填插入排序的算法。有一个数组a[0] 到 a[i-1]为从小到大排序,a[i] 到a[count-1]没有排序,请您添加3条语句使它们按照从小到大排序 int insert_sort(int a[],int count) { for(int i=1;i<count;++i) { int j,t; t=a[i]; (j=i-1;) while(j>=0&&t<a[j]) { (a[j+1]=a[j];) j--; } (a[j+1]=t;) } return 0; } 三,编程与逻辑题 1自己写一个strstr (单链表判断有无环,) char* strstr(char* buf, char* sub) { char* bp; char* sp; If(!*sub) return buf; while(*buf) {bf=buf; sp=sub; do{ if(!*sp) return buf; } while(*bp++==*sp++) buf+=1; } return 0; } 2遍历文本找单词并删掉出现频率最少的单词,fun (char* pText) #include <stdio.h> #include <stdarg.h> //定义av_list、av_start、av_arg等宏 · 3实现一个与printf功能相似的函数 #include <iostream> #include <conio.h> #include <stdio.h> #include <stdarg.h> //定义av_list、av_start、av_arg等宏 /******************************************************************* 此函数的作用: 实现一个参数个数可变的函数,此函数的功能与printf类似, 但在格式处理上,不如printf丰富 无异常,返回一个true,否则返回false format字符串的合法情况如下: 1."%%zyk%%zyk%%",OUTPUT:%zyk%zyk% 2."%dzyk%fzyk%s",OUTPUT:(int)zyk(float)zyk(string) 3."zyk", OUTPUT:zyk 非法情况如下: 1."%zyk%" ERROR:不存在%z格式、%后面必须跟一个格式字符 *******************************************************************/ bool zykPrintf(const char * format,...) { //定义一个可用于指向参数的指针(实为char *), va_list argPtr; //把函数的第一个参数format的地址传给argPtr va_start(argPtr,format); const int size = strlen(format)+1; char *tmp = new char[size]; memset(tmp, 0, size); · while (*format != 0) { int i; for (i=0; i<size && *format!='%' && *format!=0; i++) { tmp[i]=*format++; } tmp[i] = 0; //在有效的字符串末尾作0值防护 printf("%s",tmp); if (*format == 0) return true; switch(*++format) { //按指定类型读取下一个参数,并打印 case 'd': { printf("%d", va_arg(argPtr, int)); break;} case 's': { printf("%s", va_arg(argPtr, char *)); break; } case 'c': { printf("%c", va_arg(argPtr, char)); break;} case 'f': { printf("%f", va_arg(argPtr, float)); break;} //对%%的处理 case '%': { printf("%%"); break; } //格式错误 default : { printf(" Error Ocurr!Please Check the Format!"); return false;} } ++format; } delete[] tmp; return true; } int main(int argc,char * argv[]) { zykPrintf("%zyk"); //error zykPrintf("zyk%"); //error zykPrintf("%%zyk%%zyk%%"); //OUTPUT: %zyk%zyk% zykPrintf("\nzyk is a pretty boy! His age is %d and %s",5,"I love zyk^_^!"); getch(); return 0; } 文章引用自: · 4是一道逻辑题,有的数是2,3,5的倍数,在三位数中出去可整除这三个数的和 ( 5升和3升桶量4升水) 四,改错题三道 1tozero算法 2比较简单 3是高质量里的一道题 五,问答题 1VC中有哪些方法避免C编程中的头文件重复包含: #ifndef !!!! #def !!!! #endif 2在C++中extern c的作用 (按键转换,比如点击p输出q) 作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 extern "C"是连接申明(linkage declaration),被extern "C"修饰的变量和函数是按照C语言方式编译和连接的 3编程中异步IO和同步IO有什么区别?说说你可知道的几种IO? 4使用异步socket编程,通常因为网络拥塞send不出数据,会获得什么样的错误码(windows下举例),通常如何处理这种情况? (核心太与用户太的区别,x86如何转换。) 5将程序移植到不同的32位cpu中,经常出现结构字节对齐和大小端的问题,有哪能些方法避免? (是子网源码的判断,计算,ABCDE网络的区别,DE网络的用途,) 6怎样解决在vc中内存泄漏的问题(release版本) (1)放置关键字assert() (2)生成map文件。它并不往exe文件中添加任何东西,仅仅只是把编译连接时的所有函数入口地址记录在后缀为.map文件。程序崩溃的时候,可以得到一个崩溃时的EIP地址,通过地址可以很容易的查到崩溃所在的函数。(在vc setting下有个link按钮选上generate mapfile) (3)Release版本也是可以设置断点的,在希望设置断点处加入_asm int 3 (4)熟悉汇编,通过编译时的汇编看出 (5)使用第三方调试器。 (6)关掉发行版中的一些优化选项,生成调试信息。 (是p2p软件在nat用户里实现数据互传的原理 开发类笔试全部是C/C++,要求对底层有一定的了解开发类的笔试题目比较晕,共五页纸,要求两个钟头完成(我的简历没有通过筛选,我是去霸王笔的-_-)好像考的内容都跟网上流传的差不多,题目内容大致如下:希望对参加深信服笔试和面试的同学有所帮助:) 1.选择题:6题 第一题是考变量和值的存储位置(堆/栈/代码段/数据段等) 最后一题是Unix系统的启动顺序,其他几题比较简单。 2.填空题:4/5题 考sizeof、指针、数制转换、排序等,看过高质量C/C++应该都没有问题。 3.改错题:3题 有道题跟高质量C/C++中一道指针题类似,不过那题中没有错,原本不需要修改,却反倒被我改错了,汗...另外两题比较简单。 4.编程题: 4/5题 判断链表有没有环(要求用两种方法); 实现C中的printf 深圳某公司几个vc/mfc笔试题目(含参考答案) 1:Release版本下如何解决memory leak 以及非法操作的BUG。(搞不清什么非法操作) 2: 在异步socket时,为什么有时send不出数据,会报什么错误(分windows/linux下),你一般怎么处理? 下面是几个编程的 3:实现strstr模型 (我晕,我写了个函数,只是不是strstr,而是strchr) 4: 实现printf类似的函数, void myprintf(char *str,...) (用console API吗?好像在哪书上看到可用那些API实现,嘿,我就写了个std::cout<<) 5: 删除文本文件中出现频率最小的单词,(文件里以空格表示间隔一个单词) void func(char *pTxt) 1、strstr的实现原型。 char *my_strstr(const char *str, const char *strSearch) { while (*str != '\0') { char *p = (char *)str; char *ps = (char *)strSearch; while ( ps && *p == *ps ) p , ps ; if ('\0' == *ps) return (char *)str; str ; } return NULL; } 2、从指定文本中删除出现频率最少的单词,如果有多个,则都删除。实现void func(char* pTxt)函数。 ... 看 单词处理, 论坛中很多都有涉及 3、printf的实现。 int printf(const char *format, ...) { va_list arglist; int buffing; int retval; va_start(arglist, format); _ASSERTE(format != NULL); #ifdef _MT _lock_str2(1, stdout); __try { #endif /* _MT */ buffing = _stbuf(stdout); retval = _output(stdout,format,arglist); _ftbuf(buffing, stdout); #ifdef _MT } __finally { _unlock_str2(1, stdout); } #endif /* _MT */ return(retval); } 4、VC中有哪些方法避免C编译头文件重复。(除了#ifndef/#define/#endif外,就想不出来了) #pragma once 5、extern "C"的用法。 用于 提供 C 接口, 如使用 C 命名方式 等 . 6、异步socket编程中,send不出数据的错误码是什么,(举Linux或Windows为例),你是怎么处理的? 非阻塞SOCKET,SEND不出数据的原因有2个吧,TCP下连接断开了和该SOCKET处在阻塞状态(也就是说在发送数据中)。UPD发不出只有TCP后面的情况。 处理的办法就是记录下该SOCKET的状态,当状态为阻塞的时间,放入缓冲,当该SOCKET再次可写时,发送。 7、异步IO和同步IO有什么区别?举例说明有几种(如read)? 异步IO当函数返回时不一定就完成了IO操作,而同步IO已经完成了。所以异步IO需要有一个事件,当IO完成时会设置此事件,调用者在事件上等待。 8、32位系统中,出现结构字节对齐的问题和大小端的问题的避免? #pragma pack(4) 9、如何查出内存泄漏和非法操作的BUG(在Release版本下)? 使用map文件 1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理消息后的返回值。这点大家应该都明白。 2, 如果在同一个线程内,PostMessage发送消息时,消息要先放入线程的消息队列,然后通过消息循环Dispatch到目标窗口。SendMessage发送消息时,系统直接调用目标窗口的消息处理程序,并将结果返回。SendMessage在同一线程中发送消息并不入线程消息队列。 如果在不同线程内。最好用PostThreadMessage代替PostMessage,他工作的很好。SendMessage发送消息到目标窗口所属的线程的消息队列,然后发送消息的线程等待(事实上,他应该还在做一些监测工作,比如监视QS_SENDMESSAGE标志),直到目标窗口处理完并且结果返回,发送消息的线程才继续运行。这是SendMessage的一般情况,事实上,处理过程要复杂的多。比如,当发送消息的线程监测到有别的窗口SendMessage一个消息到来时,他直接调用窗口处理过程(重入),并将处理结果返回(这个过程不需要消息循环中GetMessage等的支持)。 3, msdn: If you send a message in the range below WM_USER to the asynchronous message functions (PostMessage, SendNotifyMessage, and SendMessageCallback), its message parameters can not include pointers. Otherwise, the operation will fail. 如果发送的消息码在WM_USER之下(非自定义消息)且消息参数中带有指针,那么PostMessage,SendNotifyMessage,SendMessageCallback这些异步消息发送函数将会调用失败。 最好不要用PostMessage发送带有指针参数的消息。 PostMessage 和SendMessage的区别主要在于是否等待其他程序消息处理。PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行。这两个函数的返回值也不同,PostMessage的返回值表示PostMessage函数执行是否正确,而SendMessage的返回值表示其他程序处理消息后的返回值。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




往年的深信服笔试题(齐全).doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/10695463.html