




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(微软2004-11-13的笔试题解析)1、求函数返回值,输入x=9999; int func(x) int countx = 0;while(x) countx +; x = x&(x-1); return countx; 【试题解析】 解这道题的时候,如果拿出一个二进制数来分析就会容易的多了,x=x&(x-1)实际上就是把x的二进制形式的最后一个“1”变成“0”,x的二进制形式有多少个“1”循环就执行多少次。9999/256 = 39 余 15,把这两个数分别转化一下就很快了 39 = 32 + 4 + 2 +1 = 00100111 15 = 0F = 00001111 所以 9999=0010011100001111,共有8个1,答案就是 8 了 2、实现以下程序,以方便binary search. .要有处理错误语句 .队列的分配的大小是固定的MAX_LEN,由第二个参数输入 .不能复制队列 insert (int *arr, /队列 size_l len, / 队列大小 size_l count, /队列元素的数目 int varl /要处理的数据 )返回插入数据的索引 remove(int *arr,size_l len,size_l count,int varl)返回删除元素的索引 search(int *arr,size_l len,size_l count,int varl)返回搜索道元素的索引 【试题解析】 略。数据结构书上都有的。3、堆栈R,从顶到底:2,4,6,8,10,逐个取出放入队列Q中 ,再从Q中逐个取出放入R中,问现在堆栈R中从顶到底的顺序。【试题解析】 这个也不用了吧,10,8,6,4,24、写出程序的结果:_ int funa(int *a) a0 +; int funb(int b) b1 += 5; main() int a5 = 2,3,4,5,6;int b5 = 2,3,4,5,6;int *p; p = &a0; (*p)+;funa(p); for(int i = 0; i3; i+) printf(%d,ai); p = &b1;funb(p); for(i = 0; i(MAX_PATH_LENGTH-1) ) return -2; 没有检查新开辟的空间能否容纳传进来的字符串,否则有可能越界 *pBuffer题中的原意是当到字符串末尾的时候跳出循环,所以应该是取字符串的内容 同 delete pBuffer; pBuffer=NULL;没有释放新开辟的空间,会造成内存泄漏6、你觉得下一代浏览器应该添加什么功能?【题目解析】 当时随便写的,比如安全性,搜索功能等。7、给出函数strcmp()的测试方案 int strcmp(const char * str1, const char *str2)【题目解析】 主要考查考虑问题的全面型,我觉得有一个电冰箱测试的例子不错我写了几个(仅供参考):str1str2NULLNULLaNULLNULLaa abcabcacd.xjsefn8、测试一个 DVD Player,如果你仅有有限的时间,你会如何做?【题目解析】 只是说说我的思路,不是标准答案。首先测试基本功能,然后是常用功能,然后是高级功能。9、在过去的这些年,你遇到了哪一个最大的困难,你是如何解决它的?你是单独做的还是和别人一起做的决定?为什么做这个决定?现在结果如何?10、逻辑题: 有一5节车厢的过山车,每节能座两人,现有Luair,Jack,Gwen,Tom,Mark,Paul,6人去乘车,有以下条件 1,Luair和别人同乘 2,Mark 不合别人同乘,而且Mark的前一节车厢是空的 3,Tom 不和Gwen 与 Paul 中的任何一人同乘 4,Gwen乘3,或者4节.下面是一些断言性的语句,让你判断对错【题目解析】 Mark和那节空车厢可以当作一个整体,剩下的就是按照规则做排列组合就可以了,可能的种类不是太多。如果用笔画个草图的话就比较容易了。11、链表反转:(这道题不是微软的,不过考的比较多,就不另外开贴了)数据结构如下:typedef struct _Node int data;struct _Node *next; Node;完成函数 Node *Reverse(Node *head),head为不带头节点的链表的首部。Node *Reverse(Node *head)Node *tmp = NULL;/缓冲变量Node *newHead = NULL;/反转后的新头节点if ( head=NULL ) return head;/ 空链表的情况if ( head-next=NULL ) return head;/ 链表只有一个节点的情况while ( head )/ 判断有没有移动到最后tmp=head-next;/临时记录下一个节点head-next = newHead;/ 把原来链表中的节点放到新的链表的首部newHead = head;head = tmp;/ end of whilereturn newHead; / end of Reverse1、下面的程序运行时哪里会出现错误:struct S int i; int * p;int main() S s; int * p = &s.i; p0 = 4; p1 = 3; s.p = p; s.p1 = 1; s.p0 = 2; return 0;【题目解析】这道题考的是对结构体内存使用情况的理解。在32位的操作系统中,int和指针类型的变量占用空间都是4个字节。在本题中 &s.i的值实际就是 &s的值,所以“int * p = &s.i”也就相当于把p指向了结构体s的地址的起始位置。如图1所示。图1假设 &s的值为0x12300,则p的值也是0x12300,p0指的是从0x12300开始的连续4个字节的空间,p1指的是从0x12304(注意!不是0x12301)开始的连续4个字节的空间。这样,p0也就相当于s.i,p1也就相当于s.p,分析到这一步,可以确定程序运行到“s.p=p;”这里不会出错。继续往下看。在进行了“s.p=p;”的赋值之后,s.p指向的是s的首地址,此时s.p0相当于s.i,s.p1相当于s.p。下一句“s.p1=1”执行过之后,此时s.p的值为1,也就是指向内存的0x00001处,隐患出现了。在执行“s.p0=2”的时候,实际上是向内存0x00001起始的连续四个字节写入0x00000002,而那块内存不属于这个程序,会出现访问非法内存的错误。VC解析的汇编代码如下(部分),有兴趣的可以参考一下。; 14: S s; 15: int * p = &s.i;00401028 lea eax,ebp-80040102B mov dword ptr ebp-0Ch,eax; 16: p0 = 4;0040102E mov ecx,dword ptr ebp-0Ch00401031 mov dword ptr ecx,4; 17: p1 = 3;00401037 mov edx,dword ptr ebp-0Ch0040103A mov dword ptr edx+4,3; 18: s.p = p;00401041 mov eax,dword ptr ebp-0Ch00401044 mov dword ptr ebp-4,eax; 19: s.p1 = 1;00401047 mov ecx,dword ptr ebp-40040104A mov dword ptr ecx+4,1; 20: s.p0 = 2;00401051 mov edx,dword ptr ebp-400401054 mov dword ptr edx,22、ABCDEF各是一个09的数字,根据下面的条件确定AF的值ABCDEF*2 = CDEFABCDEFAB*2 = EFABCD【题目解析】以下答案由winion提供ABCDEF各是一个09的数字,根据下面的条件确定AF的值 ABCDEF*2 = CDEFAB CDEFAB*2 = EFABCD 一看到题目,我立即就想到了1/7,它正好满足这个数字的性质。所以答案是142857. .1/7=0.142857 2/7=0.285714 3/7=0.428571 4/7=0.571428 5/7=0.714285 6/7=0.857142 然后是循环,注意到没有,都是142857这六个数字。 以下答案由大辉提供ABCDEF*2 = CDEFAB CDEFAB*2 = EFABCD 2*AB = CD 2*EF = 1AB 2*CD+1 = EF 8AB+2 = 100+AB AB = 14 以下答案由dawangzi16 提供1. E2C4A;=a=1or2; 2. 因为EF*2=AB ,结合式子1得:(if A=2 then E=8 or 9 此时不成立) 所以 A=1; E=5; 同时得出F大于5; 此时:1BCD5F*2=CD5F1B;CD5F1B*2=5F1BCD; 3。因为1B*2=CD 所以推出:c=3或2; 又由CD*2=5F; 推出C=2 ; D5; 此时:1B2D5F*2=2D5F1B;2D5F1B*2=5F1B2D; 4。因为1B*2 = 2D 而且D5,推出B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届内蒙古乌海市高三化学第一学期期中综合测试模拟试题含解析
- 2025技师仓储管理试题及答案
- 2025年注册验船师资格考试(A级船舶检验专业案例分析)强化训练试题及答案一
- 2025年注册验船师资格考试(B级船舶检验法律法规)冲刺试题及答案一
- 2025年高级云计算开发工程师认证指南及模拟试题解析
- 2025年全国养老护理员(高级)技能证书理论考试试题(附答案)
- 国际银行业务试题及答案
- 2025年政府驻穗办事处招聘考试综合备考指南与技巧
- 2025年初级智能制造工程师笔试模拟试题与答案
- 2025年电力电子工程师专业模拟题及答案指南
- 2025 年小升初苏州市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 2025年建筑工程管理与实务一级建造师考试冲刺押题卷
- 2025版建筑垃圾处理废弃物处理设施运营管理合同
- 2024年贵阳市南明区选聘社区工作者考试真题
- 2025年招录考试-工会招聘考试历年参考题库含答案解析(5套典型题)
- 2025年电力工程行业研究报告及未来发展趋势预测
- 气道支架植入术后护理查房
- 2025年时事政治题附完整答案详解【各地真题】
- 子痫前期预测与预防指南(2025)解读
- 《安宁疗护》高职护理专业全套教学课件
- 高速公路隧道防火安全试验检测计划
评论
0/150
提交评论