网易之2016笔试内推
1、
#include <iostream> using namespace std; class A{ int a1; protected: int a2; public: int a3; }; class B: public A{ int b1; protected: int b2; public: int b3; }; class C:private B{ int c1; protected: int c2; public: int c3; }; int main(){ B obb; C obc; cout<<obb.a1;//1 cout<<obb.a2;//2 cout<<obb.a3;//3 cout<<obc.b1;//4 cout<<obc.b2;//5 cout<<obc.b3;//6 cout<<obc.c3;//7 return 0; }
c++中:
类的继承后方法属性变化:
private 属性不能够被继承。
使用private继承,父类的protected和public属性在子类中变为private;
使用protected继承,父类的protected和public属性在子类中变为protected;
使用public继承,父类中的protected和public属性不发生改变;
private, public, protected 访问标号的访问范围:
private:只能由1.该类中的函数、2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。
protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。
public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。
注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。
2、在一个10阶的B-树上,每个树根结点中所含的关键字数目最多允许为( )个,最少允许为( )个。
最多M-1 最少M/2-1 向上取整
3、xml与json
XML数据结构只有一个根节点,可以嵌套
JSONObjetWithData:options:error: 使用缓冲区数据来解析
C: writeJSONObject:toSteam:options:error: 使用流来解析
http://blog.jobbole.com/79252/
4、大小为MAX的循环队列中,f为当前对头元素位置,r为当前队尾元素位置(最后一个元素的位置),则任意时刻,队列中的元素个数为
循环队列,
默认情况,front指向队首元素的前一个位置,rear指向队尾元素,(rear-front+max)%max;
本题,front指向队首,rear指向队尾,(rear-(front-1)+max)%max;
5、程序员小李通过管道统计prog.c函数中for语句通过的次数,需要使用的指令分别是
Linux中的指令:grep “for” proc.c | wc -l
6、
#include<iostream>
using
namespace
std;
class
Sample{
public
:
Sample(
int
x){
________
}
~Sample(){
if
(p)
delete
p;
}
int
show(){
return
*p;
}
private
:
int
*p;
};
int
main(){
Sample S(5);
cout<<S.show()<<endl;
return
0;
}
D : p = &x; 表示的是,对x取地址,赋值给指针p,那么p 将指向 x 的那块内存空间,但是 x 是形式参数(也有人说是方法参数,都可以),函数调用完了之后,内存就释放了,所以再返回 *p(即取出那块内存空间的值),已经找不到了。所以错误。
A :*p = x; 表示的是 将 x 的值赋值给 P 所指向的空间,而p之前并没有指向任何地方,这个操作将是非法的。
C:*p = new int(x); 这个操作同 A 的结果一样。
B : p = new int(x); new int(x) 新申请空间,调用完后不释放空间,所以将地址赋值给p 则p 指向了这段新申请内存空间,所以当做 *p 返回时,即取出p所执行空间的值,所以会输出5
7、