网易有道2017内推选择题笔试笔记

2017-08-11  本文已影响0人  Green_Apple

1、
JSONObjetWithData:options:error: 使用缓冲区数据来解析
writeJSONObject:toSteam:options:error: 使用流来解析
XML解析分为三种:SAX解析、PULL解析和DOM解析

2、
大小为MAX的循环队列中,f为当前对头元素位置,r为当前队尾元素位置(最后一个元素的位置),则任意时刻,队列中的元素个数为
(r-f+MAX+1)%MAX
教材上说的 (也是大家记住的)求队列公式为: (rear-front+Max)%Max
该公式中的 rear指向队尾元素的下一个位置 ,而本题中 r 指 向队尾元素位置

3、
管道统计prog.c函数中for语句通过的次数,需要使用的指令分别是grep 和 wc
grep “for” proc.c | wc -l
1. 命令格式:
wc [选项]文件...
2. 命令功能:
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。
3. 命令参数:
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息

4、

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

5、
设某棵二叉树的中序遍历序列为BADC,前序遍历序列为ABCD,则后序遍历该二叉树得到序列为(BDCA).
前序遍历:根节点-->左子树-->右子树
中序遍历:左子树 --> 根节点 ->右子树
后序遍历: 左子树 ->右子树 --> 根节点
中序遍历序列为BADC
前序遍历序列为ABCD

根为A
左子树为B
右子树为DC(中序)/CD(前序)

继续分解右子树,得到右子树根为C,结合DC和CD得出右子树的左孩子为D
(分析过程:CD是前序,根是C,DC是中序,在C前的只有可能是左孩子)

树为
A
B C
D

后序遍历为BDCA

6、关于解释系统的叙述中正确的是 AD
A、解释程序不是直接执行,而是转换成机器可识别码之后才能执行
B、使用解释系统时会区分编译阶段和运行阶段
C、目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高
D、一般来说,建立在编译基础上的系统在执行速度要优于建立在解释执行基础上的系统

A: 计算机不能直接理解任何除及其语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。 编译器翻译的方式有两种:一个是编译,一个是解释,相对应的是编译型语言和解释型语言。
B:编译语言程序执行分为编译、执行两个阶段
C:编译语言如JAVA是跨平台语言,编译一次可以在别的系统中不需再次编译直接执行
D选项:编译语言首先将源码编译成字节码或者编译成二进制码 ,C就是把源码编译成二进制码,Java编译成字节码。编译语言执行的效率往往比较高。因为它会对编译好的代码直接执行,而编译好的代码已经接近机器语言,无需再去做解释的工作。 解释性语言不同,在执行的时候才把源代码调到执行它的地方,比如是引擎或者解释器,调用一句执行一句。

7、
B-数是多叉数 >2
树的阶数,代表数结点有多少个儿子

每个树根结点中所含的关键字数目最多允许为( )个,最少允许为( )个。最多M-1 最少M/2-1 向上取整,(M是阶树)

8、

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;
}

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种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。

9、
一磁带机有9道磁道,带长700m,带速2m/s,每个数据块1k字节,块间间隔14mm。如果数据传输率为128000字节/秒,求记录位密度为()字节/m.
因为 数据传输率(C)=记录位密度(D) x 线速度( V )
所以 D=C/V= 128000/2=64000

10、
以下几条路由,10.1.193.0/24,10.1.194.0/24,10.1.196.0/24,10.1.198.0/24,如果进行路由汇聚,则能覆盖这几条路由地址的是()

将四类IP地址中第三位转为二进制,如下:
10.1. 193.0=>1100 0001
10.1. 194. 0=> 1100 0010
10.1. 196. 0=> 1100 0100
10.1. 198. 0=> 1100 0110
可以得出有五位是相同的=====》得出网络号应该占用8+8+5=21位,即
10.1. 1100 0000 . 0
==》 10.1.192.0/21

上一篇下一篇

猜你喜欢

热点阅读