第一部分(必做):计算机科学基础

1、长为N的字符串中匹配长度为M的子串的算法复杂度是()

A. O(N) B. O(M+N) C. O(N+logM) D. O(M+logN)

答:B

分析:我查了查,O(M + N)。KMP能做到。

2、以下排序算法中,哪些是稳定的排序算法(多选)()

A.冒泡 B.插入 C.合并 D.希尔 E.快速排序

答:ABC

3、以下是一颗平衡二叉树,请画出插入键值3以后的这颗平衡二叉树。

分析:考察平衡二叉树的基本操作,插入3变成不平衡,需要节点5右旋一次,节点2左旋一次。。

2012网易校园招聘笔试题_校园招聘

4、给定两个整数集合A和B,每个集合都包含20亿个不同整数,请给出快速计算A∩B的算法,算法可使用外存,但是要求占用内存不能超过4GB。

答: 将集合A是的整数,根据n%10不同,分别装入10个文件中,依次命名为a0,a1……,a9。同理,将集合B分别装入10个文件中,依次命名为b0,b1,……,b9。那么A和B编号不同的文件中,一定不会有相同的整数。只需分另求出a0与b0中共有的元素、a1与b1中共有的元素……
利用bitmap,将bitmap清0,读入文件ai,依次处理每个数,即将bitmap的第(n/10)位置1。然后读入文件bi,依次处理每个数,即:若bitmap第(n/10)位为1,则这个数属于A∩B

5、请给出从N个无序的整数中计算机最小的K个整数的算法,并给出时间复杂度,其中K<

#include <iostream>
using namespace std;

class A
{
public:
virtual void Fun(int number = 10)
{
std::cout << "A::Fun with number " << number<<endl;
}
};

class B: public A
{
public:
virtual void Fun(int number = 20)
{
std::cout << "B::Fun with number " << number<<endl;
}
};

int main()
{
B b;
A &a = b;
a.Fun();
system("pause");
return 0; //虚函数动态绑定:B,缺省实参是编译时确定的。。。为10

打印结果:B::Fun with number 10

#include <iostream>
using namespace std;

class A
{
public:
A(int j):i(j)
{
fun1();
}
~A()
{
}

virtual void fun2()
{
i++;
}
void fun1()
{
i *= 10;
}

int i;
};

class B:public A
{
public:
B(int j):A(j)
{
fun2();
}
~B()
{
}

void fun2()
{
i += 2;
}
void fun1()
{
i *= 100;
}
};

int main()
{
A* p = new B(1);
cout<<p->i<<endl;
delete p;
system("pause");
};

打印结果:12

5改错如下:

#include <iostream>
using namespace std;

class A
{
public:
A();
~A();

int i = 0;
static int j = 0;
const int k = 0;
const static char *p = "Hello world";
static void fun();
};

A::A()
{

}

A::~A()
{

}

static void

10.3是C++各种成员变量的初始化问题。

主要是staitc,const,static const的问题;这里有详细地解答

在C++中,static静态成员变量不能在类的内部初始化。在类的内部只是声明,定义必须在类定义体的外部,通常在类的实现文件中初始化,如:double Account::Rate=2.25;static关键字只能用于类定义体内部的声明中,定义时不能标示为static

  在C++中,const成员变量也不能在类定义处初始化,只能通过构造函数初始化列表进行,并且必须有构造函数。

const数据成员 只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。所以不能在类的声明中初始化const数据成员,因为类的对象没被创建时,编译器不知道const数据成员的值是什么。

const数据成员的初始化只能在类的构造函数的初始化列表中进行。要想建立在整个类中都恒定的常量,应该用类中的枚举常量来实现,或者static cosnt。
class Test
{
public:
Test():a(0){}
enum {size1=100,size2=200};
private:
const int a;//只能在构造函数初始化列表中初始化
static int b;//在类的实现文件中定义并初始化
const static int c;//与 static const int c;相同。
};

int Test::b=0;//static成员变量不能在构造函数初始化列表中初始化,因为它不属于某个对象。
cosnt int Test::c=0;//注意:给静态成员变量赋值时,不需要加static修饰符。但要加cosnt

编程题:

编程题。编写代码把16进制表示的串转换为3进制表示的串。例如x=”5”,则返回:”12”;又例如:x=”F”,则返回”120”

分析: