分享

常见笔试/面试题目(三)

 软件团队头目 2006-10-28
常见笔试/面试题目(三)
□daibaobao 发表于 2005-12-9 15:54:00

3.10 #define DOUBLE(x) x+x (Autodesk)

i = 5*DOUBLE(10) i 是多少?正确的声明是什么?

答案:i 60。正确的声明是#define DOUBLE(x) (x+x)

 

3.11 有哪几种情况只能用intialization list 而不能用assignment? (Autodesk)

答案:当类中含有constreference 成员变量;基类的构造函数都需要参数;类中含有其他类的成员对象,而该类的构造函数都需要参数。

 

3.11 C++是不是类型安全的? (Autodesk)

答案:不是。两个不同类型的指针之间可以强制转换。C#是类型安全的。

 

3.12 main 函数执行以前,还会执行什么代码? (Autodesk)

答案:全局对象的构造函数会在main 函数之前执行。

 

3.13 描述内存分配方式以及它们的区别。 (Autodesk , Microsoft)

答案:1 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。
2 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。
3 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc new 申请任意多少的内存,程序员自己负责在何时用free delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

 

3.14 什么是虚拟存储器?virtual memory 怎样映射到physical memory?页面替换算法有哪些? (Microsoft)

见操作系统 p238 页。掌握的页面替换算法NRUFIFO,第二次机会页面替换算法,LRU

 

3.15 有四个同样的容器,里面装满了粒数相同的药丸,正常药丸的质量为m,变质药丸的质量为m+1,现在已知这四个容器中,有一个装的全是变质药丸,用电子秤只称一次,找出哪个容器装的是变质药丸 Microsoft

答案:把四个容器依次编号为1234,然后从中分别取出1234 粒药丸,称这10 粒药丸的质量,如果质量为10m+1,则说明第一个容器装的是变质药丸,如果为10m+2 则说明第二个装的变质药丸,依次类推。

 

3.16 比较一下C++static_cast dynamic_cast 的区别。 (Autodesk

dynamic_casts在帮助你浏览继承层次上是有限制的。它不能被用于缺乏虚函数的类型上,它被用于安全地沿着类的继承关系向下进行类型转换。如你想在没有继承关系的类型中进行转换,你可能想到static_cast

3.17 Struct class 的区别 (Autodesk)

答案:struct 中成员变量和成员函数默认访问权限是public,class private

 

3.18 当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。(Autodesk

答案:肯定不是零。我举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…

 

3.19 8086 汇编下,逻辑地址和物理地址是怎样转换的?(Intel

答案:通用寄存器给出的地址,是段内偏移地址,相应段寄存器地址*10H+通用寄存器内陆址,就得到了真正要访问的地址。

 

3.20 描述一下C++的多态 microsoft

答案:C++的多态表现在两个部分,一个是静态连编下的函数重载,运算符重载;动态连编下的虚函数、纯虚函数(抽象类)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多