您的位置:首页 > 其它

作为应届生遇到的笔试题

2013-09-24 17:40 92 查看

1,最快的方法判断一个数是不是2的幂次方(网易)。

思路,如果系2的幂次方转换成2进制的话,有1个1,后面一堆0;方法:num&(num-1)==0即可。
但是为了更合理,我们来考虑下有没有不一般的情况,1,负数?用-8,-9来测试一下,与了后不是0,通过。2, 2的分数次幂。不过这个不会搞。。。。悲剧
在网上搜了下,发现还可以扩展一下,如果系2的幂次方,判断系几次幂。可以设置一个计数器,用循环移位来改变计数值。while(num!=0){num>>=1;i++}

2,线程死锁
考了银行家算法和剥夺资源的方式的作用分别是什么,当时不会,回来百度百科看就明白了。

3,图灵机停机
看了一下午也不懂,没办法,放弃了
------------------------------------------------------------------------------------------------------------------------------------------------------
4,


一道关于C++ 继承/虚函数 笔试题

#include "stdafx.h"
#include "stdio.h"
#include "string.h"

class Father
{
public:
name()
{printf("father name\n");};

virtual call()
{printf("father call\n");};

};

class Son: public Father
{
public:
name()
{printf("Son name\n");};

virtual call()
{printf("Son call\n");};

};

main()
{

Son *Son1=new Son();
Father *father1=(Father *)Son1;

father1->call();
father1->name();

((Son *)(father1))->call();
((Son *)(father1))->name();

Father *f2=new Father();
Son *s2=(Son*)f2;
s2->call();
s2->name();

((Father *)(s2))->call();
((Father *)(s2))->name();
}

output::


Son call
father name
Son call
Son name
father call
Son name
father call
father name


虚函数的调用通过虚函数指针来调用,如果new的对象是Son的,则不管它转化成什么指针,它的指针都是Son内部的,与指针类型无关,只与指针地址有关

非虚函数的调用则由指针类型决定

本条转自/article/6449530.html?TPSecNotice ,我觉得解释得很清楚,一直都很乱,以后不会了。

-----------------------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: