MS.2010年5月实习生笔试经历

客观题 共十道选择题(原题是英文的,翻译过来可能会有很多问题,顺序也有可能乱,附上本人的一个粗略的解题思路)

1、  判断下列哪项可以退出循环

A.  For(unsigned short i=0;i<0xFFFF;i++)

B.  For(short i=0;i<0xFFFF;i++)

C.  For(unsigned short i=0;i>-1;i++)

D.  ……

分析:无论signed还是unsignedshort都是占用两个字节,所以这题主要是考查负数的被码问题。列出表格一看即可:

内存单元

无符号数

有符号数

0000-0000-0000-0000

0

  0

……

……

……

0111-1111-1111-1111

215-1

215-1

1000-0000-0000-0000

215

-215

……

……

……

1111-1111-1111-1111

216-1

-1

    

2、  判断下列程序中哪个会报编译错误,其它的a值为多少?(初始a=4)

Aa +=(a++)

Ba +=(++a)

C(a++) += 3

D、(++a+=4

分析:这道题应该是考察a++++a到底哪个可以做为左值。查了一下资料,a++不能做为左值。分析一下原因: 如果是++a的话,先++a,返回的东西是a, a是一个变量,所以++a是一个左值,他可被程序寻址,可以改变它的值 a++呢?a++是什么东西?a++是一个引用了临时对象的表达式,用户不能寻址该对象,也不能改变它的值,所以不能做为左值。注:此题在linux实验,ABa值分别是910,这个很好理解。C不可以做左值,编译报错。D按照理论应该可以,实验结果在VC6里没问题,Linux下报错,至于为何出错没有想清楚,望牛人解惑。

 

3、 把表达式由中缀表示变成后缀表示,如把(3+4)*6变成34+6*

分析:此题方法很是常规。具体实现为:要先设置一个运算符的栈st,从左只有扫描中缀表达式

1、如果遇到数字,直接放到后缀表达式尾;

2、如果遇到遇到运算符

   a:若此时站空,则直接入栈;

   b:循环:若栈st不空且栈顶运算符的优先级大于等于当前的运算符,则栈顶运算符出栈,置于后缀表达式尾;

   c:若栈st不空且栈顶运算符的优先级小于当前的运算符,则将此运算符直接入栈;

反复执行12,知道整个中缀表达式扫描完毕,若此时栈st不空,则将栈顶的运算符依次出栈,依次置于后缀表达式尾。

 

4、 一道数据库的题,只要考虑SQL语句

分析:数据库还没来的及复习,一看那么长SQL语句脑袋就晕了,所以建议SQL语句要复习一下,不管从事哪个方向。

 

5、 程序优化题,题目中给了若干种优化方法,比如a、删除无用变量 b、合并表达式 比如用 7代替 3+4 c、把循环内多余操作提到循环外 d、循环展开 e、……,然后给出一段代码,让指出下列代码可以采取如此优化方法。

分析:此题算是相对简单一点的。

 

6、 一道OOP对象程序设计)叙述题,判断哪个是叙述正确的,答案里的选项中提到了虚函数的概念。

分析:面向对象其实只是直观上理解意思,实践方面也只用过Java来做网络课的大作业,对于里面的很多概念相当不熟悉。心得是应该找机会把面向对象的思想了解清楚,即使我不会用面向对象的语言,至少答题没问题了。

 

7、 一道网络题,描述如下情景:机器A、机器B处于同一个局域网内,机器A攻击机器B,现象是机器A能够拦截到所有发给机器B的消息。问这是什么攻击?

分析:下面的选择,个人感觉应该是ARP(地址解析协议)攻击。这实验室了解一点片上网络知识,至于互联网络的知识完全是大学时候遗留下来的,所以只能一猜了,希望大牛指正。

 

8、 一道字符串的题,两次调用处理字符串的函数,特点是字符串处理函数参加是常量指针。然后问某一行打印的结果。个人感觉考察的应该是const指针的问题。

分析:常量指针、指针常量,当时就很晕。而MS这种专门考察细节的方式,必须了解相当清楚,所以抓紧查资料弄懂。

 

9、 定义若干变量,问这些变量中哪些是存在栈中,给出的变量有conststatic和几个局部变量。

分析:函数调用是通过栈的,局部变量是存在栈中,随着函数的退出而退出,所以全局conststatic应该是存在堆中。看资料说,malloc申请的都存放在堆中,其它存于栈。只是先如此记一下,到底如何,应该实际看一下汇编代码。

  

10、Test题,学生的成绩满足以下几点:A、整数 B、[1……100],然后让输入测试,问输入测试用例能分成多少等价类!

分析:浮点型、字符型、大、中、小于集合的,反正自己选了个最多的数5个。Test在软件工程里面会有讲,但当初软件工程课程基本都睡觉、看报纸了,所以也是很无奈呀。感叹,有些东西很重要,但要真是专门为此上个课还讲不出来什么东西,必须自己领悟!

 

 

主观题 共一题 50分钟。

题目1:给出一些元素,并给出某些元素的大小关系。然后让输出所有元素是否能严格按序排列,如果能输出Sort,不能输出No Sort

输入1A B C //表示A小于元素B、元素C,其中A称为主行元素,每个元素最多一次做                        为主行元素

          B C   //表示B小于元素C

        C     //相当于空语句

输出1:Sort    //排序完为A<B<C

输入2A B   //A小于B

           C B   //C小于B

输出2No Sort //因为AC的大小关系不能确定

分析:思想就是构建一个二维表,存储输入中各元素大小关系,比如T[i][j]=1,表示*i>*j,如果T[i][j]=0,表示*i<*j,如果T[i][j]=-1,则*i*j大小关系不确定。然后用O(n2)时间扫描表中每一项,实现关系传递。具体做法:如果元素A大于元素B,那么A也大于B大于的所有元素;反之,如果A小于B,那么A也小于B小于的所有元素。处理完毕之后,把大小关系不确定的值确定。注意,如果在填表过程中出现冲突,比如T[i][j]=0,但按提到传递算法计算T[i][j]=1,则存在环,可直接返回No sort。关系处理完毕后,最后一步判断是否为Sort,如果为有序情况,则表中除了“/方向”主对角元素为-1外,其它应该或者为1或者为0,如果不是表示至少有某两个元素大小关系不定,返回No sort,反之返回Sort.

 

 

 

笔试感想

      今年笔试题虽然用英文出题,但基本题意还是清楚的的,也算是对我这样英语不是很好同学的一个照顾。

      感想1:就算英文再差,也要知道单选题与不定项选择怎么写。之前看别人感想写说是不定项选择,这次听出来人说是单选。无限崩溃中- -!

      感想2:知识点一定要掌握牢靠,大概了解只能哄哄外行人。大家都说MS的题很好,不偏,但就是考一些深入的细节,让自己只能心服口服,承认是自己没掌握到位,而非人家出得题偏。

      感想3:计算机的方向实在好多,但是无论从事哪个方向,OS、数据结构几个都是必须要掌握的,不要找理由说自己是体系结构方向,或是和自己研究方向不相关了。

      感想4:虽然自己单选题答成了不定项,最后的主观题要求英文原码,而我只是汉语伪码,也就是说基本没有任何希望进入下一轮。不过倒没有像之前一些人说的受到严重打击,相反挺兴奋的,发现这么东西要学,可以学。很多牛人都自谦为菜鸟,这让我这样的菜鸟只能自谦为菜菜鸟或准菜鸟,本来就是去学习的,所以本着在挫折中长大的想法接受一次次的挫折吧!

     感想5:微软这样的大公司对测试要求很高呀!听说它的测试人员是开发人员2倍,不晓得是真是假,总知每年都会有Test的题

      总结:如果我今天找不到理想的工作,那么一年后、二年后会找到吗?存在可能,可是如果不去发现不足的话,只是明日复明日,那么估计今天和一年后、二年后找工作也没什么区别。想起一位高中老师送我的话“如果人这一生注定要承受挫折,那么早一点未必是件坏事!”让自己保持忙得像陀螺一样的状态,这样就没有时间去胡思乱想诸如“人生的意义”、“宇宙的起源”等高深问题(如果让普通百姓想明白了,那些哲学家还要不要活了,所以还是算了)!

 

 

                                                                                                                                                                                    2010-4-24

题目2:设计测试用例

分析:当时考虑时间已经快到了,胡乱写了几句。

A、  输入中存在环的

B、  大小关系不确定的

C、  正确输入

D、  空输入

E、  超大规模输入

- -!有点像当年答马哲题,只要想到的全往上写,给不给分您看着办

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值