• 【2013.4.6】微软暑期实习生答案(zz)


     
     

     

    这套题难度评价:与去年相比技术上更多考得是语言细节而非算法,很多常规的智力题都是以前老题了,所以总体感觉难度不是很大,但是想拿高分也比较困难。最后吐槽下出题,居然有两道题不严谨,确实让很多同学在做的时候出现了疑惑。

    我整理的答案(部分来源于网络,不一定对,欢迎指正)

    1.A

    解释:

    __cdecl,__stdcall是声明的函数调用协议.主要是传参和弹栈方面的不同.一般c++用的是__cdecl,windows里大都用的是__stdcall(API)
    __cdecl是C/C++和MFC程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。__cdecl可以写成_cdecl。 __stdcall调用约定用于调用Win32 API函数。采用__stdcall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。__stdcall可以写成_stdcall。 __fastcall约定用于对性能要求非常高的场合。__fastcall约定将函数的从左边开始的两个大小不大于4个字节(DWORD)的参数分别放在ECX和EDX寄存器,其余的参数仍旧自右向左压栈传送,被调用的函数在返回前清理传送参数的堆栈。__fastcall可以写成_fastcall

     

     

    2.B

    解释:

    第一个,b->f()为动态绑定,输出B::f没问题

    第二个,由于函数g的参数有const,所以调用成员函数也是调用const版本,但是const版本的不是虚函数,不存在动态绑定,所以输出A::f const。

     

     

    3.ABC

     

    解释:

     

    A搜索时对于已排序数组可以用二分查找实现,但是链表只能从头遍历

    BC不需要解释

    D题干指的是数据存储类型,应该是一样的

     

    4.C

    解释:

    A Windows每一个应用都会开启一个主线程

    B 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,另外线程可以有独立的栈

    C 一个程序至少有一个进程,一个进程至少有一个线程.

    D 应该不可以

     

     

    5.B/D

    解释:

    没有给出具体的主函数头,所以无法判断编译环境

    考完试在真机上测试结果: Visul Studio2010运行结果为11 11,而Dev C++/gcc上运行都是10 11

    我分析这道题微软是想考察学生对x++与++y的理解,但是却出现了x=x++这样的奇葩写法,这种有争议的题到底是怎么出的?

     

    6.D

    解释:

    myArray3[2][2]越界,是指第三行第三个元素

     

     

    7.ABC

    解释:

    A、B都是常量整数

    C注意下*所在位置,约束指针还是约束常量主要看*的位置

     

     

    8.目测无答案

    解释:

     

    正确答案应该是22221111. seta中,参数是基类C类型的指针,然后移动指针取对象并赋值, 但是main中往函数seta中传递的是派生类的对象,所以对象被截取了。。。再按照基类去取对象,只取出了一部分
    9.B

    解释:

    把10个小白鼠编号0-9,分别站在对应位置,然后根据小白鼠的位置(2进制)来给它喝编号从1到1000的毒药,例如9号毒药分别给0000001001即站在第0号和第3号小白鼠喝

    由于只有一瓶毒药,一周即可知道哪些小白鼠死了,然后算出相应位数代表的二进制。

     

    10.B(待定)

    解释:

    这道题的CD不知道是不是一定错,在一些编译器里输出结果居然是1.虽然正常情况下是boolean型,暂时不确定

     

    11.C

    解释:

    正数肯定排除,负数里除法对于奇数是向上取整(即-3/2=-1),而移位运算相反是向下取整

     

    12.D

    解释:

    5条线取2条C(5,2),4条线取2条C(4,2),相乘为60

     

    13.A

    解释:

    每新一条线是将原来区间多分割n个区域出来

    即通项为O(n)=O(n-1)+n;

    O(1)=2;

    计算可知

    14.AD

    解释:

    稳定排序包括:基数、归并、冒泡、插入

     

    15.ABC(有待商榷)

    解释:

    http://go.rritw.com/en.wikipedia.org/wiki/Model-view-controller

    http://go.rritw.com/stackoverflow.com/questions/4910910/when-using-codeigniter-can-i-load-content-to-a-view-from-different-controllers

    The model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller). In event-driven systems, the model notifies observers (usually views) when the information changes so that they can react.

    The view renders the model into a form suitable for interaction, typically a user interface element. Multiple views can exist for a single model for different purposes. A viewport typically has a one to one correspondence with a display surface and knows how to render to it.

    The controller receives input and initiates a response by making calls on model objects. A controller accepts input from the user and instructs the model and viewport to perform actions based on that input.

    16.AB

    解释:

    只要有中序就能确定一棵树
    17.C

    解释:

    n+(n-1)+(n-2)+...+1

    18.B

    解释:

    group1:2个 3+6>8
    group2:2个 2+4<8
    group3:1个 10>8
     
    19.D

    解释:

    Dijstra算法
     
    20.ABCD

    解释:

    由于每一次都是从3个堆中取出两个相同个数的球(注:没取出比较的那个堆只要保证小于取出堆中球个数)放在天平比较,相等则在未比较的堆中,否则在天平轻的一端,比较n次是3的n次方,小于等于27都满足条件

     
     
     
    From:CSDN

     

  • 相关阅读:
    关于SQL Server中的DateTime类型和C#中的DateTime类型的一点小记录
    强类型DataSet的使用简明教程2
    byte[]转string的感悟
    ArrayList的Insert方法
    FormsAuthenticationTicket对象
    powerdesigner设置唯一键,但不是主键的方式
    KeyValuePair用法(转)
    如何在安装过程中部署DevExpress控件
    asp.net GridView手写事件,包括取主键、取值、更新、选择、删除
    序列化(Serialize)、反序列化(Deserialize)
  • 原文地址:https://www.cnblogs.com/peggy89321/p/3003484.html
Copyright © 2020-2023  润新知