2023年往年的深信服笔试题齐全.docx

上传人:太** 文档编号:72736831 上传时间:2023-02-13 格式:DOCX 页数:11 大小:25.68KB
返回 下载 相关 举报
2023年往年的深信服笔试题齐全.docx_第1页
第1页 / 共11页
2023年往年的深信服笔试题齐全.docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《2023年往年的深信服笔试题齐全.docx》由会员分享,可在线阅读,更多相关《2023年往年的深信服笔试题齐全.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一,六道选择题(可以多选)world”; p存储在()指向 堆栈world*; p存储在()指向/数据段数据段world”; p存储在()指向 堆栈world*; p存储在()指向/数据段数据段1 char *p = hell。char p= hello全局变量static变量分别在哪个地方?1数据段 2代码段 3堆 4堆栈(此题可以配协议文献夹下的char. cpp)(二、例子程序 这是一个前辈写的,非常具体/main.cppint a = 0;全局初始化区char *pl;全局未初始化区 main()int b;栈char s = abc;栈char *p2;栈char *p3 = 123

2、456; 123456。在常量区,p3 在栈上。static int c =0; 全局(静态)初始化区pl = (char *)malloc(10);p2 = (char *)malloc(20);分派得来得10和20字节的区域就在堆区。strcpy(plz 123456); 1234560放在常量区,编译器也许会将它与p3所指向的“123456优化成一个地方。不知道是那个高人怎么想的和我同样,我估计中间应当有错误)1、sirsir的实现原型。char *my_strstr(const char *str, const char *strSearch)(while (*str !=,()(ch

3、ar *p = (char *)str;char *ps = (char *)strSearch;while ( ps & *p = *ps )p,ps;if (O = *ps)return (char *)str;sir;)return NULL;2、从指定文本中删除出现频率最少的单词,假如有多个,则都删除。实现void func(char* pTxt) 函数。.看 单词解决,论坛中很多都有涉及3、prinlf的实现。int printf(const char * format,.) va_list arglist;int buffing;int retval;va_start(arglis

4、t, format);_ASSERTE(format != NULL);#ifdef_MT_Iock_str2(L stdout);_try #endif/*_MT */buffing = _stbuf(stdout);retval = _ou tput( stdout, format,argl ist);_ftbuf(buffing, stdout);#ifdef_MT)finally _unlock_str2(l, stdout);)#cndif/* _MT 切 return (ret val);4、VC中有哪些方法避免C编译头文献反复。(除了#ifndef/#deflne/#endif外

5、,就想不出来 了)#pragma once5、extern的用法。用于提供C接口,如使用C命名方式等.6、异步socket编程中,send不出数据的错误码是什么,(举Linux或Windows为例),你是 怎么解决的?非阻塞SOCKET, SEND不出数据的因素有2个吧,TCP下连接断开了和该SOCKET处在 阻塞状态(也就是说在发送数据中)。UPD发不出只有TCP后面的情况。解决的办法就是记录下该SOCKET的状态,当状态为阻塞的时间,放入缓冲,当该SOCKET 再次可写时,发送。7、异步IO和同步IO有什么区别?举例说明有几种(如read) ?异步IO当函数返回时不一定就完毕了 10操作,

6、而同步IO已经完毕了。所以异步IO需要 有一个事件,当IO完毕时会设立此事件,调用者在事件上等待。8、32位系统中,出现结构字节对齐的问题和大小端的问题的避免?#pragma pack(4)9、如何查出内存泄漏和非法操作的BUG (在Release版本下)?使用m叩文献1, PostMessage只把消息放入队列,不管其他程序是否解决都返回,然后继续 执行,这是个异步消息投放函数。而SendMcssage必须等待其他程序解决消息完 了之后才返回,继续执行,这是个同步消息投放函数。并且,PostMessage的返 同值表达PostMessage函数执行是否对的;而SendMessage的返回值表

7、达其他程 序解决消息后的返回值。这点大家应当都明白。2,假如在同一个线程内,PostMessage发送消息时,消息要先放入线程的消息 队列,然后通过消息循环Dispatch到目的窗口。SendMessage发送消息时,系 统直接调用目的窗口的消息解决程序,并将结果返回。SendMessage在同一线程 中发送消息并不入线程消息队列。假如在不同线程内。最佳用 PostThreadMessage 代替 PostMessage,他工作的很好。SendMessage 发送消息到 目的窗口所属的线程的消息队列,然后发送消息的线程等待(事实上,他应当还 在做一些监测工作,比如监视QS_SENDMESSAG

8、E标志),直到目的窗口解决完并且 结果返回,发送消息的线程才继续运营。这是SendMessage的一般情况,事实上, 解决过程要复杂的多。比如,当发送消息的线程监测到有别的窗口 SendMessage 一个消息到来时,他直接调用窗口解决过程(重入),并将解决结果返回(这个过 程不需要消息循环中GetMessage等的支持)。3 , msdn: If you send a message in the range below WM_USER to the asynchronous message functions (PostMessage, SendNotifyMessage, and Sen

9、dMessageCallback), its message parameters can not include pointers.Otherwise, the operation will fail. 假如发送的消息码在WMJSER之下(非自定义消息)且消息参数中带有指针,那么 PostMessage, SendNot ifyMessage, SendMessageCalIback 这些异步消息发送函 数将会调用失败。最佳不要用PostMessage发送带有指针参数的消息。PostMessage和SendMessage的区别重要在于是否等待其他程序消息解决。PostMessage只 是把消

10、息放入队列,不管其他程序是否解决都返回,然后继续执行:而SendMessage必须等 待其他程序解决消息后才返回,继续执行。这两个函数的返回值也不同,PosiMessage的返 回值表达PostMessage函数执行是否对的,而SendMessage的返回值表达其他程序解决消息 后的返回值。2 %&. &=那个优先级别最高.& % 二 &34以下哪些通信方式是可靠的通讯方式1信号2管道3消息4tcp 5udp 6串口 I/O我选C我选C5是(M) ? (a+) : ( a-),此处的M等于A, M=O, B, M=1, C, M! =O D, M! =12已知。的ASCII码为0x40,那么i

11、nt120;在内存中的表达形式是Ox_ 78(0的ASCII码为0x40,应当为0x30)31、在linux下,查看目录大小的命令是:du - sh dirname2、修改文献属性的命令是:chomd/chgrp3、切换为其他用户身份的命令是:su尚有一道指针互换数值 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的最终值(具体形式大约如此,但中间指针肯定记的错 误)此题重要考察指针指向一个整数,然后运用指针改变变量,最后互换

12、指针5有道填插入排序的算法。有一个数组a0到为从小到大排序,ai到acount-1没有排序,请您添加3条语句使它们按照从小到大排序int insert_sort(int a,int count)(forfint i=1 ;i=O&taj)(a0+1=aj;)J-;)(aj+1=t;)return 0;)三,编程与逻辑题1自己写一个strstr(单链表判断有无环,)char* strstr(char* but, char* sub)char* bp;char* sp;lf(!*sub)return buf;while(*buf)bf=buf;sp=sub;do if(!*sp)return bu

13、t;)while(*bp+=*sp+)buf+=1;return 0;2遍历文本找单词并删掉出现频率最少的单词,fun (char* pText)#include include 定义 avist、av_start, av_arg 等宏3实现一个与printf功能相似的函数include #include #include # include 定义 avist、av_start、av_arg 等宏/*此函数的作用:实现一个参数个数可变的函数,此函数的功能与printf类似,但在格式解决上,不如printf丰富无异常,返回个true,否则返回falseformat字符串的合法情况如下:i.%zy

14、k%zyk%”,OUTPUT:%zyk%zyk%2.,%dz)rk%fzjrk%s,OUTPUT:(int)zrk(float)zyk(string)3zyk”, OUTPUT:zyk非法情况如下:i.n%zyk% ERROR:不存在z格式、后面必须跟一个格式字符*bool zjfkPrintf(const char * format,.) 定义一个可用于指向参数的指针(实为char*),va_list argPtr;把函数的第一个参数format的地址传给argPtrva_start(argPtr,format);const int size = strlen(fbrmat)+i;char

15、*tmp = new charsize;memset(tmp, o, size);while (*format != o) int i;for (i=o; isize & *format!=% & *format!=o; i+)tmpi=*format+;tmpi = 0; 在有效的字符串末尾作o值防护printf(%s,tmp);if (*format = o)return true;s5itch(*+format)按指定类型读取下一个参数,并打印cased: printf(%d, va_arg(argPtr, int); break;case s: printf(%s, va_arg(ar

16、gPtr, char *); break; case c: printf(%c, va_arg(argPtr, char); break;case f: printf(%f, va_arg(argPtr, float); break;对%的解决case ,%*: printf(M%H); break;格式错误default: printf( Error Ocurr!Please Check the Format!); return false;+fbrmat;delete tmp;return true;int main(int argc,char * argv)zykPrintf(%zyk)

17、; /errorzykPrintfC,zyk%); /errorzykPrintf(%zyk%zyk%); “OUTPUT: %zyk%zyk%zjkPrintf(nzyk is a pretty boy! His age is %d and %s,5,I love zyk八八!);getch();return o;4是一道逻辑题,有的数是2, 3, 5的倍数,在三位数中出去可整除这三个数的和(5升和3升桶量4升水)四,改错题三道Itozero 算法2比较简朴3是高质量里的一道题五,问答题1VC中有哪些方法避免C编程中的头文献反复包含:Sifndef !#def !#endif2在C+中ext

18、ern c的作用(按键转换,比如点击p输出q)作为extern是C/C+语言中表白函数和全局变量作用范围(可见性)的关键字,该关键字 告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。extern C是连接申明(linkage declaration),被extern修饰的变量和函数是按照C语言方式编译和连接的3编程中异步10和同步10有什么区别?说说你可知道的几种10?4使用异步socket编程,通常由于网络拥塞send不出数据,会获得什么样的错误码(wind。 ws下举例),通常如何解决这种情况?(核心太与用户太的区别,X86如何转换。)5将程序移植到不同的32位cpu中,经常出

19、现结构字节对齐和大小端的问题,有哪能些方 法避免?(是子网源码的判断,计算,ABCDE网络的区别,DE网络的用途,)6如何解决在vc中内存泄漏的问题(release版本)(1)放置关键字assert ()(2)生成map文献。它并不往exe文献中添加任何东西,仅仅只是把编译连接时的所有 函数入口地址记录在后缀为.map文献。程序崩溃的时候,可以得到个崩溃时的EIP地址, 通过地址可以很容易的查到崩溃所在的函数。(在vc setting下有个link按钮选上generat e mapfile)(3) Release版本也是可以设立断点的,在希望设立断点处加入_asm int 3热悉汇编,通过编译

20、时的汇编看出(5)使用第三方调试器。(6)关掉发行版中的一些优化选项,生成调试信息。(是p2P软件在nat用户里实现数据互传的原理开发类笔试所有是。C+,规定对底层有一定的了解开发类的笔试题目比较晕,共五页纸,规定 两个钟头完毕(我的简历没有通过筛选,我是去霸王笔的仿佛考的内容都跟网上流传的差 不多,题目内容大体如下:希望对参与深信服笔试和面试的同学有所帮助:)1 .选择题:6题 第一题是考变量和值的存储位置(堆/栈/代码段/数据段等)最后一题是Unix系统 的启动顺序,其他几题比较简朴。2 .填空题:4/5题 考sizeof、指针、数制转换、排序等,看过高质量C/C+应当都没有问题。3 .改

21、错题: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:coutvv)5:删除文本文献中出现频率最小的单词,(文献里以空格表达间隔一个单词) void func(char *pTxt)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁